* Tue Dec 28 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.5.b2

- 3.2b2
- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
patch 8 (systemtap), patch 102 (lib64)
- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
fixed upstream)
- regenerate patch 300 (autotool intermediates)
- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
patch 128)
- stop using runtest.sh in %%check (dropped by upstream), replacing with
regrtest; fixup list of failing tests
- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
- rework manifests of shared libraries to use "SOABI_" macros, reflecting
PEP 3149
- drop itertools, operator and _collections modules from the manifests as py3k
commit r84058 moved these inside libpython; json/tests moved to test/json_tests
- move turtle code into the tkinter subpackage
This commit is contained in:
David Malcolm 2010-12-29 13:26:29 -05:00
parent 824c34b61e
commit 5080ffc5d3
11 changed files with 1910 additions and 466 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
libpython-36a517ef7848cbd0b3dcc7371f32e47ac4c87eba.tar.gz libpython-36a517ef7848cbd0b3dcc7371f32e47ac4c87eba.tar.gz
Python-3.1.2.tar.bz2 Python-3.1.2.tar.bz2
Python-3.2a1.tar.bz2 Python-3.2a1.tar.bz2
/Python-3.2b2.tar.bz2

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
diff -up Python-3.2b2/Lib/test/test_gc.py.fix-test-gc-COUNT_ALLOCS Python-3.2b2/Lib/test/test_gc.py
--- Python-3.2b2/Lib/test/test_gc.py.fix-test-gc-COUNT_ALLOCS 2010-12-28 20:39:40.779059772 -0500
+++ Python-3.2b2/Lib/test/test_gc.py 2010-12-28 20:41:15.890940017 -0500
@@ -102,10 +102,16 @@ class GCTests(unittest.TestCase):
del a
self.assertNotEqual(gc.collect(), 0)
del B, C
- self.assertNotEqual(gc.collect(), 0)
+ if hasattr(sys, 'getcounts'):
+ self.assertEqual(gc.collect(), 0)
+ else:
+ self.assertNotEqual(gc.collect(), 0)
A.a = A()
del A
- self.assertNotEqual(gc.collect(), 0)
+ if hasattr(sys, 'getcounts'):
+ self.assertEqual(gc.collect(), 0)
+ else:
+ self.assertNotEqual(gc.collect(), 0)
self.assertEqual(gc.collect(), 0)
def test_method(self):

View File

