Initial import (from python3-3.1.1-13)
This commit is contained in:
parent
533ae8c505
commit
a3483f912e
@ -0,0 +1 @@
|
||||
Python-3.1.1.tar.bz2
|
20
Python-3.1.1-rpath.patch
Normal file
20
Python-3.1.1-rpath.patch
Normal file
@ -0,0 +1,20 @@
|
||||
diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/distutils/unixccompiler.py
|
||||
--- Python-3.1.1/Lib/distutils/unixccompiler.py.rpath 2009-09-04 17:29:34.000000000 -0400
|
||||
+++ Python-3.1.1/Lib/distutils/unixccompiler.py 2009-09-04 17:49:54.000000000 -0400
|
||||
@@ -141,6 +141,16 @@ class UnixCCompiler(CCompiler):
|
||||
if sys.platform == "cygwin":
|
||||
exe_extension = ".exe"
|
||||
|
||||
+ def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
|
||||
+ """Remove standard library path from rpath"""
|
||||
+ libraries, library_dirs, runtime_library_dirs = super(
|
||||
+ self.__class__, self)._fix_lib_args(libraries, library_dirs,
|
||||
+ runtime_library_dirs)
|
||||
+ libdir = sysconfig.get_config_var('LIBDIR')
|
||||
+ if runtime_library_dirs and (libdir in runtime_library_dirs):
|
||||
+ runtime_library_dirs.remove(libdir)
|
||||
+ return libraries, library_dirs, runtime_library_dirs
|
||||
+
|
||||
def preprocess(self, source, output_file=None, macros=None,
|
||||
include_dirs=None, extra_preargs=None, extra_postargs=None):
|
||||
fixed_args = self._fix_compile_args(None, macros, include_dirs)
|
14
find-provides-without-python-sonames.sh
Executable file
14
find-provides-without-python-sonames.sh
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The standard /usr/lib/rpm/find-provides script
|
||||
# adds provides lines for all SONAME directives in all shared libraries,
|
||||
# even if those libraries are not in the LD_LIBRARY_PATH
|
||||
|
||||
# This leads to the rpm having a redundant Provides "foo.so" for all of the
|
||||
# various foo.so Python c modules
|
||||
|
||||
# So we strip out all /usr/lib/python lines first, before running them through
|
||||
# the standard script:
|
||||
grep -v "/usr/lib/python" | /usr/lib/rpm/find-provides
|
||||
|
||||
exit 0
|
1
import.log
Normal file
1
import.log
Normal file
@ -0,0 +1 @@
|
||||
python3-3_1_1-13_fc12:HEAD:python3-3.1.1-13.fc12.src.rpm:1263417721
|
3
macros.python3
Normal file
3
macros.python3
Normal file
@ -0,0 +1,3 @@
|
||||
%__python3 /usr/bin/python3
|
||||
%python3_sitelib %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
|
||||
%python3_sitearch %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
|
@ -0,0 +1,11 @@
|
||||
--- Python-3.1.1/Lib/test/test_imp.py.apply-our-changes-to-expected-shebang 2009-10-27 18:05:53.539540149 -0400
|
||||
+++ Python-3.1.1/Lib/test/test_imp.py 2009-10-27 18:06:12.138538965 -0400
|
||||
@@ -52,7 +52,7 @@ class ImportTests(unittest.TestCase):
|
||||
self.assertNotEqual(fp, None)
|
||||
self.assertEqual(fp.encoding, "iso-8859-1")
|
||||
self.assertEqual(fp.tell(), 0)
|
||||
- self.assertEqual(fp.readline(), '#!/usr/bin/env python\n')
|
||||
+ self.assertEqual(fp.readline(), '#!/usr/bin/python3.1\n')
|
||||
fp.close()
|
||||
|
||||
fp, filename, info = imp.find_module("tokenize")
|
245
python-3.1.1-config.patch
Normal file
245
python-3.1.1-config.patch
Normal file
@ -0,0 +1,245 @@
|
||||
--- Python-3.1.1/Modules/Setup.dist.config 2009-06-04 03:30:30.000000000 -0600
|
||||
+++ Python-3.1.1/Modules/Setup.dist 2009-09-25 12:14:38.000000000 -0600
|
||||
@@ -141,7 +141,7 @@
|
||||
# modules are to be built as shared libraries (see above for more
|
||||
# detail; also note that *static* reverses this effect):
|
||||
|
||||
-#*shared*
|
||||
+*shared*
|
||||
|
||||
# GNU readline. Unlike previous Python incarnations, GNU readline is
|
||||
# now incorporated in an optional module, configured in the Setup file
|
||||
@@ -151,71 +151,71 @@
|
||||
# it, depending on your system -- see the GNU readline instructions.
|
||||
# It's okay for this to be a shared library, too.
|
||||
|
||||
-#readline readline.c -lreadline -ltermcap
|
||||
+readline readline.c -lreadline -ltermcap
|
||||
|
||||
|
||||
# Modules that should always be present (non UNIX dependent):
|
||||
|
||||
-#array arraymodule.c # array objects
|
||||
-#cmath cmathmodule.c # -lm # complex math library functions
|
||||
-#math mathmodule.c # -lm # math library functions, e.g. sin()
|
||||
-#_struct _struct.c # binary structure packing/unpacking
|
||||
-#time timemodule.c # -lm # time operations and variables
|
||||
-#operator operator.c # operator.add() and similar goodies
|
||||
-#_weakref _weakref.c # basic weak reference support
|
||||
-#_testcapi _testcapimodule.c # Python C API test module
|
||||
-#_random _randommodule.c # Random number generator
|
||||
-#_collections _collectionsmodule.c # Container types
|
||||
-#itertools itertoolsmodule.c # Functions creating iterators for efficient looping
|
||||
-#atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
|
||||
-#_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
|
||||
-#_pickle _pickle.c # pickle accelerator
|
||||
-#datetime datetimemodule.c # date/time type
|
||||
-#_bisect _bisectmodule.c # Bisection algorithms
|
||||
-#_heapq _heapqmodule.c # Heap queue algorithm
|
||||
+array arraymodule.c # array objects
|
||||
+cmath cmathmodule.c # -lm # complex math library functions
|
||||
+math mathmodule.c # -lm # math library functions, e.g. sin()
|
||||
+_struct _struct.c # binary structure packing/unpacking
|
||||
+time timemodule.c # -lm # time operations and variables
|
||||
+operator operator.c # operator.add() and similar goodies
|
||||
+_weakref _weakref.c # basic weak reference support
|
||||
+_testcapi _testcapimodule.c # Python C API test module
|
||||
+_random _randommodule.c # Random number generator
|
||||
+_collections _collectionsmodule.c # Container types
|
||||
+itertools itertoolsmodule.c # Functions creating iterators for efficient looping
|
||||
+atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
|
||||
+_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
|
||||
+_pickle _pickle.c # pickle accelerator
|
||||
+#datetime datetimemodule.c # date/time type
|
||||
+_bisect _bisectmodule.c # Bisection algorithms
|
||||
+_heapq _heapqmodule.c # Heap queue algorithm
|
||||
|
||||
-#unicodedata unicodedata.c # static Unicode character database
|
||||
+unicodedata unicodedata.c # static Unicode character database
|
||||
|
||||
|
||||
# Modules with some UNIX dependencies -- on by default:
|
||||
# (If you have a really backward UNIX, select and socket may not be
|
||||
# supported...)
|
||||
|
||||
-#fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
|
||||
-#spwd spwdmodule.c # spwd(3)
|
||||
-#grp grpmodule.c # grp(3)
|
||||
-#select selectmodule.c # select(2); not on ancient System V
|
||||
+fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
|
||||
+spwd spwdmodule.c # spwd(3)
|
||||
+grp grpmodule.c # grp(3)
|
||||
+select selectmodule.c # select(2); not on ancient System V
|
||||
|
||||
# Memory-mapped files (also works on Win32).
|
||||
-#mmap mmapmodule.c
|
||||
+mmap mmapmodule.c
|
||||
|
||||
# CSV file helper
|
||||
-#_csv _csv.c
|
||||
+_csv _csv.c
|
||||
|
||||
# Socket module helper for socket(2)
|
||||
-#_socket socketmodule.c
|
||||
+_socket socketmodule.c
|
||||
|
||||
# Socket module helper for SSL support; you must comment out the other
|
||||
# socket line above, and possibly edit the SSL variable:
|
||||
#SSL=/usr/local/ssl
|
||||
-#_ssl _ssl.c \
|
||||
-# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
|
||||
-# -L$(SSL)/lib -lssl -lcrypto
|
||||
+_ssl _ssl.c \
|
||||
+ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
|
||||
+ -L$(SSL)/lib -lssl -lcrypto
|
||||
|
||||
# The crypt module is now disabled by default because it breaks builds
|
||||
# on many systems (where -lcrypt is needed), e.g. Linux (I believe).
|
||||
#
|
||||
# First, look at Setup.config; configure may have set this for you.
|
||||
|
||||
-#crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
|
||||
+crypt cryptmodule.c -lcrypt # crypt(3); needs -lcrypt on some systems
|
||||
|
||||
|
||||
# Some more UNIX dependent modules -- off by default, since these
|
||||
# are not supported by all UNIX systems:
|
||||
|
||||
-#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
|
||||
-#termios termios.c # Steen Lumholt's termios module
|
||||
-#resource resource.c # Jeremy Hylton's rlimit interface
|
||||
+nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
|
||||
+termios termios.c # Steen Lumholt's termios module
|
||||
+resource resource.c # Jeremy Hylton's rlimit interface
|
||||
|
||||
|
||||
# Multimedia modules -- off by default.
|
||||
@@ -223,7 +223,7 @@
|
||||
# #993173 says audioop works on 64-bit platforms, though.
|
||||
# These represent audio samples or images as strings:
|
||||
|
||||
-#audioop audioop.c # Operations on audio samples
|
||||
+audioop audioop.c # Operations on audio samples
|
||||
|
||||
|
||||
# Note that the _md5 and _sha modules are normally only built if the
|
||||
@@ -238,9 +238,9 @@
|
||||
|
||||
# The _sha module implements the SHA checksum algorithms.
|
||||
# (NIST's Secure Hash Algorithms.)
|
||||
-#_sha shamodule.c
|
||||
-#_sha256 sha256module.c
|
||||
-#_sha512 sha512module.c
|
||||
+_sha1 sha1module.c
|
||||
+_sha256 sha256module.c
|
||||
+_sha512 sha512module.c
|
||||
|
||||
|
||||
# The _tkinter module.
|
||||
@@ -255,7 +255,7 @@
|
||||
# every system.
|
||||
|
||||
# *** Always uncomment this (leave the leading underscore in!):
|
||||
-# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
|
||||
+_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
|
||||
# *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
|
||||
# -L/usr/local/lib \
|
||||
# *** Uncomment and edit to reflect where your Tcl/Tk headers are:
|
||||
@@ -265,7 +265,7 @@
|
||||
# *** Or uncomment this for Solaris:
|
||||
# -I/usr/openwin/include \
|
||||
# *** Uncomment and edit for Tix extension only:
|
||||
-# -DWITH_TIX -ltix8.1.8.2 \
|
||||
+ -DWITH_TIX -ltix \
|
||||
# *** Uncomment and edit for BLT extension only:
|
||||
# -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
|
||||
# *** Uncomment and edit for PIL (TkImaging) extension only:
|
||||
@@ -274,7 +274,7 @@
|
||||
# *** Uncomment and edit for TOGL extension only:
|
||||
# -DWITH_TOGL togl.c \
|
||||
# *** Uncomment and edit to reflect your Tcl/Tk versions:
|
||||
-# -ltk8.2 -ltcl8.2 \
|
||||
+ -ltk -ltcl \
|
||||
# *** Uncomment and edit to reflect where your X11 libraries are:
|
||||
# -L/usr/X11R6/lib \
|
||||
# *** Or uncomment this for Solaris:
|
||||
@@ -284,10 +284,10 @@
|
||||
# *** Uncomment for AIX:
|
||||
# -lld \
|
||||
# *** Always uncomment this; X11 libraries to link with:
|
||||
-# -lX11
|
||||
+ -lX11
|
||||
|
||||
# Lance Ellinghaus's syslog module
|
||||
-#syslog syslogmodule.c # syslog daemon interface
|
||||
+syslog syslogmodule.c # syslog daemon interface
|
||||
|
||||
|
||||
# Curses support, requring the System V version of curses, often
|
||||
@@ -296,9 +296,9 @@
|
||||
#
|
||||
# First, look at Setup.config; configure may have set this for you.
|
||||
|
||||
-#_curses _cursesmodule.c -lcurses -ltermcap
|
||||
+_curses _cursesmodule.c -lcurses -ltermcap
|
||||
# Wrapper for the panel library that's part of ncurses and SYSV curses.
|
||||
-#_curses_panel _curses_panel.c -lpanel -lncurses
|
||||
+_curses_panel _curses_panel.c -lpanel -lncurses
|
||||
|
||||
|
||||
# Modules that provide persistent dictionary-like semantics. You will
|
||||
@@ -321,14 +321,14 @@
|
||||
#
|
||||
# First, look at Setup.config; configure may have set this for you.
|
||||
|
||||
-#_gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
|
||||
+_gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
|
||||
|
||||
|
||||
# Helper module for various ascii-encoders
|
||||
-#binascii binascii.c
|
||||
+binascii binascii.c
|
||||
|
||||
# Fred Drake's interface to the Python parser
|
||||
-#parser parsermodule.c
|
||||
+parser parsermodule.c
|
||||
|
||||
|
||||
# Lee Busby's SIGFPE modules.
|
||||
@@ -351,7 +351,7 @@
|
||||
# Andrew Kuchling's zlib module.
|
||||
# This require zlib 1.1.3 (or later).
|
||||
# See http://www.gzip.org/zlib/
|
||||
-#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
|
||||
+zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
|
||||
|
||||
# Interface to the Expat XML parser
|
||||
#
|
||||
@@ -364,19 +364,19 @@
|
||||
#
|
||||
# More information on Expat can be found at www.libexpat.org.
|
||||
#
|
||||
-#pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI
|
||||
+pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI
|
||||
|
||||
# Hye-Shik Chang's CJKCodecs
|
||||
|
||||
# multibytecodec is required for all the other CJK codec modules
|
||||
-#_multibytecodec cjkcodecs/multibytecodec.c
|
||||
+_multibytecodec cjkcodecs/multibytecodec.c
|
||||
|
||||
-#_codecs_cn cjkcodecs/_codecs_cn.c
|
||||
-#_codecs_hk cjkcodecs/_codecs_hk.c
|
||||
-#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
|
||||
-#_codecs_jp cjkcodecs/_codecs_jp.c
|
||||
-#_codecs_kr cjkcodecs/_codecs_kr.c
|
||||
-#_codecs_tw cjkcodecs/_codecs_tw.c
|
||||
+_codecs_cn cjkcodecs/_codecs_cn.c
|
||||
+_codecs_hk cjkcodecs/_codecs_hk.c
|
||||
+_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
|
||||
+_codecs_jp cjkcodecs/_codecs_jp.c
|
||||
+_codecs_kr cjkcodecs/_codecs_kr.c
|
||||
+_codecs_tw cjkcodecs/_codecs_tw.c
|
||||
|
||||
# Example -- included for reference only:
|
||||
# xx xxmodule.c
|
@ -0,0 +1,12 @@
|
||||
--- Lib/importlib/_bootstrap.py.fix-handling-of-readonly-pyc-files 2009-10-22 15:24:57.575015046 -0400
|
||||
+++ Lib/importlib/_bootstrap.py 2009-10-22 15:25:24.024016069 -0400
|
||||
@@ -522,8 +522,8 @@ class _PyPycFileLoader(PyPycLoader, _PyF
|
||||
bytecode_path = self.bytecode_path(name)
|
||||
if not bytecode_path:
|
||||
bytecode_path = self._base_path + _suffix_list(imp.PY_COMPILED)[0]
|
||||
- file = _io.FileIO(bytecode_path, 'w') # Assuming bytes.
|
||||
try:
|
||||
+ file = _io.FileIO(bytecode_path, 'w') # Assuming bytes.
|
||||
with _closing(file) as bytecode_file:
|
||||
bytecode_file.write(data)
|
||||
return True
|
10
python-3.1.1-install-tkinter-tests.patch
Normal file
10
python-3.1.1-install-tkinter-tests.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- Python-3.1.1/Makefile.pre.in.install-tkinter-tests 2009-10-27 20:00:09.814539776 -0400
|
||||
+++ Python-3.1.1/Makefile.pre.in 2009-10-27 20:01:43.460549947 -0400
|
||||
@@ -835,6 +835,7 @@ EXTRAPLATDIR= @EXTRAPLATDIR@
|
||||
MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR)
|
||||
XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
|
||||
LIBSUBDIRS= tkinter site-packages test test/output test/data \
|
||||
+ tkinter/test tkinter/test/test_ttk tkinter/test/test_tkinter \
|
||||
test/decimaltestdata \
|
||||
encodings \
|
||||
email email/mime email/test email/test/data \
|
164
python-3.1.1-lib64.patch
Normal file
164
python-3.1.1-lib64.patch
Normal file
@ -0,0 +1,164 @@
|
||||
diff -ur Python-3.1.1.orig/Lib/distutils/command/install.py Python-3.1.1/Lib/distutils/command/install.py
|
||||
--- Python-3.1.1.orig/Lib/distutils/command/install.py 2009-09-24 15:28:57.000000000 -0600
|
||||
+++ Python-3.1.1/Lib/distutils/command/install.py 2009-09-24 15:34:18.000000000 -0600
|
||||
@@ -47,14 +47,14 @@
|
||||
INSTALL_SCHEMES = {
|
||||
'unix_prefix': {
|
||||
'purelib': '$base/lib/python$py_version_short/site-packages',
|
||||
- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
|
||||
+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
|
||||
'headers': '$base/include/python$py_version_short/$dist_name',
|
||||
'scripts': '$base/bin',
|
||||
'data' : '$base',
|
||||
},
|
||||
'unix_home': {
|
||||
'purelib': '$base/lib/python',
|
||||
- 'platlib': '$base/lib/python',
|
||||
+ 'platlib': '$base/lib64/python',
|
||||
'headers': '$base/include/python/$dist_name',
|
||||
'scripts': '$base/bin',
|
||||
'data' : '$base',
|
||||
diff -ur Python-3.1.1.orig/Lib/distutils/sysconfig.py Python-3.1.1/Lib/distutils/sysconfig.py
|
||||
--- Python-3.1.1.orig/Lib/distutils/sysconfig.py 2009-09-24 15:29:00.000000000 -0600
|
||||
+++ Python-3.1.1/Lib/distutils/sysconfig.py 2009-09-24 15:34:18.000000000 -0600
|
||||
@@ -117,8 +117,12 @@
|
||||
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
||||
|
||||
if os.name == "posix":
|
||||
+ if plat_specific or standard_lib:
|
||||
+ lib = "lib64"
|
||||
+ else:
|
||||
+ lib = "lib"
|
||||
libpython = os.path.join(prefix,
|
||||
- "lib", "python" + get_python_version())
|
||||
+ lib, "python" + get_python_version())
|
||||
if standard_lib:
|
||||
return libpython
|
||||
else:
|
||||
diff -ur Python-3.1.1.orig/Lib/site.py Python-3.1.1/Lib/site.py
|
||||
--- Python-3.1.1.orig/Lib/site.py 2009-09-24 15:28:56.000000000 -0600
|
||||
+++ Python-3.1.1/Lib/site.py 2009-09-24 15:34:18.000000000 -0600
|
||||
@@ -258,12 +258,16 @@
|
||||
if sys.platform in ('os2emx', 'riscos'):
|
||||
sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
|
||||
elif os.sep == '/':
|
||||
+ sitedirs.append(os.path.join(prefix, "lib64",
|
||||
+ "python" + sys.version[:3],
|
||||
+ "site-packages"))
|
||||
sitedirs.append(os.path.join(prefix, "lib",
|
||||
"python" + sys.version[:3],
|
||||
"site-packages"))
|
||||
sitedirs.append(os.path.join(prefix, "lib", "site-python"))
|
||||
else:
|
||||
sitedirs.append(prefix)
|
||||
+ sitedirs.append(os.path.join(prefix, "lib64", "site-packages"))
|
||||
sitedirs.append(os.path.join(prefix, "lib", "site-packages"))
|
||||
|
||||
if sys.platform == "darwin":
|
||||
diff -ur Python-3.1.1.orig/Makefile.pre.in Python-3.1.1/Makefile.pre.in
|
||||
--- Python-3.1.1.orig/Makefile.pre.in 2009-09-24 15:26:58.000000000 -0600
|
||||
+++ Python-3.1.1/Makefile.pre.in 2009-09-24 15:34:18.000000000 -0600
|
||||
@@ -90,11 +90,11 @@
|
||||
|
||||
# Expanded directories
|
||||
BINDIR= $(exec_prefix)/bin
|
||||
-LIBDIR= $(exec_prefix)/lib
|
||||
+LIBDIR= $(exec_prefix)/lib64
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
CONFINCLUDEDIR= $(exec_prefix)/include
|
||||
-SCRIPTDIR= $(prefix)/lib
|
||||
+SCRIPTDIR= $(prefix)/lib64
|
||||
|
||||
# Detailed destination directories
|
||||
BINLIBDEST= $(LIBDIR)/python$(VERSION)
|
||||
diff -ur Python-3.1.1.orig/Modules/getpath.c Python-3.1.1/Modules/getpath.c
|
||||
--- Python-3.1.1.orig/Modules/getpath.c 2009-09-24 15:27:15.000000000 -0600
|
||||
+++ Python-3.1.1/Modules/getpath.c 2009-09-24 15:36:58.000000000 -0600
|
||||
@@ -117,8 +117,8 @@
|
||||
#endif
|
||||
|
||||
#ifndef PYTHONPATH
|
||||
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
|
||||
- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
|
||||
+#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \
|
||||
+ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload"
|
||||
#endif
|
||||
|
||||
#ifndef LANDMARK
|
||||
@@ -129,7 +129,7 @@
|
||||
static wchar_t exec_prefix[MAXPATHLEN+1];
|
||||
static wchar_t progpath[MAXPATHLEN+1];
|
||||
static wchar_t *module_search_path = NULL;
|
||||
-static wchar_t lib_python[] = L"lib/python" VERSION;
|
||||
+static wchar_t lib_python[] = L"lib64/python" VERSION;
|
||||
|
||||
/* In principle, this should use HAVE__WSTAT, and _wstat
|
||||
should be detected by autoconf. However, no current
|
||||
@@ -603,7 +603,7 @@
|
||||
}
|
||||
else
|
||||
wcsncpy(zip_path, L"" PREFIX, MAXPATHLEN);
|
||||
- joinpath(zip_path, L"lib/python00.zip");
|
||||
+ joinpath(zip_path, L"lib64/python00.zip");
|
||||
bufsz = wcslen(zip_path); /* Replace "00" with version */
|
||||
zip_path[bufsz - 6] = VERSION[0];
|
||||
zip_path[bufsz - 5] = VERSION[2];
|
||||
@@ -613,7 +613,7 @@
|
||||
fprintf(stderr,
|
||||
"Could not find platform dependent libraries <exec_prefix>\n");
|
||||
wcsncpy(exec_prefix, L"" EXEC_PREFIX, MAXPATHLEN);
|
||||
- joinpath(exec_prefix, L"lib/lib-dynload");
|
||||
+ joinpath(exec_prefix, L"lib64/lib-dynload");
|
||||
}
|
||||
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
|
||||
|
||||
diff -ur Python-3.1.1.orig/Modules/Setup.dist Python-3.1.1/Modules/Setup.dist
|
||||
--- Python-3.1.1.orig/Modules/Setup.dist 2009-09-24 15:27:30.000000000 -0600
|
||||
+++ Python-3.1.1/Modules/Setup.dist 2009-09-24 15:45:49.000000000 -0600
|
||||
@@ -351,7 +351,7 @@
|
||||
# Andrew Kuchling's zlib module.
|
||||
# This require zlib 1.1.3 (or later).
|
||||
# See http://www.gzip.org/zlib/
|
||||
-zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
|
||||
+zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz
|
||||
|
||||
# Interface to the Expat XML parser
|
||||
#
|
||||
diff -ur Python-3.1.1.orig/setup.py Python-3.1.1/setup.py
|
||||
--- Python-3.1.1.orig/setup.py 2009-09-24 15:26:58.000000000 -0600
|
||||
+++ Python-3.1.1/setup.py 2009-09-24 15:34:18.000000000 -0600
|
||||
@@ -295,7 +295,7 @@
|
||||
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
@@ -522,11 +522,11 @@
|
||||
elif self.compiler.find_library_file(lib_dirs, 'curses'):
|
||||
readline_libs.append('curses')
|
||||
elif self.compiler.find_library_file(lib_dirs +
|
||||
- ['/usr/lib/termcap'],
|
||||
+ ['/usr/lib64/termcap'],
|
||||
'termcap'):
|
||||
readline_libs.append('termcap')
|
||||
exts.append( Extension('readline', ['readline.c'],
|
||||
- library_dirs=['/usr/lib/termcap'],
|
||||
+ library_dirs=['/usr/lib64/termcap'],
|
||||
extra_link_args=readline_extra_link_args,
|
||||
libraries=readline_libs) )
|
||||
else:
|
||||
@@ -563,8 +563,8 @@
|
||||
if krb5_h:
|
||||
ssl_incs += krb5_h
|
||||
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
|
||||
- ['/usr/local/ssl/lib',
|
||||
- '/usr/contrib/ssl/lib/'
|
||||
+ ['/usr/local/ssl/lib64',
|
||||
+ '/usr/contrib/ssl/lib64/'
|
||||
] )
|
||||
|
||||
if (ssl_incs is not None and
|
61
python-3.1.1-pathfix.patch
Normal file
61
python-3.1.1-pathfix.patch
Normal file
@ -0,0 +1,61 @@
|
||||
--- Python-3.1.1.orig/Tools/scripts/pathfix.py 2009-09-24 15:27:04.000000000 -0600
|
||||
+++ Python-3.1.1/Tools/scripts/pathfix.py 2009-09-25 14:05:04.000000000 -0600
|
||||
@@ -1,4 +1,4 @@
|
||||
-#! /usr/bin/env python
|
||||
+#!/usr/bin/env python3.1
|
||||
|
||||
# Change the #! line occurring in Python scripts. The new interpreter
|
||||
# pathname must be given with a -i option.
|
||||
@@ -43,8 +43,8 @@
|
||||
sys.exit(2)
|
||||
for o, a in opts:
|
||||
if o == '-i':
|
||||
- new_interpreter = a
|
||||
- if not new_interpreter or new_interpreter[0] != '/' or not args:
|
||||
+ new_interpreter = a.encode()
|
||||
+ if not new_interpreter or new_interpreter[0] != b'/'[0] or not args:
|
||||
err('-i option or file-or-directory missing\n')
|
||||
err(usage)
|
||||
sys.exit(2)
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
ispythonprog = re.compile('^[a-zA-Z0-9_]+\.py$')
|
||||
def ispython(name):
|
||||
- return ispythonprog.match(name) >= 0
|
||||
+ return bool(ispythonprog.match(name))
|
||||
|
||||
def recursedown(dirname):
|
||||
dbg('recursedown(%r)\n' % (dirname,))
|
||||
@@ -88,7 +88,7 @@
|
||||
def fix(filename):
|
||||
## dbg('fix(%r)\n' % (filename,))
|
||||
try:
|
||||
- f = open(filename, 'r')
|
||||
+ f = open(filename, 'rb')
|
||||
except IOError as msg:
|
||||
err('%s: cannot open: %r\n' % (filename, msg))
|
||||
return 1
|
||||
@@ -101,7 +101,7 @@
|
||||
head, tail = os.path.split(filename)
|
||||
tempname = os.path.join(head, '@' + tail)
|
||||
try:
|
||||
- g = open(tempname, 'w')
|
||||
+ g = open(tempname, 'wb')
|
||||
except IOError as msg:
|
||||
f.close()
|
||||
err('%s: cannot create: %r\n' % (tempname, msg))
|
||||
@@ -139,11 +139,11 @@
|
||||
return 0
|
||||
|
||||
def fixline(line):
|
||||
- if not line.startswith('#!'):
|
||||
+ if not line.startswith(b'#!'):
|
||||
return line
|
||||
- if "python" not in line:
|
||||
+ if b"python" not in line:
|
||||
return line
|
||||
- return '#! %s\n' % new_interpreter
|
||||
+ return b'#!' + new_interpreter + b'\n'
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
55
python-3.1.1-remove-mimeaudio-tests.patch
Normal file
55
python-3.1.1-remove-mimeaudio-tests.patch
Normal file
@ -0,0 +1,55 @@
|
||||
--- Python-3.1.1/Lib/email/test/test_email.py.remove_mimeaudio_tests 2009-10-27 14:31:09.483539561 -0400
|
||||
+++ Python-3.1.1/Lib/email/test/test_email.py 2009-10-27 14:31:27.663548053 -0400
|
||||
@@ -926,52 +926,6 @@ Blah blah blah
|
||||
|
||||
|
||||
|
||||
-# Test the basic MIMEAudio class
|
||||
-class TestMIMEAudio(unittest.TestCase):
|
||||
- def setUp(self):
|
||||
- # Make sure we pick up the audiotest.au that lives in email/test/data.
|
||||
- # In Python, there's an audiotest.au living in Lib/test but that isn't
|
||||
- # included in some binary distros that don't include the test
|
||||
- # package. The trailing empty string on the .join() is significant
|
||||
- # since findfile() will do a dirname().
|
||||
- datadir = os.path.join(os.path.dirname(landmark), 'data', '')
|
||||
- with open(findfile('audiotest.au', datadir), 'rb') as fp:
|
||||
- self._audiodata = fp.read()
|
||||
- self._au = MIMEAudio(self._audiodata)
|
||||
-
|
||||
- def test_guess_minor_type(self):
|
||||
- self.assertEqual(self._au.get_content_type(), 'audio/basic')
|
||||
-
|
||||
- def test_encoding(self):
|
||||
- payload = self._au.get_payload()
|
||||
- self.assertEqual(base64.decodebytes(payload), self._audiodata)
|
||||
-
|
||||
- def test_checkSetMinor(self):
|
||||
- au = MIMEAudio(self._audiodata, 'fish')
|
||||
- self.assertEqual(au.get_content_type(), 'audio/fish')
|
||||
-
|
||||
- def test_add_header(self):
|
||||
- eq = self.assertEqual
|
||||
- unless = self.assertTrue
|
||||
- self._au.add_header('Content-Disposition', 'attachment',
|
||||
- filename='audiotest.au')
|
||||
- eq(self._au['content-disposition'],
|
||||
- 'attachment; filename="audiotest.au"')
|
||||
- eq(self._au.get_params(header='content-disposition'),
|
||||
- [('attachment', ''), ('filename', 'audiotest.au')])
|
||||
- eq(self._au.get_param('filename', header='content-disposition'),
|
||||
- 'audiotest.au')
|
||||
- missing = []
|
||||
- eq(self._au.get_param('attachment', header='content-disposition'), '')
|
||||
- unless(self._au.get_param('foo', failobj=missing,
|
||||
- header='content-disposition') is missing)
|
||||
- # Try some missing stuff
|
||||
- unless(self._au.get_param('foobar', missing) is missing)
|
||||
- unless(self._au.get_param('attachment', missing,
|
||||
- header='foobar') is missing)
|
||||
-
|
||||
-
|
||||
-
|
||||
# Test the basic MIMEImage class
|
||||
class TestMIMEImage(unittest.TestCase):
|
||||
def setUp(self):
|
568
python3.spec
Normal file
568
python3.spec
Normal file
@ -0,0 +1,568 @@
|
||||
%global pybasever 3.1
|
||||
%global pylibdir %{_libdir}/python%{pybasever}
|
||||
|
||||
# We want to byte-compile the .py files within the packages using the new
|
||||
# python3 binary.
|
||||
#
|
||||
# Unfortunately, rpmbuild's infrastructure requires us to jump through some
|
||||
# hoops to avoid byte-compiling with the system python 2 version:
|
||||
# /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
|
||||
# defines __os_install_post. In particular, "brp-python-bytecompile" is
|
||||
# invoked without an argument thus using the wrong version of python
|
||||
# (/usr/bin/python, rather than the freshly built python), thus leading to
|
||||
# numerous syntax errors, and incorrect magic numbers in the .pyc files. We
|
||||
# thus override __os_install_post to avoid invoking this script:
|
||||
%global __os_install_post /usr/lib/rpm/redhat/brp-compress \
|
||||
%{!?__debug_package:/usr/lib/rpm/redhat/brp-strip %{__strip}} \
|
||||
/usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} \
|
||||
/usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} \
|
||||
/usr/lib/rpm/redhat/brp-python-hardlink
|
||||
# to remove the invocation of brp-python-bytecompile, whilst keeping the
|
||||
# invocation of brp-python-hardlink (since this should still work for python3
|
||||
# pyc/pyo files)
|
||||
|
||||
Summary: Version 3 of the Python programming language aka Python 3000
|
||||
Name: python3
|
||||
Version: %{pybasever}.1
|
||||
Release: 13%{?dist}
|
||||
License: Python
|
||||
Group: Development/Languages
|
||||
Source: http://python.org/ftp/python/%{version}/Python-%{version}.tar.bz2
|
||||
|
||||
# Avoid having various bogus auto-generated Provides lines for the various
|
||||
# python c modules' SONAMEs:
|
||||
Source1: find-provides-without-python-sonames.sh
|
||||
%global _use_internal_dependency_generator 0
|
||||
%global __find_provides %{SOURCE1}
|
||||
|
||||
# Supply various useful macros for building python 3 modules:
|
||||
# __python3, python3_sitelib, python3_sitearch
|
||||
Source2: macros.python3
|
||||
|
||||
Patch0: python-3.1.1-config.patch
|
||||
|
||||
|
||||
# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
|
||||
# Was Patch0 in ivazquez' python3000 specfile:
|
||||
Patch1: Python-3.1.1-rpath.patch
|
||||
|
||||
# Fixup importlib/_bootstrap.py so that it correctly handles being unable to
|
||||
# open .pyc files for writing
|
||||
# Sent upstream as http://bugs.python.org/issue7187
|
||||
Patch2: python-3.1.1-importlib-fix-handling-of-readonly-pyc-files.patch
|
||||
|
||||
# The four TestMIMEAudio tests fail due to "audiotest.au" not being packaged.
|
||||
# It's simplest to remove them:
|
||||
Patch3: python-3.1.1-remove-mimeaudio-tests.patch
|
||||
|
||||
# ImportTests.test_issue1267 in test_imp.py reads pydoc.py's shebang line and
|
||||
# checks that it read it correctly.
|
||||
#
|
||||
# Since we modify the shebang lines in our packaging, we also need to modify
|
||||
# the expected value in this test:
|
||||
Patch4: python-3.1.1-apply-our-changes-to-expected-shebang-for-test_imp.patch
|
||||
|
||||
# test_tk test_ttk_guionly and test_ttk_textonly all rely on tkinter/test, but
|
||||
# upstream's Makefile.pre.in doesn't install that subdirectory; patch it so that
|
||||
# it does:
|
||||
Patch5: python-3.1.1-install-tkinter-tests.patch
|
||||
# (The resulting test support code is in the tkinter subpackage, but
|
||||
# this is not a major problem)
|
||||
|
||||
Patch102: python-3.1.1-lib64.patch
|
||||
|
||||
# http://bugs.python.org/issue6999 -- fixed in r75062
|
||||
Patch200: python-3.1.1-pathfix.patch
|
||||
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||
BuildRequires: readline-devel, openssl-devel, gmp-devel
|
||||
BuildRequires: ncurses-devel, gdbm-devel, zlib-devel, expat-devel
|
||||
BuildRequires: libGL-devel gcc-c++ libX11-devel glibc-devel
|
||||
BuildRequires: bzip2 tar /usr/bin/find pkgconfig tcl-devel tk-devel
|
||||
BuildRequires: tix-devel bzip2-devel sqlite-devel
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: db4-devel >= 4.7
|
||||
BuildRequires: libffi-devel
|
||||
|
||||
URL: http://www.python.org/
|
||||
|
||||
# See notes in bug 532118:
|
||||
Provides: python(abi) = %{pybasever}
|
||||
|
||||
%description
|
||||
Python 3 is a new version of the language that is incompatible with the 2.x
|
||||
line of releases. The language is mostly the same, but many details, especially
|
||||
how built-in objects like dictionaries and strings work, have changed
|
||||
considerably, and a lot of deprecated features have finally been removed.
|
||||
|
||||
%package libs
|
||||
Summary: Python 3 runtime libraries
|
||||
Group: Development/Libraries
|
||||
#Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description libs
|
||||
This package contains files used to embed Python 3 into applications.
|
||||
|
||||
%package devel
|
||||
Summary: Libraries and header files needed for Python 3 development
|
||||
Group: Development/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Conflicts: %{name} < %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
This package contains libraries and header files used to build applications
|
||||
with and native libraries for Python 3
|
||||
|
||||
%package tools
|
||||
Summary: A collection of tools included with Python 3
|
||||
Group: Development/Tools
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-tkinter = %{version}-%{release}
|
||||
|
||||
%description tools
|
||||
This package contains several tools included with Python 3
|
||||
|
||||
%package tkinter
|
||||
Summary: A GUI toolkit for Python 3
|
||||
Group: Development/Languages
|
||||
BuildRequires: tcl, tk
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description tkinter
|
||||
The Tkinter (Tk interface) program is an graphical user interface for
|
||||
the Python scripting language.
|
||||
|
||||
%package test
|
||||
Summary: The test modules from the main python 3 package
|
||||
Group: Development/Languages
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-tools = %{version}-%{release}
|
||||
|
||||
%description test
|
||||
The test modules from the main %{name} package.
|
||||
These are in a separate package to save space, as they are almost never used
|
||||
in production.
|
||||
|
||||
You might want to install the python3-test package if you're developing
|
||||
python 3 code that uses more than just unittest and/or test_support.py.
|
||||
|
||||
%prep
|
||||
%setup -q -n Python-%{version}
|
||||
chmod +x %{SOURCE1}
|
||||
%patch0 -p1 -b .config
|
||||
%patch1 -p1 -b .rpath
|
||||
%patch2 -p0 -b .fix-handling-of-readonly-pyc-files
|
||||
%patch3 -p1 -b .remove-mimeaudio-tests
|
||||
%patch4 -p1 -b .apply-our-changes-to-expected-shebang
|
||||
%patch5 -p1 -b .install-tkinter-tests
|
||||
|
||||
%if "%{_lib}" == "lib64"
|
||||
%patch102 -p1 -b .lib64
|
||||
%endif
|
||||
|
||||
%patch200 -p1 -b .pathfix
|
||||
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC"
|
||||
export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC"
|
||||
export CPPFLAGS="`pkg-config --cflags-only-I libffi`"
|
||||
export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC"
|
||||
export LINKCC="gcc"
|
||||
export CFLAGS="$CFLAGS `pkg-config --cflags openssl`"
|
||||
export LDFLAGS="$LDFLAGS `pkg-config --libs-only-L openssl`"
|
||||
|
||||
autoconf
|
||||
%configure --enable-ipv6 --with-wide-unicode --enable-shared --with-system-ffi
|
||||
|
||||
make OPT="$CFLAGS" %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
rm -fr $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT%{_prefix} $RPM_BUILD_ROOT%{_mandir}
|
||||
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{pylibdir}/site-packages
|
||||
|
||||
mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/2to3-3
|
||||
|
||||
# Development tools
|
||||
install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
|
||||
install Tools/README ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
|
||||
cp -ar Tools/freeze ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
|
||||
cp -ar Tools/i18n ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
|
||||
cp -ar Tools/modulator ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
|
||||
cp -ar Tools/pynche ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
|
||||
cp -ar Tools/scripts ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
|
||||
|
||||
# Documentation tools
|
||||
install -m755 -d $RPM_BUILD_ROOT%{pylibdir}/Doc
|
||||
cp -ar Doc/tools $RPM_BUILD_ROOT%{pylibdir}/Doc/
|
||||
|
||||
# Demo scripts
|
||||
cp -ar Demo $RPM_BUILD_ROOT%{pylibdir}/
|
||||
|
||||
find $RPM_BUILD_ROOT%{pylibdir}/lib-dynload -type d | sed "s|$RPM_BUILD_ROOT|%dir |" > dynfiles
|
||||
find $RPM_BUILD_ROOT%{pylibdir}/lib-dynload -type f | \
|
||||
grep -v "_tkinter.so$" | \
|
||||
grep -v "_ctypes_test.so$" | \
|
||||
grep -v "_testcapimodule.so$" | \
|
||||
sed "s|$RPM_BUILD_ROOT||" >> dynfiles
|
||||
|
||||
# Fix for bug #136654
|
||||
rm -f $RPM_BUILD_ROOT%{pylibdir}/email/test/data/audiotest.au $RPM_BUILD_ROOT%{pylibdir}/test/audiotest.au
|
||||
|
||||
%if "%{_lib}" == "lib64"
|
||||
install -d $RPM_BUILD_ROOT/usr/lib/python%{pybasever}/site-packages
|
||||
%endif
|
||||
|
||||
# Make python3-devel multilib-ready (bug #192747, #139911)
|
||||
%global _pyconfig32_h pyconfig-32.h
|
||||
%global _pyconfig64_h pyconfig-64.h
|
||||
|
||||
%ifarch ppc64 s390x x86_64 ia64 alpha sparc64
|
||||
%global _pyconfig_h %{_pyconfig64_h}
|
||||
%else
|
||||
%global _pyconfig_h %{_pyconfig32_h}
|
||||
%endif
|
||||
mv $RPM_BUILD_ROOT%{_includedir}/python%{pybasever}/pyconfig.h \
|
||||
$RPM_BUILD_ROOT%{_includedir}/python%{pybasever}/%{_pyconfig_h}
|
||||
cat > $RPM_BUILD_ROOT%{_includedir}/python%{pybasever}/pyconfig.h << EOF
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 32
|
||||
#include "%{_pyconfig32_h}"
|
||||
#elif __WORDSIZE == 64
|
||||
#include "%{_pyconfig64_h}"
|
||||
#else
|
||||
#error "Unknown word size"
|
||||
#endif
|
||||
EOF
|
||||
|
||||
# Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
|
||||
sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" $RPM_BUILD_ROOT%{pylibdir}/distutils/sysconfig.py
|
||||
|
||||
# Switch all shebangs to refer to the specific Python version.
|
||||
LD_LIBRARY_PATH=. ./python Tools/scripts/pathfix.py -i "%{_bindir}/python%{pybasever}" $RPM_BUILD_ROOT
|
||||
|
||||
# Remove shebang lines from .py files that aren't executable, and
|
||||
# remove executability from .py files that don't have a shebang line:
|
||||
find $RPM_BUILD_ROOT -name \*.py \
|
||||
\( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
|
||||
-print -exec sed -i '1d' {} \; \) -o \( \
|
||||
-perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
|
||||
-exec chmod a-x {} \; \) \)
|
||||
|
||||
# .xpm and .xbm files should not be executable:
|
||||
find $RPM_BUILD_ROOT \
|
||||
\( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
|
||||
-exec chmod a-x {} \;
|
||||
|
||||
# Remove executable flag from files that shouldn't have it:
|
||||
chmod a-x \
|
||||
$RPM_BUILD_ROOT%{pylibdir}/Demo/comparisons/patterns \
|
||||
$RPM_BUILD_ROOT%{pylibdir}/distutils/tests/Setup.sample \
|
||||
$RPM_BUILD_ROOT%{pylibdir}/Demo/rpc/test \
|
||||
$RPM_BUILD_ROOT%{pylibdir}/Tools/README \
|
||||
$RPM_BUILD_ROOT%{pylibdir}/Demo/scripts/newslist.doc \
|
||||
$RPM_BUILD_ROOT%{pylibdir}/Demo/md5test/foo
|
||||
|
||||
# Get rid of DOS batch files:
|
||||
find $RPM_BUILD_ROOT -name \*.bat -exec rm {} \;
|
||||
|
||||
# Get rid of backup files:
|
||||
find $RPM_BUILD_ROOT/ -name "*~" -exec rm -f {} \;
|
||||
find . -name "*~" -exec rm -f {} \;
|
||||
rm -f $RPM_BUILD_ROOT%{pylibdir}/LICENSE.txt
|
||||
# Junk, no point in putting in -test sub-pkg
|
||||
rm -f ${RPM_BUILD_ROOT}/%{pylibdir}/idlelib/testcode.py*
|
||||
|
||||
# Get rid of stray patch file from buildroot:
|
||||
rm -f $RPM_BUILD_ROOT%{pylibdir}/test/test_imp.py.apply-our-changes-to-expected-shebang # from patch 4
|
||||
|
||||
# Fix end-of-line encodings:
|
||||
find $RPM_BUILD_ROOT/ -name \*.py -exec sed -i 's/\r//' {} \;
|
||||
|
||||
# Fix an encoding:
|
||||
iconv -f iso8859-1 -t utf-8 $RPM_BUILD_ROOT/%{pylibdir}/Demo/rpc/README > README.conv && mv -f README.conv $RPM_BUILD_ROOT/%{pylibdir}/Demo/rpc/README
|
||||
|
||||
# Note that
|
||||
# %{pylibdir}/Demo/distutils/test2to3/setup.py
|
||||
# is in iso-8859-1 encoding, and that this is deliberate; this is test data
|
||||
# for the 2to3 tool, and one of the functions of the 2to3 tool is to fixup
|
||||
# character encodings within python source code
|
||||
|
||||
# Do bytecompilation with the new interpreter.
|
||||
LD_LIBRARY_PATH=. /usr/lib/rpm/brp-python-bytecompile ./python
|
||||
|
||||
# Fixup permissions for shared libraries from non-standard 555 to standard 755:
|
||||
find $RPM_BUILD_ROOT \
|
||||
-perm 555 -exec chmod 755 {} \;
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rpm
|
||||
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/rpm
|
||||
|
||||
%check
|
||||
# Run the upstream test suite, using the "runtests.sh" harness from the upstream
|
||||
# tarball.
|
||||
# I'm seeing occasional hangs in "test_httplib" when running the test suite inside
|
||||
# Koji. For that reason I exclude that one.
|
||||
LD_LIBRARY_PATH=$(pwd) ./runtests.sh -x test_httplib
|
||||
|
||||
# Note that we're running the tests using the version of the code in the builddir,
|
||||
# not in the buildroot.
|
||||
|
||||
# The harness only emits the names of the test scripts it ran, along with a
|
||||
# summary of the form:
|
||||
# 2 BAD
|
||||
# 313 GOOD
|
||||
# 22 SKIPPED
|
||||
# 337 total
|
||||
# As a byproduct it writes files "GOOD", "BAD", "SKIPPED", listing names of
|
||||
# files (e.g. "test_imp") along with a subdirectory OUT containing files of the
|
||||
# form $TEST.out
|
||||
# Each such logfile starts with a line indicating the name of the test
|
||||
|
||||
# Output the logs from failing tests, so that they are captured in the rpmbuild
|
||||
# log:
|
||||
for TESTNAME in $(cat BAD); do
|
||||
cat OUT/$TESTNAME.out ;
|
||||
done
|
||||
|
||||
# There are 5 expected BAD results here:
|
||||
#
|
||||
# (1) test_distutils.py: tries to build an RPM inside the rpmbuild; I'll simply
|
||||
# let this one fail for now (has trouble linking against -lpython3.1; perhaps
|
||||
# LD_LIBRARY_PATH is being discarded somewhere?)
|
||||
#
|
||||
# (2) test_imp.py: ImportTests.test_issue1267 in test_imp.py reads pydoc.py's
|
||||
# shebang line and checks that it read it correctly.tests that the shebang line
|
||||
# is as expected. Unfortunately if we patch this up in the buildir (in the
|
||||
# build phase), then the "make install" will try to reference
|
||||
# /usr/bin/python%{pybasever} which won't exist on a clean build environment.
|
||||
# So we fix up the shebang lines after this in the install phase, and expect
|
||||
# this test to fail in the check phase. It ought to pass when run on the built
|
||||
# RPMs
|
||||
#
|
||||
# (3) test_socket.py:testSockName can fail here if DNS isn't properly set up:
|
||||
# my_ip_addr = socket.gethostbyname(socket.gethostname())
|
||||
# socket.gaierror: [Errno -2] Name or service not known
|
||||
#
|
||||
# (4) test_subprocess: merely get "errors occurred"
|
||||
#
|
||||
# (5) test_telnet: can get a "socket.error: [Errno 104] Connection reset by peer"
|
||||
#
|
||||
# Some additional tests fail when running the test suite as non-root outside of
|
||||
# the build, due to permissions issues.
|
||||
|
||||
%clean
|
||||
rm -fr $RPM_BUILD_ROOT
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
%files -f dynfiles
|
||||
%defattr(-, root, root)
|
||||
%doc LICENSE README
|
||||
%{_bindir}/pydoc*
|
||||
%{_bindir}/python3
|
||||
%{_bindir}/python%{pybasever}
|
||||
%{_mandir}/*/*
|
||||
%dir %{pylibdir}
|
||||
%dir %{pylibdir}/site-packages
|
||||
%{pylibdir}/site-packages/README
|
||||
%{pylibdir}/*.py*
|
||||
%{pylibdir}/*.doc
|
||||
%{pylibdir}/wsgiref.egg-info
|
||||
%dir %{pylibdir}/ctypes
|
||||
%{pylibdir}/ctypes/*.py*
|
||||
%{pylibdir}/ctypes/macholib
|
||||
%{pylibdir}/curses
|
||||
%dir %{pylibdir}/dbm
|
||||
%{pylibdir}/dbm/*.py*
|
||||
%dir %{pylibdir}/distutils
|
||||
%{pylibdir}/distutils/*.py*
|
||||
%{pylibdir}/distutils/README
|
||||
%{pylibdir}/distutils/command
|
||||
%dir %{pylibdir}/email
|
||||
%{pylibdir}/email/*.py*
|
||||
%{pylibdir}/email/mime
|
||||
%{pylibdir}/encodings
|
||||
%{pylibdir}/html
|
||||
%{pylibdir}/http
|
||||
%{pylibdir}/idlelib
|
||||
%dir %{pylibdir}/importlib
|
||||
%{pylibdir}/importlib/*.py*
|
||||
%dir %{pylibdir}/json
|
||||
%{pylibdir}/json/*.py*
|
||||
%{pylibdir}/logging
|
||||
%{pylibdir}/multiprocessing
|
||||
%{pylibdir}/plat-linux2
|
||||
%{pylibdir}/pydoc_data
|
||||
%dir %{pylibdir}/sqlite3
|
||||
%{pylibdir}/sqlite3/*.py*
|
||||
%dir %{pylibdir}/test
|
||||
%{pylibdir}/test/__init__.py*
|
||||
%{pylibdir}/urllib
|
||||
%{pylibdir}/wsgiref
|
||||
%{pylibdir}/xml
|
||||
%{pylibdir}/xmlrpc
|
||||
%if "%{_lib}" == "lib64"
|
||||
%attr(0755,root,root) %dir /usr/lib/python%{pybasever}
|
||||
%attr(0755,root,root) %dir /usr/lib/python%{pybasever}/site-packages
|
||||
%endif
|
||||
|
||||
# "Makefile" and the config-32/64.h file are needed by
|
||||
# distutils/sysconfig.py:_init_posix(), so we include them in the core
|
||||
# package, along with their parent directories (bug 531901):
|
||||
%dir %{pylibdir}/config
|
||||
%{pylibdir}/config/Makefile
|
||||
%dir /usr/include/python%{pybasever}
|
||||
/usr/include/python%{pybasever}/%{_pyconfig_h}
|
||||
|
||||
%files libs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/libpython%{pybasever}.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{pylibdir}/config/*
|
||||
%exclude %{pylibdir}/config/Makefile
|
||||
/usr/include/python%{pybasever}/*.h
|
||||
%exclude /usr/include/python%{pybasever}/%{_pyconfig_h}
|
||||
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
|
||||
%{_bindir}/python3-config
|
||||
%{_bindir}/python%{pybasever}-config
|
||||
%{_libdir}/libpython%{pybasever}.so
|
||||
%{_libdir}/pkgconfig/python*.pc
|
||||
%config(noreplace) %{_sysconfdir}/rpm/macros.python3
|
||||
|
||||
%files tools
|
||||
%defattr(-,root,root,755)
|
||||
%{pylibdir}/lib2to3
|
||||
%exclude %{pylibdir}/lib2to3/tests
|
||||
%{_bindir}/2to3*
|
||||
%{_bindir}/idle*
|
||||
%{pylibdir}/Tools
|
||||
%doc %{pylibdir}/Demo
|
||||
%exclude %{pylibdir}/Demo/distutils
|
||||
%exclude %{pylibdir}/Demo/md5test
|
||||
%doc %{pylibdir}/Doc
|
||||
|
||||
%files tkinter
|
||||
%defattr(-,root,root,755)
|
||||
%{pylibdir}/tkinter
|
||||
%exclude %{pylibdir}/tkinter/test
|
||||
%{pylibdir}/lib-dynload/_tkinter.so
|
||||
|
||||
%files test
|
||||
%defattr(-, root, root)
|
||||
%{pylibdir}/ctypes/test
|
||||
%{pylibdir}/distutils/tests
|
||||
%{pylibdir}/email/test
|
||||
%{pylibdir}/importlib/test
|
||||
%{pylibdir}/json/tests
|
||||
%{pylibdir}/sqlite3/test
|
||||
%{pylibdir}/test
|
||||
%{pylibdir}/lib-dynload/_ctypes_test.so
|
||||
%{pylibdir}/lib-dynload/_testcapimodule.so
|
||||
%{pylibdir}/lib2to3/tests
|
||||
%doc %{pylibdir}/Demo/distutils
|
||||
%doc %{pylibdir}/Demo/md5test
|
||||
%{pylibdir}/tkinter/test
|
||||
|
||||
%changelog
|
||||
* Mon Jan 11 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-13
|
||||
- fix permission on find-provides-without-python-sonames.sh from 775 to 755
|
||||
|
||||
* Mon Jan 11 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-12
|
||||
- remove build-time requirements on tix and tk, since we already have
|
||||
build-time requirements on the -devel subpackages for each of these (Thomas
|
||||
Spura)
|
||||
- replace usage of %%define with %%global (Thomas Spura)
|
||||
- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
|
||||
longer be necessary
|
||||
- move various test files from the "tools"/"tkinter" subpackages to the "test"
|
||||
subpackage
|
||||
|
||||
* Thu Jan 7 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-11
|
||||
- add %%check section (thanks to Thomas Spura)
|
||||
- update patch 4 to use correct shebang line
|
||||
- get rid of stray patch file from buildroot
|
||||
|
||||
* Tue Nov 17 2009 Andrew McNabb <amcnabb@mcnabbs.org> - 3.1.1-10
|
||||
- switched a few instances of "find |xargs" to "find -exec" for consistency.
|
||||
- made the description of __os_install_post more accurate.
|
||||
|
||||
* Wed Nov 4 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-9
|
||||
- add macros.python3 to the -devel subpackage, containing common macros for use
|
||||
when packaging python3 modules
|
||||
|
||||
* Tue Nov 3 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-8
|
||||
- add a provides of "python(abi)" (see bug 532118)
|
||||
- fix issues identified by a.badger in package review (bug 526126, comment 39):
|
||||
- use "3" thoughout metadata, rather than "3.*"
|
||||
- remove conditional around "pkg-config openssl"
|
||||
- use standard cleanup of RPM_BUILD_ROOT
|
||||
- replace hardcoded references to /usr with _prefix macro
|
||||
- stop removing egg-info files
|
||||
- use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
|
||||
up shebang lines
|
||||
- stop attempting to remove no-longer-present .cvsignore files
|
||||
- move the post/postun sections above the "files" sections
|
||||
|
||||
* Thu Oct 29 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-7
|
||||
- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
|
||||
flag is used by default in the upstream code
|
||||
- "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py
|
||||
_init_posix(), so we include them in the core package, along with their parent
|
||||
directories (bug 531901)
|
||||
|
||||
* Tue Oct 27 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-6
|
||||
- reword description, based on suggestion by amcnabb
|
||||
- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
|
||||
- fix the test_tk and test_ttk_* selftests (patch 5)
|
||||
- fix up the specfile's handling of shebang/perms to avoid corrupting
|
||||
test_httpservers.py (sed command suggested by amcnabb)
|
||||
|
||||
* Thu Oct 22 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-5
|
||||
- fixup importlib/_bootstrap.py so that it correctly handles being unable to
|
||||
open .pyc files for writing (patch 2, upstream issue 7187)
|
||||
- actually apply the rpath patch (patch 1)
|
||||
|
||||
* Thu Oct 22 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-4
|
||||
- update patch0's setup of the crypt module to link it against libcrypt
|
||||
- update patch0 to comment "datetimemodule" back out, so that it is built
|
||||
using setup.py (see Setup, option 3), thus linking it statically against
|
||||
timemodule.c and thus avoiding a run-time "undefined symbol:
|
||||
_PyTime_DoubleToTimet" failure on "import datetime"
|
||||
|
||||
* Wed Oct 21 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-3
|
||||
- remove executable flag from various files that shouldn't have it
|
||||
- fix end-of-line encodings
|
||||
- fix a character encoding
|
||||
|
||||
* Tue Oct 20 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-2
|
||||
- disable invocation of brp-python-bytecompile in postprocessing, since
|
||||
it would be with the wrong version of python (adapted from ivazquez'
|
||||
python3000 specfile)
|
||||
- use a custom implementation of __find_provides in order to filter out bogus
|
||||
provides lines for the various .so modules
|
||||
- fixup distutils/unixccompiler.py to remove standard library path from rpath
|
||||
(patch 1, was Patch0 in ivazquez' python3000 specfile)
|
||||
- split out libraries into a -libs subpackage
|
||||
- update summaries and descriptions, basing content on ivazquez' specfile
|
||||
- fixup executable permissions on .py, .xpm and .xbm files, based on work in
|
||||
ivazquez's specfile
|
||||
- get rid of DOS batch files
|
||||
- fixup permissions for shared libraries from non-standard 555 to standard 755
|
||||
- move /usr/bin/python*-config to the -devel subpackage
|
||||
- mark various directories as being documentation
|
||||
|
||||
* Thu Sep 24 2009 Andrew McNabb <amcnabb@mcnabbs.org> 3.1.1-1
|
||||
- Initial package for Python 3.
|
||||
|
Loading…
Reference in New Issue
Block a user