openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2014
- 1 participants
- 1539 discussions
Hello community,
here is the log from the commit of package python3.2736 for openSUSE:12.3:Update checked in at 2014-05-02 14:25:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/python3.2736 (Old)
and /work/SRC/openSUSE:12.3:Update/.python3.2736.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3.2736"
Changes:
--------
New Changes file:
--- /dev/null 2014-04-28 00:21:37.460033756 +0200
+++ /work/SRC/openSUSE:12.3:Update/.python3.2736.new/python3-base.changes 2014-05-02 14:25:15.000000000 +0200
@@ -0,0 +1,263 @@
+-------------------------------------------------------------------
+Thu Apr 3 12:07:22 UTC 2014 - jmatejek(a)suse.com
+
+- CVE-2014-2667-mkdir.patch: fix race condition with umask when
+ creating directories with os.mkdirs
+ (CVE-2014-2667, bnc#871152)
+- CVE-2013-7338-malzip.patch: fix DoS when opening malicious archives
+ (CVE-2013-7338, bnc#869222)
+- CVE-2014-1912-recvfrom_into.patch: buffer overflow in socket.recvfrom_into
+ (CVE-2014-1912, bnc#863741)
+- update multilib patch to handle home install scheme properly
+ (bnc#637176)
+
+-------------------------------------------------------------------
+Wed Apr 3 15:36:04 UTC 2013 - jmatejek(a)suse.com
+
+- remove spurious modification of python-3.3.0b1-localpath.patch
+ that would force installation into /usr/local.
+ this fixes bnc#809831
+
+-------------------------------------------------------------------
+Mon Jan 28 18:14:39 UTC 2013 - jmatejek(a)suse.com
+
+- update baselibs for new version of libpython3
+
+-------------------------------------------------------------------
+Thu Nov 29 17:02:37 UTC 2012 - jmatejek(a)suse.com
+
+- fix include path in macros (bnc#787526)
+- implement failed import handlers for modules that live in
+ subpackages - e.g. "import ssl" will now throw a sensible error
+ message telling you to install "python3"
+
+-------------------------------------------------------------------
+Wed Nov 28 17:02:07 UTC 2012 - jmatejek(a)suse.com
+
+- merge python3-xml into python3
+- merge python3-2to3 library into python3-base
+ and the 2to3 binary into python3-devel
+ (python3-devel is now in conflict with python-2to3, which
+ will be dropped)
+- enable --with-system-expat for python3, making the xml modules
+ (and thus python3) depend on expat
+- reconfigure tests to disable network and GUI resources, which
+ the upstream apparently thought is a good idea to enable by default.
+ this fixes build failures in Factory
+- add lzma-devel to build the _lzma module
+- moved %dynlib macro definition to common section
+
+-------------------------------------------------------------------
+Mon Nov 5 20:01:46 UTC 2012 - coolo(a)suse.com
+
+- buildrequire timezone for the test suite
+
+-------------------------------------------------------------------
+Mon Oct 29 18:21:45 UTC 2012 - dmueller(a)suse.com
+
+- disable more checks for qemu builds as they use syscalls not
+ implemented yet
+
+-------------------------------------------------------------------
+Thu Oct 25 08:14:36 UTC 2012 - Rene.vanPaassen(a)gmail.com
+
+- exclude test_math for SLE 11; math library fails on negative
+ gamma function values close to integers and 0, probably
+ due to imprecision in -lm on SLE_11_SP2.
+
+-------------------------------------------------------------------
+Tue Oct 16 12:15:34 UTC 2012 - coolo(a)suse.com
+
+- buildrequire libbz2-devel explicitly
+
+-------------------------------------------------------------------
+Mon Oct 8 14:33:08 UTC 2012 - jmatejek(a)suse.com
+
+- remove distutils.cfg (bnc#658604)
+ * this changes default prefix for distutils to /usr
+ * see ML for details:
+http://lists.opensuse.org/opensuse-packaging/2012-09/msg00254.html
+
+-------------------------------------------------------------------
+Mon Oct 1 08:53:03 UTC 2012 - idonmez(a)suse.com
+
+- Update to final 3.3.0 release
+ * See http://hg.python.org/cpython/file/v3.3.0/Misc/NEWS
+
+-------------------------------------------------------------------
+Thu Sep 27 12:35:01 UTC 2012 - idonmez(a)suse.com
+
+- Correct dependency for python3-testsuite,
+ python3-tkinter -> python3-tk
+
+-------------------------------------------------------------------
+Thu Aug 23 13:08:11 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.3.0 RC1
+
+-------------------------------------------------------------------
+Fri Aug 3 12:09:34 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.3.0 beta 1
+ * flexible string representation, no longer distinguishing
+ between wide and narrow Unicode builds
+ * importlib-based import system
+ * virtualenv support in core
+ * namespace packages
+ * explicit Unicode literals for easier porting
+ * key-sharing dict implementation reduces memory footprint
+ of OO code
+ * hash randomization on by default
+ * many other new bugfixes and features, check NEWS for details
+
+- pre_checkin.sh now autofills various version strings in specs
+- ship hashlib's fallback modules - those uselessly take up space
+ when real _hashlib.so from python3 is present, but the space wasted
+ is only 114kB and it provides python3-base with a working hashlib
+ module.
+ (also, this fixes bnc#743787)
+
+-------------------------------------------------------------------
+Fri Jul 27 09:02:41 UTC 2012 - dvaleev(a)suse.com
+
+- skip test_io on ppc
+- drop test_io ppc patch
+
+-------------------------------------------------------------------
+Thu Jun 28 07:57:58 UTC 2012 - saschpe(a)suse.de
+
+- Satisfy source_validator by uncommenting an otherwise unused "Patch"
+ line
+
+-------------------------------------------------------------------
+Fri May 18 11:50:27 UTC 2012 - idonmez(a)suse.com
+
+- update to 3.2.3
+ * No changes since rc2
+
+-------------------------------------------------------------------
+Thu Mar 29 15:44:33 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.2.3rc2
+ * fixes several security issues:
+ * CVE-2012-0845, bnc#747125
+ * CVE-2012-1150, bnc#751718
+ * CVE-2011-4944, bnc#754447
+ * CVE-2011-3389, bnc#754677
+- fix for insecure .pypirc (CVE-2011-4944, bnc#754447)
+- disable test_gdb because it is broken by our gdb
+
+-------------------------------------------------------------------
+Thu Feb 16 12:33:12 UTC 2012 - dvaleev(a)suse.com
+
+- skip broken test_io test on ppc
+
+-------------------------------------------------------------------
+Wed Jan 18 15:49:47 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.2.2
+ * bugfix-only release
+ * reports "linux2" as sys.platform regardless of Linux kernel
+- added pre_checkin.sh to copy common spec sections to python3.spec
+- added PACKAGING-NOTES with some helpful info for packagers
+
+-------------------------------------------------------------------
+Sun Dec 25 13:25:01 UTC 2011 - idonmez(a)suse.com
+
+- Use system ffi, included one is broken see
+ http://bugs.python.org/issue11729 and
+ http://bugs.python.org/issue12081
+
+-------------------------------------------------------------------
+Fri Dec 9 17:19:55 UTC 2011 - jmatejek(a)suse.com
+
+- license.opensuse.org-compatible license headers
+
+-------------------------------------------------------------------
+Fri Dec 2 16:46:44 UTC 2011 - coolo(a)suse.com
+
+- add automake as buildrequire to avoid implicit dependency
+
+-------------------------------------------------------------------
+Thu Nov 24 12:42:25 UTC 2011 - agraf(a)suse.com
+
+- fix ARM build (exclude some test cases which break for us)
+
+-------------------------------------------------------------------
+Tue Aug 16 17:02:22 UTC 2011 - termim(a)gmail.com
+
+- use sysconfig module to get py3_incdir, py3_abiflags,
+ py3_soflags, python3_sitelib and python3_sitearch
+
+-------------------------------------------------------------------
+Mon Jul 18 16:22:31 UTC 2011 - jmatejek(a)novell.com
+
+- update to 3.2.1
+ * bugfix-only release, no major changes
+- fix build on linux3 platform
++++ 66 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.3:Update/.python3.2736.new/python3-base.changes
New Changes file:
--- /dev/null 2014-04-28 00:21:37.460033756 +0200
+++ /work/SRC/openSUSE:12.3:Update/.python3.2736.new/python3-doc.changes 2014-05-02 14:25:15.000000000 +0200
@@ -0,0 +1,57 @@
+-------------------------------------------------------------------
+Mon Oct 1 08:53:43 UTC 2012 - idonmez(a)suse.com
+
+- Update to final 3.3.0 release
+ * See http://hg.python.org/cpython/file/v3.3.0/Misc/NEWS
+
+-------------------------------------------------------------------
+Fri Aug 3 12:13:10 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.3.0 beta 1
+
+-------------------------------------------------------------------
+Tue Jun 12 14:43:44 UTC 2012 - jmatejek(a)suse.com
+
+- update to build against 3.2.3
+
+-------------------------------------------------------------------
+Wed Jan 18 15:52:06 UTC 2012 - jmatejek(a)suse.com
+
+- update to build against 3.2.2
+
+-------------------------------------------------------------------
+Mon Jul 18 16:23:31 UTC 2011 - jmatejek(a)novell.com
+
+- update to build against 3.2.1
+
+-------------------------------------------------------------------
+Wed Mar 23 04:26:45 UTC 2011 - termim(a)gmail.com
+
+- update to python 3.2
+
+-------------------------------------------------------------------
+Tue Feb 8 19:43:20 CET 2011 - matejcik(a)suse.cz
+
+- updated to build against 3.2 RC2
+
+-------------------------------------------------------------------
+Mon Nov 29 14:24:43 UTC 2010 - jmatejek(a)novell.com
+
+- updated to build against 3.1.2
+
+-------------------------------------------------------------------
+Thu Aug 6 20:48:25 CEST 2009 - matejcik(a)suse.cz
+
+- updated to 3.1 documentation
+
+-------------------------------------------------------------------
+Fri Sep 12 14:13:07 CEST 2008 - matejcik(a)suse.cz
+
+- updated to build against 3.0b3
+
+-------------------------------------------------------------------
+Fri Jun 27 16:30:21 CEST 2008 - matejcik(a)suse.cz
+
+- initial release of python3-doc subpackage
+(now it contains files from python2. they will be updated
+in due time)
New Changes file:
--- /dev/null 2014-04-28 00:21:37.460033756 +0200
+++ /work/SRC/openSUSE:12.3:Update/.python3.2736.new/python3.changes 2014-05-02 14:25:15.000000000 +0200
@@ -0,0 +1,151 @@
+-------------------------------------------------------------------
+Fri Aug 16 11:25:49 UTC 2013 - jmatejek(a)suse.com
+
+- handle NULL bytes in certain fields of SSL certificates
+ (CVE-2013-4238, bnc#834601, CVE-2013-4238_py33.patch)
+
+-------------------------------------------------------------------
+Mon Oct 29 18:21:45 UTC 2012 - dmueller(a)suse.com
+
+- disable more checks for qemu builds as they use syscalls not
+ implemented yet
+
+-------------------------------------------------------------------
+Mon Oct 1 08:52:01 UTC 2012 - idonmez(a)suse.com
+
+- Update to final 3.3.0 release
+ * See http://hg.python.org/cpython/file/v3.3.0/Misc/NEWS
+
+-------------------------------------------------------------------
+Mon Aug 27 16:36:03 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.3.0 RC1
+- added Provides for %{python_version}, we'll see whether that
+ breaks everything
+
+-------------------------------------------------------------------
+Fri Aug 3 12:12:58 UTC 2012 - jmatejek(a)suse.com
+
+- update to 3.3.0 beta 1
+
+-------------------------------------------------------------------
+Fri Jul 27 09:04:43 UTC 2012 - dvaleev(a)suse.com
+
+- drop test_io ppc patch... we run only selective tests here
+
+-------------------------------------------------------------------
+Tue Jun 12 15:39:08 UTC 2012 - adrian(a)suse.de
+
+- fix logic of checks exclusion
+
+-------------------------------------------------------------------
+Sun Dec 25 13:26:04 UTC 2011 - idonmez(a)suse.com
+
+- Use system ffi, included one is broken see
+ http://bugs.python.org/issue11729 and
+ http://bugs.python.org/issue12081
+
+-------------------------------------------------------------------
+Fri Dec 9 17:19:55 UTC 2011 - jmatejek(a)suse.com
+
+- license.opensuse.org-compatible license headers
+
+-------------------------------------------------------------------
+Fri Dec 2 16:46:44 UTC 2011 - coolo(a)suse.com
+
+- add automake as buildrequire to avoid implicit dependency
+
+-------------------------------------------------------------------
+Fri Sep 2 10:40:01 UTC 2011 - coolo(a)suse.com
+
+- fix baselibs.conf
+
+-------------------------------------------------------------------
+Mon Jul 18 16:23:16 UTC 2011 - jmatejek(a)novell.com
+
+- update to 3.2.1
+- fix build on linux3
+
+-------------------------------------------------------------------
+Fri May 13 12:43:49 UTC 2011 - jmatejek(a)novell.com
+
+- updated to build --with-wide-unicode (for compatibility with
+ fedora and our own python 2.x series)
+
+-------------------------------------------------------------------
+Wed Mar 23 04:25:53 UTC 2011 - termim(a)gmail.com
+
+- update to 3.2
+
+-------------------------------------------------------------------
+Tue Feb 8 19:43:07 CET 2011 - matejcik(a)suse.cz
+
+- update to 3.2 RC2
+
+-------------------------------------------------------------------
+Wed Jan 19 16:11:30 UTC 2011 - jmatejek(a)novell.com
+
+- update to 3.2 beta 2 and other tales
+
+-------------------------------------------------------------------
+Fri Jan 14 19:51:51 UTC 2011 - coolo(a)novell.com
+
+- update to 3.1.3
+ * tons of bug fixes from 3.1 branch
+
+-------------------------------------------------------------------
+Mon Nov 15 12:22:19 UTC 2010 - coolo(a)novell.com
+
+- update to 3.1.2
+ * new stable release from 3.1 branch
+- add svn patch to fix zlib test case
+
+-------------------------------------------------------------------
+Sat Jan 23 20:08:53 CET 2010 - jengelh(a)medozas.de
+
+- package baselibs.conf
+
+-------------------------------------------------------------------
+Tue Nov 3 19:14:00 UTC 2009 - coolo(a)novell.com
+
+- updated patches to apply with fuzz=0
+
+-------------------------------------------------------------------
+Tue Sep 8 16:28:03 CEST 2009 - max(a)suse.de
+
+- removed blt from BuildRequires so that it can be dropped.
+
+-------------------------------------------------------------------
+Thu Aug 6 20:31:56 CEST 2009 - matejcik(a)suse.cz
+
+- update to 3.1
+ * new version, much improved over the shakedown 3.0 series
+
+-------------------------------------------------------------------
+Thu Jul 16 10:42:21 CEST 2009 - coolo(a)novell.com
+
+- disable as-needed to fix build
+
+-------------------------------------------------------------------
+Fri Sep 12 14:12:05 CEST 2008 - matejcik(a)suse.cz
+
+- update to beta3
+- fixed misapplied ssl-compat patch
+- added curses-panel patch from python 2.6
+
+-------------------------------------------------------------------
+Tue Aug 5 18:34:03 CEST 2008 - matejcik(a)suse.cz
+
+- update to beta2
+- included fixed configure script
+ (although somebody apparently did that for me before)
+!!!
+unclear status of recent security issues
+=> for now, this package should be considered insecure
+!!!
+
+-------------------------------------------------------------------
+Fri Jun 27 16:29:17 CEST 2008 - matejcik(a)suse.cz
+
+- initial release of python3 package
+(yes, it is a hacked specfile of python 2.x)
New:
----
CVE-2013-4238_py33.patch
CVE-2013-7338-malzip.patch
CVE-2014-1912-recvfrom_into.patch
CVE-2014-2667-mkdir.patch
PACKAGING-NOTES
Python-3.0b1-record-rpm.patch
Python-3.3.0.tar.bz2
Python-3.3.0b2-multilib.patch
README.SUSE
baselibs.conf
import_failed.map
import_failed.py
macros.python3.py
pre_checkin.sh
python-2.6b1-canonicalize2.patch
python-3.2.3rc2-pypirc-secure.patch
python-3.2b2-buildtime-generate.patch
python-3.3.0-docs-html.tar.bz2
python-3.3.0-docs-pdf-a4.tar.bz2
python-3.3.0-docs-pdf-letter.tar.bz2
python-3.3.0b1-curses-panel.patch
python-3.3.0b1-fix_date_time_compiler.patch
python-3.3.0b1-localpath.patch
python-3.3.0b1-test-posix_fadvise.patch
python3-base.changes
python3-base.spec
python3-doc.changes
python3-doc.spec
python3.changes
python3.csh
python3.sh
python3.spec
python3start
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-base.spec ++++++
#
# spec file for package python3-base
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# !!!!
# this is the master spec file, but changes should be submitted
# against python3, not python3-base
#
# see PACKAGING-NOTES for details
# !!!!
Name: python3-base
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: libbz2-devel
BuildRequires: pkg-config
BuildRequires: timezone
BuildRequires: zlib-devel
Url: http://www.python.org/
Summary: Python3 Interpreter
License: Python-2.0
Group: Development/Languages/Python
Version: 3.3.0
Release: 0
%define tarversion %{version}
%define tarname Python-%{tarversion}
# python 3.1 didn't have a separate python-base, so it is wrongly
# not a conflict to have python3-3.1 and python3-base > 3.1
Obsoletes: python3 < 3.2
# no Provides, because python3 is obviously provided by package python3
Source0: %{tarname}.tar.bz2
Source1: baselibs.conf
Source2: README.SUSE
Source3: python3start
Source4: python3.sh
Source5: python3.csh
Source7: macros.python3.py
Source8: import_failed.py
Source9: import_failed.map
Source99: PACKAGING-NOTES
# this is documentation for packagers, put here to silence Factory source_validator
### COMMON-PATCH-BEGIN ###
# implement "--record-rpm" option for distutils installations
Patch01: Python-3.0b1-record-rpm.patch
# support lib-vs-lib64 distinction
Patch02: Python-3.3.0b2-multilib.patch
# securing usage of readlink/realpath in PySys_SetArgv
Patch03: python-2.6b1-canonicalize2.patch
# support finding packages in /usr/local, install to /usr/local by default
Patch04: python-3.3.0b1-localpath.patch
# fix usage of "python" executable in "make install"
Patch05: python-3.2b2-buildtime-generate.patch
# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible builds
Patch06: python-3.3.0b1-fix_date_time_compiler.patch
# fix wrong include path in curses-panel module
Patch07: python-3.3.0b1-curses-panel.patch
# fix .pypirc creation vulnerability
Patch08: python-3.2.3rc2-pypirc-secure.patch
# POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test
Patch09: python-3.3.0b1-test-posix_fadvise.patch
# CVE-2013-4238 - incorrect handling of NULL bytes in SSL certificate fields
Patch10: CVE-2013-4238_py33.patch
# CVE-2014-2667 - prevent os.makedirs() from re-setting umask, which causes race condition
Patch11: CVE-2014-2667-mkdir.patch
# CVE-2013-7338 - DoS on reading maliciously crafted ZIP (and other) files
Patch12: CVE-2013-7338-malzip.patch
# CVE-2014-1912 - potential buffer overflow in socket.recvfrom_into
Patch13: CVE-2014-1912-recvfrom_into.patch
### COMMON-PATCH-END ###
BuildRoot: %{_tmppath}/%{name}-%{version}-build
### COMMON-DEF-BEGIN ###
# the versions are autogenerated from pre_checkin.sh
# based on the current source tarball
%define python_version 3.3
%define python_version_abitag 33
%define python_version_soname 3_3
%define sitedir %{_libdir}/python%{python_version}
# three possible ABI kinds: m - pymalloc, d - debug build
# see PEP 3149
%define abi_kind m
# python ABI version - used in some file names
%define python_abi %{python_version}%{abi_kind}
# soname ABI tag defined in PEP 3149
%define abi_tag %{python_version_abitag}%{abi_kind}
%define so_version %{python_version_soname}%{abi_kind}1_0
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}.so
### COMMON-DEF-END ###
%description
Python is an interpreted, object-oriented programming language, and is
often compared to Tcl, Perl, Scheme, or Java. You can find an overview
of Python in the documentation and tutorials included in the python-doc
(HTML) or python-doc-pdf (PDF) packages.
If you want to install third party modules using distutils, you need to
install python-devel package.
Authors:
--------
Guido van Rossum <guido(a)python.org>
%package -n python3-tools
Requires: %{name} = %{version}
Summary: Python Utility and Demonstration Scripts
Group: Development/Languages/Python
Obsoletes: python3-demo <= %{version}
Provides: python3-demo = %{version}
%description -n python3-tools
A number of scripts that are useful for building, testing or extending Python,
and a set of demonstration programs.
%package -n python3-idle
Requires: %{name} = %{version}
Requires: python3-tk
Summary: An Integrated Development Environment for Python
Group: Development/Languages/Python
%description -n python3-idle
IDLE is a Tkinter based integrated development environment for Python.
It features a multi-window text editor with multiple undo, Python
colorizing, and many other things, as well as a Python shell window and
a debugger.
%package -n python3-devel
Requires: %{name} = %{version}
Provides: python3-2to3 = %{version}
Obsoletes: python3-2to3 <= %{version}
Summary: Include Files and Libraries Mandatory for Building Python Modules
Group: Development/Languages/Python
%description -n python3-devel
The Python programming language's interpreter can be extended with
dynamically loaded extensions and can be embedded in other programs.
This package contains header files, a static library, and development
tools for building Python modules, extending the Python interpreter or
embedding Python in applications.
This also includes the Python distutils, which were in the Python
package up to version 2.2.2.
%package -n python3-testsuite
Requires: python3 = %{version}
Requires: python3-tk = %{version}
Summary: Unit tests for Python and its standard library
Group: Development/Languages/Python
%description -n python3-testsuite
Unit tests that are useful for verifying integrity and functionality
of the installed Python interpreter and standard library.
They are a documented part of stdlib, as a module 'test'.
%package -n libpython%{so_version}
Summary: Python Interpreter shared library
Group: Development/Languages/Python
%description -n libpython%{so_version}
Python is an interpreted, object-oriented programming language, and is
often compared to Tcl, Perl, Scheme, or Java. You can find an overview
of Python in the documentation and tutorials included in the python-doc
(HTML) or python-doc-pdf (PDF) packages.
This package contains libpython3.2 shared library for embedding in
other applications.
%prep
%setup -q -n %{tarname}
### COMMON-PREP-BEGIN ###
%patch01 -p1
%patch02 -p1
#%%patch03
#- canonicalize disabled, needs testing whether the exploit still works
%patch04
%patch05 -p1
%patch06 -p1
%patch07
%patch08 -p1
%patch09 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
# drop Autoconf version requirement
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
### COMMON-PREP-END ###
%build
# use rpm_opt_flags
export OPT="%{optflags}"
touch -r %{S:0} Makefile.pre.in
autoreconf -fi
# prevent make from trying to rebuild asdl stuff, which requires existing python installation
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h
%if 0%{?sles_version}
sed -e 's/-fprofile-correction//' -i Makefile.pre.in
%endif
./configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--mandir=%{_mandir} \
--docdir=%{_docdir}/python \
--enable-ipv6 \
--with-fpectl \
--enable-shared \
--with-wide-unicode
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH \
make %{?_smp_mflags} profile-opt
%check
# SUSE's gdb breaks test_gdb by producing spurious output (zypper suggestions)
# test_socket fails because of name resolution failure, that is expected
EXCLUDE="-x test_gdb -x test_socket"
# test_ctypes breaks on ARM - even on real machines
%ifarch %arm
EXCLUDE="$EXCLUDE -x test_ctypes"
%endif
%ifarch ppc ppc64
EXCLUDE="$EXCLUDE -x test_io"
%endif
# some tests break in QEMU
%if 0%{?qemu_user_space_build} > 0
EXCLUDE="$EXCLUDE -x test_multiprocessing test_threading test_threadedtempfile test_io test_posix test_ioctl test_mmap test_openpty test_pty test_monotonic_settime test_clock_settime test_time test_subprocess test_asyncore test_send_at_certain_offset test_send_whole_file test_os test_faulthandler"
%endif
# on x86_64, SLE_11_SP2 only, extreme gamma function values (close to negative
# integers) fail. Is probably a bug/imperfection in -lm
# disabling this for all SLE, unless someone knows how to test for SP level?
%ifarch x86_64
%if 0%{?sles_version} == 11
EXCLUDE="$EXCLUDE -x test_math"
%endif
%endif
# Limit virtual memory to avoid spurious failures
if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then
ulimit -v 10000000 || :
fi
make test TESTOPTS="-u -network,-gui $EXCLUDE"
# use network, be verbose:
#make test TESTOPTS="-l -u network -v"
%install
# replace rest of /usr/local/bin/python or /usr/bin/python2.5 with /usr/bin/python3
find . -path "./Parser" -prune \
-o -path "./Python/makeopcodetargets.py" -prune \
-o -name '*.py' -type f -print0 \
| xargs -0 grep -lE '^#! *(/usr/.*bin/(env +)?)?python' \
| xargs sed -r -i -e '1s@^#![[:space:]]*(/usr/(local/)?bin/(env +)?)?python([0-9]+(\.[0-9]+)?)?@#!/usr/bin/python3@'
# the grep inbetween makes it much faster
# install it
make \
OPT="%{optflags} -fPIC" \
DESTDIR=$RPM_BUILD_ROOT \
install
# remove .a
find ${RPM_BUILD_ROOT} -name "*.a" -exec rm {} ";"
# install "site-packages" and __pycache__ for third parties
install -d -m 755 ${RPM_BUILD_ROOT}%{sitedir}/site-packages
install -d -m 755 ${RPM_BUILD_ROOT}%{sitedir}/site-packages/__pycache__
# and their 32bit counterparts explicitly
mkdir -p ${RPM_BUILD_ROOT}/usr/lib/python%{python_version}/site-packages/__pycache__
# cleanup parts that don't belong
for dir in curses dbm sqlite3 tkinter xml xmlrpc; do
find $RPM_BUILD_ROOT%{sitedir}/$dir/* -maxdepth 0 -name "test" -o -exec rm -rf {} ";"
done
rm $RPM_BUILD_ROOT%{dynlib pyexpat}
# overwrite the copied binary with a link
ln -sf python%{python_version} ${RPM_BUILD_ROOT}%{_bindir}/python3
# replace duplicate .pyo/.pyc with hardlinks
%fdupes $RPM_BUILD_ROOT/%{sitedir}
# documentation
export PDOCS=${RPM_BUILD_ROOT}%{_docdir}/%{name}
install -d -m 755 $PDOCS
install -c -m 644 %{S:2} $PDOCS/
install -c -m 644 LICENSE $PDOCS/
install -c -m 644 README $PDOCS/
# tools
for x in `find Tools/ \( -not -name Makefile \) -print | sort` ; do
test -d $x && ( install -c -m 755 -d $PDOCS/$x ) \
|| ( install -c -m 644 $x $PDOCS/$x )
done
# clean up the bat files
find $PDOCS -name "*.bat" -exec rm {} ";"
# install devel files to /config
#cp Makefile Makefile.pre.in Makefile.pre $RPM_BUILD_ROOT%{sitedir}/config-%{python_abi}/
# move idle config into /etc
install -d -m 755 ${RPM_BUILD_ROOT}/etc/idle3
(
cd ${RPM_BUILD_ROOT}/%{sitedir}/idlelib/
for file in *.def ; do
mv $file ${RPM_BUILD_ROOT}/etc/idle3/
ln -sf /etc/idle3/$file ${RPM_BUILD_ROOT}/%{sitedir}/idlelib/
done
)
# startup scripts
mkdir -p $RPM_BUILD_ROOT/etc/profile.d
install -m 644 %{S:3} $RPM_BUILD_ROOT/etc
install -m 644 %{S:4} %{S:5} $RPM_BUILD_ROOT/etc/profile.d
# RPM macros
mkdir -p $RPM_BUILD_ROOT/etc/rpm
LD_LIBRARY_PATH=. ./python %{S:7} > $RPM_BUILD_ROOT/etc/rpm/macros.python3
# import_failed hooks
FAILDIR=$RPM_BUILD_ROOT/%{sitedir}/_import_failed
mkdir $FAILDIR
install -m 644 %{S:8} %{S:9} $FAILDIR
LD_LIBRARY_PATH=. ./python -c "from py_compile import compile; compile('$FAILDIR/import_failed.py', dfile='%{sitedir}/_import_failed/import_failed.py')"
LD_LIBRARY_PATH=. ./python -O -c "from py_compile import compile; compile('$FAILDIR/import_failed.py', dfile='%{sitedir}/_import_failed/import_failed.py')"
(
cd $FAILDIR
while read package modules; do
for module in $modules; do
ln import_failed.py $module.py
pushd __pycache__
for i in import_failed*; do
ln $i $module${i%import_failed}
done
popd
done
done < %{S:9}
)
echo %{sitedir}/_import_failed > $RPM_BUILD_ROOT/%{sitedir}/site-packages/zzzz-import-failed-hooks.pth
%clean
rm -rf $RPM_BUILD_ROOT
%post -n libpython%{so_version} -p /sbin/ldconfig
%postun -n libpython%{so_version} -p /sbin/ldconfig
%files -n libpython%{so_version}
%defattr(644, root,root)
%{_libdir}/libpython%{python_abi}.so.*
%files -n python3-tools
%defattr(644, root, root, 755)
%{sitedir}/turtledemo
%doc %{_docdir}/%{name}/Tools
%files -n python3-idle
%defattr(644, root, root, 755)
%{sitedir}/idlelib
%dir /etc/idle3
%config /etc/idle3/*
%doc Lib/idlelib/NEWS.txt
%doc Lib/idlelib/README.txt
%doc Lib/idlelib/TODO.txt
%doc Lib/idlelib/extend.txt
%doc Lib/idlelib/ChangeLog
%attr(755, root, root) %{_bindir}/idle3
%attr(755, root, root) %{_bindir}/idle%{python_version}
%files -n python3-devel
%defattr(644, root, root, 755)
%{_libdir}/libpython%{python_abi}.so
%{_libdir}/libpython3.so
%{_libdir}/pkgconfig/*
%{_prefix}/include/python%{python_abi}
%exclude %{_prefix}/include/python%{python_abi}/pyconfig.h
%defattr(755, root, root)
%{_bindir}/python%{python_abi}-config
%{_bindir}/python%{python_version}-config
%{_bindir}/python3-config
%{_bindir}/2to3
%{_bindir}/2to3-%{python_version}
%files -n python3-testsuite
%defattr(644, root, root, 755)
%{sitedir}/test
%{sitedir}/*/test
%{dynlib _ctypes_test}
%{dynlib _testcapi}
# workaround for missing packages
%dir %{sitedir}/sqlite3
%dir %{sitedir}/tkinter
%files
%defattr(644, root, root, 755)
# profile files
%config /etc/python3start
%config /etc/profile.d/python3.*
# docs
%dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/README
%doc %{_docdir}/%{name}/LICENSE
%doc %{_docdir}/%{name}/README.SUSE
%doc %{_mandir}/man1/python%{python_version}.1*
# makefile etc
%{sitedir}/config-%{python_abi}
%config /etc/rpm/macros.python3
%{_prefix}/include/python%{python_abi}/pyconfig.h
# binary parts
%dir %{sitedir}/lib-dynload
#%{sitedir}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info
%{dynlib array}
%{dynlib atexit}
%{dynlib audioop}
%{dynlib binascii}
%{dynlib _bisect}
%{dynlib _bz2}
%{dynlib cmath}
%{dynlib _codecs_cn}
%{dynlib _codecs_hk}
%{dynlib _codecs_iso2022}
%{dynlib _codecs_jp}
%{dynlib _codecs_kr}
%{dynlib _codecs_tw}
%{dynlib _crypt}
%{dynlib _csv}
%{dynlib _ctypes}
%{dynlib _datetime}
%{dynlib _decimal}
%{dynlib _elementtree}
%{dynlib fcntl}
%{dynlib grp}
%{dynlib _heapq}
%{dynlib _json}
%{dynlib _lsprof}
%{dynlib math}
%{dynlib mmap}
%{dynlib _multibytecodec}
%{dynlib _multiprocessing}
%{dynlib nis}
%{dynlib ossaudiodev}
%{dynlib parser}
%{dynlib _pickle}
%{dynlib _posixsubprocess}
%{dynlib _random}
%{dynlib resource}
%{dynlib select}
%{dynlib _socket}
%{dynlib spwd}
%{dynlib _struct}
%{dynlib syslog}
%{dynlib termios}
%{dynlib time}
%{dynlib _testbuffer}
%{dynlib unicodedata}
%{dynlib zlib}
# hashlib fallback modules
%{dynlib _md5}
%{dynlib _sha1}
%{dynlib _sha256}
%{dynlib _sha512}
# python parts
%dir /usr/lib/python%{python_version}
%dir /usr/lib/python%{python_version}/site-packages
%dir /usr/lib/python%{python_version}/site-packages/__pycache__
%dir %{sitedir}
%dir %{sitedir}/site-packages
%dir %{sitedir}/site-packages/__pycache__
%exclude %{sitedir}/*/test
%{sitedir}/*.*
%{sitedir}/ctypes
%{sitedir}/collections
%{sitedir}/concurrent
%{sitedir}/distutils
%{sitedir}/email
%{sitedir}/encodings
%{sitedir}/html
%{sitedir}/http
%{sitedir}/importlib
%{sitedir}/json
%{sitedir}/lib2to3
%{sitedir}/logging
%{sitedir}/multiprocessing
%{sitedir}/plat-*
%{sitedir}/pydoc_data
%{sitedir}/unittest
%{sitedir}/urllib
%{sitedir}/venv
%{sitedir}/wsgiref
%{sitedir}/site-packages/README
%{sitedir}/__pycache__
# import-failed hooks
%{sitedir}/_import_failed
%{sitedir}/site-packages/zzzz-import-failed-hooks.pth
# executables
%attr(755, root, root) %{_bindir}/pydoc3
%attr(755, root, root) %{_bindir}/pydoc%{python_version}
%attr(755, root, root) %{_bindir}/python%{python_abi}
%attr(755, root, root) %{_bindir}/python%{python_version}
%attr(755, root, root) %{_bindir}/python3
%attr(755, root, root) %{_bindir}/pyvenv
%attr(755, root, root) %{_bindir}/pyvenv-%{python_version}
%changelog
++++++ python3-doc.spec ++++++
#
# spec file for package python3-doc
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: python3-doc
Url: http://www.python.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Additional Package Documentation for Python.
License: Python-2.0
Group: Development/Languages/Python
Version: 3.3.0
Release: 0
BuildArch: noarch
%define tarversion %{version}
%define tarname Python-%{tarversion}
%define pyname python3
%define pyver 3.3.0
Enhances: %{pyname}=%{pyver}
Source0: %{tarname}.tar.bz2
Source1: python-%{version}-docs-html.tar.bz2
Source2: python-%{version}-docs-pdf-a4.tar.bz2
Source3: python-%{version}-docs-pdf-letter.tar.bz2
Provides: pyth_doc
Provides: pyth_ps
Obsoletes: pyth_doc
Obsoletes: pyth_ps
# for consistency:
### COMMON-PATCH-BEGIN ###
# implement "--record-rpm" option for distutils installations
Patch01: Python-3.0b1-record-rpm.patch
# support lib-vs-lib64 distinction
Patch02: Python-3.3.0b2-multilib.patch
# securing usage of readlink/realpath in PySys_SetArgv
Patch03: python-2.6b1-canonicalize2.patch
# support finding packages in /usr/local, install to /usr/local by default
Patch04: python-3.3.0b1-localpath.patch
# fix usage of "python" executable in "make install"
Patch05: python-3.2b2-buildtime-generate.patch
# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible builds
Patch06: python-3.3.0b1-fix_date_time_compiler.patch
# fix wrong include path in curses-panel module
Patch07: python-3.3.0b1-curses-panel.patch
# fix .pypirc creation vulnerability
Patch08: python-3.2.3rc2-pypirc-secure.patch
# POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test
Patch09: python-3.3.0b1-test-posix_fadvise.patch
# CVE-2013-4238 - incorrect handling of NULL bytes in SSL certificate fields
Patch10: CVE-2013-4238_py33.patch
# CVE-2014-2667 - prevent os.makedirs() from re-setting umask, which causes race condition
Patch11: CVE-2014-2667-mkdir.patch
# CVE-2013-7338 - DoS on reading maliciously crafted ZIP (and other) files
Patch12: CVE-2013-7338-malzip.patch
# CVE-2014-1912 - potential buffer overflow in socket.recvfrom_into
Patch13: CVE-2014-1912-recvfrom_into.patch
### COMMON-PATCH-END ###
### COMMON-DEF-BEGIN ###
# the versions are autogenerated from pre_checkin.sh
# based on the current source tarball
%define python_version 3.3
%define python_version_abitag 33
%define python_version_soname 3_3
%define sitedir %{_libdir}/python%{python_version}
# three possible ABI kinds: m - pymalloc, d - debug build
# see PEP 3149
%define abi_kind m
# python ABI version - used in some file names
%define python_abi %{python_version}%{abi_kind}
# soname ABI tag defined in PEP 3149
%define abi_tag %{python_version_abitag}%{abi_kind}
%define so_version %{python_version_soname}%{abi_kind}1_0
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}.so
### COMMON-DEF-END ###
%description
Tutorial, Global Module Index, Language Reference, Library Reference,
Extending and Embedding Reference, Python/C API Reference, Documenting
Python, and Macintosh Module Reference in HTML format.
%package pdf
Provides: pyth_pdf
Obsoletes: pyth_pdf
Summary: Python PDF Documentation
Group: Development/Languages/Python
%description pdf
Tutorial, Global Module Index, Language Reference, Library Reference,
Extending and Embedding Reference, Python/C API Reference, Documenting
Python, and Macintosh Module Reference in PDF format.
Authors:
--------
Guido van Rossum <guido(a)python.org>
%prep
%setup -q -n %{tarname}
# for consistency
### COMMON-PREP-BEGIN ###
%patch01 -p1
%patch02 -p1
#%%patch03
#- canonicalize disabled, needs testing whether the exploit still works
%patch04
%patch05 -p1
%patch06 -p1
%patch07
%patch08 -p1
%patch09 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
# drop Autoconf version requirement
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
### COMMON-PREP-END ###
%build
# nothing to do (...whistles innocently)
%install
export PDOCS=${RPM_BUILD_ROOT}%{_docdir}/%{pyname}
install -d -m 755 $PDOCS/Misc
install -d -m 755 $PDOCS/paper-a4 $PDOCS/paper-letter $PDOCS/html
tar xfj %{S:1} -C $PDOCS/html
( cd $PDOCS/html; mv python-%{version}-docs-html/* . ; rm -rf python-%{version}-docs-html)
tar xfj %{S:2} -C $PDOCS/paper-a4
( cd $PDOCS/paper-a4; mv docs-pdf/* . ; rm -rf docs-pdf)
tar xfj %{S:3} -C $PDOCS/paper-letter
( cd $PDOCS/paper-letter; mv docs-pdf/* . ; rm -rf docs-pdf)
install -c -m 644 Doc/ACKS.txt $PDOCS/ACKS.txt
install -c -m 644 Doc/README.txt $PDOCS/README.txt
for i in Misc/* ; do
[ -f $i ] && install -c -m 644 $i $PDOCS/Misc/
done
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644, root, root, 755)
%dir %{_docdir}/%{pyname}
%doc %{_docdir}/%{pyname}/Misc
%doc %{_docdir}/%{pyname}/html
%doc %{_docdir}/%{pyname}/ACKS.txt
%doc %{_docdir}/%{pyname}/README.txt
%files pdf
%defattr(644, root, root, 755)
%doc %{_docdir}/%{pyname}/paper-a4
%doc %{_docdir}/%{pyname}/paper-letter
%changelog
++++++ python3.spec ++++++
#
# spec file for package python3
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: python3
BuildRequires: automake
BuildRequires: db-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gdbm-devel
BuildRequires: gettext-tools
BuildRequires: gmp-devel
BuildRequires: intltool
BuildRequires: libbz2-devel
BuildRequires: libexpat-devel
BuildRequires: libffi-devel
BuildRequires: libopenssl-devel
BuildRequires: lzma-devel
BuildRequires: ncurses-devel
BuildRequires: readline-devel
BuildRequires: sqlite-devel
BuildRequires: tk-devel
BuildRequires: xorg-x11-devel
Url: http://www.python.org/
Summary: Python3 Interpreter
License: Python-2.0
Group: Development/Languages/Python
Version: 3.3.0
Release: 0
%define tarversion %{version}
%define tarname Python-%{tarversion}
Requires: python3-base = %{version}
Source0: %{tarname}.tar.bz2
Source1: baselibs.conf
#Source11: testfiles.tar.bz2
# issues with copyrighted Unicode testing files
# do not add patches here, please edit python3-base.spec instead
# and run pre_checkin.sh
#
# see PACKAGING-NOTES for details
### COMMON-PATCH-BEGIN ###
# implement "--record-rpm" option for distutils installations
Patch01: Python-3.0b1-record-rpm.patch
# support lib-vs-lib64 distinction
Patch02: Python-3.3.0b2-multilib.patch
# securing usage of readlink/realpath in PySys_SetArgv
Patch03: python-2.6b1-canonicalize2.patch
# support finding packages in /usr/local, install to /usr/local by default
Patch04: python-3.3.0b1-localpath.patch
# fix usage of "python" executable in "make install"
Patch05: python-3.2b2-buildtime-generate.patch
# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible builds
Patch06: python-3.3.0b1-fix_date_time_compiler.patch
# fix wrong include path in curses-panel module
Patch07: python-3.3.0b1-curses-panel.patch
# fix .pypirc creation vulnerability
Patch08: python-3.2.3rc2-pypirc-secure.patch
# POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test
Patch09: python-3.3.0b1-test-posix_fadvise.patch
# CVE-2013-4238 - incorrect handling of NULL bytes in SSL certificate fields
Patch10: CVE-2013-4238_py33.patch
# CVE-2014-2667 - prevent os.makedirs() from re-setting umask, which causes race condition
Patch11: CVE-2014-2667-mkdir.patch
# CVE-2013-7338 - DoS on reading maliciously crafted ZIP (and other) files
Patch12: CVE-2013-7338-malzip.patch
# CVE-2014-1912 - potential buffer overflow in socket.recvfrom_into
Patch13: CVE-2014-1912-recvfrom_into.patch
### COMMON-PATCH-END ###
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# do not add defs here, please edit python3-base.spec instead
# and run pre_checkin.sh
#
# see PACKAGING-NOTES for details
### COMMON-DEF-BEGIN ###
# the versions are autogenerated from pre_checkin.sh
# based on the current source tarball
%define python_version 3.3
%define python_version_abitag 33
%define python_version_soname 3_3
%define sitedir %{_libdir}/python%{python_version}
# three possible ABI kinds: m - pymalloc, d - debug build
# see PEP 3149
%define abi_kind m
# python ABI version - used in some file names
%define python_abi %{python_version}%{abi_kind}
# soname ABI tag defined in PEP 3149
%define abi_tag %{python_version_abitag}%{abi_kind}
%define so_version %{python_version_soname}%{abi_kind}1_0
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}.so
### COMMON-DEF-END ###
# some compatibility Provides
Provides: python = %{python_version}
Provides: python3 = %{python_version}
Provides: python3-xml = %{version}
Obsoletes: python3-xml <= %{version}
%description
Python 3 is modern interpreted, object-oriented programming language,
often compared to Tcl, Perl, Scheme, or Java. You can find an overview
of Python in the documentation and tutorials included in the python-doc
(HTML) or python-doc-pdf (PDF) packages.
If you want to install third party modules using distutils, you need to
install python-devel package.
Authors:
--------
Guido van Rossum <guido(a)python.org>
%package tk
Requires: %{name} = %{version}
Summary: TkInter - Python Tk Interface
Group: Development/Libraries/Python
%description tk
Python interface to Tk. Tk is the GUI toolkit that comes with Tcl. The
"xrpm" package uses this Python interface.
%package curses
Requires: %{name} = %{version}
Summary: Python Interface to the (N)Curses Library
Group: Development/Libraries/Python
%description curses
An easy to use interface to the (n)curses CUI library. CUI stands for
Console User Interface.
%package dbm
Requires: %{name} = %{version}
Summary: Python Interface to the GDBM Library
Group: Development/Languages/Python
%description dbm
An easy to use interface for Unix DBM databases, and more specifically,
the GNU implementation GDBM.
%prep
%setup -q -n %{tarname}
### COMMON-PREP-BEGIN ###
%patch01 -p1
%patch02 -p1
#%%patch03
#- canonicalize disabled, needs testing whether the exploit still works
%patch04
%patch05 -p1
%patch06 -p1
%patch07
%patch08 -p1
%patch09 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
# drop Autoconf version requirement
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
### COMMON-PREP-END ###
%build
export SUSE_ASNEEDED=0
export OPT="%{optflags}"
autoreconf -f -i .
# prevent make from trying to rebuild asdl stuff, which requires existing
# python installation
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h
./configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--mandir=%{_mandir} \
--docdir=%{_docdir}/python \
--enable-ipv6 \
--with-fpectl \
--enable-shared \
--with-system-ffi \
--with-system-expat
make %{?_smp_mflags} # DESTDIR=$RPM_BUILD_ROOT
%check
# Limit virtual memory to avoid spurious failures
if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then
ulimit -v 10000000 || :
fi
# only test the parts skipped in python3-base
TESTS="test_bz2 test_lzma test_dbm_gnu test_dbm_ndbm test_readline test_ssl test_tcl test_tk test_ttk_guionly test_ttk_textonly test_curses test_socketserver test_sqlite test_hashlib test_smtpnet"
make test TESTOPTS="-u -network,-gui $TESTS"
%install
# replace rest of /usr/local/bin/python or /usr/bin/python2.5 with /usr/bin/python3
find . -path "./Parser" -prune -o -path "./Python/makeopcodetargets.py" -prune -o -name '*.py' -type f -print0 | xargs -0 grep -lE '^#! *(/usr/.*bin/(env +)?)?python' | xargs sed -r -i -e '1s@^#![[:space:]]*(/usr/(local/)?bin/(env +)?)?python([0-9]+(\.[0-9]+)?)?@#!/usr/bin/python3@'
# the grep inbetween makes it much faster
# install it
make \
OPT="%{optflags} -fPIC" \
DESTDIR=$RPM_BUILD_ROOT \
install
# clean out stuff that is in python-base and subpackages
rm $RPM_BUILD_ROOT%{_bindir}/*
rm $RPM_BUILD_ROOT%{_libdir}/lib*
rm -r $RPM_BUILD_ROOT%{_libdir}/pkgconfig
rm -r $RPM_BUILD_ROOT%{_mandir}/*
rm -r $RPM_BUILD_ROOT%{_includedir}/*
rm -r $RPM_BUILD_ROOT%{sitedir}/config*
find $RPM_BUILD_ROOT%{sitedir} -name "*.egg-info" -exec rm {} ";"
rm -r $RPM_BUILD_ROOT%{sitedir}/__pycache__
rm -r $RPM_BUILD_ROOT%{sitedir}/site-packages
rm $RPM_BUILD_ROOT%{sitedir}/*.*
for module in \
ctypes collections concurrent distutils email encodings html http \
importlib json logging multiprocessing plat-* pydoc_data unittest \
urllib venv wsgiref lib2to3 test idlelib turtledemo
do
rm -r $RPM_BUILD_ROOT%{sitedir}/$module
done
for library in \
array atexit audioop binascii _bisect _bz2 cmath _codecs_* _crypt _csv \
_ctypes _datetime _decimal _elementtree fcntl grp _heapq _json _lsprof \
math mmap _multibytecodec _multiprocessing nis ossaudiodev parser _pickle \
_posixsubprocess _random resource select _socket spwd _struct syslog \
termios _testbuffer time unicodedata zlib _ctypes_test _testcapi \
_md5 _sha1 _sha256 _sha512
do
eval rm "$RPM_BUILD_ROOT%{sitedir}/lib-dynload/$library.*"
done
%fdupes $RPM_BUILD_ROOT/%{_libdir}/python%{python_version}
%files tk
%defattr(644, root, root, 755)
%{sitedir}/tkinter
%{dynlib _tkinter}
%files curses
%defattr(644, root, root, 755)
%{sitedir}/curses
%{dynlib _curses}
%{dynlib _curses_panel}
%files dbm
%defattr(644, root, root, 755)
%{sitedir}/dbm
%{dynlib _dbm}
%{dynlib _gdbm}
%files
%defattr(644, root, root, 755)
%dir %{sitedir}
%dir %{sitedir}/lib-dynload
%{sitedir}/sqlite3
%{sitedir}/xml
%{sitedir}/xmlrpc
%{dynlib _hashlib}
%{dynlib _lzma}
%{dynlib pyexpat}
%{dynlib readline}
%{dynlib _sqlite3}
%{dynlib _ssl}
%{dynlib xxlimited}
%changelog
++++++ CVE-2013-4238_py33.patch ++++++
diff -r e0f86c3b3685 Lib/test/nullbytecert.pem
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/test/nullbytecert.pem Sun Aug 11 18:17:23 2013 +0200
@@ -0,0 +1,90 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 0 (0x0)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org
+ Validity
+ Not Before: Aug 7 13:11:52 2013 GMT
+ Not After : Aug 7 13:12:52 2013 GMT
+ Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3:
+ 03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97:
+ 16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2:
+ 88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1:
+ 32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4:
+ 56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8:
+ a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02:
+ 45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75:
+ ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91:
+ 90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d:
+ 7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30:
+ 68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7:
+ f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12:
+ f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5:
+ ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb:
+ d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f:
+ 9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da:
+ 2f:85
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:FALSE
+ X509v3 Subject Key Identifier:
+ 88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C
+ X509v3 Key Usage:
+ Digital Signature, Non Repudiation, Key Encipherment
+ X509v3 Subject Alternative Name:
+ *************************************************************
+ WARNING: The values for DNS, email and URI are WRONG. OpenSSL
+ doesn't print the text after a NULL byte.
+ *************************************************************
+ DNS:altnull.python.org, email:null@python.org, URI:http://null.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1
+ Signature Algorithm: sha1WithRSAEncryption
+ ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5:
+ a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44:
+ 3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37:
+ 86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3:
+ 56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86:
+ de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac:
+ 3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4:
+ 60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60:
+ d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5:
+ 25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60:
+ 1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6:
+ 4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d:
+ 0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e:
+ 5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6:
+ c1:ca:a9:94
+-----BEGIN CERTIFICATE-----
+MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx
+DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ
+eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg
+RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y
+ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw
+NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI
+DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv
+ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt
+ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq
+hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j
+pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P
+vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv
+KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA
+oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL
+08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV
+HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E
+BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu
+Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251
+bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA
+AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9
+i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j
+HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk
+kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx
+VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW
+RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ=
+-----END CERTIFICATE-----
diff -r e0f86c3b3685 Lib/test/test_ssl.py
--- a/Lib/test/test_ssl.py Sun Aug 11 13:04:50 2013 +0300
+++ b/Lib/test/test_ssl.py Sun Aug 11 18:17:23 2013 +0200
@@ -55,6 +55,7 @@
WRONGCERT = data_file("XXXnonexisting.pem")
BADKEY = data_file("badkey.pem")
NOKIACERT = data_file("nokia.pem")
+NULLBYTECERT = data_file("nullbytecert.pem")
DHFILE = data_file("dh512.pem")
BYTES_DHFILE = os.fsencode(DHFILE)
@@ -162,6 +163,27 @@
('DNS', 'projects.forum.nokia.com'))
)
+ def test_parse_cert_CVE_2013_4073(self):
+ p = ssl._ssl._test_decode_cert(NULLBYTECERT)
+ if support.verbose:
+ sys.stdout.write("\n" + pprint.pformat(p) + "\n")
+ subject = ((('countryName', 'US'),),
+ (('stateOrProvinceName', 'Oregon'),),
+ (('localityName', 'Beaverton'),),
+ (('organizationName', 'Python Software Foundation'),),
+ (('organizationalUnitName', 'Python Core Development'),),
+ (('commonName', 'null.python.org\x00example.org'),),
+ (('emailAddress', 'python-dev(a)python.org'),))
+ self.assertEqual(p['subject'], subject)
+ self.assertEqual(p['issuer'], subject)
+ self.assertEqual(p['subjectAltName'],
+ (('DNS', 'altnull.python.org\x00example.com'),
+ ('email', 'null@python.org\x00user@example.org'),
+ ('URI', 'http://null.python.org\x00http://example.org'),
+ ('IP Address', '192.0.2.1'),
+ ('IP Address', '2001:DB8:0:0:0:0:0:1\n'))
+ )
+
def test_DER_to_PEM(self):
with open(SVN_PYTHON_ORG_ROOT_CERT, 'r') as f:
pem = f.read()
@@ -294,6 +316,13 @@
fail(cert, 'foo.a.com')
fail(cert, 'bar.foo.com')
+ # NULL bytes are bad, CVE-2013-4073
+ cert = {'subject': ((('commonName',
+ 'null.python.org\x00example.org'),),)}
+ ok(cert, 'null.python.org\x00example.org') # or raise an error?
+ fail(cert, 'example.org')
+ fail(cert, 'null.python.org')
+
# Slightly fake real-world example
cert = {'notAfter': 'Jun 26 21:41:46 2011 GMT',
'subject': ((('commonName', 'linuxfrz.org'),),),
diff -r e0f86c3b3685 Modules/_ssl.c
--- a/Modules/_ssl.c Sun Aug 11 13:04:50 2013 +0300
+++ b/Modules/_ssl.c Sun Aug 11 18:17:23 2013 +0200
@@ -771,12 +771,14 @@
ext->value->length));
for(j = 0; j < sk_GENERAL_NAME_num(names); j++) {
-
/* get a rendering of each name in the set of names */
+ int gntype;
+ ASN1_STRING *as = NULL;
name = sk_GENERAL_NAME_value(names, j);
- if (name->type == GEN_DIRNAME) {
-
+ gntype = name-> type;
+ switch (gntype) {
+ case GEN_DIRNAME:
/* we special-case DirName as a tuple of
tuples of attributes */
@@ -798,11 +800,62 @@
goto fail;
}
PyTuple_SET_ITEM(t, 1, v);
+ break;
- } else {
+ case GEN_EMAIL:
+ case GEN_DNS:
+ case GEN_URI:
+ /* GENERAL_NAME_print() doesn't handle NUL bytes in ASN1_string
+ correctly. */
+ t = PyTuple_New(2);
+ if (t == NULL)
+ goto fail;
+ switch (gntype) {
+ case GEN_EMAIL:
+ v = PyUnicode_FromString("email");
+ as = name->d.rfc822Name;
+ break;
+ case GEN_DNS:
+ v = PyUnicode_FromString("DNS");
+ as = name->d.dNSName;
+ break;
+ case GEN_URI:
+ v = PyUnicode_FromString("URI");
+ as = name->d.uniformResourceIdentifier;
+ break;
+ }
+ if (v == NULL) {
+ Py_DECREF(t);
+ goto fail;
+ }
+ PyTuple_SET_ITEM(t, 0, v);
+ v = PyUnicode_FromStringAndSize((char *)ASN1_STRING_data(as),
+ ASN1_STRING_length(as));
+ if (v == NULL) {
+ Py_DECREF(t);
+ goto fail;
+ }
+ PyTuple_SET_ITEM(t, 1, v);
+ break;
+ default:
/* for everything else, we use the OpenSSL print form */
-
+ switch (gntype) {
+ /* check for new general name type */
+ case GEN_OTHERNAME:
+ case GEN_X400:
+ case GEN_EDIPARTY:
+ case GEN_IPADD:
+ case GEN_RID:
+ break;
+ default:
+ if (PyErr_WarnFormat(PyExc_RuntimeWarning, 1,
+ "Unknown general name type %d",
+ gntype) == -1) {
+ goto fail;
+ }
+ break;
+ }
(void) BIO_reset(biobuf);
GENERAL_NAME_print(biobuf, name);
len = BIO_gets(biobuf, buf, sizeof(buf)-1);
@@ -829,6 +882,7 @@
goto fail;
}
PyTuple_SET_ITEM(t, 1, v);
+ break;
}
/* and add that rendering to the list */
++++++ CVE-2013-7338-malzip.patch ++++++
# HG changeset patch
# User Serhiy Storchaka <storchaka(a)gmail.com>
# Date 1389271820 -7200
# Node ID 0cf1defd5ac4433b8e36f950ba452103eb417f9f
# Parent 04dabdbd512c16655f72d4d415871c6cbaf29d4b
Issue #20078: Reading malformed zipfiles no longer hangs with 100% CPU
consumption.
Index: Python-3.3.0/Lib/test/test_zipfile.py
===================================================================
--- Python-3.3.0.orig/Lib/test/test_zipfile.py 2012-09-29 10:00:39.000000000 +0200
+++ Python-3.3.0/Lib/test/test_zipfile.py 2014-04-04 18:04:16.690421056 +0200
@@ -631,6 +631,36 @@
for name in zipfp.namelist():
zipfp.open(name).close()
+ def test_truncated_zipfile(self):
+ fp = io.BytesIO()
+ with zipfile.ZipFile(fp, mode='w') as zipf:
+ zipf.writestr('strfile', self.data, compress_type=zipfile.ZIP_STORED)
+ end_offset = fp.tell()
+ zipfiledata = fp.getvalue()
+
+ fp = io.BytesIO(zipfiledata)
+ with zipfile.ZipFile(fp) as zipf:
+ with zipf.open('strfile') as zipopen:
+ fp.truncate(end_offset - 20)
+ with self.assertRaises(EOFError):
+ zipopen.read()
+
+ fp = io.BytesIO(zipfiledata)
+ with zipfile.ZipFile(fp) as zipf:
+ with zipf.open('strfile') as zipopen:
+ fp.truncate(end_offset - 20)
+ with self.assertRaises(EOFError):
+ while zipopen.read(100):
+ pass
+
+ fp = io.BytesIO(zipfiledata)
+ with zipfile.ZipFile(fp) as zipf:
+ with zipf.open('strfile') as zipopen:
+ fp.truncate(end_offset - 20)
+ with self.assertRaises(EOFError):
+ while zipopen.read1(100):
+ pass
+
def tearDown(self):
unlink(TESTFN)
unlink(TESTFN2)
Index: Python-3.3.0/Lib/zipfile.py
===================================================================
--- Python-3.3.0.orig/Lib/zipfile.py 2012-09-29 10:00:40.000000000 +0200
+++ Python-3.3.0/Lib/zipfile.py 2014-04-04 17:52:15.093250477 +0200
@@ -839,6 +839,8 @@
data = self._fileobj.read(n)
self._compress_left -= len(data)
+ if not data:
+ raise EOFError
if self._decrypter is not None:
data = bytes(map(self._decrypter, data))
++++++ CVE-2014-1912-recvfrom_into.patch ++++++
# HG changeset patch
# User Benjamin Peterson <benjamin(a)python.org>
# Date 1389672775 18000
# Node ID 7f176a45211ff3cb85a2fbdc75f7979d642bb563
# Parent ed1c27b68068c942c6e845bdf8e987e963d50920# Parent 9c56217e5c793685eeaf0ee224848c402bdf1e4c
merge 3.2 (#20246)
Index: Python-3.3.0/Lib/test/test_socket.py
===================================================================
--- Python-3.3.0.orig/Lib/test/test_socket.py 2014-04-09 19:58:03.669079924 +0200
+++ Python-3.3.0/Lib/test/test_socket.py 2014-04-09 19:58:12.665130172 +0200
@@ -4462,6 +4462,14 @@
_testRecvFromIntoMemoryview = _testRecvFromIntoArray
+ def testRecvFromIntoSmallBuffer(self):
+ # See issue #20246.
+ buf = bytearray(8)
+ self.assertRaises(ValueError, self.cli_conn.recvfrom_into, buf, 1024)
+
+ def _testRecvFromIntoSmallBuffer(self):
+ self.serv_conn.send(MSG*2048)
+
TIPC_STYPE = 2000
TIPC_LOWER = 200
Index: Python-3.3.0/Misc/ACKS
===================================================================
--- Python-3.3.0.orig/Misc/ACKS 2014-04-09 19:58:12.665130172 +0200
+++ Python-3.3.0/Misc/ACKS 2014-04-09 19:58:30.163227904 +0200
@@ -989,6 +989,7 @@
Eric V. Smith
Gregory P. Smith
Mark Smith
+Ryan Smith-Roberts
Rafal Smotrzyk
Eric Snow
Dirk Soede
Index: Python-3.3.0/Modules/socketmodule.c
===================================================================
--- Python-3.3.0.orig/Modules/socketmodule.c 2014-04-09 19:58:03.672079941 +0200
+++ Python-3.3.0/Modules/socketmodule.c 2014-04-09 19:58:12.668130189 +0200
@@ -2933,6 +2933,11 @@
if (recvlen == 0) {
/* If nbytes was not specified, use the buffer's length */
recvlen = buflen;
+ } else if (recvlen > buflen) {
+ PyBuffer_Release(&pbuf);
+ PyErr_SetString(PyExc_ValueError,
+ "nbytes is greater than the length of the buffer");
+ return NULL;
}
readlen = sock_recvfrom_guts(s, buf, recvlen, flags, &addr);
++++++ CVE-2014-2667-mkdir.patch ++++++
# HG changeset patch
# User Benjamin Peterson <benjamin(a)python.org>
# Date 1396394277 14400
# Node ID 6370d44013f7e7e0892dd7f78b91d3a929e2d343
# Parent cb3a8abc0870d8d81a3521b3c8f397c5ccc73d7d# Parent 9186f4a18584f5038a9f875f2a7a3194ee46a571
merge 3.2 (#21082)
Index: Python-3.3.0/Doc/library/os.rst
===================================================================
--- Python-3.3.0.orig/Doc/library/os.rst 2014-04-02 19:34:31.541283108 +0200
+++ Python-3.3.0/Doc/library/os.rst 2014-04-02 19:36:31.322954690 +0200
@@ -1556,12 +1556,11 @@
Recursive directory creation function. Like :func:`mkdir`, but makes all
intermediate-level directories needed to contain the leaf directory. If
- the target directory with the same mode as specified already exists,
- raises an :exc:`OSError` exception if *exist_ok* is False, otherwise no
- exception is raised. If the directory cannot be created in other cases,
- raises an :exc:`OSError` exception. The default *mode* is ``0o777`` (octal).
- On some systems, *mode* is ignored. Where it is used, the current umask
- value is first masked out.
+ the target directory already exists, raises an :exc:`OSError` exception
+ if *exist_ok* is False, otherwise no exception is raised. If the directory
+ cannot be created in other cases, raises an :exc:`OSError` exception.
+ The default *mode* is ``0o777`` (octal). On some systems, *mode* is ignored.
+ Where it is used, the current umask value is first masked out.
.. note::
@@ -1573,6 +1572,13 @@
.. versionadded:: 3.2
The *exist_ok* parameter.
+ .. versionchanged:: 3.3.6
+
+ Before Python 3.3.6, if *exist_ok* was ``True`` and the directory existed,
+ :func:`makedirs` would still raise an error if *mode* did not match the
+ mode of the existing directory. Since this behavior was impossible to
+ implement safely, it was removed in Python 3.3.6. See :issue:`21082`.
+
.. function:: mkfifo(path, mode=0o666, *, dir_fd=None)
Index: Python-3.3.0/Lib/os.py
===================================================================
--- Python-3.3.0.orig/Lib/os.py 2014-04-02 19:34:31.542283114 +0200
+++ Python-3.3.0/Lib/os.py 2014-04-02 19:34:34.942302180 +0200
@@ -230,23 +230,16 @@
SEEK_CUR = 1
SEEK_END = 2
-
-def _get_masked_mode(mode):
- mask = umask(0)
- umask(mask)
- return mode & ~mask
-
# Super directory utilities.
# (Inspired by Eric Raymond; the doc strings are mostly his)
def makedirs(name, mode=0o777, exist_ok=False):
"""makedirs(path [, mode=0o777][, exist_ok=False])
- Super-mkdir; create a leaf directory and all intermediate ones.
- Works like mkdir, except that any intermediate path segment (not
- just the rightmost) will be created if it does not exist. If the
- target directory with the same mode as we specified already exists,
- raises an OSError if exist_ok is False, otherwise no exception is
+ Super-mkdir; create a leaf directory and all intermediate ones. Works like
+ mkdir, except that any intermediate path segment (not just the rightmost)
+ will be created if it does not exist. If the target directory already
+ exists, raise an OSError if exist_ok is False. Otherwise no exception is
raised. This is recursive.
"""
@@ -265,20 +258,7 @@
try:
mkdir(name, mode)
except OSError as e:
- dir_exists = path.isdir(name)
- expected_mode = _get_masked_mode(mode)
- if dir_exists:
- # S_ISGID is automatically copied by the OS from parent to child
- # directories on mkdir. Don't consider it being set to be a mode
- # mismatch as mkdir does not unset it when not specified in mode.
- actual_mode = st.S_IMODE(lstat(name).st_mode) & ~st.S_ISGID
- else:
- actual_mode = -1
- if not (e.errno == errno.EEXIST and exist_ok and dir_exists and
- actual_mode == expected_mode):
- if dir_exists and actual_mode != expected_mode:
- e.strerror += ' (mode %o != expected mode %o)' % (
- actual_mode, expected_mode)
+ if not exist_ok or e.errno != errno.EEXIST or not path.isdir(name):
raise
def removedirs(name):
Index: Python-3.3.0/Lib/test/test_os.py
===================================================================
--- Python-3.3.0.orig/Lib/test/test_os.py 2014-04-02 19:34:31.542283114 +0200
+++ Python-3.3.0/Lib/test/test_os.py 2014-04-02 19:34:34.943302185 +0200
@@ -851,7 +851,7 @@
os.makedirs(path, mode)
self.assertRaises(OSError, os.makedirs, path, mode)
self.assertRaises(OSError, os.makedirs, path, mode, exist_ok=False)
- self.assertRaises(OSError, os.makedirs, path, 0o776, exist_ok=True)
+ os.makedirs(path, 0o776, exist_ok=True)
os.makedirs(path, mode=mode, exist_ok=True)
os.umask(old_mask)
@@ -877,9 +877,8 @@
os.makedirs(path, mode, exist_ok=True)
# remove the bit.
os.chmod(path, stat.S_IMODE(os.lstat(path).st_mode) & ~S_ISGID)
- with self.assertRaises(OSError):
- # Should fail when the bit is not already set when demanded.
- os.makedirs(path, mode | S_ISGID, exist_ok=True)
+ # May work even when the bit is not already set when demanded.
+ os.makedirs(path, mode | S_ISGID, exist_ok=True)
finally:
os.umask(old_mask)
++++++ PACKAGING-NOTES ++++++
Notes for packagers of Python3
==============================
I. python3 and python3-base naming confusion
--------------------------------------------
1. the important stuff first
This is package "python3". However, master spec file for this package is "python3-base.spec".
That means that all important changes should be put into "python3-base.spec" and then submitted
against "python3" in OBS.
Changelogs of python3-base and python3 will be merged at some point. Now they arent,
but feel free to enter changes in either or both.
2. why is that?
Technical reasons. python3-base was originally supposed to be a minimal package with no external
dependencies - so that it can build early in the distribution rebuild. There were also some
build loops involved.
Turns out, 90% of Python's standard library can be built without external dependencies. That's
what we do - in python3-base. python3 then only contains the remaining bits - dependency-heavy
subpackages, plus small bits depending on common packages (OpenSSL, expat, readline)
Logically, python3-base must be the master spec because it builds the important parts.
3. why not rename the whole package to python3-base?
Because that would be stupid. The package is called python3.
4. so why not make python3 the minimal package and put the rest in python3-the-rest?
Because other distributions use python3-base as the minimal package as well. Also, packages
that require python3 expect the whole deal, not a stripped-down version.
5. alright, let's build python3-base from python3.spec and python3 from someother.spec
Tried that, abandoned it. It is more trouble than it's worth.
II. pre_checkin.sh
------------------
Our pre_checkin.sh takes care of copying relevant portions of python3-base.spec to python3.spec.
The "relevant portions" are:
* list of patches
* list of macro definitions
* patch apply sequence in %prep
That means that when you're adding a patch, you need only add it to python3-base.spec and it will appear
magically in python3.spec too.
If you want to replicate another section from py3-base to py3, just mark the section with
NEW-SECTION-BEGIN and NEW-SECTION-END (in both py3-base and py3) and add NEW-SECTION to list of $sections
in pre_checkin.sh
pre_checkin.sh also finds the newest python tarball in the source directory and updates versions
in all specfiles to match it. Therefore, you usually don't need to update version numbers in specs
when you update Python
++++++ Python-3.0b1-record-rpm.patch ++++++
Index: Python-3.1/Lib/distutils/command/install.py
===================================================================
--- Python-3.1.orig/Lib/distutils/command/install.py
+++ Python-3.1/Lib/distutils/command/install.py
@@ -178,6 +178,8 @@ class install(Command):
('record=', None,
"filename in which to record list of installed files"),
+ ('record-rpm=', None,
+ "filename in which to record list of installed files and directories suitable as filelist for rpm"),
]
boolean_options = ['compile', 'force', 'skip-build']
@@ -259,6 +261,7 @@ class install(Command):
#self.install_info = None
self.record = None
+ self.record_rpm = None
# -- Option finalizing methods -------------------------------------
@@ -595,12 +598,61 @@ class install(Command):
self.create_path_file()
# write list of installed files, if requested.
- if self.record:
+ if self.record or self.record_rpm:
outputs = self.get_outputs()
if self.root: # strip any package prefix
root_len = len(self.root)
for counter in range(len(outputs)):
outputs[counter] = outputs[counter][root_len:]
+ if self.record_rpm: # add directories
+ self.record = self.record_rpm
+ dirs = []
+ # directories to reject:
+ rejectdirs = [
+ '/etc',
+ '/',
+ '',
+ self.prefix,
+ self.exec_prefix,
+ self.install_base,
+ self.install_platbase,
+ self.install_purelib,
+ self.install_platlib,
+ self.install_headers[:len(self.install_headers) - len(self.distribution.get_name()) - 1],
+ self.install_libbase,
+ self.install_scripts,
+ self.install_data,
+ os.path.join(self.install_data, 'share'),
+ os.path.join(self.install_data, 'share', 'doc'),
+ ]
+ # directories whose childs reject:
+ rejectdirs2 = [
+ os.path.join(self.install_data, 'share', 'man'),
+ ]
+ # directories whose grandsons reject:
+ rejectdirs3 = [
+ os.path.join(self.install_data, 'share', 'man'),
+ os.path.join(self.install_data, 'share', 'locale'),
+ ]
+ for counter in range(len(rejectdirs)):
+ if len(rejectdirs[counter]) > root_len:
+ rejectdirs[counter] = rejectdirs[counter][root_len:]
+ for counter in range(len(rejectdirs2)):
+ if len(rejectdirs2[counter]) > root_len:
+ rejectdirs2[counter] = rejectdirs2[counter][root_len:]
+ for counter in range(len(rejectdirs3)):
+ if len(rejectdirs3[counter]) > root_len:
+ rejectdirs3[counter] = rejectdirs3[counter][root_len:]
+ for counter in range(len(outputs)):
+ directory = os.path.dirname(outputs[counter])
+ while directory not in rejectdirs and \
+ os.path.dirname(directory) not in rejectdirs2 and \
+ os.path.dirname(os.path.dirname(directory)) not in rejectdirs3:
+ dirname = '%dir ' + directory
+ if dirname not in dirs:
+ dirs.append(dirname)
+ directory = os.path.dirname(directory)
+ outputs += dirs
self.execute(write_file,
(self.record, outputs),
"writing list of installed files to '%s'" %
++++++ Python-3.3.0b2-multilib.patch ++++++
Index: Python-3.3.0/Include/pythonrun.h
===================================================================
--- Python-3.3.0.orig/Include/pythonrun.h 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Include/pythonrun.h 2014-04-04 15:13:25.881892847 +0200
@@ -181,6 +181,8 @@
/* In their own files */
PyAPI_FUNC(const char *) Py_GetVersion(void);
PyAPI_FUNC(const char *) Py_GetPlatform(void);
+PyAPI_FUNC(const char *) Py_GetArch(void);
+PyAPI_FUNC(const char *) Py_GetLib(void);
PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
Index: Python-3.3.0/Lib/distutils/command/install.py
===================================================================
--- Python-3.3.0.orig/Lib/distutils/command/install.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Lib/distutils/command/install.py 2014-04-04 15:13:25.881892847 +0200
@@ -25,6 +25,8 @@
from site import USER_SITE
HAS_USER_SITE = True
+libname = sys.lib
+
if sys.version < "2.2":
WINDOWS_SCHEME = {
'purelib': '$base',
@@ -45,7 +47,7 @@
INSTALL_SCHEMES = {
'unix_prefix': {
'purelib': '$base/lib/python$py_version_short/site-packages',
- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
+ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
Index: Python-3.3.0/Lib/distutils/sysconfig.py
===================================================================
--- Python-3.3.0.orig/Lib/distutils/sysconfig.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Lib/distutils/sysconfig.py 2014-04-04 15:13:25.881892847 +0200
@@ -139,8 +139,11 @@
prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix":
- libpython = os.path.join(prefix,
- "lib", "python" + get_python_version())
+ if plat_specific or standard_lib:
+ lib = sys.lib
+ else:
+ lib = "lib"
+ libpython = os.path.join(prefix, lib, "python" + get_python_version())
if standard_lib:
return libpython
else:
Index: Python-3.3.0/Lib/pydoc.py
===================================================================
--- Python-3.3.0.orig/Lib/pydoc.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Lib/pydoc.py 2014-04-04 15:13:25.882892852 +0200
@@ -369,7 +369,7 @@
docloc = os.environ.get("PYTHONDOCS", self.PYTHONDOCS)
- basedir = os.path.join(sys.base_exec_prefix, "lib",
+ basedir = os.path.join(sys.base_exec_prefix, sys.lib,
"python%d.%d" % sys.version_info[:2])
if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
Index: Python-3.3.0/Lib/site.py
===================================================================
--- Python-3.3.0.orig/Lib/site.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Lib/site.py 2014-04-04 15:20:14.295982025 +0200
@@ -244,28 +244,37 @@
USER_BASE = get_config_var('userbase')
return USER_BASE
-def getusersitepackages():
+def getusersitepackages(lib_kind = 'purelib'):
"""Returns the user-specific site-packages directory path.
If the global variable ``USER_SITE`` is not initialized yet, this
function will also set it.
"""
+
+ set_user_site = (lib_kind == 'purelib')
+
global USER_SITE
user_base = getuserbase() # this will also set USER_BASE
- if USER_SITE is not None:
+ if USER_SITE is not None and set_user_site:
return USER_SITE
from sysconfig import get_path
+ user_site = None
+
if sys.platform == 'darwin':
from sysconfig import get_config_var
if get_config_var('PYTHONFRAMEWORK'):
- USER_SITE = get_path('purelib', 'osx_framework_user')
- return USER_SITE
+ user_site = get_path('purelib', 'osx_framework_user')
+
+ if user_site is None:
+ user_site = get_path('purelib', '%s_user' % os.name)
- USER_SITE = get_path('purelib', '%s_user' % os.name)
- return USER_SITE
+ if set_user_site:
+ USER_SITE = user_site
+
+ return user_site
def addusersitepackages(known_paths):
"""Add a per user site-package to sys.path
@@ -275,10 +284,12 @@
"""
# get the per user site-package path
# this call will also make sure USER_BASE and USER_SITE are set
- user_site = getusersitepackages()
+ for kind in ('purelib', 'platlib'):
+ user_site = getusersitepackages()
+
+ if ENABLE_USER_SITE and os.path.isdir(user_site):
+ addsitedir(user_site, known_paths)
- if ENABLE_USER_SITE and os.path.isdir(user_site):
- addsitedir(user_site, known_paths)
return known_paths
def getsitepackages(prefixes=None):
@@ -303,13 +314,19 @@
if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/':
- sitepackages.append(os.path.join(prefix, "lib",
+ sitepackages.append(os.path.join(prefix, sys.lib,
+ "python" + sys.version[:3],
+ "site-packages"))
+ if sys.lib != "lib":
+ sitepackages.append(os.path.join(prefix, "lib",
"python" + sys.version[:3],
"site-packages"))
- sitepackages.append(os.path.join(prefix, "lib", "site-python"))
+ sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
+ if sys.lib != "lib":
+ sitepackages.append(os.path.join(prefix, "lib", "site-python"))
else:
sitepackages.append(prefix)
- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
+ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple
# locations.
Index: Python-3.3.0/Lib/trace.py
===================================================================
--- Python-3.3.0.orig/Lib/trace.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Lib/trace.py 2014-04-04 15:13:25.882892852 +0200
@@ -750,10 +750,10 @@
# should I also call expanduser? (after all, could use $HOME)
s = s.replace("$prefix",
- os.path.join(sys.base_prefix, "lib",
+ os.path.join(sys.base_prefix, sys.lib,
"python" + sys.version[:3]))
s = s.replace("$exec_prefix",
- os.path.join(sys.base_exec_prefix, "lib",
+ os.path.join(sys.base_exec_prefix, sys.lib,
"python" + sys.version[:3]))
s = os.path.normpath(s)
ignore_dirs.append(s)
Index: Python-3.3.0/Makefile.pre.in
===================================================================
--- Python-3.3.0.orig/Makefile.pre.in 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Makefile.pre.in 2014-04-04 15:13:25.882892852 +0200
@@ -92,6 +92,8 @@
# Machine-dependent subdirectories
MACHDEP= @MACHDEP@
+LIB= @LIB@
+ARCH= @ARCH@
# Install prefix for architecture-independent files
prefix= @prefix@
@@ -108,7 +110,7 @@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
-SCRIPTDIR= $(prefix)/lib
+SCRIPTDIR= @libdir@
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories
@@ -617,6 +619,7 @@
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \
+ -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' \
-o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c
@@ -668,7 +671,7 @@
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c
- $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
+ $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
Index: Python-3.3.0/Modules/getpath.c
===================================================================
--- Python-3.3.0.orig/Modules/getpath.c 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Modules/getpath.c 2014-04-04 15:13:25.882892852 +0200
@@ -121,9 +121,11 @@
#define EXEC_PREFIX PREFIX
#endif
+#define LIB_PYTHON LIB "/python" VERSION
+
#ifndef PYTHONPATH
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
#endif
#ifndef LANDMARK
@@ -135,7 +137,7 @@
static wchar_t progpath[MAXPATHLEN+1];
static wchar_t *module_search_path = NULL;
static int module_search_path_malloced = 0;
-static wchar_t *lib_python = L"lib/python" VERSION;
+static wchar_t *lib_python = L"" LIB_PYTHON;
static void
reduce(wchar_t *dir)
Index: Python-3.3.0/Python/getplatform.c
===================================================================
--- Python-3.3.0.orig/Python/getplatform.c 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Python/getplatform.c 2014-04-04 15:13:25.883892857 +0200
@@ -10,3 +10,23 @@
{
return PLATFORM;
}
+
+#ifndef ARCH
+#define ARCH "unknown"
+#endif
+
+const char *
+Py_GetArch(void)
+{
+ return ARCH;
+}
+
+#ifndef LIB
+#define LIB "lib"
+#endif
+
+const char *
+Py_GetLib(void)
+{
+ return LIB;
+}
Index: Python-3.3.0/Python/sysmodule.c
===================================================================
--- Python-3.3.0.orig/Python/sysmodule.c 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Python/sysmodule.c 2014-04-04 15:13:25.883892857 +0200
@@ -1612,6 +1612,10 @@
PyUnicode_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform",
PyUnicode_FromString(Py_GetPlatform()));
+ SET_SYS_FROM_STRING("arch",
+ PyUnicode_FromString(Py_GetArch()));
+ SET_SYS_FROM_STRING("lib",
+ PyUnicode_FromString(Py_GetLib()));
SET_SYS_FROM_STRING("executable",
PyUnicode_FromWideChar(
Py_GetProgramFullPath(), -1));
Index: Python-3.3.0/setup.py
===================================================================
--- Python-3.3.0.orig/setup.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/setup.py 2014-04-04 15:13:25.883892857 +0200
@@ -459,7 +459,7 @@
# directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
if not cross_compiling:
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+ add_dir_to_list(self.compiler.library_dirs, os.path.join('/usr/local', sys.lib))
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
# only change this for cross builds for 3.3, issues on Mageia
if cross_compiling:
@@ -516,8 +516,7 @@
# be assumed that no additional -I,-L directives are needed.
if not cross_compiling:
lib_dirs = self.compiler.library_dirs + [
- '/lib64', '/usr/lib64',
- '/lib', '/usr/lib',
+ '/' + sys.lib, '/usr/' + sys.lib,
]
inc_dirs = self.compiler.include_dirs + ['/usr/include']
exts = []
@@ -729,11 +728,11 @@
elif curses_library:
readline_libs.append(curses_library)
elif self.compiler.find_library_file(lib_dirs +
- ['/usr/lib/termcap'],
+ ['/usr/'+sys.lib+'/termcap'],
'termcap'):
readline_libs.append('termcap')
exts.append( Extension('readline', ['readline.c'],
- library_dirs=['/usr/lib/termcap'],
+ library_dirs=['/usr/'+sys.lib+'/termcap'],
extra_link_args=readline_extra_link_args,
libraries=readline_libs) )
else:
@@ -1675,18 +1674,17 @@
# Check for various platform-specific directories
if host_platform == 'sunos5':
include_dirs.append('/usr/openwin/include')
- added_lib_dirs.append('/usr/openwin/lib')
+ added_lib_dirs.append('/usr/openwin/' + sys.lib)
elif os.path.exists('/usr/X11R6/include'):
include_dirs.append('/usr/X11R6/include')
- added_lib_dirs.append('/usr/X11R6/lib64')
- added_lib_dirs.append('/usr/X11R6/lib')
+ added_lib_dirs.append('/usr/X11R6/' + sys.lib)
elif os.path.exists('/usr/X11R5/include'):
include_dirs.append('/usr/X11R5/include')
- added_lib_dirs.append('/usr/X11R5/lib')
+ added_lib_dirs.append('/usr/X11R5/' + sys.lib)
else:
# Assume default location for X11
include_dirs.append('/usr/X11/include')
- added_lib_dirs.append('/usr/X11/lib')
+ added_lib_dirs.append('/usr/X11/' + sys.lib)
# If Cygwin, then verify that X is installed before proceeding
if host_platform == 'cygwin':
Index: Python-3.3.0/Lib/sysconfig.py
===================================================================
--- Python-3.3.0.orig/Lib/sysconfig.py 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/Lib/sysconfig.py 2014-04-04 15:13:25.883892857 +0200
@@ -21,10 +21,10 @@
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{installed_base}/lib/python{py_version_short}',
- 'platstdlib': '{platbase}/lib/python{py_version_short}',
+ 'stdlib': '{installed_base}/'+sys.lib+'/python{py_version_short}',
+ 'platstdlib': '{platbase}/'+sys.lib+'/python{py_version_short}',
'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/'+sys.lib+'/python{py_version_short}/site-packages',
'include':
'{installed_base}/include/python{py_version_short}{abiflags}',
'platinclude':
@@ -81,10 +81,10 @@
'data': '{userbase}',
},
'posix_user': {
- 'stdlib': '{userbase}/lib/python{py_version_short}',
- 'platstdlib': '{userbase}/lib/python{py_version_short}',
+ 'stdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
+ 'platstdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data': '{userbase}',
Index: Python-3.3.0/configure.ac
===================================================================
--- Python-3.3.0.orig/configure.ac 2014-04-04 15:13:17.627850669 +0200
+++ Python-3.3.0/configure.ac 2014-04-04 15:13:25.884892862 +0200
@@ -746,6 +746,41 @@
esac;;
esac
+AC_SUBST(ARCH)
+AC_MSG_CHECKING(ARCH)
+ARCH=`uname -m`
+case $ARCH in
+i?86) ARCH=i386;;
+esac
+AC_MSG_RESULT($ARCH)
+
+AC_SUBST(LIB)
+AC_MSG_CHECKING(LIB)
+case $ac_sys_system in
+Linux*)
+ # Test if the compiler is 64bit
+ echo 'int i;' > conftest.$ac_ext
+ python_cv_cc_64bit_output=no
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *"ELF 64"*)
+ python_cv_cc_64bit_output=yes
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+case $ARCH:$python_cv_cc_64bit_output in
+ppc64:yes | powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
+ LIB="lib64"
+ ;;
+*:*)
+ LIB="lib"
+ ;;
+esac
+AC_MSG_RESULT($LIB)
AC_SUBST(LIBRARY)
AC_MSG_CHECKING(LIBRARY)
++++++ README.SUSE ++++++
Python 3 in SUSE
==============
* Documentation *
You can find documentation in seprarate packages: python3-doc and
python3-doc-pdf. These contan following documents:
Tutorial, What's New in Python, Global Module Index, Library Reference,
Macintosh Module Reference, Installing Python Modules, Distributing Python
Modules, Language Reference, Extending and Embedding, Python/C API,
Documenting Python
The python3-doc package constains many text files from source tarball.
* PYTHONSTARTUP environment variable *
SUSE's Python 3 tries to start a script specified
* Interactive mode *
Interactive mode is by default enhanced with of history and command completion.
If you don't like these features, you can unset PYTHON3STARTUP and PYTHONSTARTUP
variables in your .profile or disable it system wide in /etc/profile.d/python.sh.
++++++ baselibs.conf ++++++
python3
python3-base
libpython3_3m1_0
++++++ import_failed.map ++++++
python3-tools: turtledemo
python3-idle: idlelib
python3-testsuite: test _ctypes_test _testcapi
python3-tk: tkinter _tkinter
python3-curses: curses _curses _curses_panel
python3-dbm: dbm _dbm _gdbm
python3: sqlite3 xml xmlrpc _hashlib _lzma pyexpat readline _sqlite3 _ssl xxlimited
++++++ import_failed.py ++++++
import sys, os
from sysconfig import get_path
failed_map_path = os.path.join(get_path('stdlib'), '_import_failed', 'import_failed.map')
for line in open(failed_map_path):
words = line.strip().split()
if not words or words[0][0] == '#':
continue
assert words[0][-1] == ':'
package = words[0][:-1]
if __name__ in words[1:]:
raise ImportError("""Module '{}' is not installed.
Use:
sudo zypper install {}
to install it.""".format(__name__, package))
raise ImportError("""Module '{}' is not installed.
It is supposed to be part of python3 distribution, but missing from failed import map.
Please file a bug on the Novell Bugzilla.""")
++++++ macros.python3.py ++++++
#!/usr/bin/python3
""" generate macros.python3 file from known values """
import sys,os
from sysconfig import get_path, get_config_var
version = "{}.{}".format(*sys.version_info)
abiflags = get_config_var("ABIFLAGS")
macros = {
"py3_ver": version,
"py3_prefix": sys.prefix,
# hack-fix for bnc#787526 - get_path can't be used this way in python build dir
# "py3_incdir": get_path("include"),
"py3_incdir": "/usr/include/python" + version + abiflags,
"py3_abiflags": abiflags,
"py3_soflags": get_config_var("SOABI"),
"python3_sitelib": get_path("purelib"),
"python3_sitearch": get_path("platlib"),
"py3_compile(O)": """
find %1 -name '*.pyc' -exec rm -f {} ";"
python3 -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1
%{-O:
find %1 -name '*.pyo' -exec rm -f {} ";"
python3 -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1
}""",
}
for (macro,definition) in macros.items():
definition = "\\\n".join(definition.split("\n"))
print( "%{} {}".format(macro, definition))
++++++ pre_checkin.sh ++++++
#!/bin/bash
# This script is called automatically during autobuild checkin.
#
#
#
# ...or is it?
# it really doesn't seem so, you know. go run it manually.
master=python3-base.spec
# calculate version number from newest tar name
VERSION=`ls *.tar.bz2 | grep '^Python-' | tail -n 1 | sed -r 's/^Python-([0-9]+\.[0-9]+.[0-9a-z]+)\.tar.*$/\1/'`
if echo $VERSION | grep -q Python; then
echo "Version is $VERSION and that's not right, fix the script."
exit 1
fi
# VERSION = 3.3.0
Version=${VERSION/[a-z]*/} # 3.3.0
tar_suffix=${VERSION#$Version} # b3
a_version=(${Version//\./ }) # 3 3 0
python_version=${VERSION:0:3} # 3.3
python_version_abitag=${python_version//./} # 33
python_version_soname=${python_version//./_} # 3_3
if [ -n "$tar_suffix" ]; then
# we want to generate:
# 3.2.3 -> 3.2.2.99
# 3.3.0 -> 3.2.99
(( last_elem = ${#a_version[@]} - 1 ))
if [ ${a_version[$last_elem]} -eq 0 ]; then
unset a_version[$last_elem]
(( last_elem-- ))
fi
# this will fail when python 4.0 comes out. mwahaha
(( a_version[$last_elem]-- ))
Version=${a_version[*]}
Version=${Version// /.}.99$tar_suffix # 3.2.99b1
tarversion=$VERSION # 3.3.0b1
else
tarversion="%{version}"
fi
sed -i -r 's/(^Version:[ \t]+).*/\1'"$Version"'/' python3{-base,}.spec
sed -i -r 's/(^%define[ \t]+tarversion[ \t]+).*/\1'$tarversion'/' python3*.spec
#sed -i -r 's/(^Version:[ \t]+).*/\1'"$python_version"'/' python3-doc.spec
sed -i -r 's/(^%define[ \t]+pyver[ \t]+).*/\1'$Version'/' python3-doc.spec
for varname in python_version{,_abitag,_soname}; do
eval varvalue=\$$varname
sed -i -r 's/(^%define[ \t]+'$varname'[ \t]+).*/\1'$varvalue'/' $master
done
# copy definition sections
sections="COMMON-PATCH COMMON-DEF COMMON-PREP"
for slave in python3.spec python3-doc.spec; do
{
prev=1
for section in $sections; do
begin="/$section-BEGIN/"
end="/$section-END/"
sed -n -e "${prev},${begin}p" $slave
sed -n -e "${begin},${end}p" $master | head -n -1 | tail -n +2
prev=$end
done
sed -n -e "${prev},\$p" $slave
} > $slave.tmp && mv $slave.tmp $slave
done
osc service localrun format_spec_file
# create import_failed.map from package definitions
MAPFILE=import_failed.map
function new_map_line () {
if [ -z "$1" -o -z "$2" ]; then
return
fi
if [ "$1" == "python3-base" ]; then
return
fi
echo "$1:$2" >> $MAPFILE.tmp
}
for spec in *.spec; do
basename=${spec%.spec}
package=
modules=
while read line; do
case $line in
"%files -n "*)
new_map_line $package "$modules"
package=${line#"%files -n "}
modules=
;;
"%files "*)
new_map_line $package "$modules"
package=$basename-${line#"%files "}
modules=
;;
"%files")
new_map_line $package "$modules"
package=$basename
modules=
;;
"%{sitedir}/"*)
word=${line#"%{sitedir}/"}
if ! echo $word | grep -q /; then
modules="$modules $word"
fi
;;
"%{dynlib "*"}")
word=${line#"%{dynlib "}
word=${word%"}"}
modules="$modules $word"
;;
esac
done < $spec
new_map_line $package "$modules"
done
mv $MAPFILE.tmp $MAPFILE
++++++ python-2.6b1-canonicalize2.patch ++++++
--- Python/sysmodule.c
+++ Python/sysmodule.c
@@ -1532,7 +1532,20 @@
char *p = NULL;
Py_ssize_t n = 0;
PyObject *a;
-#ifdef HAVE_READLINK
+#ifdef HAVE_CANONICALIZE_FILE_NAME
+ int errnum;
+
+ if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
+ argv0 = canonicalize_file_name(argv0);
+ if (argv0 == NULL) argv0 = strdup(argv[0]);
+ }
+#elif defined(HAVE_REALPATH)
+ if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
+ if (realpath(argv0, fullpath)) {
+ argv0 = fullpath;
+ }
+ }
+#elif defined(HAVE_READLINK)
char link[MAXPATHLEN+1];
char argv0copy[2*MAXPATHLEN+1];
int nr = 0;
@@ -1559,7 +1572,8 @@
}
}
}
-#endif /* HAVE_READLINK */
+#endif /* resolve method selection */
+
#if SEP == '\\' /* Special case for MS filename syntax */
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
char *q;
@@ -1585,11 +1599,6 @@
}
#else /* All other filename syntaxes */
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
-#if defined(HAVE_REALPATH)
- if (realpath(argv0, fullpath)) {
- argv0 = fullpath;
- }
-#endif
p = strrchr(argv0, SEP);
}
if (p != NULL) {
@@ -1607,6 +1616,9 @@
a = PyString_FromStringAndSize(argv0, n);
if (a == NULL)
Py_FatalError("no mem for sys.path insertion");
+#ifdef HAVE_CANONICALIZE_FILE_NAME
+ if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) free(argv0);
+#endif /* HAVE_CANONICALIZE_FILE_NAME */
if (PyList_Insert(path, 0, a) < 0)
Py_FatalError("sys.path.insert(0) failed");
Py_DECREF(a);
--- configure.in
+++ configure.in
@@ -2473,7 +2473,7 @@
getpriority getpwent getspnam getspent getsid getwd \
kill killpg lchmod lchown lstat mkfifo mknod mktime \
mremap nice pathconf pause plock poll pthread_init \
- putenv readlink realpath \
+ putenv readlink realpath canonicalize_file_name \
select setegid seteuid setgid \
setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
sigaction siginterrupt sigrelse strftime \
--- pyconfig.h.in
+++ pyconfig.h.in
@@ -79,6 +79,9 @@
/* Define to 1 if you have the `chflags' function. */
#undef HAVE_CHFLAGS
+/* Define to 1 if you have the `canonicalize_file_name' function. */
+#undef HAVE_CANONICALIZE_FILE_NAME
+
/* Define to 1 if you have the `chown' function. */
#undef HAVE_CHOWN
++++++ python-3.2.3rc2-pypirc-secure.patch ++++++
# HG changeset patch
# User Philip Jenvey <pjenvey(a)underboss.org>
# Date 1322701507 28800
# Branch 2.7
# Node ID e7c20a8476a0e2ca18f8040864cbc400818d8f24
# Parent 3ecddf168f1f554a17a047384fe0b02f2d688277
create the .pypirc securely
Index: Python-3.2.3rc2/Lib/distutils/config.py
===================================================================
--- Python-3.2.3rc2.orig/Lib/distutils/config.py 2012-03-18 07:36:03.000000000 +0100
+++ Python-3.2.3rc2/Lib/distutils/config.py 2012-03-29 16:39:59.000000000 +0200
@@ -43,16 +43,8 @@
def _store_pypirc(self, username, password):
"""Creates a default .pypirc file."""
rc = self._get_rc_file()
- f = open(rc, 'w')
- try:
- f.write(DEFAULT_PYPIRC % (username, password))
- finally:
- f.close()
- try:
- os.chmod(rc, 0o600)
- except OSError:
- # should do something better here
- pass
+ with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as fp:
+ fp.write(DEFAULT_PYPIRC % (username, password))
def _read_pypirc(self):
"""Reads the .pypirc file."""
++++++ python-3.2b2-buildtime-generate.patch ++++++
Index: Python-3.2b2/Makefile.pre.in
===================================================================
--- Python-3.2b2.orig/Makefile.pre.in
+++ Python-3.2b2/Makefile.pre.in
@@ -645,7 +645,7 @@ Python/formatter_unicode.o: $(srcdir)/Py
Objects/typeobject.o: $(srcdir)/Objects/typeslots.inc
$(srcdir)/Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
- $(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > $(srcdir)/Objects/typeslots.inc
+ $(RUNSHARED) ./$(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > $(srcdir)/Objects/typeslots.inc
############################################################################
# Header files
++++++ python-3.3.0b1-curses-panel.patch ++++++
Index: Modules/_curses_panel.c
===================================================================
--- Modules/_curses_panel.c.orig 2012-06-26 22:19:53.000000000 +0200
+++ Modules/_curses_panel.c 2012-08-02 14:56:23.000000000 +0200
@@ -14,7 +14,7 @@
#include "py_curses.h"
-#include <panel.h>
+#include <ncurses/panel.h>
typedef struct {
PyObject *PyCursesError;
++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++
Index: Python-3.3.0b1/Makefile.pre.in
===================================================================
--- Python-3.3.0b1.orig/Makefile.pre.in 2012-08-02 14:54:22.000000000 +0200
+++ Python-3.3.0b1/Makefile.pre.in 2012-08-02 14:55:10.000000000 +0200
@@ -603,11 +603,18 @@
$(MODOBJS) \
$(srcdir)/Modules/getbuildinfo.c
$(CC) -c $(PY_CORE_CFLAGS) \
+ -DDATE="\"`date -u -r Makefile.pre.in +"%b %d %Y"`\"" \
+ -DTIME="\"`date -u -r Makefile.pre.in +"%T"`\"" \
-DHGVERSION="\"`LC_ALL=C $(HGVERSION)`\"" \
-DHGTAG="\"`LC_ALL=C $(HGTAG)`\"" \
-DHGBRANCH="\"`LC_ALL=C $(HGBRANCH)`\"" \
-o $@ $(srcdir)/Modules/getbuildinfo.c
+Python/getcompiler.o: $(srcdir)/Python/getcompiler.c Makefile
+ $(CC) -c $(PY_CORE_CFLAGS) \
+ -DCOMPILER='"[GCC]"' \
+ -o $@ $(srcdir)/Python/getcompiler.c
+
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
$(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
-DPREFIX='"$(prefix)"' \
++++++ python-3.3.0b1-localpath.patch ++++++
Index: Lib/site.py
===================================================================
--- Lib/site.py.orig 2012-08-07 13:44:51.000000000 +0200
+++ Lib/site.py 2012-08-07 13:44:52.000000000 +0200
@@ -71,7 +71,7 @@
import builtins
# Prefixes for site-packages; add additional prefixes like /usr/local here
-PREFIXES = [sys.prefix, sys.exec_prefix]
+PREFIXES = [sys.prefix, sys.exec_prefix, '/usr/local']
# Enable per user site-packages directory
# set it to False to disable the feature or True to force the feature
ENABLE_USER_SITE = None
Index: Lib/test/test_site.py
===================================================================
--- Lib/test/test_site.py.orig 2012-06-26 22:19:48.000000000 +0200
+++ Lib/test/test_site.py 2012-08-07 13:44:52.000000000 +0200
@@ -239,12 +239,27 @@
self.assertEqual(dirs[2], wanted)
elif os.sep == '/':
# OS X non-framwework builds, Linux, FreeBSD, etc
- self.assertEqual(len(dirs), 2)
- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
+ i = 0
+ wanted = os.path.join('xoxo', sys.lib, 'python' + sys.version[:3],
'site-packages')
- self.assertEqual(dirs[0], wanted)
- wanted = os.path.join('xoxo', 'lib', 'site-python')
- self.assertEqual(dirs[1], wanted)
+ self.assertEqual(dirs[i], wanted)
+ i += 1
+ if sys.lib != 'lib':
+ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
+ 'site-packages')
+ self.assertEqual(dirs[i], wanted)
+ i += 1
+
+ wanted = os.path.join('xoxo', sys.lib, 'site-python')
+ self.assertEqual(dirs[i], wanted)
+ i += 1
+ if sys.lib != 'lib':
+ wanted = os.path.join('xoxo', 'lib', 'site-python')
+ self.assertEqual(dirs[i], wanted)
+ i += 1
+
+ self.assertTrue(i in [2,4])
+ self.assertEqual(len(dirs), i)
else:
# other platforms
self.assertEqual(len(dirs), 2)
++++++ python-3.3.0b1-test-posix_fadvise.patch ++++++
Index: Python-3.3.0b1/Lib/test/test_posix.py
===================================================================
--- Python-3.3.0b1.orig/Lib/test/test_posix.py 2012-06-26 22:19:48.000000000 +0200
+++ Python-3.3.0b1/Lib/test/test_posix.py 2012-08-03 14:06:26.000000000 +0200
@@ -231,7 +231,7 @@
def test_posix_fadvise(self):
fd = os.open(support.TESTFN, os.O_RDONLY)
try:
- posix.posix_fadvise(fd, 0, 0, posix.POSIX_FADV_WILLNEED)
+ posix.posix_fadvise(fd, 0, 0, posix.POSIX_FADV_RANDOM)
finally:
os.close(fd)
++++++ python3.csh ++++++
# add python startup script for interactive sessions
setenv PYTHONSTARTUP /etc/pythonstart
++++++ python3.sh ++++++
# add python startup script for interactive sessions
export PYTHONSTARTUP=/etc/pythonstart
++++++ python3start ++++++
# startup script for python to enable saving of interpreter history and
# enabling name completion
# import needed modules
import atexit
import os
import readline
import rlcompleter
# where is history saved
historyPath = os.path.expanduser("~/.py3history")
# handler for saving history
def save_history(historyPath=historyPath):
import readline
readline.write_history_file(historyPath)
# read history, if it exists
if os.path.exists(historyPath):
readline.set_history_length(10000)
readline.read_history_file(historyPath)
# register saving handler
atexit.register(save_history)
# enable completion
readline.parse_and_bind('tab: complete')
# cleanup
del os, atexit, readline, rlcompleter, save_history, historyPath
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python3-doc for openSUSE:12.3:Update checked in at 2014-05-02 14:25:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/python3-doc (Old)
and /work/SRC/openSUSE:12.3:Update/.python3-doc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-doc"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.sxTxqY/_old 2014-05-02 14:25:13.000000000 +0200
+++ /var/tmp/diff_new_pack.sxTxqY/_new 2014-05-02 14:25:13.000000000 +0200
@@ -1 +1 @@
-<link package='python3-doc.1975' cicount='copy' />
+<link package='python3-doc.2736' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python3-base for openSUSE:12.3:Update checked in at 2014-05-02 14:25:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/python3-base (Old)
and /work/SRC/openSUSE:12.3:Update/.python3-base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-base"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.4KHYl8/_old 2014-05-02 14:25:11.000000000 +0200
+++ /var/tmp/diff_new_pack.4KHYl8/_new 2014-05-02 14:25:11.000000000 +0200
@@ -1 +1 @@
-<link package='python3-base.1975' cicount='copy' />
+<link package='python3-base.2736' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rsync for openSUSE:13.1:Update checked in at 2014-05-02 14:25:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/rsync (Old)
and /work/SRC/openSUSE:13.1:Update/.rsync.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rsync"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.axYzdo/_old 2014-05-02 14:25:01.000000000 +0200
+++ /var/tmp/diff_new_pack.axYzdo/_new 2014-05-02 14:25:01.000000000 +0200
@@ -1 +1 @@
-<link package='rsync.2237' cicount='copy' />
+<link package='rsync.2753' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package patchinfo.2751 for openSUSE:13.1:Update checked in at 2014-05-02 14:24:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/patchinfo.2751 (Old)
and /work/SRC/openSUSE:13.1:Update/.patchinfo.2751.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.2751"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="cacti">
<packager>aeneas_jaissle</packager>
<issue tracker="cve" id="CVE-2014-2326"></issue>
<issue tracker="cve" id="CVE-2014-2328"></issue>
<issue tracker="cve" id="CVE-2014-2708"></issue>
<issue tracker="cve" id="CVE-2014-2709"></issue>
<issue tracker="bnc" id="870821">VUL-0: CVE-2014-2326: cacti: xss attacjs ub 0.8.7g</issue>
<issue tracker="bnc" id="872008">VUL-0: CVE-2014-2708, CVE-2014-2709: cacti: command injection issues</issue>
<issue tracker="cve" id="CVE-2013-5588"></issue>
<issue tracker="cve" id="CVE-2013-5589"></issue>
<issue tracker="bnc" id="837440">VUL-0: CVE-2013-5588 CVE-2013-5589: cacti: XSS and SQL injection vulnerabilities</issue>
<category>security</category>
<rating>moderate</rating>
<summary>cacti: security fixes; cacti-spine: update to 0.8.8b</summary>
<description>cacti was patched to fix several security issues:
* CVE-2013-5588: XSS injection vulnerability
* CVE-2013-5589: SQL injection vulnerability
* CVE-2014-2326: XSS injection vulnerability
* CVE-2014-2328: Remote Command Execution Vulnerability
* CVE-2014-2708: SQL Injection Vulnerability
* CVE-2014-2709: Remote Command Execution Vulnerability
cacti-spine was updated to 0.8.8b to fix the following issue:
* bug: set appropriate mysql 5.5+ timeouts</description>
</patchinfo>
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cacti for openSUSE:12.3:Update checked in at 2014-05-02 14:24:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/cacti (Old)
and /work/SRC/openSUSE:12.3:Update/.cacti.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cacti"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.HlLc40/_old 2014-05-02 14:24:47.000000000 +0200
+++ /var/tmp/diff_new_pack.HlLc40/_new 2014-05-02 14:24:47.000000000 +0200
@@ -1 +1 @@
-<link package='cacti.1948' cicount='copy' />
+<link package='cacti.2751' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package chromium for openSUSE:13.1:Update checked in at 2014-05-02 14:24:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/chromium (Old)
and /work/SRC/openSUSE:13.1:Update/.chromium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.rpDILP/_old 2014-05-02 14:24:40.000000000 +0200
+++ /var/tmp/diff_new_pack.rpDILP/_new 2014-05-02 14:24:40.000000000 +0200
@@ -1 +1 @@
-<link package='chromium.2689' cicount='copy' />
+<link package='chromium.2744' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package chromium for openSUSE:12.3:Update checked in at 2014-05-02 14:24:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/chromium (Old)
and /work/SRC/openSUSE:12.3:Update/.chromium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.hDbavV/_old 2014-05-02 14:24:30.000000000 +0200
+++ /var/tmp/diff_new_pack.hDbavV/_new 2014-05-02 14:24:30.000000000 +0200
@@ -1 +1 @@
-<link package='chromium.2689' cicount='copy' />
+<link package='chromium.2744' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package curl for openSUSE:13.1:Update checked in at 2014-05-02 14:19:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/curl (Old)
and /work/SRC/openSUSE:13.1:Update/.curl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "curl"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.FGuXSn/_old 2014-05-02 14:19:47.000000000 +0200
+++ /var/tmp/diff_new_pack.FGuXSn/_new 2014-05-02 14:19:47.000000000 +0200
@@ -1 +1 @@
-<link package='curl.2690' cicount='copy' />
+<link package='curl.2733' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package curl for openSUSE:12.3:Update checked in at 2014-05-02 14:19:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/curl (Old)
and /work/SRC/openSUSE:12.3:Update/.curl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "curl"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.yx98uf/_old 2014-05-02 14:19:44.000000000 +0200
+++ /var/tmp/diff_new_pack.yx98uf/_new 2014-05-02 14:19:44.000000000 +0200
@@ -1 +1 @@
-<link package='curl.2690' cicount='copy' />
+<link package='curl.2733' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0