@ -1,13 +1,13 @@
diff -up Python-3.2a1/Lib/distutils/command/install.py.lib64 Python-3.2a1/Lib/distutils/command/install.py diff -up Python-3.2b2/Lib/distutils/command/install.py.lib64 Python-3.2b2/Lib/distutils/command/install.py
--- Python-3.2a1/Lib/distutils/command/install.py.lib64 2010-07-22 08:50:05.000000000 -0400 --- Python-3.2b2/Lib/distutils/command/install.py.lib64 2010-11-24 22:46:44.000000000 -0500
+++ Python-3.2a1/Lib/distutils/command/install.py 2010-08-02 18:33:15.667001759 -0400 +++ Python-3.2b2/Lib/distutils/command/install.py 2010-12-29 10:21:55.510184563 -0500
@@ -47,14 +47,14 @@ else: @@ -47,14 +47,14 @@ else:
INSTALL_SCHEMES = { INSTALL_SCHEMES = {
'unix_prefix': { 'unix_prefix': {
'purelib': '$base/lib/python$py_version_short/site-packages', 'purelib': '$base/lib/python$py_version_short/site-packages',
- 'platlib': '$platbase/lib/python$py_version_short/site-packages', - 'platlib': '$platbase/lib/python$py_version_short/site-packages',
+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages', + 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
'headers': '$base/include/python$py_version_short/$dist_name', 'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
'scripts': '$base/bin', 'scripts': '$base/bin',
'data' : '$base', 'data' : '$base',
}, },
@ -18,10 +18,10 @@ diff -up Python-3.2a1/Lib/distutils/command/install.py.lib64 Python-3.2a1/Lib/di
'headers': '$base/include/python/$dist_name', 'headers': '$base/include/python/$dist_name',
'scripts': '$base/bin', 'scripts': '$base/bin',
'data' : '$base', 'data' : '$base',
diff -up Python-3.2a1/Lib/distutils/sysconfig.py.lib64 Python-3.2a1/Lib/distutils/sysconfig.py diff -up Python-3.2b2/Lib/distutils/sysconfig.py.lib64 Python-3.2b2/Lib/distutils/sysconfig.py
--- Python-3.2a1/Lib/distutils/sysconfig.py.lib64 2010-07-23 05:43:17.000000000 -0400 --- Python-3.2b2/Lib/distutils/sysconfig.py.lib64 2010-11-24 14:43:47.000000000 -0500
+++ Python-3.2a1/Lib/distutils/sysconfig.py 2010-08-02 18:33:15.669000547 -0400 +++ Python-3.2b2/Lib/distutils/sysconfig.py 2010-12-29 10:21:55.510184563 -0500
@@ -117,8 +117,12 @@ def get_python_lib(plat_specific=0, stan @@ -124,8 +124,12 @@ def get_python_lib(plat_specific=0, stan
prefix = plat_specific and EXEC_PREFIX or PREFIX prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix": if os.name == "posix":
@ -35,10 +35,10 @@ diff -up Python-3.2a1/Lib/distutils/sysconfig.py.lib64 Python-3.2a1/Lib/distutil
if standard_lib: if standard_lib:
return libpython return libpython
else: else:
diff -up Python-3.2a1/Lib/site.py.lib64 Python-3.2a1/Lib/site.py diff -up Python-3.2b2/Lib/site.py.lib64 Python-3.2b2/Lib/site.py
--- Python-3.2a1/Lib/site.py.lib64 2010-06-27 17:45:24.000000000 -0400 --- Python-3.2b2/Lib/site.py.lib64 2010-10-12 18:23:23.000000000 -0400
+++ Python-3.2a1/Lib/site.py 2010-08-02 18:34:30.584001242 -0400 +++ Python-3.2b2/Lib/site.py 2010-12-29 10:21:55.511184595 -0500
@@ -283,12 +283,16 @@ def getsitepackages(): @@ -275,12 +275,16 @@ def getsitepackages():
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"))
elif os.sep == '/': elif os.sep == '/':
@ -55,22 +55,75 @@ diff -up Python-3.2a1/Lib/site.py.lib64 Python-3.2a1/Lib/site.py
sitepackages.append(os.path.join(prefix, "lib", "site-packages")) sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
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
diff -up Python-3.2a1/Makefile.pre.in.lib64 Python-3.2a1/Makefile.pre.in diff -up Python-3.2b2/Lib/sysconfig.py.lib64 Python-3.2b2/Lib/sysconfig.py
--- Python-3.2a1/Makefile.pre.in.lib64 2010-08-02 18:33:15.000000000 -0400 --- Python-3.2b2/Lib/sysconfig.py.lib64 2010-11-24 20:34:47.000000000 -0500
+++ Python-3.2a1/Makefile.pre.in 2010-08-02 18:35:07.147000664 -0400 +++ Python-3.2b2/Lib/sysconfig.py 2010-12-29 10:21:55.512184877 -0500
@@ -100,7 +100,7 @@ LIBDIR= @libdir@ @@ -21,10 +21,10 @@ __all__ = [
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{base}/lib/python{py_version_short}',
- 'platstdlib': '{platbase}/lib/python{py_version_short}',
+ 'stdlib': '{base}/lib64/python{py_version_short}',
+ 'platstdlib': '{platbase}/lib64/python{py_version_short}',
'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
'include':
'{base}/include/python{py_version_short}{abiflags}',
'platinclude':
@@ -81,10 +81,10 @@ _INSTALL_SCHEMES = {
'data' : '{userbase}',
},
'posix_user': {
- 'stdlib': '{userbase}/lib/python{py_version_short}',
- 'platstdlib': '{userbase}/lib/python{py_version_short}',
+ 'stdlib': '{userbase}/lib64/python{py_version_short}',
+ 'platstdlib': '{userbase}/lib64/python{py_version_short}',
'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data' : '{userbase}',
diff -up Python-3.2b2/Lib/test/test_site.py.lib64 Python-3.2b2/Lib/test/test_site.py
--- Python-3.2b2/Lib/test/test_site.py.lib64 2010-12-29 10:35:12.417308989 -0500
+++ Python-3.2b2/Lib/test/test_site.py 2010-12-29 10:36:27.124059073 -0500
@@ -164,12 +164,15 @@ class HelperFunctionsTests(unittest.Test
wanted = os.path.join('xoxo', 'Lib', 'site-packages')
self.assertEqual(dirs[0], wanted)
elif os.sep == '/':
- self.assertEqual(len(dirs), 2)
- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
+ self.assertEqual(len(dirs), 3)
+ wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3],
'site-packages')
self.assertEqual(dirs[0], wanted)
- wanted = os.path.join('xoxo', 'lib', 'site-python')
+ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
+ 'site-packages')
self.assertEqual(dirs[1], wanted)
+ wanted = os.path.join('xoxo', 'lib', 'site-python')
+ self.assertEqual(dirs[2], wanted)
else:
self.assertEqual(len(dirs), 2)
self.assertEqual(dirs[0], 'xoxo')
diff -up Python-3.2b2/Makefile.pre.in.lib64 Python-3.2b2/Makefile.pre.in
--- Python-3.2b2/Makefile.pre.in.lib64 2010-12-29 10:21:55.506183982 -0500
+++ Python-3.2b2/Makefile.pre.in 2010-12-29 10:21:55.512184877 -0500
@@ -102,7 +102,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@ MANDIR= @mandir@
INCLUDEDIR= @includedir@ INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include CONFINCLUDEDIR= $(exec_prefix)/include
-SCRIPTDIR= $(prefix)/lib -SCRIPTDIR= $(prefix)/lib
+SCRIPTDIR= $(prefix)/lib64 +SCRIPTDIR= $(prefix)/lib64
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories # Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION) diff -up Python-3.2b2/Modules/getpath.c.lib64 Python-3.2b2/Modules/getpath.c
diff -up Python-3.2a1/Modules/getpath.c.lib64 Python-3.2a1/Modules/getpath.c --- Python-3.2b2/Modules/getpath.c.lib64 2010-12-03 15:14:31.000000000 -0500
--- Python-3.2a1/Modules/getpath.c.lib64 2010-07-23 12:05:35.000000000 -0400 +++ Python-3.2b2/Modules/getpath.c 2010-12-29 10:21:55.513184358 -0500
+++ Python-3.2a1/Modules/getpath.c 2010-08-02 18:35:50.857000717 -0400 @@ -122,8 +122,8 @@
@@ -117,8 +117,8 @@
#endif #endif
#ifndef PYTHONPATH #ifndef PYTHONPATH
@ -81,45 +134,46 @@ diff -up Python-3.2a1/Modules/getpath.c.lib64 Python-3.2a1/Modules/getpath.c
#endif #endif
#ifndef LANDMARK #ifndef LANDMARK
@@ -129,7 +129,7 @@ static wchar_t prefix[MAXPATHLEN+1]; @@ -134,7 +134,7 @@ static wchar_t prefix[MAXPATHLEN+1];
static wchar_t exec_prefix[MAXPATHLEN+1]; static wchar_t exec_prefix[MAXPATHLEN+1];
static wchar_t progpath[MAXPATHLEN+1]; static wchar_t progpath[MAXPATHLEN+1];
static wchar_t *module_search_path = NULL; static wchar_t *module_search_path = NULL;
-static wchar_t *lib_python = L"lib/python" VERSION; -static wchar_t *lib_python = L"lib/python" VERSION;
+static wchar_t *lib_python = L"lib64/python" VERSION; +static wchar_t *lib_python = L"lib64/python" VERSION;
/* In principle, this should use HAVE__WSTAT, and _wstat static void
should be detected by autoconf. However, no current reduce(wchar_t *dir)
@@ -603,7 +603,7 @@ calculate_path(void) @@ -582,7 +582,7 @@ calculate_path(void)
} }
else else
wcsncpy(zip_path, L"" PREFIX, MAXPATHLEN); wcsncpy(zip_path, _prefix, MAXPATHLEN);
- joinpath(zip_path, L"lib/python00.zip"); - joinpath(zip_path, L"lib/python00.zip");
+ joinpath(zip_path, L"lib64/python00.zip"); + joinpath(zip_path, L"lib64/python00.zip");
bufsz = wcslen(zip_path); /* Replace "00" with version */ bufsz = wcslen(zip_path); /* Replace "00" with version */
zip_path[bufsz - 6] = VERSION[0]; zip_path[bufsz - 6] = VERSION[0];
zip_path[bufsz - 5] = VERSION[2]; zip_path[bufsz - 5] = VERSION[2];
@@ -613,7 +613,7 @@ calculate_path(void) @@ -592,7 +592,7 @@ calculate_path(void)
fprintf(stderr, fprintf(stderr,
"Could not find platform dependent libraries <exec_prefix>\n"); "Could not find platform dependent libraries <exec_prefix>\n");
wcsncpy(exec_prefix, L"" EXEC_PREFIX, MAXPATHLEN); wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
- joinpath(exec_prefix, L"lib/lib-dynload"); - joinpath(exec_prefix, L"lib/lib-dynload");
+ joinpath(exec_prefix, L"lib64/lib-dynload"); + joinpath(exec_prefix, L"lib64/lib-dynload");
} }
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
--- Python-3.2a1/setup.py.lib64 2010-07-23 15:25:47.000000000 -0400 diff -up Python-3.2b2/setup.py.lib64 Python-3.2b2/setup.py
+++ Python-3.2a1/setup.py 2010-08-02 18:36:51.521000448 -0400 --- Python-3.2b2/setup.py.lib64 2010-12-04 13:36:03.000000000 -0500
@@ -343,7 +343,7 @@ class PyBuildExt(build_ext): +++ Python-3.2b2/setup.py 2010-12-29 10:21:55.514184248 -0500
@@ -373,7 +373,7 @@ class PyBuildExt(build_ext):
def detect_modules(self): # Ensure that /usr/local is always used, but the local build
# Ensure that /usr/local is always used # directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') + add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
# Add paths specified in the environment variables LDFLAGS and # Add paths specified in the environment variables LDFLAGS and
@@ -587,11 +587,11 @@ class PyBuildExt(build_ext): @@ -619,11 +619,11 @@ class PyBuildExt(build_ext):
elif curses_library: elif curses_library:
readline_libs.append(curses_library) readline_libs.append(curses_library)
elif self.compiler.find_library_file(lib_dirs + elif self.compiler.find_library_file(lib_dirs +
@ -133,7 +187,7 @@ diff -up Python-3.2a1/Modules/getpath.c.lib64 Python-3.2a1/Modules/getpath.c
extra_link_args=readline_extra_link_args, extra_link_args=readline_extra_link_args,
libraries=readline_libs) ) libraries=readline_libs) )
else: else:
@@ -628,8 +628,8 @@ class PyBuildExt(build_ext): @@ -660,8 +660,8 @@ class PyBuildExt(build_ext):
if krb5_h: if krb5_h:
ssl_incs += krb5_h ssl_incs += krb5_h
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
@ -144,22 +198,3 @@ diff -up Python-3.2a1/Modules/getpath.c.lib64 Python-3.2a1/Modules/getpath.c
] ) ] )
if (ssl_incs is not None and if (ssl_incs is not None and
Index: Lib/sysconfig.py
===================================================================
--- Python-3.2a1/Lib/sysconfig.py
+++ Python-3.2a1/Lib/sysconfig.py 2010-08-22 14:34:38.791426924 +0200
@@ -11,10 +11,10 @@
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{base}/lib/python{py_version_short}',
- 'platstdlib': '{platbase}/lib/python{py_version_short}',
- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'stdlib': '{base}/lib64/python{py_version_short}',
+ 'platstdlib': '{platbase}/lib64/python{py_version_short}',
+ 'purelib': '{base}/lib64/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
'include': '{base}/include/python{py_version_short}',
'platinclude': '{platbase}/include/python{py_version_short}',
'scripts': '{base}/bin',

View File

@ -1,17 +1,17 @@
diff -up Python-3.2a1/Makefile.pre.in.no-static-lib Python-3.2a1/Makefile.pre.in diff -up Python-3.2b2/Makefile.pre.in.no-static-lib Python-3.2b2/Makefile.pre.in
--- Python-3.2a1/Makefile.pre.in.no-static-lib 2010-07-17 16:39:23.000000000 -0400 --- Python-3.2b2/Makefile.pre.in.no-static-lib 2010-12-13 13:04:23.000000000 -0500
+++ Python-3.2a1/Makefile.pre.in 2010-08-02 16:02:28.378010008 -0400 +++ Python-3.2b2/Makefile.pre.in 2010-12-28 16:57:11.484065804 -0500
@@ -416,7 +416,7 @@ coverage: @@ -420,7 +420,7 @@ coverage:
# Build the interpreter # Build the interpreter
-$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) -$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
+$(BUILDPYTHON): Modules/python.o $(LDLIBRARY) +$(BUILDPYTHON): Modules/python.o $(LDLIBRARY)
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ \ $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
Modules/python.o \
$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) platform: $(BUILDPYTHON)
@@ -432,18 +432,6 @@ sharedmods: $(BUILDPYTHON) @@ -434,18 +434,6 @@ sharedmods: $(BUILDPYTHON)
*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
esac esac
-# Build static library -# Build static library
@ -26,10 +26,10 @@ diff -up Python-3.2a1/Makefile.pre.in.no-static-lib Python-3.2a1/Makefile.pre.in
- $(AR) $(ARFLAGS) $@ $(MODOBJS) - $(AR) $(ARFLAGS) $@ $(MODOBJS)
- $(RANLIB) $@ - $(RANLIB) $@
- -
libpython$(VERSION).so: $(LIBRARY_OBJS) libpython$(LDVERSION).so: $(LIBRARY_OBJS)
if test $(INSTSONAME) != $(LDLIBRARY); then \ if test $(INSTSONAME) != $(LDLIBRARY); then \
$(LDSHARED) $(PY_LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
@@ -1003,18 +991,6 @@ libainstall: all python-config @@ -1035,18 +1023,6 @@ libainstall: all python-config
else true; \ else true; \
fi; \ fi; \
done done

View File

@ -1,10 +1,10 @@
diff -up Python-3.2a1/Lib/email/test/test_email.py.remove-mimeaudio-tests Python-3.2a1/Lib/email/test/test_email.py diff -up Python-3.2b2/Lib/email/test/test_email.py.remove-mimeaudio-tests Python-3.2b2/Lib/email/test/test_email.py
--- Python-3.2a1/Lib/email/test/test_email.py.remove-mimeaudio-tests 2010-08-02 15:52:12.397002172 -0400 --- Python-3.2b2/Lib/email/test/test_email.py.remove-mimeaudio-tests 2010-12-18 13:25:38.000000000 -0500
+++ Python-3.2a1/Lib/email/test/test_email.py 2010-08-02 15:52:38.132999850 -0400 +++ Python-3.2b2/Lib/email/test/test_email.py 2010-12-28 16:50:34.910309105 -0500
@@ -952,53 +952,6 @@ Blah blah blah @@ -977,53 +977,6 @@ Blah blah blah
-# Test the basic MIMEAudio class -# Test the basic MIMEAudio class
-class TestMIMEAudio(unittest.TestCase): -class TestMIMEAudio(unittest.TestCase):
- def setUp(self): - def setUp(self):
@ -51,7 +51,7 @@ diff -up Python-3.2a1/Lib/email/test/test_email.py.remove-mimeaudio-tests Python
- header='foobar') is missing) - header='foobar') is missing)
- -
- -
- -
# Test the basic MIMEImage class # Test the basic MIMEImage class
class TestMIMEImage(unittest.TestCase): class TestMIMEImage(unittest.TestCase):
def setUp(self): def setUp(self):

