Accepting request 112388 from devel:languages:python:Factory

- update to 2.7.3rc2
  * fixes several security issues:
  * CVE-2012-0845, bnc#747125
  * CVE-2012-1150, bnc#751718
  * CVE-2011-4944, bnc#754447
  * CVE-2011-3389
- fix for insecure .pypirc (CVE-2011-4944, bnc#754447)
!!important!!
- disabled test_unicode which segfaults on 64bits.
  this should not happen, revisit in next RC!
!!important!!

- skip broken test_io test on ppc

OBS-URL: https://build.opensuse.org/request/show/112388
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python?expand=0&rev=79
This commit is contained in:
Stephan Kulow 2012-04-12 07:46:54 +00:00 committed by Git OBS Bridge
commit a327324bf8
12 changed files with 186 additions and 116 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5057eb067eb5b5a6040dbd0e889e06550bde9ec041dadaa855ee9490034cbdab
size 11754834

3
Python-2.7.3rc2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:752759ea956bfc4e9638753f68e9a2c96a40677053a4d6720f1a476a984f7bbe
size 11801113

30
pypirc-secure.diff Normal file
View File

@ -0,0 +1,30 @@
# HG changeset patch
# User Philip Jenvey <pjenvey@underboss.org>
# Date 1322701507 28800
# Branch 2.7
# Node ID e7c20a8476a0e2ca18f8040864cbc400818d8f24
# Parent 3ecddf168f1f554a17a047384fe0b02f2d688277
create the .pypirc securely
diff -r 3ecddf168f1f -r e7c20a8476a0 Lib/distutils/config.py
--- a/Lib/distutils/config.py Tue Nov 29 00:53:09 2011 +0100
+++ b/Lib/distutils/config.py Wed Nov 30 17:05:07 2011 -0800
@@ -42,16 +42,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, 0600)
- except OSError:
- # should do something better here
- pass
+ with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0600), 'w') as fp:
+ fp.write(DEFAULT_PYPIRC % (username, password))
def _read_pypirc(self):
"""Reads the .pypirc file."""

View File

@ -1,12 +0,0 @@
Index: Python-2.7.1/Lib/urllib.py
===================================================================
--- Python-2.7.1.orig/Lib/urllib.py
+++ Python-2.7.1/Lib/urllib.py
@@ -1350,6 +1350,7 @@ def proxy_bypass_environment(host):
hostonly, port = splitport(host)
# check if the host ends with any of the DNS suffixes
for name in no_proxy.split(','):
+ name = name.strip()
if name and (hostonly.endswith(name) or host.endswith(name)):
return 1
# otherwise, don't bypass

View File

