An interpreted, interactive, object-oriented programming language
CentOS Sources
2017-08-01 71084d584ff953f5463757ec6536406320560b4d
commit | author | age
6e8c2f 1 # ======================================================
CB 2 # Conditionals and other variables controlling the build
3 # ======================================================
4
5 %{!?__python_ver:%global __python_ver EMPTY}
6 #global __python_ver 27
7 %global unicode ucs4
8
9 %if "%{__python_ver}" != "EMPTY"
10 %global main_python 0
11 %global python python%{__python_ver}
12 %global tkinter tkinter%{__python_ver}
13 %else
14 %global main_python 1
15 %global python python
16 %global tkinter tkinter
17 %endif
18
19 %global pybasever 2.7
20 %global pylibdir %{_libdir}/python%{pybasever}
21 %global tools_dir %{pylibdir}/Tools
22 %global demo_dir %{pylibdir}/Demo
23 %global doc_tools_dir %{pylibdir}/Doc/tools
24 %global dynload_dir %{pylibdir}/lib-dynload
25 %global site_packages %{pylibdir}/site-packages
26
27 # Python's configure script defines SOVERSION, and this is used in the Makefile
28 # to determine INSTSONAME, the name of the libpython DSO:
29 #   LDLIBRARY='libpython$(VERSION).so'
30 #   INSTSONAME="$LDLIBRARY".$SOVERSION
31 # We mirror this here in order to make it easier to add the -gdb.py hooks.
32 # (if these get out of sync, the payload of the libs subpackage will fail
33 # and halt the build)
34 %global py_SOVERSION 1.0
35 %global py_INSTSONAME_optimized libpython%{pybasever}.so.%{py_SOVERSION}
36 %global py_INSTSONAME_debug     libpython%{pybasever}_d.so.%{py_SOVERSION}
37
38 %global with_debug_build 1
39
40 # Disabled for now:
41 %global with_huntrleaks 0
42
43 %global with_gdb_hooks 1
44
45 %global with_systemtap 1
46
47 # some arches don't have valgrind so we need to disable its support on them
9a62d8 48 %ifarch %{ix86} x86_64 ppc %{power64} s390x aarch64
6e8c2f 49 %global with_valgrind 1
CB 50 %else
51 %global with_valgrind 0
52 %endif
53
54 %global with_gdbm 1
55
56 # Turn this to 0 to turn off the "check" phase:
57 %global run_selftest_suite 1
58
59 # Some of the files below /usr/lib/pythonMAJOR.MINOR/test  (e.g. bad_coding.py)
60 # are deliberately invalid, leading to SyntaxError exceptions if they get
61 # byte-compiled.
62 #
63 # These errors are ignored by the normal python build, and aren't normally a
64 # problem in the buildroots since /usr/bin/python isn't present.
65
66 # However, for the case where we're rebuilding the python srpm on a machine
67 # that does have python installed we need to set this to avoid
68 # brp-python-bytecompile treating these as fatal errors:
69 #
70 %global _python_bytecompile_errors_terminate_build 0
71
72 # We need to get a newer configure generated out of configure.in for the following
73 # patches:
74 #   patch 4 (CFLAGS)
75 #   patch 52 (valgrind)
76 #   patch 55 (systemtap)
77 #   patch 145 (linux2)
78
79 # For patch 55 (systemtap), we need to get a new header for configure to use
80 #
81 # configure.in requires autoconf-2.65, but the version in Fedora is currently
82 # autoconf-2.66
83 #
84 # For now, we'll generate a patch to the generated configure script and
85 # pyconfig.h.in on a machine that has a local copy of autoconf 2.65
86 #
87 # Instructions on obtaining such a copy can be seen at
88 #   http://bugs.python.org/issue7997
89 #
90 # To make it easy to regenerate the patch, this specfile can be run in two
91 # ways:
92 # (i) regenerate_autotooling_patch  0 : the normal approach: prep the
93 # source tree using a pre-generated patch to the "configure" script, and do a
94 # full build
95 # (ii) regenerate_autotooling_patch 1 : intended to be run on a developer's
96 # workstation: prep the source tree without patching configure, then rerun a
97 # local copy of autoconf-2.65, regenerate the patch, then exit, without doing
98 # the rest of the build
99 %global regenerate_autotooling_patch 0
100
101
102 # ==================
103 # Top-level metadata
104 # ==================
105 Summary: An interpreted, interactive, object-oriented programming language
106 Name: %{python}
107 # Remember to also rebase python-docs when changing this:
108 Version: 2.7.5
71084d 109 Release: 58%{?dist}
6e8c2f 110 License: Python
CB 111 Group: Development/Languages
112 Requires: %{python}-libs%{?_isa} = %{version}-%{release}
113 Provides: python-abi = %{pybasever}
114 Provides: python(abi) = %{pybasever}
115
116
117 # =======================
118 # Build-time requirements
119 # =======================
120
121 # (keep this list alphabetized)
122
123 BuildRequires: autoconf
124 BuildRequires: bluez-libs-devel
125 BuildRequires: bzip2
126 BuildRequires: bzip2-devel
127
128 # expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME.  We use
129 # it (in pyexpat) in order to enable the fix in Python-2.7.3 for CVE-2012-0876:
130 BuildRequires: expat-devel >= 2.1.0
131
132 BuildRequires: findutils
133 BuildRequires: gcc-c++
134 %if %{with_gdbm}
135 BuildRequires: gdbm-devel
136 %endif
137 BuildRequires: glibc-devel
138 BuildRequires: gmp-devel
139 BuildRequires: libdb-devel
140 BuildRequires: libffi-devel
141 BuildRequires: libGL-devel
142 BuildRequires: libX11-devel
143 BuildRequires: ncurses-devel
144 BuildRequires: openssl-devel
145 BuildRequires: pkgconfig
146 BuildRequires: readline-devel
147 BuildRequires: sqlite-devel
148
149 %if 0%{?with_systemtap}
150 BuildRequires: systemtap-sdt-devel
151 # (this introduces a circular dependency, in that systemtap-sdt-devel's
152 # /usr/bin/dtrace is a python script)
153 %global tapsetdir      /usr/share/systemtap/tapset
154 %endif # with_systemtap
155
156 BuildRequires: tar
157 BuildRequires: tcl-devel
158 BuildRequires: tix-devel
159 BuildRequires: tk-devel
160
161 %if 0%{?with_valgrind}
162 BuildRequires: valgrind-devel
163 %endif
164
165 BuildRequires: zlib-devel
166
167
168
169 # =======================
170 # Source code and patches
171 # =======================
172
173 Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
174
175 # Work around bug 562906 until it's fixed in rpm-build by providing a fixed
176 # version of pythondeps.sh:
177 Source2: pythondeps.sh
178 %global __python_requires %{SOURCE2}
179
180 # Systemtap tapset to make it easier to use the systemtap static probes
181 # (actually a template; LIBRARY_PATH will get fixed up during install)
182 # Written by dmalcolm; not yet sent upstream
183 Source3: libpython.stp
184
185
186 # Example systemtap script using the tapset
187 # Written by wcohen, mjw, dmalcolm; not yet sent upstream
188 Source4: systemtap-example.stp
189
190 # Another example systemtap script that uses the tapset
191 # Written by dmalcolm; not yet sent upstream
192 Source5: pyfuntop.stp
193
71084d 194 # Supply various useful macros for building Python 2 components:
6e8c2f 195 Source6: macros.python2
CB 196
197 Source7: pynche
f63228 198
CS 199 # Configuration file to change ssl verification settings globally
200 # Downstream only see Patch224
201 Source8: cert-verification.cfg
202
203 # configuration for systemd's tmpfiles
204 Source9: python.conf
71084d 205
CS 206 # Supply various useful macros for building Python components:
207 # NOTE: The %%python_provide macro is copied directly from Fedora/EPEL, but the
208 # %{python3_pkgversion} and %{python3_other_pkgversion} macros used within it
209 # are missing in RHEL. However, in their absence the lua code will run fine for
210 # Python 2 packages and will print an error only if invoked for Python 3
211 # packages (unless the python-srpm-macros package from EPEL is installed). That
212 # is a desirable behaviour as RHEL without EPEL does not support building
213 # Python 3 packages.
214 Source10: macros.python
6e8c2f 215
CB 216 # Modules/Setup.dist is ultimately used by the "makesetup" script to construct
217 # the Makefile and config.c
218 #
219 # Upstream leaves many things disabled by default, to try to make it easy as
220 # possible to build the code on as many platforms as possible.
221 #
222 # TODO: many modules can also now be built by setup.py after the python binary
223 # has been built; need to assess if we should instead build things there
224 #
225 # We patch it downstream as follows:
226 #   - various modules are built by default by upstream as static libraries;
227 #   we built them as shared libraries
228 #   - build the "readline" module (appears to also be handled by setup.py now)
229 #   - enable the build of the following modules:
230 #     - array arraymodule.c    # array objects
231 #     - cmath cmathmodule.c # -lm # complex math library functions
232 #     - math mathmodule.c # -lm # math library functions, e.g. sin()
233 #     - _struct _struct.c    # binary structure packing/unpacking
234 #     - time timemodule.c # -lm # time operations and variables
235 #     - operator operator.c    # operator.add() and similar goodies
236 #     - _weakref _weakref.c    # basic weak reference support
237 #     - _testcapi _testcapimodule.c    # Python C API test module
238 #     - _random _randommodule.c    # Random number generator
239 #     - _collections _collectionsmodule.c # Container types
240 #     - itertools itertoolsmodule.c
241 #     - strop stropmodule.c
242 #     - _functools _functoolsmodule.c
243 #     - _bisect _bisectmodule.c    # Bisection algorithms
244 #     - unicodedata unicodedata.c    # static Unicode character database
245 #     - _locale _localemodule.c
246 #     - fcntl fcntlmodule.c    # fcntl(2) and ioctl(2)
247 #     - spwd spwdmodule.c        # spwd(3) 
248 #     - grp grpmodule.c        # grp(3)
249 #     - select selectmodule.c    # select(2); not on ancient System V
250 #     - mmap mmapmodule.c  # Memory-mapped files
251 #     - _csv _csv.c  # CSV file helper
252 #     - _socket socketmodule.c  # Socket module helper for socket(2)
253 #     - _ssl _ssl.c
254 #     - crypt cryptmodule.c -lcrypt    # crypt(3)
255 #     - nis nismodule.c -lnsl    # Sun yellow pages -- not everywhere
256 #     - termios termios.c    # Steen Lumholt's termios module
257 #     - resource resource.c    # Jeremy Hylton's rlimit interface
258 #     - audioop audioop.c    # Operations on audio samples
259 #     - imageop imageop.c    # Operations on images
260 #     - _md5 md5module.c md5.c
261 #     - _sha shamodule.c
262 #     - _sha256 sha256module.c
263 #     - _sha512 sha512module.c
264 #     - linuxaudiodev linuxaudiodev.c
265 #     - timing timingmodule.c
266 #     - _tkinter _tkinter.c tkappinit.c
267 #     - dl dlmodule.c
268 #     - gdbm gdbmmodule.c
269 #     - _bsddb _bsddb.c
270 #     - binascii binascii.c
271 #     - parser parsermodule.c
272 #     - cStringIO cStringIO.c
273 #     - cPickle cPickle.c
274 #     - zlib zlibmodule.c
275 #     - _multibytecodec cjkcodecs/multibytecodec.c
276 #     - _codecs_cn cjkcodecs/_codecs_cn.c
277 #     - _codecs_hk cjkcodecs/_codecs_hk.c
278 #     - _codecs_iso2022 cjkcodecs/_codecs_iso2022.c
279 #     - _codecs_jp cjkcodecs/_codecs_jp.c
280 #     - _codecs_kr cjkcodecs/_codecs_kr.c
281 #     - _codecs_tw cjkcodecs/_codecs_tw.c
282 Patch0: python-2.7.1-config.patch
283
284 # Removes the "-g" option from "pydoc", for some reason; I believe
285 # (dmalcolm 2010-01-29) that this was introduced in this change:
286 # - fix pydoc (#68082)
287 # in 2.2.1-12 as a response to the -g option needing TkInter installed
288 # (Red Hat Linux 8)
289 # Not upstream
290 Patch1: 00001-pydocnogui.patch
291
292 # Add $(CFLAGS) to the linker arguments when linking the "python" binary
293 # since some architectures (sparc64) need this (rhbz:199373).
294 # Not yet filed upstream
295 Patch4: python-2.5-cflags.patch
296
297 # Work around a bug in Python' gettext module relating to the "Plural-Forms"
298 # header (rhbz:252136)
299 # Related to upstream issues:
300 #   http://bugs.python.org/issue1448060 and http://bugs.python.org/issue1475523
301 # though the proposed upstream patches are, alas, different
302 Patch6: python-2.5.1-plural-fix.patch
303
304 # This patch was listed in the changelog as: 
305 #  * Fri Sep 14 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-11
306 #  - fix encoding of sqlite .py files to work around weird encoding problem 
307 #  in Turkish (#283331)
308 # A traceback attached to rhbz 244016 shows the problem most clearly: a
309 # traceback on attempting to import the sqlite module, with:
310 #   "SyntaxError: encoding problem: with BOM (__init__.py, line 1)"
311 # This seems to come from Parser/tokenizer.c:check_coding_spec
312 # Our patch changes two source files within sqlite3, removing the
313 # "coding: ISO-8859-1" specs and character E4 = U+00E4 = 
314 # LATIN SMALL LETTER A WITH DIAERESIS from in ghaering's surname. 
315 #
316 # It may be that the conversion of "ISO-8859-1" to "iso-8859-1" is thwarted
317 # by the implementation of "tolower" in the Turkish locale; see:
318 #   https://bugzilla.redhat.com/show_bug.cgi?id=191096#c9
319
320 # TODO: Not yet sent upstream, and appears to me (dmalcolm 2010-01-29) that
321 # it may be papering over a symptom
322 Patch7: python-2.5.1-sqlite-encoding.patch
323
324 # FIXME: Lib/ctypes/util.py posix implementation defines a function
325 # _get_soname(f).  Upstreams's implementation of this uses objdump to read the
326 # SONAME from a library; we avoid this, apparently to minimize space
327 # requirements on the live CD:
328 # (rhbz:307221)
329 Patch10: python-2.7rc1-binutils-no-dep.patch
330
331 # Upstream as of Python 2.7.3:
332 #  Patch11: python-2.7rc1-codec-ascii-tolower.patch
333
334 # Add various constants to the socketmodule (rhbz#436560):
335 # TODO: these patches were added in 2.5.1-22 and 2.5.1-24 but appear not to
336 # have been sent upstream yet:
337 Patch13: python-2.7rc1-socketmodule-constants.patch
338 Patch14: python-2.7rc1-socketmodule-constants2.patch
339
340 # Remove an "-rpath $(LIBDIR)" argument from the linkage args in configure.in:
341 # FIXME: is this for OSF, not Linux?
342 Patch16: python-2.6-rpath.patch
343
344 # Fixup distutils/unixccompiler.py to remove standard library path from rpath:
345 # Adapted from Patch0 in ivazquez' python3000 specfile, removing usage of
346 # super() as it's an old-style class
347 Patch17: python-2.6.4-distutils-rpath.patch
348
349 # 00055 #
350 # Systemtap support: add statically-defined probe points
351 # Patch based on upstream bug: http://bugs.python.org/issue4111
352 # fixed up by mjw and wcohen for 2.6.2, then fixed up by dmalcolm for 2.6.4
353 # then rewritten by mjw (attachment 390110 of rhbz 545179), then reformatted
354 # for 2.7rc1 by dmalcolm:
355 Patch55: 00055-systemtap.patch
356
357 # Upstream as of Python 2.7.4
358 #  Patch101: 00101-lib64-regex.patch
359
360 # Only used when "%{_lib}" == "lib64"
361 # Fixup various paths throughout the build and in distutils from "lib" to "lib64",
362 # and add the /usr/lib64/pythonMAJOR.MINOR/site-packages to sitedirs, in front of
363 # /usr/lib/pythonMAJOR.MINOR/site-packages
364 # Not upstream
365 Patch102: python-2.7.3-lib64.patch
366
367 # Python 2.7 split out much of the path-handling from distutils/sysconfig.py to
368 # a new sysconfig.py (in r77704).
369 # We need to make equivalent changes to that new file to ensure that the stdlib
370 # and platform-specific code go to /usr/lib64 not /usr/lib, on 64-bit archs:
371 Patch103: python-2.7-lib64-sysconfig.patch
372
373 # 00104 #
374 # Only used when "%{_lib}" == "lib64"
375 # Another lib64 fix, for distutils/tests/test_install.py; not upstream:
376 Patch104: 00104-lib64-fix-for-test_install.patch
377
378 # 00111 #
379 # Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
380 # a libpythonMAJOR.MINOR.a (bug 550692):
381 # Downstream only: not appropriate for upstream
382 Patch111: 00111-no-static-lib.patch
383
384 # 00112 #
385 # Patch to support building both optimized vs debug stacks DSO ABIs, sharing
386 # the same .py and .pyc files, using "_d.so" to signify a debug build of an
387 # extension module.
388 #
389 # Based on Debian's patch for the same, 
390 #  http://patch-tracker.debian.org/patch/series/view/python2.6/2.6.5-2/debug-build.dpatch
391
392 # (which was itself based on the upstream Windows build), but with some
393 # changes:
394 #
395 #   * Debian's patch to dynload_shlib.c looks for module_d.so, then module.so,
396 # but this can potentially find a module built against the wrong DSO ABI.  We
397 # instead search for just module_d.so in a debug build
398 #
399 #   * We remove this change from configure.in's build of the Makefile:
400 #   SO=$DEBUG_EXT.so
401 # so that sysconfig.py:customize_compiler stays with shared_lib_extension='.so'
402 # on debug builds, so that UnixCCompiler.find_library_file can find system
403 # libraries (otherwise "make sharedlibs" fails to find system libraries,
404 # erroneously looking e.g. for "libffi_d.so" rather than "libffi.so")
405 #
406 #   * We change Lib/distutils/command/build_ext.py:build_ext.get_ext_filename
407 # to add the _d there, when building an extension.  This way, "make sharedlibs"
408 # can build ctypes, by finding the sysmtem libffi.so (rather than failing to
409 # find "libffi_d.so"), and builds the module as _ctypes_d.so
410 #   
411 #   * Similarly, update build_ext:get_libraries handling of Py_ENABLE_SHARED by
412 # appending "_d" to the python library's name for the debug configuration
413 #
414 #   * We modify Modules/makesetup to add the "_d" to the generated Makefile
415 # rules for the various Modules/*.so targets
416 #
417 # This may introduce issues when building an extension that links directly
418 # against another extension (e.g. users of NumPy?), but seems more robust when
419 # searching for external libraries
420 #
421 #   * We don't change Lib/distutils/command/build.py: build.build_purelib to
422 # embed plat_specifier, leaving it as is, as pure python builds should be
423 # unaffected by these differences (we'll be sharing the .py and .pyc files)
424 #
425 #   * We introduce DEBUG_SUFFIX as well as DEBUG_EXT:
426 #     - DEBUG_EXT is used by ELF files (names and SONAMEs); it will be "_d" for
427 # a debug build
428 #     - DEBUG_SUFFIX is used by filesystem paths; it will be "-debug" for a
429 # debug build
430 #
431 #   Both will be empty in an optimized build.  "_d" contains characters that
432 # are valid ELF metadata, but this leads to various ugly filesystem paths (such
433 # as the include path), and DEBUG_SUFFIX allows these paths to have more natural
434 # names.  Changing this requires changes elsewhere in the distutils code.
435 #
436 #   * We add DEBUG_SUFFIX to PYTHON in the Makefile, so that the two
437 # configurations build parallel-installable binaries with different names
438 # ("python-debug" vs "python").
439 #
440 #   * Similarly, we add DEBUG_SUFFIX within python-config and
441 #  python$(VERSION)-config, so that the two configuration get different paths
442 #  for these.
443 #
444 #  See also patch 130 below
445 #
446 Patch112: python-2.7.3-debug-build.patch
447
448
449 # 00113 #
450 # Add configure-time support for the COUNT_ALLOCS and CALL_PROFILE options
451 # described at http://svn.python.org/projects/python/trunk/Misc/SpecialBuilds.txt
452 # so that if they are enabled, they will be in that build's pyconfig.h, so that
453 # extension modules will reliably use them
454 # Not yet sent upstream
455 Patch113: 00113-more-configuration-flags.patch
456
457 # 00114 #
458 # Add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
459 # (rhbz:553020); partially upstream as http://bugs.python.org/issue7647
460 # Not yet sent upstream
461 Patch114: 00114-statvfs-f_flag-constants.patch
462
463 # Upstream as of Python 2.7.3:
464 #  Patch115: make-pydoc-more-robust-001.patch
465
466 # Upstream r79310 removed the "Modules" directory from sys.path when Python is
467 # running from the build directory on POSIX to fix a unit test (issue #8205).
468 # This seems to have broken the compileall.py done in "make install": it cannot
469 # find shared library extension modules at this point in the build (sys.path
470 # does not contain DESTDIR/usr/lib(64)/python-2.7/lib-dynload for some reason),
471 # leading to the build failing with:
472 # Traceback (most recent call last):
473 #   File "/home/david/rpmbuild/BUILDROOT/python-2.7-0.1.rc2.fc14.x86_64/usr/lib64/python2.7/compileall.py", line 17, in <module>
474 #     import struct
475 #   File "/home/david/rpmbuild/BUILDROOT/python-2.7-0.1.rc2.fc14.x86_64/usr/lib64/python2.7/struct.py", line 1, in <module>
476 #    from _struct import *
477 # ImportError: No module named _struct
478 # This patch adds the build Modules directory to build path.
479 Patch121: 00121-add-Modules-to-build-path.patch
480
481 # 00125 #
482 # COUNT_ALLOCS is useful for debugging, but the upstream behaviour of always
483 # emitting debug info to stdout on exit is too verbose and makes it harder to
484 # use the debug build.  Add a "PYTHONDUMPCOUNTS" environment variable which
485 # must be set to enable the output on exit
486 # Not yet sent upstream
487 Patch125: 00125-less-verbose-COUNT_ALLOCS.patch
488
489 # Upstream as of Python 2.7.5
490 #  Patch126: fix-dbm_contains-on-64bit-bigendian.patch
491
492 # Upstream as of Python 2.7.5
493 #  Patch127: fix-test_structmember-on-64bit-bigendian.patch
494
495 # 2.7.1 (in r84230) added a test to test_abc which fails if python is
496 # configured with COUNT_ALLOCS, which is the case for our debug build
497 # (the COUNT_ALLOCS instrumentation keeps "C" alive).
498 # Not yet sent upstream
499 Patch128: python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
500
501 # 00130 #
502 # Add "--extension-suffix" option to python-config and python-debug-config
503 # (rhbz#732808)
504 #
505 # This is adapted from 3.2's PEP-3149 support.
506 #
507 # Fedora's debug build has some non-standard features (see also patch 112
508 # above), though largely shared with Debian/Ubuntu and Windows
509 #
510 # In particular, SO in the Makefile is currently always just ".so" for our
511 # python 2 optimized builds, but for python 2 debug it should be '_d.so', to
512 # distinguish the debug vs optimized ABI, following the pattern in the above
513 # patch.
514 #
515 # Not yet sent upstream
516 Patch130: python-2.7.2-add-extension-suffix-to-python-config.patch
517
518 # 00131 #
519 # The four tests in test_io built on top of check_interrupted_write_retry
520 # fail when built in Koji, for ppc and ppc64; for some reason, the SIGALRM
521 # handlers are never called, and the call to write runs to completion
522 # (rhbz#732998)
523 Patch131: 00131-disable-tests-in-test_io.patch
524
525 # 00132 #
526 # Add non-standard hooks to unittest for use in the "check" phase below, when
527 # running selftests within the build:
528 #   @unittest._skipInRpmBuild(reason)
529 # for tests that hang or fail intermittently within the build environment, and:
530 #   @unittest._expectedFailureInRpmBuild
531 # for tests that always fail within the build environment
532 #
533 # The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
534 # environment, which we set manually in the appropriate portion of the "check"
535 # phase below (and which potentially other python-* rpms could set, to reuse
536 # these unittest hooks in their own "check" phases)
537 Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
538
539 # 00133 #
540 # "dl" is deprecated, and test_dl doesn't work on 64-bit builds:
541 Patch133: 00133-skip-test_dl.patch
542
543 # 00134 #
544 # Fix a failure in test_sys.py when configured with COUNT_ALLOCS enabled
545 # Not yet sent upstream
546 Patch134: 00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch
547
548 # 00135 #
549 # Skip "test_callback_in_cycle_resurrection" in a debug build, where it fails:
550 # Not yet sent upstream
551 Patch135: 00135-skip-test-within-test_weakref-in-debug-build.patch
552
553 # 00136 #
554 # Some tests try to seek on sys.stdin, but don't work as expected when run
555 # within Koji/mock; skip them within the rpm build:
556 Patch136: 00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
557
558 # 00137 #
559 # Some tests within distutils fail when run in an rpmbuild:
560 Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
561
562 # 00138 #
563 # Fixup some tests within distutils to work with how debug builds are set up:
564 Patch138: 00138-fix-distutils-tests-in-debug-build.patch
565
566 # 00139 #
567 # ARM-specific: skip known failure in test_float:
568 #  http://bugs.python.org/issue8265 (rhbz#706253)
569 Patch139: 00139-skip-test_float-known-failure-on-arm.patch
570
571 # 00140 #
572 # Sparc-specific: skip known failure in test_ctypes:
573 #  http://bugs.python.org/issue8314 (rhbz#711584)
574 # which appears to be a libffi bug
575 Patch140: 00140-skip-test_ctypes-known-failure-on-sparc.patch
576
577 # 00141 #
578 # Fix test_gc's test_newinstance case when configured with COUNT_ALLOCS:
579 # Not yet sent upstream
580 Patch141: 00141-fix-test_gc_with_COUNT_ALLOCS.patch
581
582 # 00142 #
583 # Some pty tests fail when run in mock (rhbz#714627):
584 Patch142: 00142-skip-failing-pty-tests-in-rpmbuild.patch
585
586 # 00143 #
587 # Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
588 # aliasing violations (rhbz#698726)
589 # Sent upstream as http://bugs.python.org/issue12872
590 Patch143: 00143-tsc-on-ppc.patch
591
592 # 00144 #
593 # (Optionally) disable the gdbm module:
594 Patch144: 00144-no-gdbm.patch
595
596 # 00145 #
597 # Upstream as of Python 2.7.3:
598 #  Patch145: 00145-force-sys-platform-to-be-linux2.patch
599
600 # 00146 #
601 # Support OpenSSL FIPS mode (e.g. when OPENSSL_FORCE_FIPS_MODE=1 is set)
602 # - handle failures from OpenSSL (e.g. on attempts to use MD5 in a
603 #   FIPS-enforcing environment)
604 # - add a new "usedforsecurity" keyword argument to the various digest
605 #   algorithms in hashlib so that you can whitelist a callsite with
606 #   "usedforsecurity=False"
607 # (sent upstream for python 3 as http://bugs.python.org/issue9216; this is a
608 # backport to python 2.7; see RHEL6 patch 119)
609 # - enforce usage of the _hashlib implementation: don't fall back to the _md5
610 #   and _sha* modules (leading to clearer error messages if fips selftests
611 #   fail)
612 # - don't build the _md5 and _sha* modules; rely on the _hashlib implementation
613 #   of hashlib (for example, md5.py will use _hashlib's implementation of MD5,
614 #   if permitted by the FIPS setting)
615 # (rhbz#563986)
616 Patch146: 00146-hashlib-fips.patch
617
618 # 00147 #
619 # Add a sys._debugmallocstats() function
620 # Based on patch 202 from RHEL 5's python.spec, with updates from rhbz#737198
621 # Sent upstream as http://bugs.python.org/issue14785
622 Patch147: 00147-add-debug-malloc-stats.patch
623
624 # 00148 #
625 # Upstream as of Python 2.7.3:
626 #  Patch148: 00148-gdbm-1.9-magic-values.patch
627
628 # 00149 #
629 # python3.spec's
630 #   Patch149: 00149-backport-issue11254-pycache-bytecompilation-fix.patch
631 # is not relevant for Python 2
632
633 # 00150 #
634 # python3.spec has:
635 #  Patch150: 00150-disable-rAssertAlmostEqual-cmath-on-ppc.patch
636 # as a workaround for a glibc bug on PPC (bz #750811)
637
638 # 00151 #
639 # Upstream as of Python 2.7.3:
640 #  Patch151: 00151-fork-deadlock.patch
641
642 # 00152 #
643 # python3.spec has:
644 #  Patch152: 00152-fix-test-gdb-regex.patch
645
646 # 00153 #
647 # Strip out lines of the form "warning: Unable to open ..." from gdb's stderr
648 # when running test_gdb.py; also cope with change to gdb in F17 onwards in
649 # which values are printed as "v@entry" rather than just "v":
650 # Not yet sent upstream
651 Patch153: 00153-fix-test_gdb-noise.patch
652
653 # 00154 #
654 # python3.spec on f15 has:
655 #  Patch154: 00154-skip-urllib-test-requiring-working-DNS.patch
656
657 # 00155 #
658 # Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
659 # generating SELinux denials on "import ctypes" and "import uuid" when
660 # embedding Python within httpd (rhbz#814391)
661 Patch155: 00155-avoid-ctypes-thunks.patch
662
663 # 00156 #
664 # Recent builds of gdb will only auto-load scripts from certain safe
665 # locations.  Turn off this protection when running test_gdb in the selftest
666 # suite to ensure that it can load our -gdb.py script (rhbz#817072):
667 # Not yet sent upstream
668 Patch156: 00156-gdb-autoload-safepath.patch
669
670 # 00157 #
671 # Update uid/gid handling throughout the standard library: uid_t and gid_t are
672 # unsigned 32-bit values, but existing code often passed them through C long
673 # values, which are signed 32-bit values on 32-bit architectures, leading to
674 # negative int objects for uid/gid values >= 2^31 on 32-bit architectures.
675 #
676 # Introduce _PyObject_FromUid/Gid to convert uid_t/gid_t values to python
677 # objects, using int objects where the value will fit (long objects otherwise),
678 # and _PyArg_ParseUid/Gid to convert int/long to uid_t/gid_t, with -1 allowed
679 # as a special case (since this is given special meaning by the chown syscall)
680 #
681 # Update standard library to use this throughout for uid/gid values, so that
682 # very large uid/gid values are round-trippable, and -1 remains usable.
683 # (rhbz#697470)
684 Patch157: 00157-uid-gid-overflows.patch
685
686 # Upstream as of Python 2.7.4
687 # Patch158: 00158-fix-hashlib-leak.patch
688
689 # 00160 #
690 # python3.spec's
691 #   Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
692 # is not relevant for Python 2
693
694 # 00161 #
695 # python3.spec has:
696 #   Patch161: 00161-fix-test_tools-directory.patch
697 # which will likely become relevant for Python 2 next time we rebase
698
699 # 00162 #
700 # python3.spec has:
701 #  Patch162: 00162-distutils-sysconfig-fix-CC-options.patch
702
703 # 00163 #
704 # python3.spec has:
705 #  Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
706
707 # 00164 #
708 # python3.spec has:
709 #  Patch164: 00164-disable-interrupted_write-tests-on-ppc.patch
710
711 # 00165 #
712 # Backport to Python 2 from Python 3.3 of improvements to the "crypt" module
713 # adding precanned ways of salting a password (rhbz#835021)
714 # Based on r88500 patch to py3k from Python 3.3
715 # plus 6482dd1c11ed, 0586c699d467, 62994662676a, 74a1110a3b50, plus edits
716 # to docstrings to note that this additional functionality is not standard
717 # within 2.7
718 Patch165: 00165-crypt-module-salt-backport.patch
719
720 # 00166 #
721 # Bulletproof the gdb debugging hooks against the case where co_filename for
722 # a frame can't be read from the inferior process (rhbz#912025)
723 #
724 # Not yet sent upstream
725 Patch166: 00166-fix-fake-repr-in-gdb-hooks.patch
726
727 # 00167 #
728 # Don't run any of the stack navigation tests in test_gdb when Python is
729 # optimized, since there appear to be many different ways in which gdb can
730 # fail to read the PyFrameObject* for arbitrary places in the callstack,
731 # presumably due to compiler optimization (rhbz#912025)
732 #
733 # Not yet sent upstream
734 Patch167: 00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch
735
736 # 00168 #
737 # Update distutils.sysconfig so that if CFLAGS is defined in the environment,
738 # when building extension modules, it is appended to the full compilation
739 # flags from Python's Makefile, rather than instead reducing the compilation
740 # flags to the subset within OPT and adding it to those.
741 #
742 # In particular, this should ensure that "-fno-strict-aliasing" is used by
743 # "python setup.py build" even when CFLAGS is defined in the environment.
744 #
745 # (rhbz#849994)
746 Patch168: 00168-distutils-cflags.patch
747
748 # 00169 #
749 # Use SHA-256 rather than implicitly using MD5 within the challenge handling
750 # in multiprocessing.connection
751 #
752 # Sent upstream as http://bugs.python.org/issue17258
753 # (rhbz#879695)
754 Patch169: 00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
755
756 # 00170 #
757 # In debug builds, try to print repr() when a C-level assert fails in the
758 # garbage collector (typically indicating a reference-counting error
759 # somewhere else e.g in an extension module)
760 # Backported to 2.7 from a patch I sent upstream for py3k
761 #   http://bugs.python.org/issue9263  (rhbz#614680)
762 # hiding the proposed new macros/functions within gcmodule.c to avoid exposing
763 # them within the extension API.
764 # (rhbz#850013)
765 Patch170: 00170-gc-assertions.patch
766
767 # Upstream as of Python 2.7.4
768 #  Patch171: 00171-raise-correct-exception-when-dev-urandom-is-missing.patch
769
770 # Upstream as of Python 2.7.4
771 #  Patch172: 00172-use-poll-for-multiprocessing-socket-connection.patch
772
773 # 00173 #
774 # Workaround for ENOPROTOOPT seen in Koji within
775 # test.test_support.bind_port()
776 # (rhbz#913732)
777 Patch173: 00173-workaround-ENOPROTOOPT-in-bind_port.patch
778
779 # 00174 #
780 # Workaround for failure to set up prefix/exec_prefix when running
781 # an embededed libpython that sets Py_SetProgramName() to a name not
782 # on $PATH when run from the root directory due to
783 #   https://fedoraproject.org/wiki/Features/UsrMove
784 # e.g. cmpi-bindings under systemd (rhbz#817554):
785 Patch174: 00174-fix-for-usr-move.patch
786
787 # 00175 #
788 # Upstream as of Python 2.7.5
789 #  Patch175: 00175-fix-configure-Wformat.patch
790
791 # 00176 #
792 # python3.spec had:
793 #  Patch176: 00176-upstream-issue16754-so-extension.patch
794 # doesn't affect python2
795
796 # 00177 #
797 # python3.spec has
798 #  Patch177: 00177-platform-unicode.patch
799 # Does not affect python2
800
801 # 00178 #
802 # python3.spec has
803 #  Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
804 # Does not affect python2 AFAICS (different sysconfig values initialization)
805
806 # 00179 #
807 # python3.spec has
808 #  Patch179: 00179-dont-raise-error-on-gdb-corrupted-frames-in-backtrace.patch
809 # Doesn't seem to affect python2
810
811 # 00180 #
812 # Enable building on ppc64p7
813 # Not appropriate for upstream, Fedora-specific naming
814 Patch180: 00180-python-add-support-for-ppc64p7.patch
815
816 # 00181 #
817 # Allow arbitrary timeout for Condition.wait, as reported in
818 # https://bugzilla.redhat.com/show_bug.cgi?id=917709
819 # Upstream doesn't want this: http://bugs.python.org/issue17748
820 # But we have no better solution downstream yet, and since there is
821 # no API breakage, we apply this patch.
822 # Doesn't apply to Python 3, where this is fixed otherwise and works.
823 Patch181: 00181-allow-arbitrary-timeout-in-condition-wait.patch
824
825 # 00182 #
826 # python3.spec had
827 #  Patch182: 00182-fix-test_gdb-test_threads.patch
828
829 # 00183 #
830 # python3.spec has
831 #  Patch183: 00183-cve-2013-2099-fix-ssl-match_hostname-dos.patch
832
833 # 00184 #
834 # Fix for https://bugzilla.redhat.com/show_bug.cgi?id=979696
835 # Fixes build of ctypes against libffi with multilib wrapper
836 # Python recognizes ffi.h only if it contains "#define LIBFFI_H",
837 # but the wrapper doesn't contain that, which makes the build fail
838 # We patch this by also accepting "#define ffi_wrapper_h"
839 Patch184: 00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
840
841 # 00185 #
842 # Makes urllib2 honor "no_proxy" enviroment variable for "ftp:" URLs
843 # when ftp_proxy is set
844 # Resolves rhbz#971267
845 Patch185: 00185-urllib2-honors-noproxy-for-ftp.patch
846
847 # 00186 #
848 # Fix memory leak of variable utf8 in marshal.c
849 # (rhbz#990554)
850 Patch186: 00186-memory-leak-marshalc.patch
851
852 # 00187 #
853 # Add an explicit RPATH to pyexpat.so pointing at the directory
854 # containing the system expat (which has the extra XML_SetHashSalt
855 # symbol), to avoid an ImportError with a link error if there's an
856 # LD_LIBRARY_PATH containing a "vanilla" build of expat (without the
857 # symbol) (originally rhbz#833271, for rhel 7 rhbz#996665):
858 Patch187: 00187-add-RPATH-to-pyexpat.patch
859
860 # 00188 #
861 # Fix for CVE-2013-4238 --
862 # SSL module fails to handle NULL bytes inside subjectAltNames general names
863 # http://bugs.python.org/issue18709
864 # rhbz#998781
865 Patch188: 00188-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch
866
867 # 00189 #
868 # Fixes gdb py-bt command not to raise exception while processing
869 # statements from eval
870 # rhbz#1008154 (patch by Attila Fazekas)
871 Patch189: 00189-gdb-py-bt-dont-raise-exception-from-eval.patch
872
873 # 190 #
874 # Don't fail various gdb tests on ppc64 if glibc debug
875 # symbols are installed
876 Patch190: 00190-gdb-fix-ppc64-failures.patch
877
878 # 00191 #
879 # Add explicit RPATH to _elementtree.so
880 # rhbz#1019345
881 Patch191: 00191-add-RPATH-to-elementtree.patch
882
4082f8 883 # 00192 #
CB 884 # Fix missing documentation for some keywords
885 # rhbz#1032116
886 Patch192: 00192-Fix-missing-documentation-for-some-keywords.patch
887
888 # 00193 #
889 # Fix buffer overflow (upstream patch, http://bugs.python.org/issue20246)
890 # rhbz#1062376
891 Patch193: 00193-buffer-overflow.patch
892
9a62d8 893 # 00194 #
CS 894 # Make GDB test pass even if GDB prints program counter for
895 # the first trace frame
896 Patch194: 00194-gdb-dont-fail-on-frame-with-address.patch
897
898 # 0195 #
899 # Make multiprocessing ignore EINTR
900 # rhbz#1181624
901 Patch195: 00195-make-multiproc-ignore-EINTR.patch
902
f63228 903 # 00196 #
CS 904 # Avoid double close of subprocess pipes when the child process
905 # fails starting
906 # rhbz#110345p
907 Patch196: 00196-avoid-double-close-of-pipes.patch
908
909 # 00197 #
910 # Add missing import in bdist_rpm
911 # rhbz#1177613
912 Patch197: 00197-add-missing-import-in-bdist_rpm.patch
913
914 # 00198 #
915 # Fix importing readline producing erroneous output
916 Patch198: 00198-fix-readline-erroneous-output.patch
917
918 # 00199 #
919 # Fix for CVE-2013-1753
920 # rhbz#1046170
921 Patch199: 00199-CVE-2013-1753.patch
922
923 # 00200 #
924 # Fix for CVE-2014-4616
925 # rhbz#1112285
926 Patch200: 00200-CVE-2014-4616.patch
927
928 # 00201 #
929 # Fix for CVE-2014-4650
930 # rhbz#1113527
931 Patch201: 00201-CVE-2014-4650.patch
932
933 # 00202 #
934 # Fix for CVE-2014-7185
935 # rhbz#1146026
936 Patch202: 00202-CVE-2014-7185.patch
937
938 # Fixes for CVE-2013-1752
939 # rhbz#1046174
940 Patch203: 00203-CVE-2013-1752-nntplib.patch
941 Patch204: 00204-CVE-2013-1752-ftplib.patch
942 Patch205: 00205-CVE-2013-1752-httplib-headers.patch
943 Patch206: 00206-CVE-2013-1752-poplib.patch
944 Patch207: 00207-CVE-2013-1752-smtplib.patch
945 Patch208: 00208-CVE-2013-1752-imaplib.patch
946
947 # ================== PEP466===========================
948 # Massive backport of PEP466 and relevant other fixes
949 # ================rhbz#1111461========================
950 # 00209 #
951 # backport hmac.compare_digest 
952 # http://bugs.python.org/issue21306
953 Patch209: 00209-pep466-backport-hmac.compare_digest.patch
954 # 00210 #
955 # backport hashlib.pbkdf2_hmac
956 # http://bugs.python.org/issue21304
957 Patch210: 00210-pep466-backport-hashlib.pbkdf2_hmac.patch
958 # 00211 #
959 # UTF-7 decoder can produce inconsistent Unicode string
960 # http://bugs.python.org/issue19279
961 Patch211: 00211-pep466-UTF-7-decoder-fix-illegal-unicode.patch
962 # 00212 #
963 # Add range check for %c in PyUnicode_FromFormat
964 # http://bugs.python.org/issue18184
965 Patch212: 00212-pep466-pyunicode_fromformat-raise-overflow.patch
966 # 00213 #
967 # Fix %S, %R and %V formats of PyUnicode_FromFormat().
968 # http://bugs.python.org/issue122023
969 Patch213: 00213-pep466-pyunicode_fromformat-fix-formats.patch
970 # 00214 #
971 # Backport SSL module from Python3
972 # http://bugs.python.org/issue21308
973 Patch214: 00214-pep466-backport-py3-ssl-changes.patch
974 # 00215 #
975 # OpenSSL disabled various ciphers and protocols
976 # we have to reflect it in tests
977 Patch215: 00215-pep466-reflect-openssl-settings-ssltests.patch
978 # 00216 #
979 # fix load_verify_locations on unicode paths
980 # http://bugs.python.org/issue22244
981 Patch216: 00216-pep466-fix-load-verify-locs-unicode.patch
982 # 00217 #
983 # backport hashlib changes
984 # http://bugs.python.org/issue21307
985 Patch217: 00217-pep466-backport-hashlib-algorithm-consts.patch
986 # 00218 #
987 # update os.urandom
988 # http://bugs.python.org/issue21305
989 Patch218: 00218-pep466-backport-urandom-pers-fd.patch
990 # 00219 #
991 # Lib/ssl.py still references _ssl.sslwrap
992 # http://bugs.python.org/issue22523
993 Patch219: 00219-pep466-fix-referenced-sslwrap.patch
994 # 00220 #
995 # allow passing cert/ssl information to urllib2.urlopen and httplib.HTTPSConnection
996 Patch220: 00220-pep466-allow-passing-ssl-urrlib-httplib.patch
997 # 00221 #
998 # Patch214 remove sslwrap from _ssl.c this so we have to reimplement it
04a680 999 #Patch221: 00221-pep466-backport-sslwrap-c-ssl.patch
CS 1000 # Backporting sslwrap introduces regressions so patch 221 was dropped (rhbz#1331425)
f63228 1001 # 00222 #
CS 1002 # test_ssl: fails on recent libressl version with BAD_DH_P_LENGTH
1003 # https://bugs.python.org/issue23844
1004 Patch222: 00222-add-2014-bit-dh-key.patch
1005 # 00223 #
1006 # PEP 476: verify HTTPS certificates by default
1007 # http://bugs.python.org/issue22417
1008 # Resolves:rhbz#1219110
1009 Patch223: 00223-pep476-verify-certs-by-default.patch
1010 # 00224 #
1011 # Add switch to toggle global verification on and off
1012 # Resolves:rhbz#1219108
1013 # For more information see PEP493
1014 Patch224: 00224-pep476-add-toggle-for-cert-verify.patch
1015
1016 # 00225 #
1017 # Add list of choices to sort option of cProfile
1018 # Resolves:rhbz#1237107
1019 Patch225: 00225-cprofile-sort-option.patch
1020
1021 # 00227 #
04a680 1022 # Make load_cert_chain function of SSLContext accept a
CS 1023 # keyfile argument set to None
1024 # Upstream issue: http://bugs.python.org/issue22787
f63228 1025 # Resolves: rhbz#1250611
CS 1026 Patch227: 00227-accept-none-keyfile-loadcertchain.patch
1027
1028 # 00228 #
1029 # Backport SSLSocket.version function
1030 # Resolves: rhbz#1259421
1031 Patch228: 00228-backport-ssl-version.patch
1032
854cc6 1033 # 00229 #
CS 1034 # Adjusted tests to acknowledge lack of SSLv2 support
1035 # Resolves: rhbz#1315310
1036 Patch229: 00229-Expect-a-failure-when-trying-to-connect-with-SSLv2-c.patch
1037
1038 # 00230 #
1039 # Force all child threads to terminate in TestForkInThread, so no zombie
04a680 1040 # processes get left behind with stalled threads which hang Python builds
854cc6 1041 # https://bugs.python.org/issue26456
04a680 1042 # Resolves: rhbz#1313259
854cc6 1043 Patch230: 00230-force-all-child-threads-to-terminate-in-TestForkInThread.patch
CS 1044
022bfa 1045 # 00231 #
CS 1046 # Fix hashlib algorithms breaking by initializing OpenSSL_add_all_digests
1047 # function in _hashlib library of _hashopenssl.c module
04a680 1048 # Resolves: rhbz#1295459
022bfa 1049 Patch231: 00231-Initialize-OpenSSL_add_all_digests-in-_hashlib.patch
04a680 1050
CS 1051 # 00232 #
1052 # Removal of the '$Date$' placeholder on the python(1) man page footer,
1053 # which does not expand during build
1054 # http://bugs.python.org/issue17167
1055 # Resolves: rhbz#1268310
1056 Patch232: 00232-man-page-date-macro-removal.patch
1057
1058 # 00233 #
1059 # Backport of Computed Goto dispatch
1060 # http://bugs.python.org/issue4753
1061 # https://lwn.net/Articles/646888/
1062 # Resolves: rhbz#1289277
1063 Patch233: 00233-Computed-Goto-dispatch.patch
1064
1065 # 00234 #
1066 # Updated implementation of PEP493
1067 # The following features were backported:
1068 # https://www.python.org/dev/peps/pep-0493/#feature-configuration-api
1069 # https://www.python.org/dev/peps/pep-0493/#feature-environment-based-configuration
1070 # Combined usage explained:
1071 # https://www.python.org/dev/peps/pep-0493/#recommendation-for-combined-feature-backports
1072 # Resolves: rhbz#1315758
71084d 1073 # Patch was modified to enable the certificate verification globally as the platform default
CS 1074 # See also patch224
1075 # Resolves: rhbz#1219110
04a680 1076 Patch234: 00234-PEP493-updated-implementation.patch
CS 1077
1078 # 0235 #
1079 # JSON decoder lone surrogates fix.
1080 # https://bugs.python.org/issue11489
1081 # Resolves: rhbz#1301017
1082 Patch235: 00235-JSON-decoder-lone-surrogates-fix.patch
1083
1084 # 0236 #
1085 # Fix for iteration over files vith very long lines
1086 # http://bugs.python.org/issue22526
1087 # Resolves: rhbz#1271760
1088 Patch236: 00236-use-Py_ssize_t-for-file-offset-and-length-computations-in-iteration.patch
022bfa 1089
854cc6 1090 # 00237 #
CS 1091 # CVE-2016-0772 python: smtplib StartTLS stripping attack
1092 #   https://bugzilla.redhat.com/show_bug.cgi?id=1303647
1093 #   FIXED UPSTREAM: https://hg.python.org/cpython/rev/b3ce713fb9be
1094 # Raise an error when STARTTLS fails
04a680 1095 # Resolves: rhbz#1346357
854cc6 1096 Patch237: 00237-CVE-2016-0772-smtplib.patch
CS 1097
1098 # 00238 #
1099 # CVE-2016-5699 python: http protocol steam injection attack
04a680 1100 # https://bugzilla.redhat.com/show_bug.cgi?id=1303699
CS 1101 # FIXED UPSTREAM: https://hg.python.org/cpython/rev/1c45047c5102
854cc6 1102 # Disabled HTTP header injections in httplib
04a680 1103 # Resolves: rhbz#1346357
854cc6 1104 Patch238: 00238-CVE-2016-5699-httplib.patch
04a680 1105
CS 1106 # 00241 #
1107 # CVE-2016-5636: http://seclists.org/oss-sec/2016/q2/560
1108 # https://hg.python.org/cpython/rev/985fc64c60d6/
1109 # https://hg.python.org/cpython/rev/2edbdb79cd6d
1110 # Fix possible integer overflow and heap corruption in zipimporter.get_data()
1111 # FIXED UPSTREAM: https://bugs.python.org/issue26171
1112 # Resolves: rhbz#1356364
1113 Patch241: 00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
854cc6 1114
CS 1115 # 00242 #
1116 # HTTPoxy attack (CVE-2016-1000110)
1117 # https://httpoxy.org/
1118 # FIXED UPSTREAM: http://bugs.python.org/issue27568
1119 # Based on a patch by Rémi Rampin
04a680 1120 # Resolves: rhbz#1359164
854cc6 1121 Patch242: 00242-CVE-2016-1000110-httpoxy.patch
71084d 1122
CS 1123 # 00255 #
1124 # Fix Python's failure to decode X.509 certificates
1125 # with a GEN_RID general name in subject alternative names.
1126 # FIXED UPSTREAM: http://bugs.python.org/issue27691
1127 # Resolves: rhbz#1364444
1128 Patch255: 00255-Fix-ssl-module-parsing-of-GEN_RID-subject-alternative-name-fields-in-X.509-certs.patch
1129
1130 # 00256 #
1131 # Fix Python's incorrect parsing of certain regular expressions
1132 # FIXED UPSTREAM: http://bugs.python.org/issue18647
1133 # Resolves: rhbz#1373363
1134 Patch256: 00256-fix-incorrect-parsing-of-regular-expressions.patch
1135
1136 # 00257 #
1137 # Python's threading library doesn't use the monotonic clock when handling wait timeouts,
1138 # so when the system clock is set backwards, the wait doesn't return after the timeout,
1139 # causing deadlocks.
1140 # This patch works around the issue.
1141 # Resolves: rhbz#1368076
1142 # DOWNSTREAM ONLY PATCH
1143 Patch257: 00257-threading-wait-clamp-remaining-time.patch
1144
1145 # 00263 #
1146 # Fix reference leaks of certfile_bytes and keyfile_bytes at _ssl.c
1147 # FIXED UPSTREAM: http://bugs.python.org/issue27267
1148 # https://github.com/python/cpython/commit/b3e073cbb3af2999e6e589f55ec2fc8a109fdc14
1149 # https://github.com/python/cpython/commit/3b91de5a76aad471476f5bc5943e44bf386c0e6d
1150 # Resolves: rhbz#1272562
1151 Patch263: 00263-fix-ssl-reference-leaks.patch
1152
1153 # 00265 #
1154 # Protect the key list during fork() in order for the forked process to not inherit an inconsistent key list.
1155 # Reported upstream: http://bugs.python.org/issue29640
1156 # Resolves: rhbz#1268226
1157 Patch265: 00265-protect-key-list-during-fork.patch
1158
1159 # 00266 #
1160 # Make shutil.make_archive() to not ingore empty directories when creating a zip file.
1161 # Also refactor and extend the shutil test suite.
1162 # FIXED UPSTREAM: https://bugs.python.org/issue24982
1163 # https://github.com/python/cpython/commit/04861dc82f595e3e2f0ab4b1a62de2f812c8fa37
1164 # Resolves: rhbz#1439734
1165 Patch266: 00266-fix-shutil.make_archive-ignoring-empty-dirs.patch
1166
1167 # 00268 #
1168 # Set stream to None in case an _open() fails.
1169 # FIXED UPSTREAM: https://bugs.python.org/issue21742
1170 # Resolves: rhbz#1432003
1171 Patch268: 00268-set-stream-name-to-None.patch
854cc6 1172
6e8c2f 1173 # (New patches go here ^^^)
CB 1174 #
1175 # When adding new patches to "python" and "python3" in Fedora 17 onwards,
1176 # please try to keep the patch numbers in-sync between the two specfiles:
1177 #
1178 #   - use the same patch number across both specfiles for conceptually-equivalent
1179 #     fixes, ideally with the same name
1180 #
1181 #   - when a patch is relevant to both specfiles, use the same introductory
1182 #     comment in both specfiles where possible (to improve "diff" output when
1183 #     comparing them)
1184 #
1185 #   - when a patch is only relevant for one of the two specfiles, leave a gap
1186 #     in the patch numbering in the other specfile, adding a comment when
1187 #     omitting a patch, both in the manifest section here, and in the "prep"
1188 #     phase below
1189 #
1190 # Hopefully this will make it easier to ensure that all relevant fixes are
1191 # applied to both versions.
1192
1193 # This is the generated patch to "configure"; see the description of
1194 #   %{regenerate_autotooling_patch}
1195 # above:
1196 Patch5000: 05000-autotool-intermediates.patch
1197
1198 # ======================================================
1199 # Additional metadata, and subpackages
1200 # ======================================================
1201
1202 %if %{main_python}
1203 Obsoletes: Distutils
1204 Provides: Distutils
1205 Obsoletes: python2 
1206 Provides: python2 = %{version}
1207 Obsoletes: python-elementtree <= 1.2.6
1208 Obsoletes: python-sqlite < 2.3.2
1209 Provides: python-sqlite = 2.3.2
1210 Obsoletes: python-ctypes < 1.0.1
1211 Provides: python-ctypes = 1.0.1
1212 Obsoletes: python-hashlib < 20081120
1213 Provides: python-hashlib = 20081120
1214 Obsoletes: python-uuid < 1.31
1215 Provides: python-uuid = 1.31
1216
1217 # python-sqlite2-2.3.5-5.fc18 was retired.  Obsolete the old package here
1218 # so it gets uninstalled on updates
1219 %if 0%{?fedora} >= 17
1220 Obsoletes: python-sqlite2 <= 2.3.5-6
1221 %endif
1222
1223 # python-argparse is part of python as of version 2.7
1224 # drop this Provides in F17
1225 # (having Obsoletes here caused problems with multilib; see rhbz#667984)
1226 Provides:   python-argparse = %{version}-%{release}
1227 %endif
1228
1229 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
1230
1231 URL: http://www.python.org/
1232
1233 %description
1234 Python is an interpreted, interactive, object-oriented programming
1235 language often compared to Tcl, Perl, Scheme or Java. Python includes
1236 modules, classes, exceptions, very high level dynamic data types and
1237 dynamic typing. Python supports interfaces to many system calls and
1238 libraries, as well as to various windowing systems (X11, Motif, Tk,
1239 Mac and MFC).
1240
1241 Programmers can write new built-in modules for Python in C or C++.
1242 Python can be used as an extension language for applications that need
1243 a programmable interface.
1244
1245 Note that documentation for Python is provided in the python-docs
1246 package.
1247
1248 This package provides the "python" executable; most of the actual
1249 implementation is within the "python-libs" package.
1250
1251 %package libs
1252 Summary: Runtime libraries for Python
1253 Group: Applications/System
1254
1255 # Needed for ctypes, to load libraries, worked around for Live CDs size
1256 # Requires: binutils
1257
1258 # expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME.  We use
1259 # this symbol (in pyexpat), so we must explicitly state this dependency to
1260 # prevent "import pyexpat" from failing with a linker error if someone hasn't
1261 # yet upgraded expat:
1262 Requires: expat >= 2.1.0
1263
1264 %description libs
1265 This package contains runtime libraries for use by Python:
1266 - the libpython dynamic library, for use by applications that embed Python as
1267 a scripting language, and by the main "python" executable
1268 - the Python standard library
1269
1270 %package devel
1271 Summary: The libraries and header files needed for Python development
1272 Group: Development/Libraries
1273 Requires: %{python}%{?_isa} = %{version}-%{release}
1274 Requires: pkgconfig
1275 # Needed here because of the migration of Makefile from -devel to the main
1276 # package
1277 Conflicts: %{python} < %{version}-%{release}
1278 %if %{main_python}
1279 Obsoletes: python2-devel
1280 Provides: python2-devel = %{version}-%{release}
1281 %endif
1282
1283 %description devel
1284 The Python programming language's interpreter can be extended with
1285 dynamically loaded extensions and can be embedded in other programs.
1286 This package contains the header files and libraries needed to do
1287 these types of tasks.
1288
1289 Install python-devel if you want to develop Python extensions.  The
1290 python package will also need to be installed.  You'll probably also
1291 want to install the python-docs package, which contains Python
1292 documentation.
1293
1294 %package tools
1295 Summary: A collection of development tools included with Python
1296 Group: Development/Tools
1297 Requires: %{name} = %{version}-%{release}
1298 Requires: %{tkinter} = %{version}-%{release}
1299 %if %{main_python}
1300 Obsoletes: python2-tools
1301 Provides: python2-tools = %{version}
1302 %endif
1303
1304 %description tools
1305 This package includes several tools to help with the development of Python   
1306 programs, including IDLE (an IDE with editing and debugging facilities), a 
1307 color editor (pynche), and a python gettext program (pygettext.py).  
1308
1309 %package -n %{tkinter}
1310 Summary: A graphical user interface for the Python scripting language
1311 Group: Development/Languages
1312 Requires: %{name} = %{version}-%{release}
1313 %if %{main_python}
1314 Obsoletes: tkinter2
1315 Provides: tkinter2 = %{version}
1316 %endif
1317
1318 %description -n %{tkinter}
1319
1320 The Tkinter (Tk interface) program is an graphical user interface for
1321 the Python scripting language.
1322
1323 You should install the tkinter package if you'd like to use a graphical
1324 user interface for Python programming.
1325
1326 %package test
1327 Summary: The test modules from the main python package
1328 Group: Development/Languages
1329 Requires: %{name} = %{version}-%{release}
1330
1331 %description test
1332
1333 The test modules from the main python package: %{name}
1334 These have been removed to save space, as they are never or almost
1335 never used in production.
1336
1337 You might want to install the python-test package if you're developing python
1338 code that uses more than just unittest and/or test_support.py.
1339
1340 %if 0%{?with_debug_build}
1341 %package debug
1342 Summary: Debug version of the Python runtime
1343 Group: Applications/System
1344
1345 # The debug build is an all-in-one package version of the regular build, and
1346 # shares the same .py/.pyc files and directories as the regular build.  Hence
1347 # we depend on all of the subpackages of the regular build:
1348 Requires: %{name}%{?_isa} = %{version}-%{release}
1349 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
1350 Requires: %{name}-devel%{?_isa} = %{version}-%{release}
1351 Requires: %{name}-test%{?_isa} = %{version}-%{release}
1352 Requires: tkinter%{?_isa} = %{version}-%{release}
1353 Requires: %{name}-tools%{?_isa} = %{version}-%{release}
1354
1355 %description debug
1356 python-debug provides a version of the Python runtime with numerous debugging
1357 features enabled, aimed at advanced Python users, such as developers of Python
1358 extension modules.
1359
1360 This version uses more memory and will be slower than the regular Python build,
1361 but is useful for tracking down reference-counting issues, and other bugs.
1362
1363 The bytecodes are unchanged, so that .pyc files are compatible between the two
1364 version of Python, but the debugging features mean that C/C++ extension modules
1365 are ABI-incompatible with those built for the standard runtime.
1366
1367 It shares installation directories with the standard Python runtime, so that
1368 .py and .pyc files can be shared.  All compiled extension modules gain a "_d"
1369 suffix ("foo_d.so" rather than "foo.so") so that each Python implementation can
1370 load its own extensions.
1371 %endif # with_debug_build
1372
1373
1374 # ======================================================
1375 # The prep phase of the build:
1376 # ======================================================
1377
1378 %prep
1379 %setup -q -n Python-%{version}
1380
1381 %if 0%{?with_systemtap}
1382 # Provide an example of usage of the tapset:
1383 cp -a %{SOURCE4} .
1384 cp -a %{SOURCE5} .
1385 %endif # with_systemtap
1386
1387 # Ensure that we're using the system copy of various libraries, rather than
1388 # copies shipped by upstream in the tarball:
1389 #   Remove embedded copy of expat:
1390 rm -r Modules/expat || exit 1
1391
1392 #   Remove embedded copy of libffi:
1393 for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx ; do
1394   rm -r Modules/_ctypes/$SUBDIR || exit 1 ;
1395 done
1396
1397 #   Remove embedded copy of zlib:
1398 rm -r Modules/zlib || exit 1
1399
1400 # Don't build upstream Python's implementation of these crypto algorithms;
1401 # instead rely on _hashlib and OpenSSL.
1402 #
1403 # For example, in our builds md5.py uses always uses hashlib.md5 (rather than
1404 # falling back to _md5 when hashlib.md5 is not available); hashlib.md5 is
1405 # implemented within _hashlib via OpenSSL (and thus respects FIPS mode)
1406 for f in md5module.c md5.c shamodule.c sha256module.c sha512module.c; do
1407     rm Modules/$f
1408 done
1409
1410 #
1411 # Apply patches:
1412 #
1413 %patch0 -p1 -b .rhconfig
1414 %patch1 -p1 -b .no_gui
1415 %patch4 -p1 -b .cflags
1416 %patch6 -p1 -b .plural
1417 %patch7 -p1
1418
1419 # Try not disabling egg-infos, bz#414711
1420 #patch50 -p1 -b .egginfo
1421
1422 # patch101: upstream as of Python 2.7.4
1423 %if "%{_lib}" == "lib64"
1424 %patch102 -p1 -b .lib64
1425 %patch103 -p1 -b .lib64-sysconfig
1426 %patch104 -p1
1427 %endif
1428
1429 %patch10 -p1 -b .binutils-no-dep
1430 # patch11: upstream as of Python 2.7.3
1431 %patch13 -p1 -b .socketmodule
1432 %patch14 -p1 -b .socketmodule2
1433 %patch16 -p1 -b .rpath
1434 %patch17 -p1 -b .distutils-rpath
1435
1436 %if 0%{?with_systemtap}
1437 %patch55 -p1 -b .systemtap
1438 %endif
1439
1440 %patch111 -p1 -b .no-static-lib
1441
1442 %patch112 -p1 -b .debug-build
1443
1444 %patch113 -p1 -b .more-configuration-flags
1445
1446 %patch114 -p1 -b .statvfs-f-flag-constants
1447
1448 # patch115: upstream as of Python 2.7.3
1449
1450 %patch121 -p1
1451 %patch125 -p1 -b .less-verbose-COUNT_ALLOCS
1452 # 00126: upstream as of Python 2.7.5
1453 # 00127: upstream as of Python 2.7.5
1454 %patch128 -p1
1455
1456 %patch130 -p1
1457
1458 %ifarch ppc %{power64}
1459 %patch131 -p1
1460 %endif
1461
1462 %patch132 -p1
1463 %patch133 -p1
1464 %patch134 -p1
1465 %patch135 -p1
1466 %patch136 -p1
1467 %patch137 -p1
1468 %patch138 -p1
1469 %ifarch %{arm}
1470 %patch139 -p1
1471 %endif
1472 %ifarch %{sparc}
1473 %patch140 -p1
1474 %endif
1475 %patch141 -p1
1476 %patch142 -p1
1477 %patch143 -p1 -b .tsc-on-ppc
1478 %if !%{with_gdbm}
1479 %patch144 -p1
1480 %endif
1481 # 00145: upstream as of Python 2.7.3
1482 %patch146 -p1
1483 %patch147 -p1
1484 # 00148: upstream as of Python 2.7.3
1485 # 00149: not for python 2
1486 # 00150: not for python 2
1487 # 00151: upstream as of Python 2.7.3
1488 # 00152: not for python 2
1489 %patch153 -p0
1490 # 00154: not for python 2
1491 %patch155 -p1
1492 %patch156 -p1
1493 %patch157 -p1
1494 # 00158: upstream as of Python 2.7.4
1495 # 00160: not for python 2
1496 # 00161: not for python 2 yet
1497 # 00162: not for python 2 yet
1498 # 00163: not for python 2 yet
1499 # 00164: not for python 2 yet
1500 %patch165 -p1
1501 mv Modules/cryptmodule.c Modules/_cryptmodule.c
1502 %patch166 -p1
1503 %patch167 -p1
1504 %patch168 -p1
1505 %patch169 -p1
1506 %patch170 -p1
1507 # 00171: upstream as of Python 2.7.4
1508 # 00171: upstream as of Python 2.7.4
1509 %patch173 -p1
1510 %patch174 -p1 -b .fix-for-usr-move
1511 # 00175: upstream as of Python 2.7.5
1512 # 00176: not for python 2
1513 # 00177: not for python 2
1514 # 00178: not for python 2
1515 # 00179: not for python 2
1516 %patch180 -p1
1517 %patch181 -p1
1518 # 00182: not for python2
1519 # 00183: not for python2
1520 %patch184 -p1
1521 %patch185 -p1
1522 %patch186 -p1
1523 %patch187 -p1
1524 %patch188 -p1
1525 %patch189 -p1
1526 %patch190 -p0
1527 %patch191 -p1
4082f8 1528 %patch192 -p1
CB 1529 %patch193 -p1
9a62d8 1530 %patch194 -p0
CS 1531 %patch195 -p1
f63228 1532 %patch196 -p1
CS 1533 %patch197 -p1
1534 %patch198 -p1
1535 %patch199 -p1
1536 %patch200 -p1
1537 %patch201 -p1
1538 %patch202 -p1
1539 %patch203 -p1
1540 %patch204 -p1
1541 %patch205 -p1
1542 %patch206 -p1
1543 %patch207 -p1
1544 %patch208 -p1
1545 %patch209 -p1 
1546 %patch210 -p1
1547 %patch211 -p1
1548 %patch212 -p1
1549 %patch213 -p1
1550 %patch214 -p1
1551 %patch215 -p1
1552 %patch216 -p1
1553 %patch217 -p1
1554 %patch218 -p1
1555 %patch219 -p1
1556 %patch220 -p1
04a680 1557 # 00221: Dropped because of regressions
f63228 1558 %patch222 -p1
CS 1559 %patch223 -p1
1560 %patch224 -p1
1561 %patch225 -p1
1562 %patch227 -p1
1563 %patch228 -p1
854cc6 1564 %patch229 -p1
CS 1565 %patch230 -p1
022bfa 1566 %patch231 -p1
04a680 1567 %patch232 -p1
CS 1568 %patch233 -p1
1569 %patch234 -p1
1570 %patch235 -p1
1571 %patch236 -p1
854cc6 1572 %patch237 -p1
CS 1573 %patch238 -p1
04a680 1574 %patch241 -p1
854cc6 1575 %patch242 -p1
71084d 1576 %patch255 -p1
CS 1577 %patch256 -p1
1578 %patch257 -p1
1579 %patch263 -p1
1580 %patch265 -p1
1581 %patch266 -p1
1582 %patch268 -p1
6e8c2f 1583
CB 1584
1585 # This shouldn't be necesarry, but is right now (2.2a3)
1586 find -name "*~" |xargs rm -f
1587
1588 %if ! 0%{regenerate_autotooling_patch}
1589 # Normally we apply the patch to "configure"
1590 # We don't apply the patch if we're working towards regenerating it
1591 %patch5000 -p0 -b .autotool-intermediates
1592 %endif
1593
1594
1595 # ======================================================
1596 # Configuring and building the code:
1597 # ======================================================
1598
1599 %build
1600 topdir=$(pwd)
1601 export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
1602 export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
1603 export CPPFLAGS="$(pkg-config --cflags-only-I libffi)"
1604 export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
1605 export LINKCC="gcc"
1606 export LDFLAGS="$RPM_LD_FLAGS"
1607 if pkg-config openssl ; then
1608   export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
1609   export LDFLAGS="$LDFLAGS $(pkg-config --libs-only-L openssl)"
1610 fi
4082f8 1611 # compile with -O3 for ppc64 as requested in
CB 1612 # https://bugzilla.redhat.com/show_bug.cgi?id=1051076
1613 %ifarch %{power64}
1614 export CFLAGS="$CFLAGS -O3"
1615 export CXXFLAGS="$CXXFLAGS -O3"
1616 export OPT="$OPT -O3"
1617 %endif
6e8c2f 1618 # Force CC
CB 1619 export CC=gcc
1620
1621 %if 0%{regenerate_autotooling_patch}
1622 # If enabled, this code regenerates the patch to "configure", using a
1623 # local copy of autoconf-2.65, then exits the build
1624 #
1625 # The following assumes that the copy is installed to ~/autoconf-2.65/bin
1626 # as per these instructions:
1627 #   http://bugs.python.org/issue7997
1628
1629 for f in pyconfig.h.in configure ; do
1630     cp $f $f.autotool-intermediates ;
1631 done
1632
1633 # Rerun the autotools:
1634 PATH=~/autoconf-2.65/bin:$PATH autoconf
1635 autoheader
1636
1637 # Regenerate the patch:
1638 gendiff . .autotool-intermediates > %{PATCH5000}
1639
1640
1641 # Exit the build
1642 exit 1
1643 %endif
1644
1645 # Define a function, for how to perform a "build" of python for a given
1646 # configuration:
1647 BuildPython() {
1648   ConfName=$1          
1649   BinaryName=$2
1650   SymlinkName=$3
1651   ExtraConfigArgs=$4
1652   PathFixWithThisBinary=$5
1653
1654   ConfDir=build/$ConfName
1655
1656   echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
1657   mkdir -p $ConfDir
1658
1659   pushd $ConfDir
1660
1661   # Use the freshly created "configure" script, but in the directory two above:
1662   %global _configure $topdir/configure
1663
1664 %configure \
1665   --enable-ipv6 \
1666   --enable-shared \
1667   --enable-unicode=%{unicode} \
1668   --with-dbmliborder=gdbm:ndbm:bdb \
1669   --with-system-expat \
1670   --with-system-ffi \
1671 %if 0%{?with_systemtap}
1672   --with-dtrace \
1673   --with-tapset-install-dir=%{tapsetdir} \
1674 %endif
1675 %if 0%{?with_valgrind}
1676   --with-valgrind \
1677 %endif
1678   $ExtraConfigArgs \
1679   %{nil}
1680
1681 make EXTRA_CFLAGS="$CFLAGS" %{?_smp_mflags}
1682
1683 # We need to fix shebang lines across the full source tree.
1684 #
1685 # We do this using the pathfix.py script, which requires one of the
1686 # freshly-built Python binaries.
1687 #
1688 # We use the optimized python binary, and make the shebangs point at that same
1689 # optimized python binary:
1690 if $PathFixWithThisBinary
1691 then
1692   LD_LIBRARY_PATH="$topdir/$ConfDir" ./$BinaryName \
1693     $topdir/Tools/scripts/pathfix.py \
1694       -i "%{_bindir}/env $BinaryName" \
1695       $topdir
1696 fi
1697
1698 # Rebuild with new python
1699 # We need a link to a versioned python in the build directory
1700 ln -s $BinaryName $SymlinkName
1701 LD_LIBRARY_PATH="$topdir/$ConfDir" PATH=$PATH:$topdir/$ConfDir make -s EXTRA_CFLAGS="$CFLAGS" %{?_smp_mflags}
1702
1703   popd
1704   echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
1705 }
1706
1707 # Use "BuildPython" to support building with different configurations:
1708
1709 %if 0%{?with_debug_build}
1710 BuildPython debug \
1711   python-debug \
1712   python%{pybasever}-debug \
1713 %ifarch %{ix86} x86_64 ppc %{power64}
1714   "--with-pydebug --with-tsc --with-count-allocs --with-call-profile" \
1715 %else
1716   "--with-pydebug --with-count-allocs --with-call-profile" \
1717 %endif
1718   false
1719 %endif # with_debug_build
1720
1721 BuildPython optimized \
1722   python \
1723   python%{pybasever} \
1724   "" \
1725   true
1726
1727
1728 # ======================================================
1729 # Installing the built code:
1730 # ======================================================
1731
1732 %install
1733 topdir=$(pwd)
1734 rm -rf %{buildroot}
1735 mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
1736
1737 # Clean up patched .py files that are saved as .lib64
1738 for f in distutils/command/install distutils/sysconfig; do
1739     rm -f Lib/$f.py.lib64
1740 done
1741
1742 InstallPython() {
1743
1744   ConfName=$1          
1745   BinaryName=$2
1746   PyInstSoName=$3
1747
1748   ConfDir=build/$ConfName
1749
1750   echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
1751   mkdir -p $ConfDir
1752
1753   pushd $ConfDir
1754
1755 make install DESTDIR=%{buildroot}
1756
1757 # We install a collection of hooks for gdb that make it easier to debug
1758 # executables linked against libpython (such as /usr/lib/python itself)
1759 #
1760 # These hooks are implemented in Python itself
1761 #
1762 # gdb-archer looks for them in the same path as the ELF file, with a -gdb.py suffix.
1763 # We put them in the debuginfo package by installing them to e.g.:
1764 #  /usr/lib/debug/usr/lib/libpython2.6.so.1.0.debug-gdb.py
1765 # (note that the debug path is /usr/lib/debug for both 32/64 bit)
1766 #
1767 # See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more
1768 # information
1769
1770 # Initially I tried:
1771 #  /usr/lib/libpython2.6.so.1.0-gdb.py
1772 # but doing so generated noise when ldconfig was rerun (rhbz:562980)
1773 #
4082f8 1774
6e8c2f 1775 %if 0%{?with_gdb_hooks}
CB 1776 DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
1777 PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName.debug-gdb.py
1778
1779 mkdir -p %{buildroot}$DirHoldingGdbPy
1780 cp $topdir/Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
1781
1782 # Manually byte-compile the file, in case find-debuginfo.sh is run before
1783 # brp-python-bytecompile, so that the .pyc/.pyo files are properly listed in
1784 # the debuginfo manifest:
1785 LD_LIBRARY_PATH="$topdir/$ConfDir" $topdir/$ConfDir/$BinaryName \
1786   -c "import compileall; import sys; compileall.compile_dir('%{buildroot}$DirHoldingGdbPy', ddir='$DirHoldingGdbPy')"
1787
1788 LD_LIBRARY_PATH="$topdir/$ConfDir" $topdir/$ConfDir/$BinaryName -O \
1789   -c "import compileall; import sys; compileall.compile_dir('%{buildroot}$DirHoldingGdbPy', ddir='$DirHoldingGdbPy')"
1790 %endif # with_gdb_hooks
1791
1792   popd
1793
1794   echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
1795 }
1796
1797 # Use "InstallPython" to support building with different configurations:
1798
1799 # Install the "debug" build first, so that we can move some files aside
1800 %if 0%{?with_debug_build}
1801 InstallPython debug \
1802   python%{pybasever}-debug \
1803   %{py_INSTSONAME_debug}
1804 %endif # with_debug_build
1805
1806 # Now the optimized build:
1807 InstallPython optimized \
1808   python%{pybasever} \
1809   %{py_INSTSONAME_optimized}
1810
1811
1812 # Fix the interpreter path in binaries installed by distutils 
1813 # (which changes them by itself)
1814 # Make sure we preserve the file permissions
1815 for fixed in %{buildroot}%{_bindir}/pydoc; do
1816     sed 's,#!.*/python$,#!%{_bindir}/env python%{pybasever},' $fixed > $fixed- \
1817         && cat $fixed- > $fixed && rm -f $fixed-
1818 done
1819
1820 # Junk, no point in putting in -test sub-pkg
1821 rm -f %{buildroot}/%{pylibdir}/idlelib/testcode.py*
1822
1823 # don't include tests that are run at build time in the package
1824 # This is documented, and used: rhbz#387401
1825 if /bin/false; then
1826  # Move this to -test subpackage.
1827 mkdir save_bits_of_test
1828 for i in test_support.py __init__.py; do
1829   cp -a %{buildroot}/%{pylibdir}/test/$i save_bits_of_test
1830 done
1831 rm -rf %{buildroot}/%{pylibdir}/test
1832 mkdir %{buildroot}/%{pylibdir}/test
1833 cp -a save_bits_of_test/* %{buildroot}/%{pylibdir}/test
1834 fi
1835
1836 %if %{main_python}
1837 %else
1838 mv %{buildroot}%{_bindir}/python %{buildroot}%{_bindir}/%{python}
1839 %if 0%{?with_debug_build}
1840 mv %{buildroot}%{_bindir}/python-debug %{buildroot}%{_bindir}/%{python}-debug
1841 %endif # with_debug_build
1842 mv %{buildroot}/%{_mandir}/man1/python.1 %{buildroot}/%{_mandir}/man1/python%{pybasever}.1
1843 %endif
1844
1845 # tools
1846
1847 mkdir -p ${RPM_BUILD_ROOT}%{site_packages}
1848
1849 #pynche
1850 install -p -m755 %{SOURCE7} ${RPM_BUILD_ROOT}%{_bindir}/pynche
1851 chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/pynche
1852 rm -f Tools/pynche/*.pyw
1853 cp -rp Tools/pynche \
1854   ${RPM_BUILD_ROOT}%{site_packages}/
1855
1856 mv Tools/pynche/README Tools/pynche/README.pynche
1857
1858 #gettext
1859 install -m755  Tools/i18n/pygettext.py %{buildroot}%{_bindir}/
1860 install -m755  Tools/i18n/msgfmt.py %{buildroot}%{_bindir}/
1861
1862 # Useful development tools
1863 install -m755 -d %{buildroot}%{tools_dir}/scripts
1864 install Tools/README %{buildroot}%{tools_dir}/
1865 install Tools/scripts/*py %{buildroot}%{tools_dir}/scripts/
1866
1867 # Documentation tools
1868 install -m755 -d %{buildroot}%{doc_tools_dir}
1869 #install -m755 Doc/tools/mkhowto %{buildroot}%{doc_tools_dir}
1870
1871 # Useful demo scripts
1872 install -m755 -d %{buildroot}%{demo_dir}
1873 cp -ar Demo/* %{buildroot}%{demo_dir}
1874
1875 # Get rid of crap
1876 find %{buildroot}/ -name "*~"|xargs rm -f
1877 find %{buildroot}/ -name ".cvsignore"|xargs rm -f
1878 find %{buildroot}/ -name "*.bat"|xargs rm -f
1879 find . -name "*~"|xargs rm -f
1880 find . -name ".cvsignore"|xargs rm -f
1881 #zero length
1882 rm -f %{buildroot}%{pylibdir}/LICENSE.txt
1883
1884
1885 #make the binaries install side by side with the main python
1886 %if !%{main_python}
1887 pushd %{buildroot}%{_bindir}
1888 mv idle idle%{__python_ver}
1889 mv pynche pynche%{__python_ver}
1890 mv pygettext.py pygettext%{__python_ver}.py
1891 mv msgfmt.py msgfmt%{__python_ver}.py
1892 mv smtpd.py smtpd%{__python_ver}.py
1893 mv pydoc pydoc%{__python_ver}
1894 popd
1895 %endif
1896
1897 # Fix for bug #136654
1898 rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
1899
1900 # Fix bug #143667: python should own /usr/lib/python2.x on 64-bit machines
1901 %if "%{_lib}" == "lib64"
1902 install -d %{buildroot}/usr/lib/python%{pybasever}/site-packages
1903 %endif
1904
1905 # Make python-devel multilib-ready (bug #192747, #139911)
1906 %global _pyconfig32_h pyconfig-32.h
1907 %global _pyconfig64_h pyconfig-64.h
1908
1909 %ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64
1910 %global _pyconfig_h %{_pyconfig64_h}
1911 %else
1912 %global _pyconfig_h %{_pyconfig32_h}
1913 %endif
1914
1915 %if 0%{?with_debug_build}
1916 %global PyIncludeDirs python%{pybasever} python%{pybasever}-debug
1917 %else
1918 %global PyIncludeDirs python%{pybasever}
1919 %endif
1920
1921 for PyIncludeDir in %{PyIncludeDirs} ; do
1922   mv %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h \
1923      %{buildroot}%{_includedir}/$PyIncludeDir/%{_pyconfig_h}
1924   cat > %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h << EOF
1925 #include <bits/wordsize.h>
1926
1927 #if __WORDSIZE == 32
1928 #include "%{_pyconfig32_h}"
1929 #elif __WORDSIZE == 64
1930 #include "%{_pyconfig64_h}"
1931 #else
1932 #error "Unknown word size"
1933 #endif
1934 EOF
1935 done
1936 ln -s ../../libpython%{pybasever}.so %{buildroot}%{pylibdir}/config/libpython%{pybasever}.so
1937
1938 # Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
1939 # Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
1940 # pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
1941 # when python starts up.
1942 #
1943 # Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
1944 # variants:
1945 sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
1946   %{buildroot}%{pylibdir}/distutils/sysconfig.py \
1947   %{buildroot}%{pylibdir}/sysconfig.py
1948
1949 # Install macros for rpm:
1950 mkdir -p %{buildroot}/%{_sysconfdir}/rpm
1951 install -m 644 %{SOURCE6} %{buildroot}/%{_sysconfdir}/rpm
71084d 1952 install -m 644 %{SOURCE10} %{buildroot}/%{_sysconfdir}/rpm
6e8c2f 1953
f63228 1954 # Make python folder for config files under /etc
CS 1955 mkdir -p %{buildroot}/%{_sysconfdir}/python
1956 install -m 644 %{SOURCE8} %{buildroot}/%{_sysconfdir}/python
1957
6e8c2f 1958 # Ensure that the curses module was linked against libncursesw.so, rather than
CB 1959 # libncurses.so (bug 539917)
1960 ldd %{buildroot}/%{dynload_dir}/_curses*.so \
1961     | grep curses \
1962     | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
1963
1964 # Ensure that the debug modules are linked against the debug libpython, and
1965 # likewise for the optimized modules and libpython:
1966 for Module in %{buildroot}/%{dynload_dir}/*.so ; do
1967     case $Module in
1968     *_d.so)
1969         ldd $Module | grep %{py_INSTSONAME_optimized} &&
1970             (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
1971             
1972         ;;
1973     *)
1974         ldd $Module | grep %{py_INSTSONAME_debug} &&
1975             (echo Optimized module $Module linked against debug %{py_INSTSONAME_optimized} ; exit 1)
1976         ;;
1977     esac
1978 done
1979
1980 #
1981 # Systemtap hooks:
1982 #
1983 %if 0%{?with_systemtap}
1984 # Install a tapset for this libpython into tapsetdir, fixing up the path to the
1985 # library:
1986 mkdir -p %{buildroot}%{tapsetdir}
1987 %ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64
1988 %global libpython_stp_optimized libpython%{pybasever}-64.stp
1989 %global libpython_stp_debug     libpython%{pybasever}-debug-64.stp
1990 %else
1991 %global libpython_stp_optimized libpython%{pybasever}-32.stp
1992 %global libpython_stp_debug     libpython%{pybasever}-debug-32.stp
1993 %endif
1994
1995 sed \
1996    -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_optimized}|" \
1997    %{SOURCE3} \
1998    > %{buildroot}%{tapsetdir}/%{libpython_stp_optimized}
1999
2000 %if 0%{?with_debug_build}
2001 sed \
2002    -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" \
2003    %{SOURCE3} \
2004    > %{buildroot}%{tapsetdir}/%{libpython_stp_debug}
2005 %endif # with_debug_build
2006 %endif # with_systemtap
2007
2008 # Replace scripts shebangs in usr/bin of subpackage tools
2009 #(rhbz#987038)
2010 sed -i "s|^#\!.\?/usr/bin.*$|#\! %{__python}|" \
2011   %{buildroot}%{_bindir}/pygettext.py \
2012   %{buildroot}%{_bindir}/msgfmt.py \
2013   %{buildroot}%{_bindir}/smtpd.py \
2014   %{buildroot}%{demo_dir}/scripts/find-uname.py \
2015   %{buildroot}%{demo_dir}/pdist/rcvs \
2016   %{buildroot}%{demo_dir}/pdist/rcsbump \
2017   %{buildroot}%{demo_dir}/pdist/rrcs \
2018   %{buildroot}%{site_packages}/pynche/pynche
2019
4082f8 2020 # Make library-files user writable
CB 2021 # rhbz#1046276
2022 /usr/bin/chmod 755 %{buildroot}%{dynload_dir}/*.so
2023 /usr/bin/chmod 755 %{buildroot}%{_libdir}/libpython%{pybasever}.so.1.0
2024 /usr/bin/chmod 755 %{buildroot}%{_libdir}/libpython%{pybasever}_d.so.1.0
6e8c2f 2025
04a680 2026 mkdir %{buildroot}%{_tmpfilesdir}
CS 2027 cp %{SOURCE9} %{buildroot}%{_tmpfilesdir}/python.conf
f63228 2028
6e8c2f 2029 # ======================================================
CB 2030 # Running the upstream test suite
2031 # ======================================================
2032
2033 %check
2034 topdir=$(pwd)
2035 CheckPython() {
2036   ConfName=$1
2037   BinaryName=$2
2038   ConfDir=$(pwd)/build/$ConfName
2039
2040   echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
2041
2042   # Note that we're running the tests using the version of the code in the
2043   # builddir, not in the buildroot.
2044
2045   pushd $ConfDir
2046
2047   EXTRATESTOPTS="--verbose"
f63228 2048   # skipping test_gdb on ppc64le until rhbz1260558 gets resolved
CS 2049   %ifarch ppc64le
2050     EXTRATESTOPTS="$EXTRATESTOPTS -x test_gdb "
2051   %endif
2052
6e8c2f 2053
CB 2054 %if 0%{?with_huntrleaks}
2055   # Try to detect reference leaks on debug builds.  By default this means
2056   # running every test 10 times (6 to stabilize, then 4 to watch):
2057   if [ "$ConfName" = "debug"  ] ; then
2058     EXTRATESTOPTS="$EXTRATESTOPTS --huntrleaks : "
2059   fi
2060 %endif
2061
2062   # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the
2063   # our non-standard decorators take effect on the relevant tests:
2064   #   @unittest._skipInRpmBuild(reason)
2065   #   @unittest._expectedFailureInRpmBuild
2066   WITHIN_PYTHON_RPM_BUILD= EXTRATESTOPTS="$EXTRATESTOPTS" make test
2067
2068   popd
2069
2070   echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
2071
2072 }
2073
2074 %if 0%{run_selftest_suite}
2075
2076 # Check each of the configurations:
2077 %if 0%{?with_debug_build}
2078 CheckPython \
2079   debug \
2080   python%{pybasever}-debug
2081 %endif # with_debug_build
2082 CheckPython \
2083   optimized \
2084   python%{pybasever}
2085
2086 %endif # run_selftest_suite
2087
2088
2089 # ======================================================
2090 # Cleaning up
2091 # ======================================================
2092
2093 %clean
2094 rm -fr %{buildroot}
2095
2096
2097 # ======================================================
2098 # Scriptlets
2099 # ======================================================
2100
2101 %post libs -p /sbin/ldconfig
2102
2103 %postun libs -p /sbin/ldconfig
2104
2105
2106
2107 %files
2108 %defattr(-, root, root, -)
2109 %doc LICENSE README
2110 %{_bindir}/pydoc*
2111 %{_bindir}/%{python}
2112 %if %{main_python}
2113 %{_bindir}/python2
2114 %endif
2115 %{_bindir}/python%{pybasever}
2116 %{_mandir}/*/*
2117
2118 %files libs
2119 %defattr(-,root,root,-)
2120 %doc LICENSE README
2121 %dir %{pylibdir}
2122 %dir %{dynload_dir}
f63228 2123 %dir %{_sysconfdir}/python
04a680 2124 %{_tmpfilesdir}/python.conf
f63228 2125 %config(noreplace) %{_sysconfdir}/python/cert-verification.cfg
6e8c2f 2126 %{dynload_dir}/Python-%{version}-py%{pybasever}.egg-info
CB 2127 %{dynload_dir}/_bisectmodule.so
2128 %{dynload_dir}/_bsddb.so
2129 %{dynload_dir}/_codecs_cn.so
2130 %{dynload_dir}/_codecs_hk.so
2131 %{dynload_dir}/_codecs_iso2022.so
2132 %{dynload_dir}/_codecs_jp.so
2133 %{dynload_dir}/_codecs_kr.so
2134 %{dynload_dir}/_codecs_tw.so
2135 %{dynload_dir}/_collectionsmodule.so
2136 %{dynload_dir}/_csv.so
2137 %{dynload_dir}/_ctypes.so
2138 %{dynload_dir}/_curses.so
2139 %{dynload_dir}/_curses_panel.so
2140 %{dynload_dir}/_elementtree.so
2141 %{dynload_dir}/_functoolsmodule.so
2142 %{dynload_dir}/_hashlib.so
2143 %{dynload_dir}/_heapq.so
2144 %{dynload_dir}/_hotshot.so
2145 %{dynload_dir}/_io.so
2146 %{dynload_dir}/_json.so
2147 %{dynload_dir}/_localemodule.so
2148 %{dynload_dir}/_lsprof.so
2149 %{dynload_dir}/_multibytecodecmodule.so
2150 %{dynload_dir}/_multiprocessing.so
2151 %{dynload_dir}/_randommodule.so
2152 %{dynload_dir}/_socketmodule.so
2153 %{dynload_dir}/_sqlite3.so
2154 %{dynload_dir}/_ssl.so
2155 %{dynload_dir}/_struct.so
2156 %{dynload_dir}/arraymodule.so
2157 %{dynload_dir}/audioop.so
2158 %{dynload_dir}/binascii.so
2159 %{dynload_dir}/bz2.so
2160 %{dynload_dir}/cPickle.so
2161 %{dynload_dir}/cStringIO.so
2162 %{dynload_dir}/cmathmodule.so
2163 %{dynload_dir}/_cryptmodule.so
2164 %{dynload_dir}/datetime.so
2165 %{dynload_dir}/dbm.so
2166 %{dynload_dir}/dlmodule.so
2167 %{dynload_dir}/fcntlmodule.so
2168 %{dynload_dir}/future_builtins.so
2169 %if %{with_gdbm}
2170 %{dynload_dir}/gdbmmodule.so
2171 %endif
2172 %{dynload_dir}/grpmodule.so
2173 %{dynload_dir}/imageop.so
2174 %{dynload_dir}/itertoolsmodule.so
2175 %{dynload_dir}/linuxaudiodev.so
2176 %{dynload_dir}/math.so
2177 %{dynload_dir}/mmapmodule.so
2178 %{dynload_dir}/nismodule.so
2179 %{dynload_dir}/operator.so
2180 %{dynload_dir}/ossaudiodev.so
2181 %{dynload_dir}/parsermodule.so
2182 %{dynload_dir}/pyexpat.so
2183 %{dynload_dir}/readline.so
2184 %{dynload_dir}/resource.so
2185 %{dynload_dir}/selectmodule.so
2186 %{dynload_dir}/spwdmodule.so
2187 %{dynload_dir}/stropmodule.so
2188 %{dynload_dir}/syslog.so
2189 %{dynload_dir}/termios.so
2190 %{dynload_dir}/timemodule.so
2191 %{dynload_dir}/timingmodule.so
2192 %{dynload_dir}/unicodedata.so
2193 %{dynload_dir}/xxsubtype.so
2194 %{dynload_dir}/zlibmodule.so
2195
2196 %dir %{site_packages}
2197 %{site_packages}/README
2198 %{pylibdir}/*.py*
2199 %{pylibdir}/*.doc
2200 %{pylibdir}/wsgiref.egg-info
2201 %dir %{pylibdir}/bsddb
2202 %{pylibdir}/bsddb/*.py*
2203 %{pylibdir}/compiler
2204 %dir %{pylibdir}/ctypes
2205 %{pylibdir}/ctypes/*.py*
2206 %{pylibdir}/ctypes/macholib
2207 %{pylibdir}/curses
2208 %dir %{pylibdir}/distutils
2209 %{pylibdir}/distutils/*.py*
2210 %{pylibdir}/distutils/README
2211 %{pylibdir}/distutils/command
2212 %exclude %{pylibdir}/distutils/command/wininst-*.exe
2213 %dir %{pylibdir}/email
2214 %{pylibdir}/email/*.py*
2215 %{pylibdir}/email/mime
2216 %{pylibdir}/encodings
2217 %{pylibdir}/hotshot
2218 %{pylibdir}/idlelib
2219 %{pylibdir}/importlib
2220 %dir %{pylibdir}/json
2221 %{pylibdir}/json/*.py*
2222 %{pylibdir}/lib2to3
2223 %exclude %{pylibdir}/lib2to3/tests
2224 %{pylibdir}/logging
2225 %{pylibdir}/multiprocessing
2226 %{pylibdir}/plat-linux2
2227 %{pylibdir}/pydoc_data
2228 %dir %{pylibdir}/sqlite3
2229 %{pylibdir}/sqlite3/*.py*
2230 %dir %{pylibdir}/test
2231 %{pylibdir}/test/test_support.py*
2232 %{pylibdir}/test/__init__.py*
2233 %{pylibdir}/unittest
2234 %{pylibdir}/wsgiref
2235 %{pylibdir}/xml
2236 %if "%{_lib}" == "lib64"
2237 %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
2238 %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
2239 %endif
2240
2241 # "Makefile" and the config-32/64.h file are needed by
2242 # distutils/sysconfig.py:_init_posix(), so we include them in the libs
2243 # package, along with their parent directories (bug 531901):
2244 %dir %{pylibdir}/config
2245 %{pylibdir}/config/Makefile
2246 %dir %{_includedir}/python%{pybasever}
2247 %{_includedir}/python%{pybasever}/%{_pyconfig_h}
2248
2249 %{_libdir}/%{py_INSTSONAME_optimized}
2250 %if 0%{?with_systemtap}
2251 %{tapsetdir}/%{libpython_stp_optimized}
2252 %doc systemtap-example.stp pyfuntop.stp
2253 %endif
2254
2255 %files devel
2256 %defattr(-,root,root,-)
2257 %{_libdir}/pkgconfig/python-%{pybasever}.pc
2258 %{_libdir}/pkgconfig/python.pc
2259 %{_libdir}/pkgconfig/python2.pc
2260 %{pylibdir}/config/*
2261 %exclude %{pylibdir}/config/Makefile
2262 %{pylibdir}/distutils/command/wininst-*.exe
2263 %{_includedir}/python%{pybasever}/*.h
2264 %exclude %{_includedir}/python%{pybasever}/%{_pyconfig_h}
2265 %doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
2266 %if %{main_python}
2267 %{_bindir}/python-config
2268 %{_bindir}/python2-config
2269 %endif
2270 %{_bindir}/python%{pybasever}-config
2271 %{_libdir}/libpython%{pybasever}.so
71084d 2272 %{_sysconfdir}/rpm/macros.python
6e8c2f 2273 %{_sysconfdir}/rpm/macros.python2
CB 2274
2275 %files tools
2276 %defattr(-,root,root,755)
2277 %doc Tools/pynche/README.pynche
2278 %{site_packages}/pynche
2279 %{_bindir}/smtpd*.py*
2280 %{_bindir}/2to3*
2281 %{_bindir}/idle*
2282 %{_bindir}/pynche*
2283 %{_bindir}/pygettext*.py*
2284 %{_bindir}/msgfmt*.py*
2285 %{tools_dir}
2286 %{demo_dir}
2287 %{pylibdir}/Doc
2288
2289 %files -n %{tkinter}
2290 %defattr(-,root,root,755)
2291 %{pylibdir}/lib-tk
2292 %{dynload_dir}/_tkinter.so
2293
2294 %files test
2295 %defattr(-, root, root, -)
2296 %{pylibdir}/bsddb/test
2297 %{pylibdir}/ctypes/test
2298 %{pylibdir}/distutils/tests
2299 %{pylibdir}/email/test
2300 %{pylibdir}/json/tests
2301 %{pylibdir}/lib2to3/tests
2302 %{pylibdir}/sqlite3/test
2303 %{pylibdir}/test/*
2304 # These two are shipped in the main subpackage:
2305 %exclude %{pylibdir}/test/test_support.py*
2306 %exclude %{pylibdir}/test/__init__.py*
2307 %{dynload_dir}/_ctypes_test.so
2308 %{dynload_dir}/_testcapimodule.so
2309
2310
2311 # We don't bother splitting the debug build out into further subpackages:
2312 # if you need it, you're probably a developer.
2313
2314 # Hence the manifest is the combination of analogous files in the manifests of
2315 # all of the other subpackages
2316
2317 %if 0%{?with_debug_build}
2318 %files debug
2319 %defattr(-,root,root,-)
2320
2321 # Analog of the core subpackage's files:
2322 %{_bindir}/%{python}-debug
2323 %if %{main_python}
2324 %{_bindir}/python2-debug
2325 %endif
2326 %{_bindir}/python%{pybasever}-debug
2327
2328 # Analog of the -libs subpackage's files, with debug builds of the built-in
2329 # "extension" modules:
2330 %{dynload_dir}/_bisectmodule_d.so
2331 %{dynload_dir}/_bsddb_d.so
2332 %{dynload_dir}/_codecs_cn_d.so
2333 %{dynload_dir}/_codecs_hk_d.so
2334 %{dynload_dir}/_codecs_iso2022_d.so
2335 %{dynload_dir}/_codecs_jp_d.so
2336 %{dynload_dir}/_codecs_kr_d.so
2337 %{dynload_dir}/_codecs_tw_d.so
2338 %{dynload_dir}/_collectionsmodule_d.so
2339 %{dynload_dir}/_csv_d.so
2340 %{dynload_dir}/_ctypes_d.so
2341 %{dynload_dir}/_curses_d.so
2342 %{dynload_dir}/_curses_panel_d.so
2343 %{dynload_dir}/_elementtree_d.so
2344 %{dynload_dir}/_functoolsmodule_d.so
2345 %{dynload_dir}/_hashlib_d.so
2346 %{dynload_dir}/_heapq_d.so
2347 %{dynload_dir}/_hotshot_d.so
2348 %{dynload_dir}/_io_d.so
2349 %{dynload_dir}/_json_d.so
2350 %{dynload_dir}/_localemodule_d.so
2351 %{dynload_dir}/_lsprof_d.so
2352 %{dynload_dir}/_multibytecodecmodule_d.so
2353 %{dynload_dir}/_multiprocessing_d.so
2354 %{dynload_dir}/_randommodule_d.so
2355 %{dynload_dir}/_socketmodule_d.so
2356 %{dynload_dir}/_sqlite3_d.so
2357 %{dynload_dir}/_ssl_d.so
2358 %{dynload_dir}/_struct_d.so
2359 %{dynload_dir}/arraymodule_d.so
2360 %{dynload_dir}/audioop_d.so
2361 %{dynload_dir}/binascii_d.so
2362 %{dynload_dir}/bz2_d.so
2363 %{dynload_dir}/cPickle_d.so
2364 %{dynload_dir}/cStringIO_d.so
2365 %{dynload_dir}/cmathmodule_d.so
2366 %{dynload_dir}/_cryptmodule_d.so
2367 %{dynload_dir}/datetime_d.so
2368 %{dynload_dir}/dbm_d.so
2369 %{dynload_dir}/dlmodule_d.so
2370 %{dynload_dir}/fcntlmodule_d.so
2371 %{dynload_dir}/future_builtins_d.so
2372 %if %{with_gdbm}
2373 %{dynload_dir}/gdbmmodule_d.so
2374 %endif
2375 %{dynload_dir}/grpmodule_d.so
2376 %{dynload_dir}/imageop_d.so
2377 %{dynload_dir}/itertoolsmodule_d.so
2378 %{dynload_dir}/linuxaudiodev_d.so
2379 %{dynload_dir}/math_d.so
2380 %{dynload_dir}/mmapmodule_d.so
2381 %{dynload_dir}/nismodule_d.so
2382 %{dynload_dir}/operator_d.so
2383 %{dynload_dir}/ossaudiodev_d.so
2384 %{dynload_dir}/parsermodule_d.so
2385 %{dynload_dir}/pyexpat_d.so
2386 %{dynload_dir}/readline_d.so
2387 %{dynload_dir}/resource_d.so
2388 %{dynload_dir}/selectmodule_d.so
2389 %{dynload_dir}/spwdmodule_d.so
2390 %{dynload_dir}/stropmodule_d.so
2391 %{dynload_dir}/syslog_d.so
2392 %{dynload_dir}/termios_d.so
2393 %{dynload_dir}/timemodule_d.so
2394 %{dynload_dir}/timingmodule_d.so
2395 %{dynload_dir}/unicodedata_d.so
2396 %{dynload_dir}/xxsubtype_d.so
2397 %{dynload_dir}/zlibmodule_d.so
2398
2399 # No need to split things out the "Makefile" and the config-32/64.h file as we
2400 # do for the regular build above (bug 531901), since they're all in one package
2401 # now; they're listed below, under "-devel":
2402
2403 %{_libdir}/%{py_INSTSONAME_debug}
2404 %if 0%{?with_systemtap}
2405 %{tapsetdir}/%{libpython_stp_debug}
2406 %endif
2407
2408 # Analog of the -devel subpackage's files:
2409 %dir %{pylibdir}/config-debug
2410 %{_libdir}/pkgconfig/python-%{pybasever}-debug.pc
2411 %{_libdir}/pkgconfig/python-debug.pc
2412 %{_libdir}/pkgconfig/python2-debug.pc
2413 %{pylibdir}/config-debug/*
2414 %{_includedir}/python%{pybasever}-debug/*.h
2415 %if %{main_python}
2416 %{_bindir}/python-debug-config
2417 %{_bindir}/python2-debug-config
2418 %endif
2419 %{_bindir}/python%{pybasever}-debug-config
2420 %{_libdir}/libpython%{pybasever}_d.so
2421
2422 # Analog of the -tools subpackage's files:
2423 #  None for now; we could build precanned versions that have the appropriate
2424 # shebang if needed
2425
2426 # Analog  of the tkinter subpackage's files:
2427 %{dynload_dir}/_tkinter_d.so
2428
2429 # Analog  of the -test subpackage's files:
2430 %{dynload_dir}/_ctypes_test_d.so
2431 %{dynload_dir}/_testcapimodule_d.so
2432
2433 %endif # with_debug_build
2434
2435 # We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
2436 # ldconfig (rhbz:562980).
2437
2438 # The /usr/lib/rpm/redhat/macros defines the __debug_package macro to use
2439 # debugfiles.list, and it appears that everything below /usr/lib/debug and
2440 # (/usr/src/debug) gets added to this file (via LISTFILES) in
2441 # /usr/lib/rpm/find-debuginfo.sh
2442
2443 # Hence by installing it below /usr/lib/debug we ensure it is added to the
2444 # -debuginfo subpackage
2445 # (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py 
2446 # payload file would be unpackaged)
2447
2448
2449 # ======================================================
2450 # Finally, the changelog:
2451 # ======================================================
2452
2453 %changelog
71084d 2454 * Wed May 03 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-58
CS 2455 - Set stream to None in case an _open() fails.
2456 Resolves: rhbz#1432003
2457
2458 * Tue Apr 11 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-57
2459 - Fix implicit declaration warnings of functions added by patches 147 and 265
2460 Resolves: rhbz#1441237
2461
2462 * Mon Apr 10 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-56
2463 - Fix shutil.make_archive ignoring empty directories when creating zip files
2464 Resolves: rhbz#1439734
2465
2466 * Thu Mar 23 2017 Tomas Orsava <torsava@redhat.com> - 2.7.5-55
2467 - Update Python RPM macros with new ones from EPEL7 to simplify packaging
2468 Resolves: rhbz#1297522
2469
2470 * Wed Mar 22 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-54
2471 - Protect key list during fork()
2472 Resolves: rhbz#1268226
2473
2474 * Mon Mar 13 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-53
2475 - Fix _ssl.c reference leaks
2476 Resolves: rhbz#1272562
2477
2478 * Mon Feb 27 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-52
2479 - Workaround Python's threading library issue with non returning wait, for signals with timeout
2480 Resolves: rhbz#1368076
2481
2482 * Mon Jan 23 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-51
2483 - Enable certificate verification by default
2484 Resolves: rhbz#1219110
2485
2486 * Wed Jan 18 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-50
2487 - Fix incorrect parsing of certain regular expressions
2488 Resolves: rhbz#1373363
2489
2490 * Tue Jan 17 2017 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-49
2491 - Fix ssl module's parsing of GEN_RID subject alternative name fields in X.509 certs
2492 Resolves: rhbz#1364444
2493
04a680 2494 * Mon Aug 01 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-48
854cc6 2495 - Fix for CVE-2016-1000110 HTTPoxy attack
04a680 2496 Resolves: rhbz#1359164
854cc6 2497
04a680 2498 * Mon Jul 11 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-47
CS 2499 - Fix for CVE-2016-5636: possible integer overflow and heap corruption in zipimporter.get_data()
2500 Resolves: rhbz#1356364
854cc6 2501
04a680 2502 * Mon Jul 11 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-46
CS 2503 - Drop patch 221 that backported sslwrap function since it was introducing regressions
2504 - Refactor patch 227
2505 Resolves: rhbz#1331425
2506
2507 * Tue Jun 21 2016 Tomas Orsava <torsava@redhat.com> - 2.7.5-45
854cc6 2508 - Fix for CVE-2016-0772 python: smtplib StartTLS stripping attack (rhbz#1303647)
CS 2509   Raise an error when STARTTLS fails (upstream patch)
2510 - Fix for CVE-2016-5699 python: http protocol steam injection attack (rhbz#1303699)
2511   Disabled HTTP header injections in httplib (upstream patch)
04a680 2512 Resolves: rhbz#1346357
CS 2513
2514 * Wed May 4 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-44
2515 - Fix iteration over files with very long lines
2516 Resolves: rhbz#1271760
2517
2518 * Tue May 3 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-43
2519 - Move python.conf from /etc/tmpfiles.d/ to /usr/lib/tmpfiles.d/
2520 Resolves: rhbz#1288426
2521
2522 * Mon Apr 4 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-42
2523 - JSON decoder lone surrogates fix
2524 Resolves: rhbz#1301017
2525
2526 * Mon Apr 4 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-41
2527 - Updated PEP493 implementation
2528 Resolves: rhbz#1315758
2529
2530 * Thu Mar 31 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-40
2531 - Backport of Computed Goto dispatch
2532 Resolves: rhbz#1289277
2533
2534 * Mon Mar 21 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-39
2535 - Removal of the '$Date$' placeholder on the python(1) man page footer,
2536 which does not expand during build
2537 Resolves: rhbz#1268310
2538
2539 * Thu Mar 17 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-38
2540 - Fix hashlib algorithms breaking by initializing OpenSSL_add_all_digests
2541 function in _hashlib library
2542 Resolves: rhbz#1295459
2543
2544 * Thu Mar 17 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-37
2545 - Change HTTPS certificate verification to platform_default
2546 Resolves: rhbz#1278429
2547
2548 * Wed Mar 16 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-36
2549 - Force all child threads to terminate in TestForkInThread
2550 Resolves: rhbz#1313259
854cc6 2551
CS 2552 * Thu Mar 10 2016 Charalampos Stratakis <cstratak@redhat.com> - 2.7.5-35
2553 - Adjusted tests to acknowledge lack of SSLv2 support
04a680 2554 Resolves: rhbz#1315310
854cc6 2555
f63228 2556 * Fri Oct 09 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-34
CS 2557 - Revert fix for rhbz#1117751 as it leads to regressions
2558 Resolves: rhbz#1117751
2559
2560 * Tue Sep 15 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-33
2561 - Only restore SIG_PIPE when Popen called with restore_sigpipe
2562 Resolves: rhbz#1117751
2563
2564 * Fri Sep 04 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-32
2565 - Backport SSLSocket.version function
2566 - Temporary disable test_gdb on ppc64le rhbz#1260558
2567 Resolves: rhbz#1259421
2568
2569 * Thu Aug 06 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-31
2570 - Update load_cert_chain function to accept None keyfile
2571 Resolves: rhbz#1250611
2572
2573 * Tue Jul 07 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-30
2574 - Change Patch224 according to latest update in PEP493
2575 Resolves:rhbz#1219108
2576
2577 * Tue Jul 07 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-29
2578 - Popen shouldn't ignore SIG_PIPE
2579 Resolves: rhbz#1117751
2580
2581 * Tue Jul 07 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-28
2582 - Exclude python subprocess temp files from cleaning
2583 Resolves: rhbz#1058482
2584
2585 * Wed Jul 01 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-27
2586 - Add list for cprofile sort option
2587 Resolves:rhbz#1237107
2588
2589 * Mon Jun 29 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-26
2590 - Add switch to toggle cert verification on or off globally
2591 Resolves:rhbz#1219108
2592
2593 * Mon Jun 29 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-25
2594 - PEP476 enable cert verifications by default
2595 Resolves:rhbz#1219110
2596
2597 * Mon Jun 29 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-24
2598 - Massive backport of ssl module from python3 aka PEP466
2599 Resolves: rhbz#1111461
2600
2601 * Tue Jun 23 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-23
2602 - Fixed CVE-2013-1753, CVE-2013-1752, CVE-2014-4616, CVE-2014-4650, CVE-2014-7185
2603 Resolves: rhbz#1206574
2604
2605 * Mon Jun 22 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-22
2606 - Fix importing readline producing erroneous output
2607 Resolves: rhbz#1189301
2608
2609 * Mon Jun 22 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-21
2610 - Add missing import in bdist_rpm
2611 Resolves: rhbz#1177613
2612
2613 * Mon Jun 22 2015 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-20
2614 - Avoid double close of subprocess pipes
2615 Resolves: rhbz#1103452
2616
2617 * Thu Apr 09 2015 Robert Kuska <rkuska@redhat.com> - 2.7.5-19
9a62d8 2618 - make multiprocessing ignore EINTR
f63228 2619 Resolves: rhbz#1181624
9a62d8 2620
CS 2621 * Wed Sep  3 2014 Peter Robinson <pbrobinson@redhat.com> 2.7.5-18
2622 - valgrind is now supported on aarch64/ppc64le
2623 Resolves: rhbz#1137039
2624
2625 * Thu Aug 07 2014 Slavek Kabrda <bkabrda@redhat.com> - 2.7.5-17
2626 - Fix building on ppc64le (fix test_gdb, disable valgrind support).
2627 Resolves: rhbz#1125657
2628
4082f8 2629 * Mon Feb 10 2014 Tomas Radej <tradej@redhat.com> - 2.7.5-16
CB 2630 - Fix buffer overflow (upstream patch)
2631 Resolves: rhbz#1062376
2632
2633 * Tue Jan 28 2014 Daniel Mach <dmach@redhat.com> - 2.7.5-15
2634 - Mass rebuild 2014-01-24
2635
2636 * Tue Jan 14 2014 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-14
2637 - Fix missing documentation for some keywords
2638 Resolves: rhbz#1032116
2639
2640 * Mon Jan 13 2014 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-13
2641 - Make library-files user writable
2642 Resolves: rhbz#1046276
2643
2644 * Fri Jan 10 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.5-12
2645 - Use -O3 when building on ppc64.
2646 Resolves: rhbz#1051076
2647
2648 * Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 2.7.5-11
2649 - Mass rebuild 2013-12-27
2650
6e8c2f 2651 * Thu Nov 07 2013 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-10
CB 2652 - Added an explicit RPATH to _elementtree.so
2653 Resolves: rhbz#1019345
2654
2655 * Thu Nov 07 2013 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-9
2656 - Fixed instances of #!/usr/bin/env python
2657 Resolves: rhbz#1019336
2658
2659 * Wed Oct 09 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.5-8
2660 - Fix gdb bindings on ppc64.
2661 Resolves: rhbz#835053
2662
2663 * Tue Aug 20 2013 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-7
2664 - Added fix for CVE-2013-4238
2665 Resolves: rhbz#998781
2666
2667 * Tue Aug 20 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.5-6
2668 - Add explicit RPATH to pyexpat pointing at system libexpat (rhbz#996665).
2669
2670 * Mon Aug 05 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.5-5
2671 - Fix memory leak in marshal.c, fixes rhbz#990554.
2672
2673 * Wed Jul 24 2013 Robert Kuska <rkuska@redhat.com> - 2.7.5-4
2674 - Change shebangs of scripts in tools subpackage
2675 (rhbz#987038)
2676
2677 * Wed Jul 17 2013 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-3
2678 - Added patch that makes urllib2 honor no_proxy variable for ftp URLs
2679     (rhbz#971267)
2680
2681 * Wed Jul 17 2013 Matej Stuchlik <mstuchli@redhat.com> - 2.7.5-2
2682 - Pulled patch fixing build with libffi containing multilib wrapper for ffi.h
2683     from Fedora (rhbz#979696)
2684
2685 * Thu May 16 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.5-1
2686 - Updated to Python 2.7.5.
2687 - Refreshed patches: 0 (config), 102 (lib64), 121 (add Modules to build path),
2688 153 (gdb test noise)
2689 - Dropped patches: 126, 127 (big endian issues, both fixed upstream),
2690 175 (configure -Wformat, fixed upstream)
2691 - Synced patch numbers with python3.spec.
2692
2693 * Tue May 14 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.4-5
2694 - fix multilib issue in python-tools due to /usr/bin/pynche (source 7;
2695 rhbz#831437)
2696
2697 * Thu May 02 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.4-4
2698 - Add patch that enables building on ppc64p7.
2699
2700 * Mon Apr 22 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.4-3
2701 - Allow arbitrary timeout in Condition.wait (rhbz#917709).
2702
2703 * Thu Apr 11 2013 Kalev Lember <kalevlember@gmail.com> - 2.7.4-2
2704 - Build with libdb 5.3 instead of libdb4
2705 - Refreshed patches: 0 (config), 102 (lib64)
2706 - Dropped patches: 54 (db4 version), 159 (db4 include path adjustment)
2707
2708 * Mon Apr 08 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.4-1
2709 - Updated to Python 2.7.4.
2710 - Refreshed patches: 0 (config), 7 (sqlite encoding), 16 (rpath in config),
2711 55 (systemtap), 111 (no static lib), 112 (debug build), 113 (more
2712 configuration flags), 130 (add extension to python config), 134 (fix
2713 COUNT_ALLOCS in test_sys), 146 (haslib FIPS), 147 (add debug malloc stats),
2714 153 (fix gdb test noise), 157 (uid, gid overflow - fixed upstream, just
2715 keeping few more downstream tests), 165 (crypt module salt backport),
2716 175 (fix configure Wformat), 5000 (regenerated autotooling patch)
2717 - Dropped patches: 101 (lib64 regex; merged upstream), 171 (exception on
2718 missing /dev/urandom; merged upstream), 172 (poll for multiprocessing socket
2719 connection; merged upstream)
2720
2721 * Mon Mar 25 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-35
2722 - fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
2723
2724 * Wed Mar  6 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-34
2725 - restrict scope of workaround for cmpi-bindings issue to avoid breaking
2726 in-tree running of test_sys and test_subprocess (rhbz#817554)
2727
2728 * Wed Mar  6 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-33
2729 - add workaround for cmpi-bindings issue (rhbz#817554)
2730
2731 * Mon Mar  4 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-32
2732 - add workaround for ENOPROTOOPT seen running selftests in Koji
2733 (rhbz#913732)
2734
2735 * Mon Mar  4 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-31
2736 - remove config flag from /etc/rpm/macros.python2
2737
2738 * Fri Feb 22 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-30
2739 - remove __debug_package macro from comment
2740
2741 * Fri Feb 22 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-29
2742 - drop -b from application of patch 157 (uid/gid overflows)
2743
2744 * Fri Feb 22 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-28
2745 - fix bogus dates in changelog
2746
2747 * Thu Feb 21 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-27
2748 - port _multiprocessing.Connection.poll() to use the "poll" syscall, rather
2749 than "select", allowing large numbers of subprocesses (patch 172;
2750 rhbz#849992)
2751
2752 * Thu Feb 21 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-26
2753 - raise correct exception in os.urandom() when /dev/urandom is missing
2754 (patch 171; rhbz#907383)
2755
2756 * Wed Feb 20 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-25
2757 - in debug builds, try to print repr() when a C-level assert fails in the
2758 garbage collector (typically indicating a reference-counting error somewhere
2759 else e.g in an extension module) (patch 170; rhbz#850013)
2760
2761 * Wed Feb 20 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-24
2762 - move lib2to3/tests from python-libs to python-test (rhbz#850056)
2763
2764 * Wed Feb 20 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-23
2765 - use SHA-256 rather than implicitly using MD5 within the challenge handling
2766 in multiprocessing.connection (patch 169; rhbz#879695)
2767
2768 * Wed Feb 20 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-22
2769 - fix a problem with distutils.sysconfig when CFLAGS is defined in the
2770 environment (patch 168; rhbz#849994)
2771
2772 * Wed Feb 20 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-21
2773 - don't run any stack navigation tests in test_gdb for optimized builds
2774 (patch 167; rhbz#912025)
2775
2776 * Wed Feb 20 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-20
2777 - s/cryptmodule/_cryptmodule/ in package payload (rhbz#835021)
2778
2779 * Tue Feb 19 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-19
2780 - bulletproof the gdb debugging hooks against a failure seen in ARM builds
2781 (patch 166; rhbz#912025)
2782 - re-enable make check on ARM (rhbz#912025)
2783
2784 * Tue Feb 19 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-18
2785 - backport pre-canned ways of salting a password to the "crypt" module from 3.3
2786 (rhbz#835021)
2787
2788 * Tue Feb 19 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-17
2789 - remove "_default_patch_fuzz" directive to avoid patches being silently
2790 misapplied (refresh patch 1, patch 101, patch 102, patch 111, patch 121,
2791 patch 158; rename patch 1, patch 101, patch 121; apply patch 54 before the
2792 lib64 patches to avoid fuzz problems caused by the conditional application
2793 of the lib64 patches)
2794
2795 * Mon Feb 18 2013 Peter Robinson <pbrobinson@fedoraproject.org> 2.7.3-16
2796 - disable make check on ARM for the moment until 912025 is fixed
2797
2798 * Mon Feb 11 2013 David Malcolm <dmalcolm@redhat.com> - 2.7.3-15
2799 - add aarch64 (rhbz#909783)
2800
2801 * Thu Nov 29 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-14
2802 - add BR on bluez-libs-devel (rhbz#879720)
2803
2804 * Thu Aug  9 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-13
2805 - remove f18 conditional from patch 159
2806
2807 * Fri Jul 27 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7.3-12
2808 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
2809
2810 * Tue Jul 17 2012 Bohuslav Kabrda <bkabrda@redhat.com> - 2.7.3-11
2811 - fix memory leak in module _hashlib (patch 158, rhbz#836285)
2812 - fix db4 include path for libdb4 package (f18 and above) (patch 159)
2813
2814 * Tue Jun 26 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-10
2815 - fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
2816
2817 * Fri Jun 22 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-9
2818 - use rpm macro for power64 (rhbz#834653)
2819
2820 * Tue May 15 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-8
2821 - update uid/gid handling to avoid int overflows seen with uid/gid
2822 values >= 2^31 on 32-bit architectures (patch 157; rhbz#697470)
2823
2824 * Fri May  4 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-7
2825 - renumber autotools patch from 300 to 5000
2826 - specfile cleanups
2827
2828 * Mon Apr 30 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-6
2829 - try again to fix test_gdb.py (patch 156; rhbz#817072)
2830
2831 * Mon Apr 30 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-5
2832 - fix test_gdb.py (patch 156; rhbz#817072)
2833
2834 * Fri Apr 20 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-4
2835 - avoid allocating thunks in ctypes unless absolutely necessary, to avoid
2836 generating SELinux denials on "import ctypes" and "import uuid" when embedding
2837 Python within httpd (patch 155; rhbz#814391)
2838
2839 * Thu Apr 19 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-3
2840 - add explicit version requirements on expat to avoid linkage problems with
2841 XML_SetHashSalt
2842
2843 * Wed Apr 18 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-2
2844 - fix -config symlinks (patch 112; rhbz#813836)
2845
2846 * Wed Apr 11 2012 David Malcolm <dmalcolm@redhat.com> - 2.7.3-1
2847 - 2.7.3: refresh patch 102 (lib64); drop upstream patches 11 (ascii-to-lower),
2848 115 (pydoc robustness), 145 (linux2), 148 (gdbm magic values), 151 (deadlock
2849 in fork); refresh patch 112 (debug build); revise patch 127
2850 (test_structmember); fix test_gdb (patch 153); refresh patch 137 (distutils
2851 tests); add python2.pc to python-devel; regenerate the autotool intermediates
2852 patch (patch 300)
2853
2854 * Sat Feb 25 2012 Thomas Spura <tomspur@fedoraproject.org> - 2.7.2-20
2855 - fix deadlock issue (#787712)
2856
2857 * Fri Feb 17 2012 Toshio Kuratomi <toshio@fedoraproject.org> - 2.7.2-19
2858 - Obsolete python-sqlite2
2859
2860 * Thu Nov 24 2011 Ville Skyttä <ville.skytta@iki.fi> - 2.7.2-18
2861 - Build with $RPM_LD_FLAGS (#756862).
2862 - Use xz-compressed source tarball.
2863
2864 * Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7.2-17
2865 - Rebuilt for glibc bug#747377
2866
2867 * Fri Sep 30 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-16
2868 - re-enable gdbm (patch 148; rhbz#742242)
2869
2870 * Fri Sep 16 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-15
2871 - add a sys._debugmallocstats() function (patch 147)
2872
2873 * Wed Sep 14 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-14
2874 - support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
2875 _sha* modules, relying on _hashlib in hashlib, and thus within md5 etc
2876 (rhbz#563986; patch 146)
2877
2878 * Wed Sep 14 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-13
2879 - force sys.platform to be "linux2" (patch 145)
2880
2881 * Tue Sep 13 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-12
2882 - disable gdbm module to prepare for gdbm soname bump
2883
2884 * Mon Sep 12 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-11
2885 - rename and renumber patches for consistency with python3.spec (55, 111, 113,
2886 114, 125, 131, 129 to 143)
2887
2888 * Sat Sep 10 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-10
2889 - rewrite of "check", introducing downstream-only hooks for skipping specific
2890 cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more
2891 fine-grained manner than before (patches 104, 133-142)
2892
2893 * Thu Sep  1 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-9
2894 - run selftests with "--verbose"
2895 - disable parts of test_io on ppc (rhbz#732998)
2896
2897 * Tue Aug 23 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-8
2898 - add --extension-suffix option to python-config (patch 130; rhbz#732808)
2899
2900 * Tue Aug 23 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-7
2901 - re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
2902 ppc to avoid aliasing violations (patch 129; rhbz#698726)
2903
2904 * Tue Aug 23 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-6
2905 - don't use --with-tsc on ppc64 debug builds (rhbz#698726)
2906
2907 * Thu Aug 18 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-5
2908 - add rpm macros file (rhbz#731800)
2909
2910 * Fri Jul  8 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-4
2911 - cleanup of BuildRequires; add comment headings to specfile sections
2912
2913 * Wed Jun 22 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-3
2914 - reorganize test exclusions (test_openpty and test_pty seem to be failing on
2915 every arch, not just the explicitly-listed ones)
2916
2917 * Mon Jun 13 2011 Dan Horák <dan[at]danny.cz> - 2.7.2-2
2918 - add s390(x) excluded tests
2919
2920 * Mon Jun 13 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.2-1
2921 - 2.7.2; drop upstreamed patches: patch 122 (parallel make fix), patch 124
2922 (test_commands and SELinux), patch 130 (ppc preprocessor macro in debug
2923 build); patch 131 (decimal in Turkish locale); regenerate the autotool
2924 intermediates patch (patch 300)
2925
2926 * Tue Jun 07 2011 Dennis Gilmore <dennis@ausil.us> - 2.7.1-9
2927 - fix sparc building by excluding failing tests RHBZ#711584
2928
2929 * Mon May 23 2011 Peter Robinson <pbrobinson@gmail.com> - 2.7.1-8
2930 - fix compile on ARM by excluding failing tests on arm - RHBZ #706253
2931
2932 * Tue Apr 12 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.1-7
2933 - fix "import decimal" in the Turkish locale (patch 131; rhbz#694928)
2934
2935 * Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7.1-6
2936 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
2937
2938 * Fri Jan  21 2011 Toshio Kuratomi <toshio@fedoraproject.org> - 2.7.1-5
2939 - Switch from setting OPT to setting EXTRA_CFLAGS so we don't overwrite the
2940   DNDEBUG flag
2941
2942 * Fri Jan  7 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.1-4
2943 - for now, drop "obsoletes" of python-argparse, since it interracts badly with
2944 multilib (rhbz#667984)
2945
2946 * Fri Jan  7 2011 Thomas Spura <tomspur@fedoraproject.org> - 2.7.1-3
2947 - obsolete/provide python-argparse (new in 2.7)
2948
2949 * Thu Jan  6 2011 David Malcolm <dmalcolm@redhat.com> - 2.7.1-2
2950 - fix the ppc build of the debug configuration (patch 130; rhbz#661510)
2951
2952 * Thu Dec 23 2010 David Malcolm <dmalcolm@redhat.com> - 2.7.1-1
2953 - 2.7.1, reworking patch 0 (config), patch 102 (lib64); drop upstream
2954 patch 56 (cfgparse), patch 110 (ctypes/SELinux/noexecmem), patch 119 (expat
2955 compat), patch 123 (2to3 on "from itertools import *")
2956 - fix test_abc's test_cache_leak in the debug build (patch 128)
2957 - drop _weakref.so from manifest (_weakref became a core module in r84230)
2958
2959 * Wed Sep 29 2010 jkeating - 2.7-13
2960 - Rebuilt for gcc bug 634757
2961
2962 * Mon Sep 27 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-12
2963 - fix test_structmember on 64bit-bigendian (patch 127)
2964
2965 * Fri Sep 24 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-11
2966 - fix dbm_contains on 64bit-bigendian (patch 126; rhbz#626756)
2967
2968 * Thu Sep 16 2010 Toshio Kuratomi <toshio@fedoraproject.org> - 2.7-10
2969 - backport a patch to fix a change in behaviour in configparse.
2970
2971 * Thu Sep  9 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-9
2972 - move most of the payload of the core package to the libs subpackage, given
2973 that the libs aren't meaningfully usable without the standard libraries
2974
2975 * Wed Aug 18 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-8
2976 - add %%check section
2977 - update lib64 patch (patch 102) to fix expected output in test_site.py on
2978 64-bit systems
2979 - patch test_commands.py to work with SELinux (patch 124)
2980 - patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
2981
2982 * Mon Jul 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-7
2983 - fixup missing -lcrypt to "crypt" module in config patch (patch 0)
2984
2985 * Mon Jul 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-6
2986 - re-enable systemtap
2987 - cherrypick upstream patch to 2to3 for "from itertools import *"
2988 traceback (patch 123)
2989
2990 * Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-5
2991 - disable systemtap for now (dtrace is failing on startup due to the bug
2992 mentioned in 2.7-4)
2993 - provide relative path to python binary when running pathfix.py
2994 - fix parallel make (patch 122)
2995
2996 * Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-4
2997 - fix reference to pyconfig.h in sysconfig that led to failure on startup if
2998 python-devel was not installed
2999
3000 * Thu Jul  8 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-3
3001 - add patch to fixup the new sysconfig.py for our multilib support on
3002 64-bit (patch 103)
3003
3004 * Thu Jul  8 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-2
3005 - add machinery for regenerating the "configure" script in the face of
3006 mismatching autoconf versions (patch 300)
3007
3008 * Tue Jul  6 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-1
3009 - 2.7 final; drop alphatag
3010 - drop patch 117 (upstream), patch 120 (upstreamed)
3011 - fix the commented-out __python_ver from 26 to 27
3012
3013 * Tue Jun 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-0.1.rc2
3014 - 2.7rc2
3015 - revert r79310 (patch 121)
3016 - remove modulator: upstream removed it in r78338
3017 - rename mathmodule(_d).so to math(_d).so in manifests (appears to be changed
3018 by r76861)
3019 - _bytesio(_d).so and _filesio(_d).so were consolidated into _io(_d).so in
3020 r73394 (upstream issue 6215)
3021 - use the gdb hooks from the upstream tarball, rather than keeping our own
3022 copy. The upstream version has some whitespace changes, a new write_repr for
3023 unicode objects, and various bulletproofings for being run on older gdbs
3024
3025 * Tue Jun 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-0.1.rc1
3026 - 2.7rc1:
3027   - rework patches to apply against 2.7 (which among other changes has had a
3028 whitespace cleanup of the .c code): .rhconfig (patch0), .binutils-no-dep
3029 (patch10), .ascii-tolower (patch11), .socketmodule (patch13), .socketmodule2
3030 (patch14), .systemtap (patch55), .lib64 (patch102), .selinux (patch110),
3031 .no-static-lib (patch111), .debug-build (patch112), .statvfs-f-flag-constants
3032 (patch114), ..CVE-2010-2089 (patch117)
3033   - drop upstream patches: .expat (patch3), .brprpm (patch51), .valgrind
3034 (patch52), .db48 (patch53), .CVE-2010-1634 (patch 116), .CVE-2008-5983 (patch
3035 118)
3036
3037 * Tue Jun 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-17
3038 - Stop python bailing out with an assertion failure when UnicodeDecodeErrors
3039 occur on very large buffers (patch 120, upstream issue 9058)
3040
3041 * Mon Jun 21 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-16
3042 - Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
3043 a segfault running test_pyexpat.py (patch 119; upstream issue 9054)
3044
3045 * Tue Jun  8 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-15
3046 - add a flag to make it easy to turn off the debug build when troubleshooting
3047 the rpm build
3048
3049 * Sat Jun  5 2010 Dan Horák <dan[at]danny.cz> - 2.6.5-14
3050 - reading the timestamp counter is available only on some arches (see Python/ceval.c)
3051 - disable --with-valgrind on s390(x) arches
3052
3053 * Fri Jun  4 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-13
3054 - ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
3055 - CVE-2010-1634: fix various integer overflow checks in the audioop
3056 module (patch 116)
3057 - CVE-2010-2089: further checks within the audioop module (patch 117)
3058 - CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 118)
3059
3060 * Thu May 27 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-12
3061 - make "pydoc -k" more robust in the face of broken modules (rhbz:461419, patch115)
3062
3063 * Wed May 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-11
3064 - add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
3065 (patch 114)
3066
3067 * Tue May 25 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-10
3068 - add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
3069 (patch 113); enable them and the WITH_TSC option within the debug build
3070
3071 * Tue May 18 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-9
3072 - build and install two different configurations of Python: debug and standard,
3073 packaging the debug build in a new "python-debug" subpackage (patch 112)
3074
3075 * Tue May  4 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-8
3076 - don't delete wsgiref.egg-info (rhbz:588426)
3077
3078 * Mon Apr 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-7
3079 - disable --with-valgrind on sparc arches
3080
3081 * Mon Apr 12 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-6
3082 - move the "bdist_wininst" command's template .exe files from the core package
3083 to the devel subpackage, to save space (rhbz:525469)
3084 - fix stray doublelisting of config directory wildcard in devel subpackage
3085
3086 * Wed Mar 31 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-5
3087 - update python-gdb.py from v4 to v5 (improving performance and stability,
3088 adding commands)
3089
3090 * Thu Mar 25 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-4
3091 - update python-gdb.py from v3 to v4 (fixing infinite recursion on reference
3092 cycles and tracebacks on bytes 0x80-0xff in strings, adding handlers for sets
3093 and exceptions)
3094
3095 * Wed Mar 24 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-3
3096 - refresh gdb hooks to v3 (reworking how they are packaged)
3097
3098 * Mon Mar 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-2
3099 - remove unnecessary arch-conditionality for patch 101
3100
3101 * Fri Mar 19 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-1
3102 - update to 2.6.5: http://www.python.org/download/releases/2.6.5/
3103 - replace our patch to compile against db4.8 with a patch from
3104 upstream (patch 53, from r78974); update patch 54 since part of it is now in
3105 that upstream patch
3106 - update patch 110 so that it still applies in the face of upstream r78380
3107
3108 * Tue Mar 16 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-23
3109 - fixup distutils/unixccompiler.py to remove standard library path from
3110 rpath (patch 17)
3111 - delete DOS batch files
3112
3113 * Fri Mar 12 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-22
3114 - add pyfuntop.stp; allow systemtap support to be disabled
3115 - remove trailing period from tkinter summary
3116 - don't own /usr/bin/python-config if you're not the main python
3117
3118 * Thu Mar 11 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.4-21
3119 - rebuild with new gdbm
3120
3121 * Thu Feb 11 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-20
3122 - avoid having the "test" subdirectory and the files within it that are in the
3123 core subpackage also be owned by the test subpackage (rhbz:467588)
3124
3125 * Wed Feb 10 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-19
3126 - revise the systemtap patch (patch 55:python-2.6.4-dtrace.patch) to the
3127 new version by mjw in attachment 390110 of rhbz:545179, as this should
3128 eliminate the performance penalty for the case where the probes aren't in
3129 use, and eliminate all architecture-specific code (rhbz:563541; except on
3130 sparc)
3131
3132 * Tue Feb  9 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-18
3133 - add a systemtap tapset defining "python.function.entry" and
3134 "python.function.return" to make it easy to use the static probepoint within
3135 Python; add an example of using the tapset to the docs
3136
3137 * Tue Feb  9 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-17
3138 - add systemtap static probes (wcohen; patch 55; rh bug #545179)
3139 - update some comments in specfile relating to gdb work
3140 - manually byte-compile the gdb.py file with the freshly-built python to ensure
3141 that .pyx and .pyo files make it into the debuginfo manifest if they are later
3142 byte-compiled after find-debuginfo.sh is run
3143
3144 * Mon Feb  8 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-16
3145 - move the -gdb.py file from %%{_libdir}/INSTSONAME-gdb.py to
3146 %%{_prefix}/lib/debug/%%{_libdir}/INSTSONAME.debug-gdb.py to avoid noise from
3147 ldconfig (bug 562980), and which should also ensure it becomes part of the
3148 debuginfo subpackage, rather than the libs subpackage
3149 - introduce %%{py_SOVERSION} and %%{py_INSTSONAME} to reflect the upstream
3150 configure script, and to avoid fragile scripts that try to figure this out
3151 dynamically (e.g. for the -gdb.py change)
3152
3153 * Mon Feb  8 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-15
3154 - work around bug 562906 by supplying a fixed version of pythondeps.sh
3155 - set %%{_python_bytecompile_errors_terminate_build} to 0 to prevent the broken
3156 test files from killing the build on buildroots where python is installed
3157
3158 * Fri Feb  5 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-14
3159 - add gdb hooks for easier debugging
3160
3161 * Fri Jan 29 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-13
3162 - document all patches, and remove the commented-out ones
3163
3164 * Tue Jan 26 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-12
3165 - Address some of the issues identified in package review (bug 226342):
3166   - update libs requirement on base package to use %%{name} for consistency's
3167 sake
3168   - convert from backticks to $() syntax throughout
3169   - wrap value of LD_LIBRARY_PATH in quotes
3170   - convert "/usr/bin/find" requirement to "findutils"
3171   - remove trailing periods from summaries of -devel and -tools subpackages
3172   - fix spelling mistake in description of -test subpackage
3173   - convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
3174 stylistic consistency
3175   - supply dirmode arguments to defattr directives
3176
3177 * Mon Jan 25 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-11
3178 - update python-2.6.2-config.patch to remove downstream customization of build
3179 of pyexpat and elementtree modules
3180 - add patch adapted from upstream (patch 3) to add support for building against
3181 system expat; add --with-system-expat to "configure" invocation
3182 - remove embedded copy of expat from source tree during "prep"
3183
3184 * Mon Jan 25 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-10
3185 - introduce macros for 3 directories, replacing expanded references throughout:
3186 %%{pylibdir}, %%{dynload_dir}, %%{site_packages}
3187 - explicitly list all lib-dynload files, rather than dynamically gathering the
3188 payload into a temporary text file, so that we can be sure what we are
3189 shipping; remove now-redundant testing for presence of certain .so files
3190 - remove embedded copy of zlib from source tree before building
3191
3192 * Mon Jan 25 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-9
3193 - change python-2.6.2-config.patch to remove our downstream change to curses
3194 configuration in Modules/Setup.dist, so that the curses modules are built using
3195 setup.py with the downstream default (linking against libncursesw.so, rather
3196 than libncurses.so), rather than within the Makefile; add a test to %%install
3197 to verify the dso files that the curses module is linked against the correct
3198 DSO (bug 539917; changes _cursesmodule.so -> _curses.so)
3199
3200 * Fri Jan 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-8
3201 - rebuild (bug 556975)
3202
3203 * Wed Jan 20 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-7
3204 - move lib2to3 from -tools subpackage to main package (bug 556667)
3205
3206 * Mon Jan 18 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-6
3207 - patch Makefile.pre.in to avoid building static library (patch111, bug 556092)
3208 - split up the "configure" invocation flags onto individual lines
3209
3210 * Fri Jan 15 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-5
3211 - replace usage of %%define with %%global
3212 - use the %%{_isa} macro to ensure that the python-devel dependency on python
3213 is for the correct multilib arch (#555943)
3214 - delete bundled copy of libffi to make sure we use the system one
3215 - replace references to /usr with %%{_prefix}; replace references to
3216 /usr/include with %%{_includedir}
3217
3218 * Wed Dec 16 2009 David Malcolm <dmalcolm@redhat.com> - 2.6.4-4
3219 - automatically disable arena allocator when run under valgrind (upstream
3220 issue 2422; patch 52)
3221 - add patch from Josh Boyer containing diff against upstream PyBSDDB to make
3222 the bsddb module compile against db-4.8 (patch 53, #544275); bump the necessary
3223 version of db4-devel to 4.8
3224 - patch setup.py so that it searches for db-4.8, and enable debug output for
3225 said search; make Setup.dist use db-4.8 (patch 54)
3226
3227 * Thu Nov 12 2009 David Malcolm <dmalcolm@redhat.com> - 2.6.4-3
3228 - fixup the build when __python_ver is set (Zach Sadecki; bug 533989); use
3229 pybasever in the files section
3230
3231 * Thu Oct 29 2009 David Malcolm <dmalcolm@redhat.com> - 2.6.4-2
3232 - "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py
3233 _init_posix(), so we include them in the core package, along with their parent
3234 directories (bug 531901)
3235
3236 * Mon Oct 26 2009 David Malcolm <dmalcolm@redhat.com> - 2.6.4-1
3237 - Update to 2.6.4
3238
3239 * Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 2.6.2-2
3240 - rebuilt with new openssl
3241
3242 * Mon Jul 27 2009 James Antill <james.antill@redhat.com> - 2.6.2-1
3243 - Update to 2.6.2
3244
3245 * Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6-11
3246 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
3247
3248 * Sat Jul 4 2009 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.6-10
3249 - Move python-config to devel subpackage (#506153)
3250 - Update BuildRoot for new standard
3251
3252 * Sun Jun 28 2009 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.6-9
3253 - Update python-tools description (#448940)
3254
3255 * Wed Apr 15 2009 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> 2.6-8
3256 - Replace python-hashlib and python-uuid (#484715)
3257
3258 * Tue Mar 17 2009 James Antill <james@fedoraproject.org> - 2.6-7
3259 - Use system libffi
3260 - Resolves: bug#490573
3261 - Fix SELinux execmem problems
3262 - Resolves: bug#488396
3263
3264 * Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6-5
3265 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
3266
3267 * Fri Jan 16 2009 Tomas Mraz <tmraz@redhat.com> - 2.6-4
3268 - rebuild with new openssl
3269
3270 * Tue Jan  6 2009 James Antill <james.antill@redhat.com> - 2.6-3
3271 - Fix distutils generated rpms.
3272 - Resolves: bug#236535
3273
3274 * Wed Dec 10 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 2.6-2
3275 - Enable -lcrypt for cryptmodule
3276
3277 * Fri Nov 28 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 2.6-1
3278 - Update to 2.6
3279
3280 * Tue Sep 30 2008 James Antill <james.antill@redhat.com> - 2.5.2-1
3281 - Move to 2.5.2
3282 - Fix CVE-2008-2316 hashlib overflow.
3283
3284 * Thu Jul 17 2008 Jeremy Katz <katzj@redhat.com> - 2.5.1-30
3285 - Fix up the build for new rpm
3286 - And actually build against db4-4.7 (#455170)
3287
3288 * Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.5.1-27
3289 - fix license tag
3290 - enable support for db4-4.7
3291
3292 * Sun Jun 15 2008 James Antill <jantill@redhat.com> - 2.5.1-26
3293 - Fix sporadic listdir problem
3294 - Resolves: bug#451494
3295
3296 * Mon Apr  7 2008 James Antill <jantill@redhat.com> - 2.5.1-25
3297 - Rebuild to re-gen autoconf file due to glibc change.
3298 - Resolves: bug#441003
3299
3300 * Tue Mar 25 2008 James Antill <jantill@redhat.com> - 2.5.1-24
3301 - Add more constants to socketmodule
3302
3303 * Sat Mar  8 2008 James Antill <jantill@redhat.com> - 2.5.1-22
3304 - Add constants to socketmodule
3305 - Resolves: bug#436560
3306
3307 * Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.5.1-22
3308 - Autorebuild for GCC 4.3
3309
3310 * Sun Jan 13 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.5.1-21
3311 - rebuild for new tk in rawhide
3312
3313 * Mon Jan  7 2008 James Antill <jantill@redhat.com> - 2.5.1-20
3314 - Add valgrind support files, as doc, to python-devel
3315 - Relates: rhbz#418621
3316 - Add new API from 2.6, set_wakeup_fd ... use at own risk, presumably won't
3317 - change but I have no control to guarantee that.
3318 - Resolves: rhbz#427794
3319 - Add gdbinit support file, as doc, to python-devel
3320
3321 * Fri Jan  4 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.5.1-19
3322 - rebuild for new tcl/tk in rawhide
3323
3324 * Fri Dec  7 2007 James Antill <jantill@redhat.com> - 2.5.1-18
3325 - Create a python-test sub-module, over 3MB of stuff noone wants.
3326 - Don't remove egginfo files, try this see what happens ... may revert.
3327 - Resolves: rhbz#414711
3328
3329 * Mon Dec  3 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-17
3330 - rebuild for new libssl
3331
3332 * Fri Nov 30 2007 James Antill <jantill@redhat.com> - 2.5.1-16
3333 - Fix pyconfig.h comment typo.
3334 - Add back test_support.py and the __init__.py file.
3335 - Resolves: rhbz#387401
3336
3337 * Tue Oct 30 2007 James Antill <jantill@redhat.com> - 2.5.1-15
3338 - Do codec lowercase in C Locale.
3339 - Resolves: 207134 191096
3340 - Fix stupid namespacing in pysqlite, minimal upgrade to 2.3.3 pysqlite
3341 - Resolves: 263221
3342
3343 * Wed Oct 24 2007 James Antill <jantill@redhat.com> - 2.5.1-14
3344 - Remove bintuils dep. for live CD ... add work around for ctypes
3345
3346 * Mon Oct 22 2007 James Antill <jantill@redhat.com> - 2.5.1-13
3347 - Add tix buildprereq
3348 - Add tkinter patch
3349 - Resolves: #281751
3350 - Fix ctypes loading of libraries, add requires on binutils
3351 - Resolves: #307221
3352 - Possible fix for CVE-2007-4965 possible exploitable integer overflow
3353 - Resolves: #295971
3354
3355 * Tue Oct 16 2007 Mike Bonnet <mikeb@redhat.com> - 2.5.1-12
3356 - fix marshalling of objects in xmlrpclib (python bug #1739842)
3357
3358 * Fri Sep 14 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-11
3359 - fix encoding of sqlite .py files to work around weird encoding problem 
3360   in Turkish (#283331)
3361
3362 * Mon Sep 10 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-10
3363 - work around problems with multi-line plural specification (#252136)
3364
3365 * Tue Aug 28 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-9
3366 - rebuild against new expat
3367
3368 * Tue Aug 14 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-8
3369 - build against db4.6
3370
3371 * Tue Aug 14 2007 Dennis Gilmore <dennis@ausil.us> - 2.5.1-7
3372 - add sparc64 to the list of archs for _pyconfig64_h
3373
3374 * Fri Aug 10 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-6
3375 - fix ctypes again on some arches (Hans de Goede, #251637)
3376
3377 * Fri Jul  6 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-5
3378 - link curses modules with ncursesw (#246385)
3379
3380 * Wed Jun 27 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-4
3381 - fix _elementtree.so build (#245703)
3382 - ensure that extension modules we expect are actually built rather than 
3383   having them silently fall out of the package
3384
3385 * Tue Jun 26 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-3
3386 - link with system expat (#245703)
3387
3388 * Thu Jun 21 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-2
3389 - rebuild to take advantage of hardlinking between identical pyc/pyo files
3390
3391 * Thu May 31 2007 Jeremy Katz <katzj@redhat.com> - 2.5.1-1
3392 - update to python 2.5.1
3393
3394 * Mon Mar 19 2007 Jeremy Katz <katzj@redhat.com> - 2.5.3-12
3395 - fix alpha build (#231961)
3396
3397 * Tue Feb 13 2007 Jeremy Katz <katzj@redhat.com> - 2.5.3-11
3398 - tcl/tk was reverted; rebuild again
3399
3400 * Thu Feb  1 2007 Jeremy Katz <katzj@redhat.com> - 2.5.3-10
3401 - rebuild for new tcl/tk
3402
3403 * Tue Jan 16 2007 Miroslav Lichvar <mlichvar@redhat.com> - 2.5.3-9
3404 - link with ncurses
3405
3406 * Sat Jan  6 2007 Jeremy Katz <katzj@redhat.com> - 2.5.3-8
3407 - fix extensions to use shared libpython (#219564)
3408 - all 64bit platforms need the regex fix (#122304)
3409
3410 * Wed Jan  3 2007 Jeremy Katz <katzj@redhat.com> - 2.5.3-7
3411 - fix ctypes to not require execstack (#220669)
3412
3413 * Fri Dec 15 2006 Jeremy Katz <katzj@redhat.com> - 2.5.3-6
3414 - don't link against compat-db (Robert Scheck)
3415
3416 * Wed Dec 13 2006 Jarod Wilson <jwilson@redhat.com> - 2.5.3-5
3417 - fix invalid assert in debug mode (upstream changeset 52622)
3418
3419 * Tue Dec 12 2006 Jeremy Katz <katzj@redhat.com> - 2.5.3-4
3420 - obsolete/provide python-ctypes (#219256)
3421
3422 * Mon Dec 11 2006 Jeremy Katz <katzj@redhat.com> - 2.5.3-3
3423 - fix atexit traceback with failed syslog logger (#218214)
3424 - split libpython into python-libs subpackage for multilib apps 
3425   embedding python interpreters
3426
3427 * Wed Dec  6 2006 Jeremy Katz <katzj@redhat.com> - 2.5.3-2
3428 - disable installation of .egg-info files for now
3429
3430 * Tue Dec  5 2006 Jeremy Katz <katzj@redhat.com>
3431 - support db 4.5
3432 - obsolete python-elementtree; since it requires some code tweaks, don't 
3433   provide it
3434 - obsolete old python-sqlite; provide the version that's actually included
3435
3436 * Mon Oct 30 2006 Jeremy Katz <katzj@redhat.com>
3437 - fix _md5 and _sha modules (Robert Sheck)
3438 - no longer provide optik compat; it's been a couple of years now
3439 - no longer provide the old shm module; if this is still needed, let's 
3440   build it separately
3441 - no longer provide japanese codecs; should be a separate package
3442
3443 * Mon Oct 23 2006 Jeremy Katz <katzj@redhat.com> - 2.5-0
3444 - update to 2.5.0 final
3445
3446 * Fri Aug 18 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.99.c1
3447 - Updated to 2.5c1. Merged fixes from FC6 too:
3448 - Fixed bug #199373 (on some platforms CFLAGS is needed when linking)
3449 - Fixed bug #198971 (case conversion not locale safe in logging library)
3450 - Verified bug #201434 (distutils.sysconfig is confused by the change to make
3451   python-devel multilib friendly) is fixed upstream
3452
3453 * Sun Jul 16 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.99.b2
3454 - Updated to 2.5b2 (which for comparison reasons is re-labeled 2.4.99.b2)
3455
3456 * Fri Jun 23 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.99.b1
3457 - Updated to 2.5b1 (which for comparison reasons is re-labeled 2.4.99.b1)
3458
3459 * Tue Jun 13 2006 Jeremy Katz <katzj@redhat.com> - 2.4.3-11.FC6
3460 - and fix it for real
3461
3462 * Tue Jun 13 2006 Jeremy Katz <katzj@redhat.com> - 2.4.3-10.FC6
3463 - fix python-devel on ia64
3464
3465 * Tue Jun 13 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-9
3466 - Fixed python-devel to be multilib friendly (bug #192747, #139911)
3467
3468 * Tue Jun 13 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-8
3469 - Only copying mkhowto from the Docs - we don't need perl dependencies from
3470   python-tools.
3471
3472 * Mon Jun 12 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-7
3473 - Fixed bug #121198 (webbrowser.py should use the user's preferences first)
3474
3475 * Mon Jun 12 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-6
3476 - Fixed bug #192592 (too aggressive assertion fails) - SF#1257960
3477 - Fixed bug #167468 (Doc/tools not included) - added in the python-tools package
3478
3479 * Thu Jun  8 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-5
3480 - Fixed bug #193484 (added pydoc in the main package)
3481
3482 * Mon Jun  5 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-4
3483 - Added dist in the release
3484
3485 * Mon May 15 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-3
3486 - rebuilt to fix broken libX11 dependency
3487
3488 * Wed Apr 12 2006 Jeremy Katz <katzj@redhat.com> - 2.4.3-2
3489 - rebuild with new gcc to fix #188649
3490
3491 * Thu Apr  6 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-1
3492 - Updated to 2.4.3
3493
3494 * Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 2.4.2-3.2.1
3495 - bump again for double-long bug on ppc(64)
3496
3497 * Fri Feb 10 2006 Mihai Ibanescu <misa@redhat.com> - 2.4.3-3.2
3498 - rebuilt for newer tix
3499
3500 * Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 2.4.2-3.1
3501 - rebuilt for new gcc4.1 snapshot and glibc changes
3502
3503 * Fri Jan 20 2006 Mihai Ibanescu <misa@redhat.com> 2.4.2-3
3504 - fixed #136654 for another instance of audiotest.au
3505
3506 * Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
3507 - rebuilt
3508
3509 * Sat Nov 19 2005 Bill Nottingham <notting@redhat.com> 2.4.2-2
3510 - fix build for modular X, remove X11R6 path references
3511
3512 * Tue Nov 15 2005 Mihai Ibanescu <misa@redhat.com> 2.4.2-1
3513 - Upgraded to 2.4.2
3514 - BuildRequires autoconf
3515
3516 * Wed Nov  9 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-16
3517 - Rebuilding against newer openssl.
3518 - XFree86-devel no longer exists
3519
3520 * Mon Sep 26 2005 Peter Jones <pjones@redhat.com> 2.4.1-14
3521 - Once more -- this time, to fix -EPERM when you run it in a directory
3522   you can't read from.
3523
3524 * Mon Sep 26 2005 Peter Jones <pjones@redhat.com> 2.4.1-13
3525 - So, 5 or 6 people have said it works for them with this patch...
3526
3527 * Sun Sep 25 2005 Peter Jones <pjones@redhat.com> 2.4.1-12
3528 - Fixed bug #169159 (check for argc>0 and argv[0] == NULL, not just
3529     argv[0][0]='\0')
3530   Reworked the patch from -8 a bit more.
3531
3532 * Fri Sep 23 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-10
3533 - Fixed bug #169159 (don't let python core dump if no arguments are passed in)
3534   Reworked the patch from -8 a bit more.
3535
3536 * Thu Sep 22 2005 Peter Jones <pjones@redhat.com> 2.4.1-8
3537 - Fix bug #169046 more correctly.
3538
3539 * Thu Sep 22 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-7
3540 - Fixed bug #169046 (realpath is unsafe); thanks to 
3541   Peter Jones <pjones@redhat.com> and Arjan van de Ven <arjanv@redhat.com> for
3542   diagnosing and the patch.
3543
3544 * Tue Sep 20 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-4
3545 - Fixed bug #168655 (fixes for building as python24)
3546
3547 * Tue Jul 26 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-3
3548 - Fixed bug #163435 (pynche doesn't start))
3549
3550 * Wed Apr 20 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-2
3551 - Fixed bug #143667 (python should own /usr/lib/python* on 64-bit systems, for
3552   noarch packages)
3553 - Fixed bug #143419 (BuildRequires db4 is not versioned)
3554
3555 * Wed Apr  6 2005 Mihai Ibanescu <misa@redhat.com> 2.4.1-1
3556 - updated to 2.4.1
3557
3558 * Mon Mar 14 2005 Mihai Ibanescu <misa@redhat.com> 2.4-6
3559 - building the docs from a different source rpm, to decouple bootstrapping
3560   python from having tetex installed
3561
3562 * Fri Mar 11 2005 Dan Williams <dcbw@redhat.com> 2.4-5
3563 - Rebuild to pick up new libssl.so.5
3564
3565 * Wed Feb  2 2005 Mihai Ibanescu <misa@redhat.com> 2.4-4
3566 - Fixed security issue in SimpleXMLRPCServer.py (#146647)
3567
3568 * Wed Jan 12 2005 Tim Waugh <twaugh@redhat.com> 2.4-3
3569 - Rebuilt for new readline.
3570
3571 * Mon Dec  6 2004 Jeff Johnson <jbj@jbj.org> 2.4-2
3572 - db-4.3.21 returns DB_BUFFER_SMALL rather than ENOMEM (#141994).
3573 - add Provide: python(abi) = 2.4
3574 - include msgfmt/pygettext *.pyc and *.pyo from brp-python-bytecompile.
3575
3576 * Fri Dec  3 2004 Mihai Ibanescu <misa@redhat.com> 2.4-1
3577 - Python-2.4.tar.bz2 (final)
3578
3579 * Fri Nov 19 2004 Mihai Ibanescu <misa@redhat.com> 2.4-0.c1.1
3580 - Python-2.4c1.tar.bz2 (release candidate 1)
3581
3582 * Thu Nov 11 2004 Jeff Johnson <jbj@jbj.org> 2.4-0.b2.4
3583 - rebuild against db-4.3.21.
3584
3585 * Mon Nov  8 2004 Jeremy Katz <katzj@redhat.com> - 2.4-0.b2.3
3586 - fix the lib64 patch so that 64bit arches still look in /usr/lib/python...
3587
3588 * Mon Nov  8 2004 Jeremy Katz <katzj@redhat.com> - 2.4-0.b2.2
3589 - cryptmodule still needs -lcrypt (again)
3590
3591 * Thu Nov  4 2004 Mihai Ibanescu <misa@redhat.com> 2.4-0.b2.1
3592 - Updated to python 2.4b2 (and labeled it 2.4-0.b2.1 to avoid breaking rpm's
3593   version comparison)
3594
3595 * Thu Nov  4 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-13
3596 - Fixed bug #138112 (python overflows stack buffer) - SF bug 105470
3597
3598 * Tue Nov  2 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-12
3599 - Fixed bugs #131439 #136023 #137863 (.pyc/.pyo files had the buildroot added)
3600
3601 * Tue Oct 26 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-11
3602 - Fixed bug #136654 (python has sketchy audio clip)
3603
3604 * Tue Aug 31 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-10
3605 - Fixed bug #77418 (Demo dir not packaged)
3606 - More tweaking on #19347 (Moved Tools/ under /usr/lib/python2.3/Tools)
3607
3608 * Fri Aug 13 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-8
3609 - Fixed bug #129769: Makefile in new python conflicts with older version found
3610   in old python-devel
3611 - Reorganized the spec file to get rid of the aspython2 define; __python_ver
3612   is more powerful.
3613
3614 * Tue Aug  3 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-7
3615 - Including html documentation for non-i386 arches
3616 - Fixed #125362 (python-doc html files have japanese character encoding)
3617 - Fixed #128923 (missing dependency between python and python-devel)
3618
3619 * Fri Jul 30 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-6
3620 - Fixed #128030 (help() not printing anything)
3621 - Fixed #125472 (distutils.sysconfig.get_python_lib() not returning the right
3622   path on 64-bit systems)
3623 - Fixed #127357 (building python as a shared library)
3624 - Fixed  #19347 (including the contents of Tools/scripts/ in python-tools)
3625
3626 * Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
3627 - rebuilt
3628
3629 * Tue Jun  8 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-3
3630 - Added an optik.py that provides the same interface from optparse for
3631   backward compatibility; obsoleting python-optik
3632
3633 * Mon Jun  7 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-2
3634 - Patched bdist_rpm to allow for builds of multiple binary rpms (bug #123598)
3635
3636 * Fri Jun  4 2004 Mihai Ibanescu <misa@redhat.com> 2.3.4-1
3637 - Updated to 2.3.4-1 with Robert Scheck's help (bug #124764)
3638 - Added BuildRequires: tix-devel (bug #124918)
3639
3640 * Fri May  7 2004 Mihai Ibanescu <misa@redhat.com> 2.3.3-6
3641 - Correct fix for #122304 from upstream:
3642   http://sourceforge.net/tracker/?func=detail&atid=105470&aid=931848&group_id=5470
3643
3644 * Thu May  6 2004 Mihai Ibanescu <misa@redhat.com> 2.3.3-4
3645 - Fix for bug #122304 : splitting the domain name fails on 64-bit arches
3646 - Fix for bug #120879 : including Makefile into the main package
3647
3648 - Requires XFree86-devel instead of -libs (see bug #118442)
3649
3650 * Tue Mar 16 2004 Mihai Ibanescu <misa@redhat.com> 2.3.3-3
3651 - Requires XFree86-devel instead of -libs (see bug #118442)
3652
3653 * Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com>
3654 - rebuilt
3655
3656 * Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
3657 - rebuilt
3658
3659 * Fri Dec 19 2003 Jeff Johnson <jbj@jbj.org> 2.3.3-1
3660 - upgrade to 2.3.3.
3661
3662 * Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 2.3.2-9
3663 - rebuild against db-4.2.52.
3664
3665 * Fri Dec 12 2003 Jeremy Katz <katzj@redhat.com> 2.3.2-8
3666 - more rebuilding for new tcl/tk
3667
3668 * Wed Dec  3 2003 Jeff Johnson <jbj@jbj.org> 2.3.2-7.1
3669 - rebuild against db-4.2.42.
3670
3671 * Fri Nov 28 2003 Mihai Ibanescu <misa@redhat.com> 2.3.2-7
3672 - rebuilt against newer tcl/tk
3673
3674 * Mon Nov 24 2003 Mihai Ibanescu <misa@redhat.com> 2.3.2-6
3675 - added a Provides: python-abi
3676
3677 * Wed Nov 12 2003 Mihai Ibanescu <misa@redhat.com> 2.3.2-5
3678 - force CC (#109268)
3679
3680 * Sun Nov  9 2003 Jeremy Katz <katzj@redhat.com> 2.3.2-4
3681 - cryptmodule still needs -lcrypt
3682
3683 * Wed Nov  5 2003 Mihai Ibanescu <misa@redhat.com> 2.3.2-2
3684 - Added patch for missing mkhowto
3685
3686 * Thu Oct 16 2003 Mihai Ibanescu <misa@redhat.com> 2.3.2-1
3687 - Updated to 2.3.2
3688
3689 * Thu Sep 25 2003 Mihai Ibanescu <misa@redhat.com> 2.3.1-1
3690 - 2.3.1 final
3691
3692 * Tue Sep 23 2003 Mihai Ibanescu <misa@redhat.com> 2.3.1-0.8.RC1
3693 - Building the python 2.3.1 release candidate
3694 - Updated the lib64 patch
3695
3696 * Wed Jul 30 2003 Mihai Ibanescu <misa@redhat.com> 2.3-0.2
3697 - Building python 2.3
3698 - Added more BuildRequires
3699 - Updated the startup files for modulator and pynche; idle installs its own
3700   now.
3701
3702 * Thu Jul  3 2003 Mihai Ibanescu <misa@redhat.com> 2.2.3-4
3703 - Rebuilt against newer db4 packages (bug #98539)
3704
3705 * Mon Jun 9 2003 Elliot Lee <sopwith@redhat.com> 2.2.3-3
3706 - rebuilt
3707
3708 * Sat Jun  7 2003 Mihai Ibanescu <misa@redhat.com> 2.2.3-2
3709 - Rebuilt
3710
3711 * Fri Jun  6 2003 Mihai Ibanescu <misa@redhat.com> 2.2.3-1
3712 - Upgraded to 2.2.3
3713
3714 * Wed Apr  2 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-28
3715 - Rebuilt
3716
3717 * Wed Apr  2 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-27
3718 - Modified the ftpuri patch conforming to http://ietf.org/rfc/rfc1738.txt
3719
3720 * Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com>
3721 - rebuilt
3722
3723 * Mon Feb 24 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-25
3724 - Fixed bug #84886: pydoc dies when run w/o arguments
3725 - Fixed bug #84205: add python shm module back (used to be shipped with 1.5.2)
3726 - Fixed bug #84966: path in byte-compiled code still wrong
3727
3728 * Thu Feb 20 2003 Jeremy Katz <katzj@redhat.com> 2.2.2-23
3729 - ftp uri's should be able to specify being rooted at the root instead of 
3730   where you login via ftp (#84692)
3731
3732 * Mon Feb 10 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-22
3733 - Using newer Japanese codecs (1.4.9). Thanks to 
3734   Peter Bowen <pzb@datastacks.com> for pointing this out.
3735
3736 * Thu Feb  6 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-21
3737 - Rebuild
3738
3739 * Wed Feb  5 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-20
3740 - Release number bumped really high: turning on UCS4 (ABI compatibility
3741   breakage)
3742
3743 * Fri Jan 31 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-13
3744 - Attempt to look both in /usr/lib64 and /usr/lib/python2.2/site-packages/:
3745   some work on python-2.2.2-lib64.patch
3746
3747 * Thu Jan 30 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-12
3748 - Rebuild to incorporate the removal of .lib64 and - files.
3749
3750 * Thu Jan 30 2003 Mihai Ibanescu <misa@redhat.com> 2.2.2-11.7.3
3751 - Fixed bug #82544: Errata removes most tools
3752 - Fixed bug #82435: Python 2.2.2 errata breaks redhat-config-users
3753 - Removed .lib64 and - files that get installed after we fix the multilib
3754   .py files.
3755
3756 * Wed Jan 22 2003 Tim Powers <timp@redhat.com>
3757 - rebuilt
3758
3759 * Wed Jan 15 2003 Jens Petersen <petersen@redhat.com> 2.2.2-10
3760 - rebuild to update tkinter's tcltk deps
3761 - convert changelog to utf-8
3762
3763 * Tue Jan  7 2003 Nalin Dahyabhai <nalin@redhat.com> 2.2.2-9
3764 - rebuild
3765
3766 * Fri Jan  3 2003 Nalin Dahyabhai <nalin@redhat.com>
3767 - pick up OpenSSL cflags and ldflags from pkgconfig if available
3768
3769 * Thu Jan  2 2003 Jeremy Katz <katzj@redhat.com> 2.2.2-8
3770 - urllib2 didn't support non-anonymous ftp.  add support based on how 
3771   urllib did it (#80676, #78168)
3772
3773 * Mon Dec 16 2002 Mihai Ibanescu <misa@redhat.com> 2.2.2-7
3774 - Fix bug #79647 (Rebuild of SRPM fails if python isn't installed)
3775 - Added a bunch of missing BuildRequires found while fixing the
3776   above-mentioned bug
3777
3778 * Tue Dec 10 2002 Tim Powers <timp@redhat.com> 2.2.2-6
3779 - rebuild to fix broken tcltk deps for tkinter
3780
3781 * Fri Nov 22 2002 Mihai Ibanescu <misa@redhat.com>
3782 2.2.2-3.7.3
3783 - Recompiled for 7.3 (to fix the -lcrypt bug)
3784 - Fix for the spurious error message at the end of the build (build-requires
3785   gets confused by executable files starting with """"): make the tests
3786   non-executable.
3787
3788 * Wed Nov 20 2002 Mihai Ibanescu <misa@redhat.com>
3789 2.2.2-5
3790 - Fixed configuration patch to add -lcrypt when compiling cryptmodule.c
3791
3792 2.2.2-4
3793 - Spec file change from Matt Wilson <msw@redhat.com> to disable linking 
3794   with the C++ compiler.
3795
3796 * Mon Nov 11 2002 Mihai Ibanescu <misa@redhat.com>
3797 2.2.2-3.*
3798 - Merged patch from Karsten Hopp <karsten@redhat.de> from 2.2.1-17hammer to
3799   use %%{_libdir}
3800 - Added XFree86-libs as BuildRequires (because of tkinter)
3801 - Fixed duplicate listing of plat-linux2
3802 - Fixed exclusion of lib-dynload/japanese
3803 - Added lib64 patch for the japanese codecs
3804 - Use setup magic instead of using tar directly on JapaneseCodecs
3805
3806 * Tue Nov  5 2002 Mihai Ibanescu <misa@redhat.com>
3807 2.2.2-2
3808 - Fix #76912 (python-tools contains idle, which uses tkinter, but there is no
3809   requirement of tkinter from python-tools).
3810 - Fix #74013 (rpm is missing the /usr/lib/python2.2/test directory)
3811
3812 * Mon Nov  4 2002 Mihai Ibanescu <misa@redhat.com>
3813 - builds as python2 require a different libdb
3814 - changed the buildroot name of python to match python2 builds
3815
3816 * Fri Nov  1 2002 Mihai Ibanescu <misa@redhat.com>
3817 - updated python to 2.2.2 and adjusted the patches accordingly
3818
3819 * Mon Oct 21 2002 Mihai Ibanescu <misa@redhat.com>
3820 - Fix #53930 (Python-2.2.1-buildroot-bytecode.patch)
3821 - Added BuildPrereq dependency on gcc-c++
3822
3823 * Fri Aug 30 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-17
3824 - security fix for _execvpe
3825
3826 * Tue Aug 13 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-16
3827 - Fix  #71011,#71134, #58157
3828
3829 * Wed Aug  7 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-15
3830 - Resurrect tkinter
3831 - Fix for distutils (#67671)
3832 - Fix #69962
3833
3834 * Thu Jul 25 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-14
3835 - Obsolete tkinter/tkinter2 (#69838)
3836
3837 * Tue Jul 23 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-13
3838 - Doc fixes (#53951) - not on alpha at the momemt
3839
3840 * Mon Jul  8 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-12
3841 - fix pydoc (#68082)
3842
3843 * Mon Jul  8 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-11
3844 - Add db4-devel as a BuildPrereq
3845
3846 * Fri Jun 21 2002 Tim Powers <timp@redhat.com> 2.2.1-10
3847 - automated rebuild
3848
3849 * Mon Jun 17 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-9
3850 - Add Japanese codecs (#66352)
3851
3852 * Tue Jun 11 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-8
3853 - No more tkinter...
3854
3855 * Wed May 29 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-7
3856 - Rebuild
3857
3858 * Tue May 21 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-6
3859 - Add the email subcomponent (#65301)
3860
3861 * Fri May 10 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-5
3862 - Rebuild
3863
3864 * Thu May 02 2002 Than Ngo <than@redhat.com> 2.2.1-4
3865 - rebuild i new enviroment
3866
3867 * Tue Apr 23 2002 Trond Eivind Glomsrød <teg@redhat.com>
3868 - Use ucs2, not ucs4, to avoid breaking tkinter (#63965)
3869
3870 * Mon Apr 22 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-2
3871 - Make it use db4
3872
3873 * Fri Apr 12 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2.1-1
3874 - 2.2.1 - a bugfix-only release
3875
3876 * Fri Apr 12 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-16
3877 - the same, but in builddirs - this will remove them from the 
3878   docs package, which doesn't look in the buildroot for files.
3879
3880 * Fri Apr 12 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-15
3881 - Get rid of temporary files and .cvsignores included 
3882   in the tarball and make install
3883
3884 * Fri Apr  5 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-14
3885 - Don't own lib-tk in main package, only in tkinter (#62753)
3886
3887 * Mon Mar 25 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-13
3888 - rebuild
3889
3890 * Mon Mar 25 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-12
3891 - rebuild
3892
3893 * Fri Mar  1 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-11
3894 - Add a not to the Distutils obsoletes test (doh!)
3895
3896 * Fri Mar  1 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-10
3897 - Rebuild
3898
3899 * Mon Feb 25 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-9
3900 - Only obsolete Distutils when built as python
3901
3902 * Thu Feb 21 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-8
3903 - Make files in /usr/bin install side by side with python 1.5 when
3904 - Drop explicit requirement of db4
3905   built as python2
3906
3907 * Thu Jan 31 2002 Elliot Lee <sopwith@redhat.com> 2.2-7
3908 - Use version and pybasever macros to make updating easy
3909 - Use _smp_mflags macro
3910
3911 * Tue Jan 29 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-6
3912 - Add db4-devel to BuildPrereq
3913
3914 * Fri Jan 25 2002 Nalin Dahyabhai <nalin@redhat.com> 2.2-5
3915 - disable ndbm support, which is db2 in disguise (really interesting things
3916   can happen when you mix db2 and db4 in a single application)
3917
3918 * Thu Jan 24 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-4
3919 - Obsolete subpackages if necesarry 
3920 - provide versioned python2
3921 - build with db4
3922
3923 * Wed Jan 16 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.2-3
3924 - Alpha toolchain broken. Disable build on alpha.
3925 - New openssl
3926
3927 * Wed Dec 26 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-1
3928 - 2.2 final
3929
3930 * Fri Dec 14 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.11c1
3931 - 2.2 RC 1
3932 - Don't include the _tkinter module in the main package - it's 
3933   already in the tkiter packace
3934 - Turn off the mpzmodule, something broke in the buildroot
3935
3936 * Wed Nov 28 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.10b2
3937 - Use -fPIC for OPT as well, in lack of a proper libpython.so
3938
3939 * Mon Nov 26 2001 Matt Wilson <msw@redhat.com> 2.2-0.9b2
3940 - changed DESTDIR to point to / so that distutils will install dynload
3941   modules properly in the installroot
3942
3943 * Fri Nov 16 2001 Matt Wilson <msw@redhat.com> 2.2-0.8b2
3944 - 2.2b2
3945
3946 * Fri Oct 26 2001 Matt Wilson <msw@redhat.com> 2.2-0.7b1
3947 - python2ify
3948
3949 * Fri Oct 19 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.5b1
3950 - 2.2b1
3951
3952 * Sun Sep 30 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.4a4
3953 - 2.2a4
3954 - Enable UCS4 support
3955 - Enable IPv6
3956 - Provide distutils
3957 - Include msgfmt.py and pygettext.py
3958
3959 * Fri Sep 14 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.3a3
3960 - Obsolete Distutils, which is now part of the main package
3961 - Obsolete python2
3962
3963 * Thu Sep 13 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.2a3
3964 - Add docs, tools and tkinter subpackages, to match the 1.5 layout
3965
3966 * Wed Sep 12 2001 Trond Eivind Glomsrød <teg@redhat.com> 2.2-0.1a3
3967 - 2.2a3
3968 - don't build tix and blt extensions
3969
3970 * Mon Aug 13 2001 Trond Eivind Glomsrød <teg@redhat.com>
3971 - Add tk and tix to build dependencies
3972
3973 * Sat Jul 21 2001 Trond Eivind Glomsrød <teg@redhat.com>
3974 - 2.1.1 bugfix release - with a GPL compatible license
3975
3976 * Fri Jul 20 2001 Trond Eivind Glomsrød <teg@redhat.com>
3977 - Add new build dependencies (#49753)
3978
3979 * Tue Jun 26 2001 Nalin Dahyabhai <nalin@redhat.com>
3980 - build with -fPIC
3981
3982 * Fri Jun  1 2001 Trond Eivind Glomsrød <teg@redhat.com>
3983 - 2.1
3984 - reorganization of file includes
3985
3986 * Wed Dec 20 2000 Trond Eivind Glomsrød <teg@redhat.com>
3987 - fix the "requires" clause, it lacked a space causing problems
3988 - use %%{_tmppath}
3989 - don't define name, version etc
3990 - add the available patches from the Python home page
3991
3992 * Fri Dec 15 2000 Matt Wilson <msw@redhat.com>
3993 - added devel subpackage
3994
3995 * Fri Dec 15 2000 Matt Wilson <msw@redhat.com>
3996 - modify all files to use "python2.0" as the intrepter
3997 - don't build the Expat bindings
3998 - build against db1
3999
4000 * Mon Oct 16 2000 Jeremy Hylton <jeremy@beopen.com>
4001 - updated for 2.0 final
4002
4003 * Mon Oct  9 2000 Jeremy Hylton <jeremy@beopen.com>
4004 - updated for 2.0c1
4005 - build audioop, imageop, and rgbimg extension modules
4006 - include xml.parsers subpackage
4007 - add test.xml.out to files list
4008
4009 * Thu Oct  5 2000 Jeremy Hylton <jeremy@beopen.com>
4010 - added bin/python2.0 to files list (suggested by Martin v. L?)
4011
4012 * Tue Sep 26 2000 Jeremy Hylton <jeremy@beopen.com>
4013 - updated for release 1 of 2.0b2
4014 - use .bz2 version of Python source
4015
4016 * Tue Sep 12 2000 Jeremy Hylton <jeremy@beopen.com>
4017 - Version 2 of 2.0b1
4018 - Make the package relocatable.  Thanks to Suchandra Thapa.
4019 - Exclude Tkinter from main RPM.  If it is in a separate RPM, it is
4020   easier to track Tk releases.