View File

@ -1,15 +1,7 @@
diff -up Python-3.2a1/configure.in.systemtap Python-3.2a1/configure.in diff -up Python-3.2b2/configure.in.systemtap Python-3.2b2/configure.in
--- Python-3.2a1/configure.in.systemtap 2010-07-19 03:31:40.000000000 -0400 --- Python-3.2b2/configure.in.systemtap 2010-12-13 02:59:39.000000000 -0500
+++ Python-3.2a1/configure.in 2010-08-02 16:19:43.809000621 -0400 +++ Python-3.2b2/configure.in 2010-12-28 17:01:58.044059433 -0500
@@ -1987,6 +1987,7 @@ AC_ARG_WITH(system_expat, @@ -2470,6 +2470,38 @@ if test "$with_valgrind" != no; then
AC_MSG_RESULT($with_system_expat)
# Check for use of the system libffi library
+
AC_MSG_CHECKING(for --with-system-ffi)
AC_ARG_WITH(system_ffi,
AS_HELP_STRING([--with-system-ffi], [build _ctypes module using an installed ffi library]))
@@ -2500,6 +2501,38 @@ if test "$with_valgrind" != no; then
OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
fi fi
@ -45,12 +37,12 @@ diff -up Python-3.2a1/configure.in.systemtap Python-3.2a1/configure.in
+AC_SUBST(DTRACEOBJS) +AC_SUBST(DTRACEOBJS)
+AC_SUBST(DTRACEHDRS) +AC_SUBST(DTRACEHDRS)
+ +
# Check for --with-wctype-functions # -I${DLINCLDIR} is added to the compile rule for importdl.o
AC_MSG_CHECKING(for --with-wctype-functions) AC_SUBST(DLINCLDIR)
AC_ARG_WITH(wctype-functions, DLINCLDIR=.
diff -up Python-3.2a1/Include/pydtrace.d.systemtap Python-3.2a1/Include/pydtrace.d diff -up Python-3.2b2/Include/pydtrace.d.systemtap Python-3.2b2/Include/pydtrace.d
--- Python-3.2a1/Include/pydtrace.d.systemtap 2010-08-02 16:17:04.249000540 -0400 --- Python-3.2b2/Include/pydtrace.d.systemtap 2010-12-28 16:58:41.762936379 -0500
+++ Python-3.2a1/Include/pydtrace.d 2010-08-02 16:17:04.249000540 -0400 +++ Python-3.2b2/Include/pydtrace.d 2010-12-28 16:58:41.762936379 -0500
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
+provider python { +provider python {
+ probe function__entry(const char *, const char *, int); + probe function__entry(const char *, const char *, int);
@ -62,20 +54,20 @@ diff -up Python-3.2a1/Include/pydtrace.d.systemtap Python-3.2a1/Include/pydtrace
+#pragma D attributes Private/Private/Common provider python function +#pragma D attributes Private/Private/Common provider python function
+#pragma D attributes Evolving/Evolving/Common provider python name +#pragma D attributes Evolving/Evolving/Common provider python name
+#pragma D attributes Evolving/Evolving/Common provider python args +#pragma D attributes Evolving/Evolving/Common provider python args
diff -up Python-3.2a1/Makefile.pre.in.systemtap Python-3.2a1/Makefile.pre.in diff -up Python-3.2b2/Makefile.pre.in.systemtap Python-3.2b2/Makefile.pre.in
--- Python-3.2a1/Makefile.pre.in.systemtap 2010-08-02 16:17:04.243000614 -0400 --- Python-3.2b2/Makefile.pre.in.systemtap 2010-12-28 16:58:41.000000000 -0500
+++ Python-3.2a1/Makefile.pre.in 2010-08-02 16:20:41.617000527 -0400 +++ Python-3.2b2/Makefile.pre.in 2010-12-28 17:00:58.607310089 -0500
@@ -324,6 +324,7 @@ PYTHON_OBJS= \ @@ -328,6 +328,7 @@ PYTHON_OBJS= \
Python/dtoa.o \
Python/formatter_unicode.o \ Python/formatter_unicode.o \
Python/fileutils.o \
Python/$(DYNLOADFILE) \ Python/$(DYNLOADFILE) \
+ @DTRACEOBJS@ \ + @DTRACEOBJS@ \
$(LIBOBJS) \ $(LIBOBJS) \
$(MACHDEP_OBJS) \ $(MACHDEP_OBJS) \
$(THREADOBJ) $(THREADOBJ)
@@ -615,6 +616,18 @@ Python/formatter_unicode.o: $(srcdir)/Py @@ -632,6 +633,18 @@ Objects/typeobject.o: $(srcdir)/Objects/
$(srcdir)/Objects/stringlib/formatter.h $(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
+# Only needed with --with-dtrace +# Only needed with --with-dtrace
+buildinclude: +buildinclude:
@ -92,7 +84,7 @@ diff -up Python-3.2a1/Makefile.pre.in.systemtap Python-3.2a1/Makefile.pre.in
############################################################################ ############################################################################
# Header files # Header files
@@ -1248,7 +1261,7 @@ Python/thread.o: @THREADHEADERS@ @@ -1282,7 +1295,7 @@ Python/thread.o: @THREADHEADERS@
.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
.PHONY: frameworkaltinstallunixtools recheck autoconf clean clobber distclean .PHONY: frameworkaltinstallunixtools recheck autoconf clean clobber distclean
@ -101,10 +93,10 @@ diff -up Python-3.2a1/Makefile.pre.in.systemtap Python-3.2a1/Makefile.pre.in
.PHONY: gdbhooks .PHONY: gdbhooks
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff -up Python-3.2a1/pyconfig.h.in.systemtap Python-3.2a1/pyconfig.h.in diff -up Python-3.2b2/pyconfig.h.in.systemtap Python-3.2b2/pyconfig.h.in
--- Python-3.2a1/pyconfig.h.in.systemtap 2010-08-02 16:18:33.696001964 -0400 --- Python-3.2b2/pyconfig.h.in.systemtap 2010-11-20 05:29:12.000000000 -0500
+++ Python-3.2a1/pyconfig.h.in 2010-08-02 16:21:48.566001832 -0400 +++ Python-3.2b2/pyconfig.h.in 2010-12-28 16:58:41.765937360 -0500
@@ -1078,6 +1078,9 @@ @@ -1092,6 +1092,9 @@
/* Define if you want documentation strings in extension modules */ /* Define if you want documentation strings in extension modules */
#undef WITH_DOC_STRINGS #undef WITH_DOC_STRINGS
@ -114,10 +106,10 @@ diff -up Python-3.2a1/pyconfig.h.in.systemtap Python-3.2a1/pyconfig.h.in
/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic /* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
Dyld is necessary to support frameworks. */ Dyld is necessary to support frameworks. */
diff -up Python-3.2a1/Python/ceval.c.systemtap Python-3.2a1/Python/ceval.c diff -up Python-3.2b2/Python/ceval.c.systemtap Python-3.2b2/Python/ceval.c
--- Python-3.2a1/Python/ceval.c.systemtap 2010-07-20 18:39:34.000000000 -0400 --- Python-3.2b2/Python/ceval.c.systemtap 2010-12-03 15:14:31.000000000 -0500
+++ Python-3.2a1/Python/ceval.c 2010-08-02 16:23:58.703001000 -0400 +++ Python-3.2b2/Python/ceval.c 2010-12-28 16:58:41.768935588 -0500
@@ -19,6 +19,10 @@ @@ -18,6 +18,10 @@
#include <ctype.h> #include <ctype.h>
@ -128,7 +120,7 @@ diff -up Python-3.2a1/Python/ceval.c.systemtap Python-3.2a1/Python/ceval.c
#ifndef WITH_TSC #ifndef WITH_TSC
#define READ_TIMESTAMP(var) #define READ_TIMESTAMP(var)
@@ -752,6 +756,70 @@ PyEval_EvalCode(PyCodeObject *co, PyObje @@ -766,6 +770,70 @@ PyEval_EvalCode(PyObject *co, PyObject *
} }
@ -199,7 +191,7 @@ diff -up Python-3.2a1/Python/ceval.c.systemtap Python-3.2a1/Python/ceval.c
/* Interpreter main loop */ /* Interpreter main loop */
PyObject * PyObject *
@@ -1156,6 +1224,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int @@ -1183,6 +1251,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int
} }
} }
@ -210,7 +202,7 @@ diff -up Python-3.2a1/Python/ceval.c.systemtap Python-3.2a1/Python/ceval.c
co = f->f_code; co = f->f_code;
names = co->co_names; names = co->co_names;
consts = co->co_consts; consts = co->co_consts;
@@ -3046,6 +3118,9 @@ fast_yield: @@ -3048,6 +3120,9 @@ fast_yield:
/* pop frame */ /* pop frame */
exit_eval_frame: exit_eval_frame:

View File

@ -0,0 +1,17 @@
diff -up Python-3.2b2/Lib/test/test_weakref.py.test-weakref-COUNT_ALLOCS_fix Python-3.2b2/Lib/test/test_weakref.py
--- Python-3.2b2/Lib/test/test_weakref.py.test-weakref-COUNT_ALLOCS_fix 2010-12-28 20:33:46.963364990 -0500
+++ Python-3.2b2/Lib/test/test_weakref.py 2010-12-28 20:35:44.115935248 -0500
@@ -583,9 +583,10 @@ class ReferencesTestCase(TestBase):
# been cleared without their callbacks executing. OTOH, the weakref
# to C is bound to a function local (wr), and wasn't trash, so that
# callback should have been invoked when C went away.
- self.assertEqual(alist, ["C went away"])
- # The remaining weakref should be dead now (its callback ran).
- self.assertEqual(wr(), None)
+ if not hasattr(sys, 'getcounts'):
+ self.assertEqual(alist, ["C went away"])
+ # The remaining weakref should be dead now (its callback ran).
+ self.assertEqual(wr(), None)
del alist[:]
gc.collect()

View File

@ -0,0 +1,13 @@
diff -up Python-3.2b2/Lib/test/test_sys.py.fix-test-sys-COUNT_ALLOCS Python-3.2b2/Lib/test/test_sys.py
--- Python-3.2b2/Lib/test/test_sys.py.fix-test-sys-COUNT_ALLOCS 2010-12-28 20:52:43.236310184 -0500
+++ Python-3.2b2/Lib/test/test_sys.py 2010-12-28 20:58:09.164184094 -0500
@@ -817,6 +817,9 @@ class SizeofTest(unittest.TestCase):
# (PyTypeObject + PyNumberMethods + PyMappingMethods +
# PySequenceMethods + PyBufferProcs)
s = size(vh + 'P2P15Pl4PP9PP11PI') + size('16Pi17P 3P 10P 2P 2P')
+ # COUNT_ALLOCS adds a further 3 Py_ssize_t and 2 pointers:
+ if hasattr(sys, 'getcounts'):
+ s += size('3P2P')
check(int, s)
# class
class newstyleclass(object): pass

View File

@ -1,9 +1,27 @@
%global pybasever 3.2 %global pybasever 3.2
%global alphatag a1
# pybasever without the dot:
%global pyshortver 32
%global alphatag b2
%global pylibdir %{_libdir}/python%{pybasever} %global pylibdir %{_libdir}/python%{pybasever}
%global dynload_dir %{pylibdir}/lib-dynload %global dynload_dir %{pylibdir}/lib-dynload
# SOABI is defined in the upstream configure.in from Python-3.2a2 onwards,
# for PEP 3149:
# http://www.python.org/dev/peps/pep-3149/
# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
%global ABIFLAGS_optimized mu
%global ABIFLAGS_debug dmu
%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}
%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}
# All bytecode files are now in a __pycache__ subdirectory, with a name # All bytecode files are now in a __pycache__ subdirectory, with a name
# reflecting the version of the bytecode (to permit sharing of python libraries # reflecting the version of the bytecode (to permit sharing of python libraries
# between different runtimes) # between different runtimes)
@ -23,8 +41,8 @@
# (if these get out of sync, the payload of the libs subpackage will fail # (if these get out of sync, the payload of the libs subpackage will fail
# and halt the build) # and halt the build)
%global py_SOVERSION 1.0 %global py_SOVERSION 1.0
%global py_INSTSONAME_optimized libpython%{pybasever}.so.%{py_SOVERSION} %global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION}
%global py_INSTSONAME_debug libpython%{pybasever}_d.so.%{py_SOVERSION} %global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
%global with_debug_build 1 %global with_debug_build 1
@ -149,91 +167,20 @@ Patch1: Python-3.1.1-rpath.patch
# The four TestMIMEAudio tests fail due to "audiotest.au" not being packaged. # The four TestMIMEAudio tests fail due to "audiotest.au" not being packaged.
# It's simplest to remove them: # It's simplest to remove them:
Patch3: python-3.2a1-remove-mimeaudio-tests.patch Patch3: python-3.2b2-remove-mimeaudio-tests.patch
# ImportTests.test_issue1267 in test_imp.py reads pydoc.py's shebang line and
# checks that it read it correctly.
#
# Since we modify the shebang lines in our packaging, we also need to modify
# the expected value in this test:
Patch4: python-3.2a1-apply-our-changes-to-expected-shebang-for-test_imp.patch
# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build # Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
# a libpythonMAJOR.MINOR.a (bug 550692): # a libpythonMAJOR.MINOR.a (bug 550692):
Patch6: python-3.2a1-no-static-lib.patch Patch6: python-3.2b2-no-static-lib.patch
# Systemtap support: add statically-defined probe points # Systemtap support: add statically-defined probe points
# Patch based on upstream bug: http://bugs.python.org/issue4111 # Patch based on upstream bug: http://bugs.python.org/issue4111
# fixed up by mjw and wcohen for 2.6.2, then fixed up by dmalcolm for 2.6.4 # fixed up by mjw and wcohen for 2.6.2, then fixed up by dmalcolm for 2.6.4
# then rewritten by mjw (attachment 390110 of rhbz 545179); ported to 3.1.1 by # then rewritten by mjw (attachment 390110 of rhbz 545179); ported to 3.1.1 by
# dmalcolm # dmalcolm
Patch8: python-3.2a1-systemtap.patch Patch8: python-3.2b2-systemtap.patch
Patch102: python-3.2a1-lib64.patch Patch102: python-3.2b2-lib64.patch
# Patch to support building both optimized vs debug stacks DSO ABIs, sharing
# the same .py and .pyc files, using "_d.so" to signify a debug build of an
# extension module.
#
# Based on Debian's patch for the same,
# http://patch-tracker.debian.org/patch/series/view/python2.6/2.6.5-2/debug-build.dpatch
#
# (which was itself based on the upstream Windows build), but with some
# changes:
#
# * Debian's patch to dynload_shlib.c looks for module_d.so, then module.so,
# but this can potentially find a module built against the wrong DSO ABI. We
# instead search for just module_d.so in a debug build
#
# * We remove this change from configure.in's build of the Makefile:
# SO=$DEBUG_EXT.so
# so that sysconfig.py:customize_compiler stays with shared_lib_extension='.so'
# on debug builds, so that UnixCCompiler.find_library_file can find system
# libraries (otherwise "make sharedlibs" fails to find system libraries,
# erroneously looking e.g. for "libffi_d.so" rather than "libffi.so")
#
# * We change Lib/distutils/command/build_ext.py:build_ext.get_ext_filename
# to add the _d there, when building an extension. This way, "make sharedlibs"
# can build ctypes, by finding the sysmtem libffi.so (rather than failing to
# find "libffi_d.so"), and builds the module as _ctypes_d.so
#
# * Similarly, update build_ext:get_libraries handling of Py_ENABLE_SHARED by
# appending "_d" to the python library's name for the debug configuration
#
# * We modify Modules/makesetup to add the "_d" to the generated Makefile
# rules for the various Modules/*.so targets
#
# This may introduce issues when building an extension that links directly
# against another extension (e.g. users of NumPy?), but seems more robust when
# searching for external libraries
#
# * We don't change Lib/distutils/command/build.py: build.build_purelib to
# embed plat_specifier, leaving it as is, as pure python builds should be
# unaffected by these differences (we'll be sharing the .py and .pyc files)
#
# * We introduce DEBUG_SUFFIX as well as DEBUG_EXT:
# - DEBUG_EXT is used by ELF files (names and SONAMEs); it will be "_d" for
# a debug build
# - DEBUG_SUFFIX is used by filesystem paths; it will be "-debug" for a
# debug build
#
# Both will be empty in an optimized build. "_d" contains characters that
# are valid ELF metadata, but this leads to various ugly filesystem paths (such
# as the include path), and DEBUG_SUFFIX allows these paths to have more natural
# names. Changing this requires changes elsewhere in the distutils code.
#
# * We add DEBUG_SUFFIX to PYTHON in the Makefile, so that the two
# configurations build parallel-installable binaries with different names
# ("python-debug" vs "python").
#
# * Similarly, we add DEBUG_SUFFIX within python-config and
# python$(VERSION)-config, so that the two configuration get different paths
# for these.
#
# * Patch runtests.sh to support supplying a value for PYTHON, so that we can
# run the tests against each of the builds
Patch103: python-3.2a1-debug-build.patch
# Add configure-time support for the COUNT_ALLOCS and CALL_PROFILE options # Add configure-time support for the COUNT_ALLOCS and CALL_PROFILE options
# described at http://svn.python.org/projects/python/trunk/Misc/SpecialBuilds.txt # described at http://svn.python.org/projects/python/trunk/Misc/SpecialBuilds.txt
@ -245,17 +192,6 @@ Patch104: python-3.1.2-more-configuration-flags.patch
# (rhbz:553020); partially upstream as http://bugs.python.org/issue7647 # (rhbz:553020); partially upstream as http://bugs.python.org/issue7647
Patch105: python-3.2a1-statvfs-f_flag-constants.patch Patch105: python-3.2a1-statvfs-f_flag-constants.patch
# Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
# a segfault running test_pyexpat.py (rhbz:610312)
# Sent upstream as http://bugs.python.org/issue9054
Patch110: python-3.1.2-fix-expat-issue9054.patch
# Fix race condition in parallel make that could lead to graminit.c failing
# to compile, or linker errors with "undefined reference to
# `_PyParser_Grammar'":
# Not yet sent upstream:
Patch111: python-3.2a1-fix-parallel-make.patch
# COUNT_ALLOCS is useful for debugging, but the upstream behaviour of always # COUNT_ALLOCS is useful for debugging, but the upstream behaviour of always
# emitting debug info to stdout on exit is too verbose and makes it harder to # emitting debug info to stdout on exit is too verbose and makes it harder to
# use the debug build. Add a "PYTHONDUMPCOUNTS" environment variable which # use the debug build. Add a "PYTHONDUMPCOUNTS" environment variable which
@ -263,6 +199,20 @@ Patch111: python-3.2a1-fix-parallel-make.patch
# Not yet sent upstream: # Not yet sent upstream:
Patch125: less-verbose-COUNT_ALLOCS.patch Patch125: less-verbose-COUNT_ALLOCS.patch
# test_weakref's test_callback_in_cycle_resurrection doesn't work with
# COUNT_ALLOCS, as the metrics keep "C" alive. Work around this for our
# debug build:
# Not yet sent upstream
Patch126: python-3.2b2-test-weakref-COUNT_ALLOCS_fix.patch
# Similar COUNT_ALLOCS fixes for test_gc
# Not yet sent upstream
Patch127: python-3.2b2-fix-test-gc-COUNT_ALLOCS.patch
# Similar COUNT_ALLOCS fixes for test_sys
# Not yet sent upstream
Patch128: python-3.2b2-test_sys-COUNT_ALLOCS.patch
# This is the generated patch to "configure"; see the description of # This is the generated patch to "configure"; see the description of
# %{regenerate_autotooling_patch} # %{regenerate_autotooling_patch}
# above: # above:
@ -408,7 +358,6 @@ rm -r Modules/zlib || exit 1
# #
%patch1 -p1 %patch1 -p1
%patch3 -p1 -b .remove-mimeaudio-tests %patch3 -p1 -b .remove-mimeaudio-tests
%patch4 -p1 -b .apply-our-changes-to-expected-shebang
%patch6 -p1 -b .no-static-lib %patch6 -p1 -b .no-static-lib
%if 0%{?with_systemtap} %if 0%{?with_systemtap}
@ -419,17 +368,14 @@ rm -r Modules/zlib || exit 1
%patch102 -p1 %patch102 -p1
%endif %endif
%patch103 -p1
%patch104 -p1 -b .more-configuration-flags %patch104 -p1 -b .more-configuration-flags
%patch105 -p1 -b .statvfs-f-flag-constants %patch105 -p1 -b .statvfs-f-flag-constants
%patch110 -p0 -b .fix-expat-issue9054
%patch111 -p1 -b .parallel-grammar
%patch125 -p1 -b .less-verbose-COUNT_ALLOCS %patch125 -p1 -b .less-verbose-COUNT_ALLOCS
%patch126 -p1
%patch127 -p1
%patch128 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there # Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library. # are many differences between 2.6 and the Python 3 library.
@ -632,10 +578,21 @@ install -d -m 0755 %{buildroot}/usr/lib/python%{pybasever}/site-packages/__pycac
%global _pyconfig_h %{_pyconfig32_h} %global _pyconfig_h %{_pyconfig32_h}
%endif %endif
# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
%global ABIFLAGS_optimized mu
%global ABIFLAGS_debug dmu
%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}
%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}
%if 0%{?with_debug_build} %if 0%{?with_debug_build}
%global PyIncludeDirs python%{pybasever} python%{pybasever}-debug %global PyIncludeDirs python%{LDVERSION_optimized} python%{LDVERSION_debug}
%else %else
%global PyIncludeDirs python%{pybasever} %global PyIncludeDirs python%{LDVERSION_optimized}
%endif %endif
for PyIncludeDir in %{PyIncludeDirs} ; do for PyIncludeDir in %{PyIncludeDirs} ; do
@ -739,14 +696,14 @@ ldd %{buildroot}/%{dynload_dir}/_curses*.so \
# likewise for the optimized modules and libpython: # likewise for the optimized modules and libpython:
for Module in %{buildroot}/%{dynload_dir}/*.so ; do for Module in %{buildroot}/%{dynload_dir}/*.so ; do
case $Module in case $Module in
*_d.so) *.%{SOABI_debug})
ldd $Module | grep %{py_INSTSONAME_optimized} && ldd $Module | grep %{py_INSTSONAME_optimized} &&
(echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exi 1) (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
;; ;;
*) *.%{SOABI_optimized})
ldd $Module | grep %{py_INSTSONAME_debug} && ldd $Module | grep %{py_INSTSONAME_debug} &&
(echo Optimized module $Module linked against debug %{py_INSTSONAME_optimized} ; exi 1) (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
;; ;;
esac esac
done done
@ -784,59 +741,30 @@ sed \
topdir=$(pwd) topdir=$(pwd)
CheckPython() { CheckPython() {
ConfName=$1 ConfName=$1
ConfDir=build/$ConfName ConfDir=$(pwd)/build/$ConfName
echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
# Run the upstream test suite, using the "runtests.sh" harness from the upstream # Run the upstream test suite
# tarball. LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest -x test_distutils test_httplib test_http_cookies test_socket test_telnet
# I'm seeing occasional hangs in some http tests when running the test suite
# inside Koji. For that reason I exclude them
LD_LIBRARY_PATH=$ConfDir PYTHON=$ConfDir/python $topdir/runtests.sh -x test_httplib test_http_cookies
# Note that we're running the tests using the version of the code in the builddir, # Note that we're running the tests using the version of the code in the builddir,
# not in the buildroot. # not in the buildroot.
# The harness only emits the names of the test scripts it ran, along with a # I'm seeing occasional hangs in some http tests when running the test suite
# summary of the form: # inside Koji. For that reason I exclude them
# 2 BAD #
# 313 GOOD # Other known failures:
# 22 SKIPPED
# 337 total
# As a byproduct it writes files "GOOD", "BAD", "SKIPPED", listing names of
# files (e.g. "test_imp") along with a subdirectory OUT containing files of the
# form $TEST.out
# Each such logfile starts with a line indicating the name of the test
# Output the logs from failing tests, so that they are captured in the rpmbuild
# log:
for TESTNAME in $(cat BAD); do
cat OUT/$TESTNAME.out ;
done
# There are 5 expected BAD results here:
# #
# (1) test_distutils.py: tries to build an RPM inside the rpmbuild; I'll simply # (1) test_distutils.py: tries to build an RPM inside the rpmbuild; I'll simply
# let this one fail for now (has trouble linking against -lpython3.1; perhaps # let this one fail for now (has trouble linking against -lpython3.1; perhaps
# LD_LIBRARY_PATH is being discarded somewhere?) # LD_LIBRARY_PATH is being discarded somewhere?)
# #
# (2) test_imp.py: ImportTests.test_issue1267 in test_imp.py reads pydoc.py's # (2) test_socket.py:testSockName can fail here if DNS isn't properly set up:
# shebang line and checks that it read it correctly.tests that the shebang line
# is as expected. Unfortunately if we patch this up in the buildir (in the
# build phase), then the "make install" will try to reference
# /usr/bin/python%{pybasever} which won't exist on a clean build environment.
# So we fix up the shebang lines after this in the install phase, and expect
# this test to fail in the check phase. It ought to pass when run on the built
# RPMs
#
# (3) test_socket.py:testSockName can fail here if DNS isn't properly set up:
# my_ip_addr = socket.gethostbyname(socket.gethostname()) # my_ip_addr = socket.gethostbyname(socket.gethostname())
# socket.gaierror: [Errno -2] Name or service not known # socket.gaierror: [Errno -2] Name or service not known
# #
# (4) test_subprocess: merely get "errors occurred" # (3) test_telnet: can get a "socket.error: [Errno 104] Connection reset by peer"
#
# (5) test_telnet: can get a "socket.error: [Errno 104] Connection reset by peer"
# #
# Some additional tests fail when running the test suite as non-root outside of # Some additional tests fail when running the test suite as non-root outside of
# the build, due to permissions issues. # the build, due to permissions issues.
@ -865,6 +793,7 @@ rm -fr %{buildroot}
%{_bindir}/pydoc* %{_bindir}/pydoc*
%{_bindir}/python3 %{_bindir}/python3
%{_bindir}/python%{pybasever} %{_bindir}/python%{pybasever}
%{_bindir}/python%{pybasever}mu
%{_mandir}/*/* %{_mandir}/*/*
%files libs %files libs
@ -873,61 +802,59 @@ rm -fr %{buildroot}
%dir %{pylibdir} %dir %{pylibdir}
%dir %{dynload_dir} %dir %{dynload_dir}
%{dynload_dir}/Python-%{version}%{alphatag}-py%{pybasever}.egg-info %{dynload_dir}/Python-%{version}%{alphatag}-py%{pybasever}.egg-info
%{dynload_dir}/_bisect.so %{dynload_dir}/_bisect.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_cn.so %{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_hk.so %{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_iso2022.so %{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_jp.so %{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_kr.so %{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_tw.so %{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
%{dynload_dir}/_collections.so %{dynload_dir}/_csv.%{SOABI_optimized}.so
%{dynload_dir}/_csv.so %{dynload_dir}/_ctypes.%{SOABI_optimized}.so
%{dynload_dir}/_ctypes.so %{dynload_dir}/_curses.%{SOABI_optimized}.so
%{dynload_dir}/_curses.so %{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
%{dynload_dir}/_curses_panel.so %{dynload_dir}/_dbm.%{SOABI_optimized}.so
%{dynload_dir}/_dbm.so %{dynload_dir}/_elementtree.%{SOABI_optimized}.so
%{dynload_dir}/_elementtree.so %{dynload_dir}/_gdbm.%{SOABI_optimized}.so
%{dynload_dir}/_gdbm.so %{dynload_dir}/_hashlib.%{SOABI_optimized}.so
%{dynload_dir}/_hashlib.so %{dynload_dir}/_heapq.%{SOABI_optimized}.so
%{dynload_dir}/_heapq.so %{dynload_dir}/_json.%{SOABI_optimized}.so
%{dynload_dir}/_json.so %{dynload_dir}/_lsprof.%{SOABI_optimized}.so
%{dynload_dir}/_lsprof.so %{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
%{dynload_dir}/_multibytecodec.so %{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
%{dynload_dir}/_multiprocessing.so %{dynload_dir}/_pickle.%{SOABI_optimized}.so
%{dynload_dir}/_pickle.so %{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
%{dynload_dir}/_posixsubprocess.so %{dynload_dir}/_random.%{SOABI_optimized}.so
%{dynload_dir}/_random.so %{dynload_dir}/_socket.%{SOABI_optimized}.so
%{dynload_dir}/_socket.so %{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
%{dynload_dir}/_sqlite3.so %{dynload_dir}/_ssl.%{SOABI_optimized}.so
%{dynload_dir}/_ssl.so %{dynload_dir}/_struct.%{SOABI_optimized}.so
%{dynload_dir}/_struct.so %{dynload_dir}/array.%{SOABI_optimized}.so
%{dynload_dir}/array.so %{dynload_dir}/atexit.%{SOABI_optimized}.so
%{dynload_dir}/atexit.so %{dynload_dir}/audioop.%{SOABI_optimized}.so
%{dynload_dir}/audioop.so %{dynload_dir}/binascii.%{SOABI_optimized}.so
%{dynload_dir}/binascii.so %{dynload_dir}/bz2.%{SOABI_optimized}.so
%{dynload_dir}/bz2.so %{dynload_dir}/cmath.%{SOABI_optimized}.so
%{dynload_dir}/cmath.so %{dynload_dir}/crypt.%{SOABI_optimized}.so
%{dynload_dir}/crypt.so %{dynload_dir}/_datetime.%{SOABI_optimized}.so
%{dynload_dir}/_datetime.so %{dynload_dir}/fcntl.%{SOABI_optimized}.so
%{dynload_dir}/fcntl.so %{dynload_dir}/grp.%{SOABI_optimized}.so
%{dynload_dir}/grp.so %{dynload_dir}/math.%{SOABI_optimized}.so
%{dynload_dir}/itertools.so %{dynload_dir}/mmap.%{SOABI_optimized}.so
%{dynload_dir}/math.so %{dynload_dir}/nis.%{SOABI_optimized}.so
%{dynload_dir}/mmap.so %{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
%{dynload_dir}/nis.so %{dynload_dir}/parser.%{SOABI_optimized}.so
%{dynload_dir}/operator.so %{dynload_dir}/pyexpat.%{SOABI_optimized}.so
%{dynload_dir}/ossaudiodev.so %{dynload_dir}/readline.%{SOABI_optimized}.so
%{dynload_dir}/parser.so %{dynload_dir}/resource.%{SOABI_optimized}.so
%{dynload_dir}/pyexpat.so %{dynload_dir}/select.%{SOABI_optimized}.so
%{dynload_dir}/readline.so %{dynload_dir}/spwd.%{SOABI_optimized}.so
%{dynload_dir}/resource.so %{dynload_dir}/syslog.%{SOABI_optimized}.so
%{dynload_dir}/select.so %{dynload_dir}/termios.%{SOABI_optimized}.so
%{dynload_dir}/spwd.so %{dynload_dir}/time.%{SOABI_optimized}.so
%{dynload_dir}/syslog.so %{dynload_dir}/unicodedata.%{SOABI_optimized}.so
%{dynload_dir}/termios.so %{dynload_dir}/xxlimited.%{SOABI_optimized}.so
%{dynload_dir}/time.so %{dynload_dir}/zlib.%{SOABI_optimized}.so
%{dynload_dir}/unicodedata.so
%{dynload_dir}/zlib.so
%dir %{pylibdir}/site-packages/ %dir %{pylibdir}/site-packages/
%dir %{pylibdir}/site-packages/__pycache__/ %dir %{pylibdir}/site-packages/__pycache__/
@ -936,63 +863,90 @@ rm -fr %{buildroot}
%dir %{pylibdir}/__pycache__/ %dir %{pylibdir}/__pycache__/
%{pylibdir}/__pycache__/*%{bytecode_suffixes} %{pylibdir}/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/wsgiref.egg-info %{pylibdir}/wsgiref.egg-info
%dir %{pylibdir}/ctypes
%dir %{pylibdir}/concurrent/
%dir %{pylibdir}/concurrent/__pycache__/
%{pylibdir}/concurrent/*.py
%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
%dir %{pylibdir}/concurrent/futures/
%dir %{pylibdir}/concurrent/futures/__pycache__/
%{pylibdir}/concurrent/futures/*.py
%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
%dir %{pylibdir}/ctypes/
%dir %{pylibdir}/ctypes/__pycache__/ %dir %{pylibdir}/ctypes/__pycache__/
%{pylibdir}/ctypes/*.py %{pylibdir}/ctypes/*.py
%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes} %{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/ctypes/macholib %{pylibdir}/ctypes/macholib
%{pylibdir}/curses %{pylibdir}/curses
%dir %{pylibdir}/dbm
%dir %{pylibdir}/dbm/
%dir %{pylibdir}/dbm/__pycache__/ %dir %{pylibdir}/dbm/__pycache__/
%{pylibdir}/dbm/*.py %{pylibdir}/dbm/*.py
%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes} %{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
%dir %{pylibdir}/distutils
%dir %{pylibdir}/distutils/
%dir %{pylibdir}/distutils/__pycache__/ %dir %{pylibdir}/distutils/__pycache__/
%{pylibdir}/distutils/*.py %{pylibdir}/distutils/*.py
%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes} %{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/distutils/README %{pylibdir}/distutils/README
%{pylibdir}/distutils/command %{pylibdir}/distutils/command
%dir %{pylibdir}/email
%dir %{pylibdir}/email/
%dir %{pylibdir}/email/__pycache__/ %dir %{pylibdir}/email/__pycache__/
%{pylibdir}/email/*.py %{pylibdir}/email/*.py
%{pylibdir}/email/__pycache__/*%{bytecode_suffixes} %{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/email/mime %{pylibdir}/email/mime
%{pylibdir}/encodings %{pylibdir}/encodings
%{pylibdir}/html %{pylibdir}/html
%{pylibdir}/http %{pylibdir}/http
%{pylibdir}/idlelib %{pylibdir}/idlelib
%dir %{pylibdir}/importlib
%dir %{pylibdir}/importlib/
%dir %{pylibdir}/importlib/__pycache__/ %dir %{pylibdir}/importlib/__pycache__/
%{pylibdir}/importlib/*.py %{pylibdir}/importlib/*.py
%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes} %{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
%dir %{pylibdir}/json
%dir %{pylibdir}/json/
%dir %{pylibdir}/json/__pycache__/ %dir %{pylibdir}/json/__pycache__/
%{pylibdir}/json/*.py %{pylibdir}/json/*.py
%{pylibdir}/json/__pycache__/*%{bytecode_suffixes} %{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/lib2to3 %{pylibdir}/lib2to3
%exclude %{pylibdir}/lib2to3/tests %exclude %{pylibdir}/lib2to3/tests
%{pylibdir}/logging %{pylibdir}/logging
%{pylibdir}/multiprocessing %{pylibdir}/multiprocessing
%{pylibdir}/plat-linux2 %{pylibdir}/plat-linux2
%{pylibdir}/pydoc_data %{pylibdir}/pydoc_data
%dir %{pylibdir}/sqlite3
%dir %{pylibdir}/sqlite3/
%dir %{pylibdir}/sqlite3/__pycache__/ %dir %{pylibdir}/sqlite3/__pycache__/
%{pylibdir}/sqlite3/*.py %{pylibdir}/sqlite3/*.py
%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes} %{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
%dir %{pylibdir}/test
%dir %{pylibdir}/test/
%dir %{pylibdir}/test/__pycache__/ %dir %{pylibdir}/test/__pycache__/
%{pylibdir}/test/__init__.py %{pylibdir}/test/__init__.py
%{pylibdir}/test/support.py %{pylibdir}/test/support.py
%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes} %{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
%{pylibdir}/test/__pycache__/support%{bytecode_suffixes} %{pylibdir}/test/__pycache__/support%{bytecode_suffixes}
%dir %{pylibdir}/unittest
%exclude %{pylibdir}/turtle.py
%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
%dir %{pylibdir}/unittest/
%dir %{pylibdir}/unittest/__pycache__/ %dir %{pylibdir}/unittest/__pycache__/
%{pylibdir}/unittest/*.py %{pylibdir}/unittest/*.py
%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes} %{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/urllib %{pylibdir}/urllib
%{pylibdir}/wsgiref %{pylibdir}/wsgiref
%{pylibdir}/xml %{pylibdir}/xml
%{pylibdir}/xmlrpc %{pylibdir}/xmlrpc
%if "%{_lib}" == "lib64" %if "%{_lib}" == "lib64"
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever} %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
@ -1002,10 +956,10 @@ rm -fr %{buildroot}
# "Makefile" and the config-32/64.h file are needed by # "Makefile" and the config-32/64.h file are needed by
# distutils/sysconfig.py:_init_posix(), so we include them in the core # distutils/sysconfig.py:_init_posix(), so we include them in the core
# package, along with their parent directories (bug 531901): # package, along with their parent directories (bug 531901):
%dir %{pylibdir}/config %dir %{pylibdir}/config-%{LDVERSION_optimized}/
%{pylibdir}/config/Makefile %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
%dir %{_includedir}/python%{pybasever} %dir %{_includedir}/python%{LDVERSION_optimized}/
%{_includedir}/python%{pybasever}/%{_pyconfig_h} %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%{_libdir}/%{py_INSTSONAME_optimized} %{_libdir}/%{py_INSTSONAME_optimized}
%if 0%{?with_systemtap} %if 0%{?with_systemtap}
@ -1015,14 +969,16 @@ rm -fr %{buildroot}
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%{pylibdir}/config/* %{pylibdir}/config-%{LDVERSION_optimized}/*
%exclude %{pylibdir}/config/Makefile %exclude %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
/usr/include/python%{pybasever}/*.h %{_includedir}/python%{LDVERSION_optimized}/*.h
%exclude /usr/include/python%{pybasever}/%{_pyconfig_h} %exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit %doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
%{_bindir}/python3-config %{_bindir}/python3-config
%{_bindir}/python%{pybasever}-config %{_bindir}/python%{pybasever}-config
%{_libdir}/libpython%{pybasever}.so %{_bindir}/python%{LDVERSION_optimized}-config
%{_libdir}/libpython%{LDVERSION_optimized}.so
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
%{_libdir}/pkgconfig/python-%{pybasever}.pc %{_libdir}/pkgconfig/python-%{pybasever}.pc
%{_libdir}/pkgconfig/python3.pc %{_libdir}/pkgconfig/python3.pc
%config(noreplace) %{_sysconfdir}/rpm/macros.python3 %config(noreplace) %{_sysconfdir}/rpm/macros.python3
@ -1042,7 +998,15 @@ rm -fr %{buildroot}
%defattr(-,root,root,755) %defattr(-,root,root,755)
%{pylibdir}/tkinter %{pylibdir}/tkinter
%exclude %{pylibdir}/tkinter/test %exclude %{pylibdir}/tkinter/test
%{dynload_dir}/_tkinter.so %{dynload_dir}/_tkinter.%{SOABI_optimized}.so
%{pylibdir}/turtle.py
%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
%dir %{pylibdir}/turtledemo
%{pylibdir}/turtledemo/*.py
%{pylibdir}/turtledemo/*.txt
%{pylibdir}/turtledemo/*.cfg
%dir %{pylibdir}/turtledemo/__pycache__/
%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
%files test %files test
%defattr(-, root, root) %defattr(-, root, root)
@ -1050,11 +1014,10 @@ rm -fr %{buildroot}
%{pylibdir}/distutils/tests %{pylibdir}/distutils/tests
%{pylibdir}/email/test %{pylibdir}/email/test
%{pylibdir}/importlib/test %{pylibdir}/importlib/test
%{pylibdir}/json/tests
%{pylibdir}/sqlite3/test %{pylibdir}/sqlite3/test
%{pylibdir}/test %{pylibdir}/test
%{dynload_dir}/_ctypes_test.so %{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
%{dynload_dir}/_testcapi.so %{dynload_dir}/_testcapi.%{SOABI_optimized}.so
%{pylibdir}/lib2to3/tests %{pylibdir}/lib2to3/tests
%doc %{pylibdir}/Demo/distutils %doc %{pylibdir}/Demo/distutils
%doc %{pylibdir}/Demo/md5test %doc %{pylibdir}/Demo/md5test
@ -1073,70 +1036,66 @@ rm -fr %{buildroot}
%defattr(-,root,root,-) %defattr(-,root,root,-)
# Analog of the core subpackage's files: # Analog of the core subpackage's files:
%{_bindir}/python3-debug %{_bindir}/python%{LDVERSION_debug}
%{_bindir}/python%{pybasever}-debug
# Analog of the -libs subpackage's files: # Analog of the -libs subpackage's files:
# ...with debug builds of the built-in "extension" modules: # ...with debug builds of the built-in "extension" modules:
%{dynload_dir}/_bisect_d.so %{dynload_dir}/_bisect.%{SOABI_debug}.so
%{dynload_dir}/_codecs_cn_d.so %{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
%{dynload_dir}/_codecs_hk_d.so %{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
%{dynload_dir}/_codecs_iso2022_d.so %{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
%{dynload_dir}/_codecs_jp_d.so %{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
%{dynload_dir}/_codecs_kr_d.so %{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
%{dynload_dir}/_codecs_tw_d.so %{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
%{dynload_dir}/_collections_d.so %{dynload_dir}/_csv.%{SOABI_debug}.so
%{dynload_dir}/_csv_d.so %{dynload_dir}/_ctypes.%{SOABI_debug}.so
%{dynload_dir}/_ctypes_d.so %{dynload_dir}/_curses.%{SOABI_debug}.so
%{dynload_dir}/_curses_d.so %{dynload_dir}/_curses_panel.%{SOABI_debug}.so
%{dynload_dir}/_curses_panel_d.so %{dynload_dir}/_dbm.%{SOABI_debug}.so
%{dynload_dir}/_dbm_d.so %{dynload_dir}/_elementtree.%{SOABI_debug}.so
%{dynload_dir}/_elementtree_d.so %{dynload_dir}/_gdbm.%{SOABI_debug}.so
%{dynload_dir}/_gdbm_d.so %{dynload_dir}/_hashlib.%{SOABI_debug}.so
%{dynload_dir}/_hashlib_d.so %{dynload_dir}/_heapq.%{SOABI_debug}.so
%{dynload_dir}/_heapq_d.so %{dynload_dir}/_json.%{SOABI_debug}.so
%{dynload_dir}/_json_d.so %{dynload_dir}/_lsprof.%{SOABI_debug}.so
%{dynload_dir}/_lsprof_d.so %{dynload_dir}/_md5.%{SOABI_debug}.so
%{dynload_dir}/_md5_d.so %{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
%{dynload_dir}/_multibytecodec_d.so %{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
%{dynload_dir}/_multiprocessing_d.so %{dynload_dir}/_pickle.%{SOABI_debug}.so
%{dynload_dir}/_pickle_d.so %{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
%{dynload_dir}/_posixsubprocess_d.so %{dynload_dir}/_random.%{SOABI_debug}.so
%{dynload_dir}/_random_d.so %{dynload_dir}/_sha1.%{SOABI_debug}.so
%{dynload_dir}/_sha1_d.so %{dynload_dir}/_sha256.%{SOABI_debug}.so
%{dynload_dir}/_sha256_d.so %{dynload_dir}/_sha512.%{SOABI_debug}.so
%{dynload_dir}/_sha512_d.so %{dynload_dir}/_socket.%{SOABI_debug}.so
%{dynload_dir}/_socket_d.so %{dynload_dir}/_sqlite3.%{SOABI_debug}.so
%{dynload_dir}/_sqlite3_d.so %{dynload_dir}/_ssl.%{SOABI_debug}.so
%{dynload_dir}/_ssl_d.so %{dynload_dir}/_struct.%{SOABI_debug}.so
%{dynload_dir}/_struct_d.so %{dynload_dir}/array.%{SOABI_debug}.so
%{dynload_dir}/array_d.so %{dynload_dir}/atexit.%{SOABI_debug}.so
%{dynload_dir}/atexit_d.so %{dynload_dir}/audioop.%{SOABI_debug}.so
%{dynload_dir}/audioop_d.so %{dynload_dir}/binascii.%{SOABI_debug}.so
%{dynload_dir}/binascii_d.so %{dynload_dir}/bz2.%{SOABI_debug}.so
%{dynload_dir}/bz2_d.so %{dynload_dir}/cmath.%{SOABI_debug}.so
%{dynload_dir}/cmath_d.so %{dynload_dir}/crypt.%{SOABI_debug}.so
%{dynload_dir}/crypt_d.so %{dynload_dir}/_datetime.%{SOABI_debug}.so
%{dynload_dir}/_datetime_d.so %{dynload_dir}/fcntl.%{SOABI_debug}.so
%{dynload_dir}/fcntl_d.so %{dynload_dir}/grp.%{SOABI_debug}.so
%{dynload_dir}/grp_d.so %{dynload_dir}/math.%{SOABI_debug}.so
%{dynload_dir}/itertools_d.so %{dynload_dir}/mmap.%{SOABI_debug}.so
%{dynload_dir}/math_d.so %{dynload_dir}/nis.%{SOABI_debug}.so
%{dynload_dir}/mmap_d.so %{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
%{dynload_dir}/nis_d.so %{dynload_dir}/parser.%{SOABI_debug}.so
%{dynload_dir}/operator_d.so %{dynload_dir}/pyexpat.%{SOABI_debug}.so
%{dynload_dir}/ossaudiodev_d.so %{dynload_dir}/readline.%{SOABI_debug}.so
%{dynload_dir}/parser_d.so %{dynload_dir}/resource.%{SOABI_debug}.so
%{dynload_dir}/pyexpat_d.so %{dynload_dir}/select.%{SOABI_debug}.so
%{dynload_dir}/readline_d.so %{dynload_dir}/spwd.%{SOABI_debug}.so
%{dynload_dir}/resource_d.so %{dynload_dir}/syslog.%{SOABI_debug}.so
%{dynload_dir}/select_d.so %{dynload_dir}/termios.%{SOABI_debug}.so
%{dynload_dir}/spwd_d.so %{dynload_dir}/time.%{SOABI_debug}.so
%{dynload_dir}/syslog_d.so %{dynload_dir}/unicodedata.%{SOABI_debug}.so
%{dynload_dir}/termios_d.so %{dynload_dir}/zlib.%{SOABI_debug}.so
%{dynload_dir}/time_d.so
%{dynload_dir}/unicodedata_d.so
%{dynload_dir}/zlib_d.so
# No need to split things out the "Makefile" and the config-32/64.h file as we # No need to split things out the "Makefile" and the config-32/64.h file as we
# do for the regular build above (bug 531901), since they're all in one package # do for the regular build above (bug 531901), since they're all in one package
@ -1148,25 +1107,22 @@ rm -fr %{buildroot}
%endif %endif
# Analog of the -devel subpackage's files: # Analog of the -devel subpackage's files:
%dir %{pylibdir}/config-debug %{pylibdir}/config-%{LDVERSION_debug}
%{pylibdir}/config-debug/* %{_includedir}/python%{LDVERSION_debug}
%{_includedir}/python%{pybasever}-debug/*.h %{_bindir}/python%{LDVERSION_debug}-config
%{_bindir}/python3-debug-config %{_libdir}/libpython%{LDVERSION_debug}.so
%{_bindir}/python%{pybasever}-debug-config %{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
%{_libdir}/libpython%{pybasever}_d.so
%{_libdir}/pkgconfig/python-%{pybasever}-debug.pc
%{_libdir}/pkgconfig/python3-debug.pc
# Analog of the -tools subpackage's files: # Analog of the -tools subpackage's files:
# None for now; we could build precanned versions that have the appropriate # None for now; we could build precanned versions that have the appropriate
# shebang if needed # shebang if needed
# Analog of the tkinter subpackage's files: # Analog of the tkinter subpackage's files:
%{dynload_dir}/_tkinter_d.so %{dynload_dir}/_tkinter.%{SOABI_debug}.so
# Analog of the -test subpackage's files: # Analog of the -test subpackage's files:
%{dynload_dir}/_ctypes_test_d.so %{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
%{dynload_dir}/_testcapi_d.so %{dynload_dir}/_testcapi.%{SOABI_debug}.so
%endif # with_debug_build %endif # with_debug_build
@ -1185,6 +1141,25 @@ rm -fr %{buildroot}
%changelog %changelog
* Tue Dec 28 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.5.b2
- 3.2b2
- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
patch 8 (systemtap), patch 102 (lib64)
- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
fixed upstream)
- regenerate patch 300 (autotool intermediates)
- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
patch 128)
- stop using runtest.sh in %%check (dropped by upstream), replacing with
regrtest; fixup list of failing tests
- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
- rework manifests of shared libraries to use "SOABI_" macros, reflecting
PEP 3149
- drop itertools, operator and _collections modules from the manifests as py3k
commit r84058 moved these inside libpython; json/tests moved to test/json_tests
- move turtle code into the tkinter subpackage
* Wed Nov 17 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.5.a1 * Wed Nov 17 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.5.a1
- fix sysconfig to not rely on the -devel subpackage (rhbz#653058) - fix sysconfig to not rely on the -devel subpackage (rhbz#653058)

View File

@ -1 +1,2 @@
b371e1f7a0e98e7a0d1792823fd0f58c Python-3.2a1.tar.bz2 b371e1f7a0e98e7a0d1792823fd0f58c Python-3.2a1.tar.bz2
45ab5ff5edfb73ec277b1c763f3d5a42 Python-3.2b2.tar.bz2