@ -0,0 +1,10 @@
--- Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io 2011-09-01 14:18:45.963304089 -0400
+++ Python-2.7.2/Lib/test/test_io.py 2011-09-01 15:08:53.796098413 -0400
@@ -2669,6 +2669,7 @@ class SignalsTest(unittest.TestCase):
self.check_interrupted_read_retry(lambda x: x,
mode="r")
+ @unittest.skip('rhbz#732998')
@unittest.skipUnless(threading, 'Threading required for this test.')
def check_interrupted_write_retry(self, item, **fdopen_kwargs):
"""Check that a buffered write, when it gets interrupted (either

View File

@ -1,21 +0,0 @@
--- configure.in
+++ configure.in
@@ -293,6 +293,7 @@
MACHDEP="$ac_md_system$ac_md_release"
case $MACHDEP in
+ linux*) MACHDEP="linux2";;
cygwin*) MACHDEP="cygwin";;
darwin*) MACHDEP="darwin";;
atheos*) MACHDEP="atheos";;
--- Misc/NEWS
+++ Misc/NEWS
@@ -1,6 +1,8 @@
Python News
+++++++++++
+- Issue #12326: sys.platform is now always 'linux2' on Linux, even if Python
+ is compiled on Linux 3.
What's New in Python 2.7.2?
===========================

View File

@ -1,8 +1,8 @@
Index: Python/sysmodule.c Index: Python/sysmodule.c
=================================================================== ===================================================================
--- Python/sysmodule.c.orig --- Python/sysmodule.c.orig 2012-03-28 20:13:00.000000000 +0200
+++ Python/sysmodule.c +++ Python/sysmodule.c 2012-03-28 20:13:00.000000000 +0200
@@ -1671,7 +1671,20 @@ PySys_SetArgvEx(int argc, char **argv, i @@ -1620,7 +1620,20 @@
char *p = NULL; char *p = NULL;
Py_ssize_t n = 0; Py_ssize_t n = 0;
PyObject *a; PyObject *a;
@ -24,7 +24,7 @@ Index: Python/sysmodule.c
char link[MAXPATHLEN+1]; char link[MAXPATHLEN+1];
char argv0copy[2*MAXPATHLEN+1]; char argv0copy[2*MAXPATHLEN+1];
int nr = 0; int nr = 0;
@@ -1698,7 +1711,8 @@ PySys_SetArgvEx(int argc, char **argv, i @@ -1647,7 +1660,8 @@
} }
} }
} }
@ -34,7 +34,7 @@ Index: Python/sysmodule.c
#if SEP == '\\' /* Special case for MS filename syntax */ #if SEP == '\\' /* Special case for MS filename syntax */
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) { if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
char *q; char *q;
@@ -1727,11 +1741,6 @@ PySys_SetArgvEx(int argc, char **argv, i @@ -1676,11 +1690,6 @@
} }
#else /* All other filename syntaxes */ #else /* All other filename syntaxes */
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) { if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
@ -46,7 +46,7 @@ Index: Python/sysmodule.c
p = strrchr(argv0, SEP); p = strrchr(argv0, SEP);
} }
if (p != NULL) { if (p != NULL) {
@@ -1749,6 +1758,9 @@ PySys_SetArgvEx(int argc, char **argv, i @@ -1698,6 +1707,9 @@
a = PyString_FromStringAndSize(argv0, n); a = PyString_FromStringAndSize(argv0, n);
if (a == NULL) if (a == NULL)
Py_FatalError("no mem for sys.path insertion"); Py_FatalError("no mem for sys.path insertion");
@ -58,9 +58,9 @@ Index: Python/sysmodule.c
Py_DECREF(a); Py_DECREF(a);
Index: configure.in Index: configure.in
=================================================================== ===================================================================
--- configure.in.orig --- configure.in.orig 2012-03-28 20:13:00.000000000 +0200
+++ configure.in +++ configure.in 2012-03-28 20:13:00.000000000 +0200
@@ -2728,7 +2728,7 @@ AC_CHECK_FUNCS(alarm setitimer getitimer @@ -2761,7 +2761,7 @@
getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \ getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \
initgroups kill killpg lchmod lchown lstat mkfifo mknod mktime \ initgroups kill killpg lchmod lchown lstat mkfifo mknod mktime \
mremap nice pathconf pause plock poll pthread_init \ mremap nice pathconf pause plock poll pthread_init \
@ -71,10 +71,10 @@ Index: configure.in
setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \ setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
Index: pyconfig.h.in Index: pyconfig.h.in
=================================================================== ===================================================================
--- pyconfig.h.in.orig --- pyconfig.h.in.orig 2012-03-16 02:26:39.000000000 +0100
+++ pyconfig.h.in +++ pyconfig.h.in 2012-03-28 20:13:00.000000000 +0200
@@ -97,6 +97,9 @@ @@ -106,6 +106,9 @@
/* Define to 1 if you have the `chflags' function. */ /* Define to 1 if you have the 'chflags' function. */
#undef HAVE_CHFLAGS #undef HAVE_CHFLAGS
+/* Define to 1 if you have the `canonicalize_file_name' function. */ +/* Define to 1 if you have the `canonicalize_file_name' function. */

View File

@ -1,6 +1,8 @@
--- configure.in Index: configure.in
+++ configure.in ===================================================================
@@ -629,6 +629,41 @@ --- configure.in.orig 2012-03-16 02:26:39.000000000 +0100
+++ configure.in 2012-03-28 20:09:13.000000000 +0200
@@ -630,6 +630,41 @@
;; ;;
esac esac
@ -42,8 +44,10 @@
AC_SUBST(LIBRARY) AC_SUBST(LIBRARY)
AC_MSG_CHECKING(LIBRARY) AC_MSG_CHECKING(LIBRARY)
--- Include/pythonrun.h Index: Include/pythonrun.h
+++ Include/pythonrun.h ===================================================================
--- Include/pythonrun.h.orig 2012-03-16 02:26:31.000000000 +0100
+++ Include/pythonrun.h 2012-03-28 20:09:13.000000000 +0200
@@ -108,6 +108,8 @@ @@ -108,6 +108,8 @@
/* In their own files */ /* In their own files */
PyAPI_FUNC(const char *) Py_GetVersion(void); PyAPI_FUNC(const char *) Py_GetVersion(void);
@ -53,8 +57,10 @@
PyAPI_FUNC(const char *) Py_GetCopyright(void); PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void); PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void); PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
--- Lib/distutils/command/install.py Index: Lib/distutils/command/install.py
+++ Lib/distutils/command/install.py ===================================================================
--- Lib/distutils/command/install.py.orig 2012-03-28 20:09:11.000000000 +0200
+++ Lib/distutils/command/install.py 2012-03-28 20:09:13.000000000 +0200
@@ -22,6 +22,8 @@ @@ -22,6 +22,8 @@
from site import USER_SITE from site import USER_SITE
@ -73,8 +79,10 @@
'headers': '$base/include/python$py_version_short/$dist_name', 'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin', 'scripts': '$base/bin',
'data' : '$base', 'data' : '$base',
--- Lib/distutils/sysconfig.py Index: Lib/distutils/sysconfig.py
+++ Lib/distutils/sysconfig.py ===================================================================
--- Lib/distutils/sysconfig.py.orig 2012-03-16 02:26:31.000000000 +0100
+++ Lib/distutils/sysconfig.py 2012-03-28 20:09:13.000000000 +0200
@@ -114,8 +114,11 @@ @@ -114,8 +114,11 @@
prefix = plat_specific and EXEC_PREFIX or PREFIX prefix = plat_specific and EXEC_PREFIX or PREFIX
@ -89,8 +97,10 @@
if standard_lib: if standard_lib:
return libpython return libpython
else: else:
--- Lib/pydoc.py Index: Lib/pydoc.py
+++ Lib/pydoc.py ===================================================================
--- Lib/pydoc.py.orig 2012-03-16 02:26:33.000000000 +0100
+++ Lib/pydoc.py 2012-03-28 20:09:13.000000000 +0200
@@ -352,7 +352,7 @@ @@ -352,7 +352,7 @@
docloc = os.environ.get("PYTHONDOCS", docloc = os.environ.get("PYTHONDOCS",
@ -100,8 +110,10 @@
"python"+sys.version[0:3]) "python"+sys.version[0:3])
if (isinstance(object, type(os)) and if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp', (object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
--- Lib/site.py Index: Lib/site.py
+++ Lib/site.py ===================================================================
--- Lib/site.py.orig 2012-03-16 02:26:33.000000000 +0100
+++ Lib/site.py 2012-03-28 20:09:13.000000000 +0200
@@ -300,13 +300,18 @@ @@ -300,13 +300,18 @@
if sys.platform in ('os2emx', 'riscos'): if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
@ -124,8 +136,10 @@
if sys.platform == "darwin": if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple # for framework builds *only* we add the standard Apple
# locations. # locations.
--- Lib/sysconfig.py Index: Lib/sysconfig.py
+++ Lib/sysconfig.py ===================================================================
--- Lib/sysconfig.py.orig 2012-03-16 02:26:33.000000000 +0100
+++ Lib/sysconfig.py 2012-03-28 20:09:13.000000000 +0200
@@ -7,10 +7,10 @@ @@ -7,10 +7,10 @@
_INSTALL_SCHEMES = { _INSTALL_SCHEMES = {
@ -154,8 +168,10 @@
'include': '{userbase}/include/python{py_version_short}', 'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin', 'scripts': '{userbase}/bin',
'data' : '{userbase}', 'data' : '{userbase}',
--- Lib/test/test_dl.py Index: Lib/test/test_dl.py
+++ Lib/test/test_dl.py ===================================================================
--- Lib/test/test_dl.py.orig 2012-03-16 02:26:34.000000000 +0100
+++ Lib/test/test_dl.py 2012-03-28 20:09:13.000000000 +0200
@@ -5,10 +5,11 @@ @@ -5,10 +5,11 @@
import unittest import unittest
from test.test_support import verbose, import_module from test.test_support import verbose, import_module
@ -170,12 +186,14 @@
('/usr/bin/cygwin1.dll', 'getpid'), ('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'), ('/usr/lib/libc.dylib', 'getpid'),
] ]
--- Lib/test/test_site.py Index: Lib/test/test_site.py
+++ Lib/test/test_site.py ===================================================================
@@ -227,12 +227,16 @@ --- Lib/test/test_site.py.orig 2012-03-16 02:26:34.000000000 +0100
wanted = os.path.join('xoxo', 'Lib', 'site-packages') +++ Lib/test/test_site.py 2012-03-28 20:11:10.000000000 +0200
self.assertEqual(dirs[0], wanted) @@ -241,12 +241,16 @@
self.assertEqual(dirs[2], wanted)
elif os.sep == '/': elif os.sep == '/':
# OS X non-framwework builds, Linux, FreeBSD, etc
- self.assertEqual(len(dirs), 2) - self.assertEqual(len(dirs), 2)
wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
'site-packages') 'site-packages')
@ -190,11 +208,13 @@
+ wanted = os.path.join('xoxo', sys.lib, 'site-python') + wanted = os.path.join('xoxo', sys.lib, 'site-python')
+ self.assertTrue(wanted in dirs) + self.assertTrue(wanted in dirs)
else: else:
# other platforms
self.assertEqual(len(dirs), 2) self.assertEqual(len(dirs), 2)
self.assertEqual(dirs[0], 'xoxo') Index: Lib/trace.py
--- Lib/trace.py ===================================================================
+++ Lib/trace.py --- Lib/trace.py.orig 2012-03-16 02:26:34.000000000 +0100
@@ -762,10 +762,10 @@ +++ Lib/trace.py 2012-03-28 20:09:13.000000000 +0200
@@ -754,10 +754,10 @@
# should I also call expanduser? (after all, could use $HOME) # should I also call expanduser? (after all, could use $HOME)
s = s.replace("$prefix", s = s.replace("$prefix",
@ -207,8 +227,10 @@
"python" + sys.version[:3])) "python" + sys.version[:3]))
s = os.path.normpath(s) s = os.path.normpath(s)
ignore_dirs.append(s) ignore_dirs.append(s)
--- Makefile.pre.in Index: Makefile.pre.in
+++ Makefile.pre.in ===================================================================
--- Makefile.pre.in.orig 2012-03-28 20:09:11.000000000 +0200
+++ Makefile.pre.in 2012-03-28 20:09:13.000000000 +0200
@@ -81,6 +81,8 @@ @@ -81,6 +81,8 @@
# Machine-dependent subdirectories # Machine-dependent subdirectories
@ -218,7 +240,7 @@
# Install prefix for architecture-independent files # Install prefix for architecture-independent files
prefix= @prefix@ prefix= @prefix@
@@ -532,6 +534,7 @@ @@ -533,6 +535,7 @@
-DEXEC_PREFIX='"$(exec_prefix)"' \ -DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \ -DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \ -DVPATH='"$(VPATH)"' \
@ -226,7 +248,7 @@
-o $@ $(srcdir)/Modules/getpath.c -o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c Modules/python.o: $(srcdir)/Modules/python.c
@@ -566,7 +569,7 @@ @@ -567,7 +570,7 @@
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H) Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c Python/getplatform.o: $(srcdir)/Python/getplatform.c
@ -235,8 +257,10 @@
Python/importdl.o: $(srcdir)/Python/importdl.c Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
--- Modules/getpath.c Index: Modules/getpath.c
+++ Modules/getpath.c ===================================================================
--- Modules/getpath.c.orig 2012-03-16 02:26:37.000000000 +0100
+++ Modules/getpath.c 2012-03-28 20:09:13.000000000 +0200
@@ -116,9 +116,11 @@ @@ -116,9 +116,11 @@
#define EXEC_PREFIX PREFIX #define EXEC_PREFIX PREFIX
#endif #endif
@ -260,8 +284,10 @@
static void static void
reduce(char *dir) reduce(char *dir)
--- Python/getplatform.c Index: Python/getplatform.c
+++ Python/getplatform.c ===================================================================
--- Python/getplatform.c.orig 2012-03-16 02:26:38.000000000 +0100
+++ Python/getplatform.c 2012-03-28 20:09:13.000000000 +0200
@@ -10,3 +10,23 @@ @@ -10,3 +10,23 @@
{ {
return PLATFORM; return PLATFORM;
@ -286,9 +312,11 @@
+{ +{
+ return LIB; + return LIB;
+} +}
--- Python/sysmodule.c Index: Python/sysmodule.c
+++ Python/sysmodule.c ===================================================================
@@ -1416,6 +1416,10 @@ --- Python/sysmodule.c.orig 2012-03-16 02:26:39.000000000 +0100
+++ Python/sysmodule.c 2012-03-28 20:09:13.000000000 +0200
@@ -1419,6 +1419,10 @@
PyString_FromString(Py_GetCopyright())); PyString_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform", SET_SYS_FROM_STRING("platform",
PyString_FromString(Py_GetPlatform())); PyString_FromString(Py_GetPlatform()));
@ -299,8 +327,10 @@
SET_SYS_FROM_STRING("executable", SET_SYS_FROM_STRING("executable",
PyString_FromString(Py_GetProgramFullPath())); PyString_FromString(Py_GetProgramFullPath()));
SET_SYS_FROM_STRING("prefix", SET_SYS_FROM_STRING("prefix",
--- setup.py Index: setup.py
+++ setup.py ===================================================================
--- setup.py.orig 2012-03-16 02:26:39.000000000 +0100
+++ setup.py 2012-03-28 20:09:13.000000000 +0200
@@ -369,7 +369,7 @@ @@ -369,7 +369,7 @@
def detect_modules(self): def detect_modules(self):

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Wed Mar 28 18:19:18 UTC 2012 - jmatejek@suse.com
- update to 2.7.3rc2
* fixes several security issues:
* CVE-2012-0845, bnc#747125
* CVE-2012-1150, bnc#751718
* CVE-2011-4944, bnc#754447
* CVE-2011-3389
- fix for insecure .pypirc (CVE-2011-4944, bnc#754447)
!!important!!
- disabled test_unicode which segfaults on 64bits.
this should not happen, revisit in next RC!
!!important!!
-------------------------------------------------------------------
Thu Feb 16 12:33:44 UTC 2012 - dvaleev@suse.com
- skip broken test_io test on ppc
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 12 13:39:57 UTC 2011 - toddrme2178@gmail.com Mon Dec 12 13:39:57 UTC 2011 - toddrme2178@gmail.com

View File

@ -18,13 +18,14 @@
Name: python-base Name: python-base
Version: 2.7.2 Version: 2.7.2.99rc2
Release: 0 Release: 0
License: Python-2.0 License: Python-2.0
Summary: Python Interpreter base package Summary: Python Interpreter base package
Url: http://www.python.org/ Url: http://www.python.org/
Group: Development/Languages/Python Group: Development/Languages/Python
%define tarversion %{version} #%%define tarversion %{version}
%define tarversion 2.7.3rc2
%define tarname Python-%{tarversion} %define tarname Python-%{tarversion}
Source0: %{tarname}.tar.bz2 Source0: %{tarname}.tar.bz2
Source1: macros.python Source1: macros.python
@ -35,18 +36,18 @@ Source5: _local.pth
# COMMON-PATCH-BEGIN # COMMON-PATCH-BEGIN
Patch1: python-2.7-dirs.patch Patch1: python-2.7-dirs.patch
Patch2: python-distutils-rpm-8.patch Patch2: python-distutils-rpm-8.patch
Patch3: python-2.7.2-multilib.patch Patch3: python-2.7.3rc2-multilib.patch
Patch4: python-2.5.1-sqlite.patch Patch4: python-2.5.1-sqlite.patch
Patch5: python-2.7rc2-canonicalize2.patch Patch5: python-2.7.3rc2-canonicalize2.patch
Patch6: python-2.7rc2-configure.patch Patch6: python-2.7rc2-configure.patch
Patch7: python-2.6-gettext-plurals.patch Patch7: python-2.6-gettext-plurals.patch
Patch8: python-2.6b3-curses-panel.patch Patch8: python-2.6b3-curses-panel.patch
Patch9: python-2.7.1-distutils_test_path.patch Patch9: python-2.7.1-distutils_test_path.patch
Patch10: sparc_longdouble.patch Patch10: sparc_longdouble.patch
Patch11: python-2.7.2-linux3.patch
Patch12: http://psf.upfronthosting.co.za/roundup/tracker/file19029/python-test_structmembers.patch Patch12: http://psf.upfronthosting.co.za/roundup/tracker/file19029/python-test_structmembers.patch
Patch13: python-2.7.2-fix_date_time_compiler.patch Patch13: python-2.7.2-fix_date_time_compiler.patch
Patch14: python-2.7.1-urllib-noproxy.patch Patch15: python-2.7.2-disable-tests-in-test_io.patch
Patch16: pypirc-secure.diff
# COMMON-PATCH-END # COMMON-PATCH-END
%define python_version %(echo %{tarversion} | head -c 3) %define python_version %(echo %{tarversion} | head -c 3)
BuildRequires: automake BuildRequires: automake
@ -124,10 +125,13 @@ other applications.
%patch8 %patch8
%patch9 -p1 %patch9 -p1
%patch10 -p1 %patch10 -p1
%patch11
%patch12 %patch12
%patch13 %patch13
%patch14 -p1 #skip test_io test for ppc,ppc64 as it broken.
%ifarch ppc ppc64
%patch15 -p1
%endif
%patch16 -p1
# COMMON-PREP-END # COMMON-PREP-END
# drop Autoconf version requirement # drop Autoconf version requirement
@ -171,13 +175,13 @@ EXCLUDE="$EXCLUDE -x test_gdb"
# test_smtplib's testSend is known to be broken and on ia64 it actually fails most of the time, preventing the build. # test_smtplib's testSend is known to be broken and on ia64 it actually fails most of the time, preventing the build.
EXCLUDE="$EXCLUDE -x test_smtplib" EXCLUDE="$EXCLUDE -x test_smtplib"
%endif %endif
# test_subprocess and test_unittest and test_threaded_import fail in Factory # test_unicode fails in Factory
EXCLUDE="$EXCLUDE -x test_subprocess -x test_unittest -xtest_threaded_import" EXCLUDE="$EXCLUDE -x test_unicode"
# Limit virtual memory to avoid spurious failures # Limit virtual memory to avoid spurious failures
if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then
ulimit -v 10000000 || : ulimit -v 10000000 || :
fi fi
make test TESTOPTS="-l $EXCLUDE" make test TESTOPTS="-l $EXCLUDE" TESTPYTHONOPTS="-R"
# use network, be verbose: # use network, be verbose:
#make test TESTOPTS="-l -u network -v" #make test TESTOPTS="-l -u network -v"
%endif %endif
@ -191,7 +195,7 @@ find . -wholename "./Parser" -prune -o -name '*.py' -type f -print0 | xargs -0 g
######################################## ########################################
%make_install OPT="%{optflags} -fPIC" %make_install OPT="%{optflags} -fPIC"
# install site-specific tweaks # install site-specific tweaks
ln -s python%{python_version} %{buildroot}%{_bindir}/python2 #ln -s python%{python_version} %{buildroot}%{_bindir}/python2
install -m 644 %{SOURCE4} %{buildroot}%{_libdir}/python%{python_version}/distutils install -m 644 %{SOURCE4} %{buildroot}%{_libdir}/python%{python_version}/distutils
install -m 644 %{SOURCE5} %{buildroot}%{_libdir}/python%{python_version}/site-packages install -m 644 %{SOURCE5} %{buildroot}%{_libdir}/python%{python_version}/site-packages
install -d -m 755 %{buildroot}%{_sysconfdir}/rpm install -d -m 755 %{buildroot}%{_sysconfdir}/rpm
@ -246,11 +250,13 @@ cp Makefile Makefile.pre.in Makefile.pre %{buildroot}%{_libdir}/python%{python_v
%{_libdir}/libpython*.so %{_libdir}/libpython*.so
%{_libdir}/pkgconfig/python-%{python_version}.pc %{_libdir}/pkgconfig/python-%{python_version}.pc
%{_libdir}/pkgconfig/python.pc %{_libdir}/pkgconfig/python.pc
%{_libdir}/pkgconfig/python2.pc
%{_includedir}/python* %{_includedir}/python*
%exclude %{_includedir}/python%{python_version}/pyconfig.h %exclude %{_includedir}/python%{python_version}/pyconfig.h
%{_libdir}/python%{python_version}/test %{_libdir}/python%{python_version}/test
%defattr(755, root, root) %defattr(755, root, root)
%{_bindir}/python-config %{_bindir}/python-config
%{_bindir}/python2-config
%{_bindir}/python%{python_version}-config %{_bindir}/python%{python_version}-config
%files -n python-xml %files -n python-xml
@ -354,7 +360,7 @@ cp Makefile Makefile.pre.in Makefile.pre %{buildroot}%{_libdir}/python%{python_v
%{_libdir}/python%{python_version}/lib-dynload/zlib.so %{_libdir}/python%{python_version}/lib-dynload/zlib.so
%{_libdir}/python%{python_version}/lib-dynload/_codecs*.so %{_libdir}/python%{python_version}/lib-dynload/_codecs*.so
%{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so %{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so
%{_libdir}/python%{python_version}/lib-dynload/Python-%{version}-py%{python_version}.egg-info %{_libdir}/python%{python_version}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info
# these modules don't support 64-bit arches (disabled by setup.py) # these modules don't support 64-bit arches (disabled by setup.py)
%ifnarch alpha ia64 x86_64 s390x ppc64 sparc64 %ifnarch alpha ia64 x86_64 s390x ppc64 sparc64
# requires sizeof(int) == sizeof(long) == sizeof(char*) # requires sizeof(int) == sizeof(long) == sizeof(char*)

View File

@ -24,8 +24,9 @@ License: Python-2.0
Summary: Additional Package Documentation for Python Summary: Additional Package Documentation for Python
Url: http://www.python.org/ Url: http://www.python.org/
Group: Development/Languages/Python Group: Development/Languages/Python
%define pyver 2.7.2 %define pyver 2.7.2.99rc2
%define tarname Python-%{pyver} #%%define tarname Python-%{pyver}
%define tarname Python-2.7.3rc2
Source0: %{tarname}.tar.bz2 Source0: %{tarname}.tar.bz2
Source1: python-%{version}-docs-html.tar.bz2 Source1: python-%{version}-docs-html.tar.bz2
Source2: python-%{version}-docs-pdf-a4.tar.bz2 Source2: python-%{version}-docs-pdf-a4.tar.bz2

View File

@ -15,16 +15,15 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/ # Please submit bugfixes or comments via http://bugs.opensuse.org/
# #
Name: python Name: python
Version: 2.7.2 Version: 2.7.2.99rc2
Release: 0 Release: 0
License: Python-2.0 License: Python-2.0
Summary: Python Interpreter Summary: Python Interpreter
Url: http://www.python.org/ Url: http://www.python.org/
Group: Development/Languages/Python Group: Development/Languages/Python
%define tarversion %{version} #%%define tarversion %{version}
%define tarversion 2.7.3rc2
%define tarname Python-%{tarversion} %define tarname Python-%{tarversion}
Source0: %{tarname}.tar.bz2 Source0: %{tarname}.tar.bz2
Source1: README.SUSE Source1: README.SUSE
@ -41,18 +40,18 @@ Source4: python.csh
# COMMON-PATCH-BEGIN # COMMON-PATCH-BEGIN
Patch1: python-2.7-dirs.patch Patch1: python-2.7-dirs.patch
Patch2: python-distutils-rpm-8.patch Patch2: python-distutils-rpm-8.patch
Patch3: python-2.7.2-multilib.patch Patch3: python-2.7.3rc2-multilib.patch
Patch4: python-2.5.1-sqlite.patch Patch4: python-2.5.1-sqlite.patch
Patch5: python-2.7rc2-canonicalize2.patch Patch5: python-2.7.3rc2-canonicalize2.patch
Patch6: python-2.7rc2-configure.patch Patch6: python-2.7rc2-configure.patch
Patch7: python-2.6-gettext-plurals.patch Patch7: python-2.6-gettext-plurals.patch
Patch8: python-2.6b3-curses-panel.patch Patch8: python-2.6b3-curses-panel.patch
Patch9: python-2.7.1-distutils_test_path.patch Patch9: python-2.7.1-distutils_test_path.patch
Patch10: sparc_longdouble.patch Patch10: sparc_longdouble.patch
Patch11: python-2.7.2-linux3.patch
Patch12: http://psf.upfronthosting.co.za/roundup/tracker/file19029/python-test_structmembers.patch Patch12: http://psf.upfronthosting.co.za/roundup/tracker/file19029/python-test_structmembers.patch
Patch13: python-2.7.2-fix_date_time_compiler.patch Patch13: python-2.7.2-fix_date_time_compiler.patch
Patch14: python-2.7.1-urllib-noproxy.patch Patch15: python-2.7.2-disable-tests-in-test_io.patch
Patch16: pypirc-secure.diff
# COMMON-PATCH-END # COMMON-PATCH-END
BuildRequires: automake BuildRequires: automake
BuildRequires: db-devel BuildRequires: db-devel
@ -166,10 +165,13 @@ implementation of the standard Unix DBM databases.
%patch8 %patch8
%patch9 -p1 %patch9 -p1
%patch10 -p1 %patch10 -p1
%patch11
%patch12 %patch12
%patch13 %patch13
%patch14 -p1 #skip test_io test for ppc,ppc64 as it broken.
%ifarch ppc ppc64
%patch15 -p1
%endif
%patch16 -p1
# COMMON-PREP-END # COMMON-PREP-END
# drop Autoconf version requirement # drop Autoconf version requirement
@ -208,7 +210,7 @@ if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then
ulimit -v 10000000 || : ulimit -v 10000000 || :
fi fi
LIST="test_urllib test_ssl test_hashlib test_hmac test_urllib2_localnet test_unicodedata test_tarfile test_sqlite test_tcl test_anydbm test_dumbdbm test_gdbm test_whichdb test_tk test_ttk_textonly test_bsddb test_readline " LIST="test_urllib test_ssl test_hashlib test_hmac test_urllib2_localnet test_unicodedata test_tarfile test_sqlite test_tcl test_anydbm test_dumbdbm test_gdbm test_whichdb test_tk test_ttk_textonly test_bsddb test_readline "
make test TESTOPTS="$LIST" make test TESTOPTS="$LIST" TESTPYTHONOPTS="-R"
%endif %endif
%install %install
@ -230,7 +232,9 @@ done
# kill imageop.so, it's insecure # kill imageop.so, it's insecure
rm -f %{buildroot}/%{_libdir}/python%{python_version}/lib-dynload/imageop.so rm -f %{buildroot}/%{_libdir}/python%{python_version}/lib-dynload/imageop.so
#cleanup for -base #cleanup for -base
rm %{buildroot}%{_bindir}/python{,%{python_version}} rm %{buildroot}%{_bindir}/python%{python_version}
rm %{buildroot}%{_bindir}/python2
rm %{buildroot}%{_bindir}/python
rm %{buildroot}%{_bindir}/smtpd.py rm %{buildroot}%{_bindir}/smtpd.py
rm %{buildroot}%{_bindir}/pydoc rm %{buildroot}%{_bindir}/pydoc
rm %{buildroot}%{_bindir}/2to3 rm %{buildroot}%{_bindir}/2to3
@ -239,6 +243,7 @@ rm %{buildroot}%{_libdir}/libpython*.so.*
rm %{buildroot}%{_libdir}/python rm %{buildroot}%{_libdir}/python
find %{buildroot}%{_libdir}/python%{python_version} -maxdepth 1 ! \( -name "ssl.py" \) -exec rm {} ";" find %{buildroot}%{_libdir}/python%{python_version} -maxdepth 1 ! \( -name "ssl.py" \) -exec rm {} ";"
rm %{buildroot}%{_bindir}/python%{python_version}-config rm %{buildroot}%{_bindir}/python%{python_version}-config
rm %{buildroot}%{_bindir}/python2-config
rm %{buildroot}%{_bindir}/python-config rm %{buildroot}%{_bindir}/python-config
rm %{buildroot}%{_libdir}/pkgconfig/* rm %{buildroot}%{_libdir}/pkgconfig/*
rm -r %{buildroot}%{_includedir}/python rm -r %{buildroot}%{_includedir}/python
@ -314,7 +319,7 @@ rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_codecs*.so
rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so
rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/audioop.so rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/audioop.so
rm -f %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/dl.so rm -f %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/dl.so
rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/Python-%{version}-py%{python_version}.egg-info rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info
# replace duplicate .pyo/.pyc with hardlinks # replace duplicate .pyo/.pyc with hardlinks
%fdupes %{buildroot}/%{_libdir}/python%{python_version} %fdupes %{buildroot}/%{_libdir}/python%{python_version}
######################################## ########################################