diff --git a/.cvsignore b/.cvsignore index df52b7f..21fcb88 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,5 +1 @@ -Python-2.4.1.tar.bz2 -JapaneseCodecs-1.4.11.tar.gz -Python-2.4.2.tar.bz2 -Python-2.4.3.tar.bz2 -Python-2.4.4.tar.bz2 +Python-2.5.tar.bz2 diff --git a/python-2.5-cflags.patch b/python-2.5-cflags.patch new file mode 100644 index 0000000..32243bf --- /dev/null +++ b/python-2.5-cflags.patch @@ -0,0 +1,11 @@ +--- Python-2.5c1/Makefile.pre.in.cflags 2006-08-18 11:05:40.000000000 -0400 ++++ Python-2.5c1/Makefile.pre.in 2006-08-18 11:09:26.000000000 -0400 +@@ -334,7 +334,7 @@ + + # Build the interpreter + $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) +- $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \ ++ $(LINKCC) $(CFLAGS) $(LDFLAGS) $(LINKFORSHARED) -o $@ \ + Modules/python.o \ + $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + diff --git a/python-2.5-config.patch b/python-2.5-config.patch new file mode 100644 index 0000000..1010fd6 --- /dev/null +++ b/python-2.5-config.patch @@ -0,0 +1,285 @@ +--- Python-2.5/Modules/Setup.dist.rhconfig 2006-08-06 03:26:21.000000000 -0400 ++++ Python-2.5/Modules/Setup.dist 2006-10-30 16:25:16.000000000 -0500 +@@ -149,7 +149,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 +@@ -159,69 +159,69 @@ + # 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 +-#strop stropmodule.c # String manipulations ++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 ++strop stropmodule.c # String manipulations + +-#unicodedata unicodedata.c # static Unicode character database ++unicodedata unicodedata.c # static Unicode character database + + # access to ISO C locale support +-#_locale _localemodule.c # -lintl ++_locale _localemodule.c # -lintl + + + # 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. +@@ -229,9 +229,9 @@ + # #993173 says audioop works on 64-bit platforms, though. + # These represent audio samples or images as strings: + +-#audioop audioop.c # Operations on audio samples +-#imageop imageop.c # Operations on images +-#rgbimg rgbimgmodule.c # Read SGI RGB image files (but coded portably) ++audioop audioop.c # Operations on audio samples ++imageop imageop.c # Operations on images ++rgbimg rgbimgmodule.c # Read SGI RGB image files (but coded portably) + + + # Note that the _md5 and _sha modules are normally only built if the +@@ -241,12 +241,12 @@ + # Message-Digest Algorithm, described in RFC 1321. The necessary files + # md5.c and md5.h are included here. + +-#_md5 md5module.c md5.c ++_md5 md5module.c md5.c + + + # The _sha module implements the SHA checksum algorithm. + # (NIST's Secure Hash Algorithm.) +-#_sha shamodule.c ++_sha shamodule.c + + + # SGI IRIX specific modules -- off by default. +@@ -293,12 +293,12 @@ + # A Linux specific module -- off by default; this may also work on + # some *BSDs. + +-#linuxaudiodev linuxaudiodev.c ++linuxaudiodev linuxaudiodev.c + + + # George Neville-Neil's timing module: + +-#timing timingmodule.c ++timing timingmodule.c + + + # The _tkinter module. +@@ -313,7 +313,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: +@@ -323,7 +323,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: +@@ -332,7 +332,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: +@@ -342,7 +342,7 @@ + # *** 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 +@@ -354,9 +354,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 + + + # Generic (SunOS / SVR4) dynamic loading module. +@@ -364,7 +364,7 @@ + # it is a highly experimental and dangerous device for calling + # *arbitrary* C functions in *arbitrary* shared libraries: + +-#dl dlmodule.c ++dl dlmodule.c + + + # Modules that provide persistent dictionary-like semantics. You will +@@ -387,7 +387,7 @@ + # + # 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 + + + # Sleepycat Berkeley DB interface. +@@ -402,11 +402,10 @@ + # + # Edit the variables DB and DBLIBVERto point to the db top directory + # and the subdirectory of PORT where you built it. +-#DB=/usr/local/BerkeleyDB.4.0 +-#DBLIBVER=4.0 +-#DBINC=$(DB)/include +-#DBLIB=$(DB)/lib +-#_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER) ++DBLIBVER=4.3 ++DBINC=/usr/include/db4 ++DBLIB=/usr/lib ++_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER) + + # Historical Berkeley DB 1.85 + # +@@ -421,14 +420,14 @@ + + + # 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 + + # cStringIO and cPickle +-#cStringIO cStringIO.c +-#cPickle cPickle.c ++cStringIO cStringIO.c ++cPickle cPickle.c + + + # Lee Busby's SIGFPE modules. +@@ -451,7 +450,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 + # +@@ -471,14 +470,14 @@ + # 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 diff --git a/python-2.5-distutils-bdist-rpm.patch b/python-2.5-distutils-bdist-rpm.patch new file mode 100644 index 0000000..982430b --- /dev/null +++ b/python-2.5-distutils-bdist-rpm.patch @@ -0,0 +1,75 @@ +--- Python-2.5a2/Lib/distutils/command/bdist_rpm.py.bdist-rpm 2005-04-15 02:17:20.000000000 -0400 ++++ Python-2.5a2/Lib/distutils/command/bdist_rpm.py 2006-06-19 09:14:28.000000000 -0400 +@@ -337,37 +337,47 @@ + if not self.keep_temp: + rpm_cmd.append('--clean') + rpm_cmd.append(spec_path) ++ # Determine the binary rpm names that should be built out of this spec ++ # file ++ # Note that some of these may not be really built (if the file ++ # list is empty) ++ nvr_string = "%{name}-%{version}-%{release}" ++ src_rpm = nvr_string + ".src.rpm" ++ non_src_rpm = "%{arch}/" + nvr_string + ".%{arch}.rpm" ++ q_cmd = r"rpm -q --qf '%s %s\n' --specfile '%s'" % ( ++ src_rpm, non_src_rpm, spec_path) ++ ++ out = os.popen(q_cmd) ++ binary_rpms = [] ++ source_rpm = None ++ while 1: ++ line = out.readline() ++ if not line: ++ break ++ l = string.split(string.strip(line)) ++ assert(len(l) == 2) ++ binary_rpms.append(l[1]) ++ # The source rpm is named after the first entry in the spec file ++ if source_rpm is None: ++ source_rpm = l[0] ++ ++ status = out.close() ++ if status: ++ raise DistutilsExecError("Failed to execute: %s" % repr(q_cmd)) ++ + self.spawn(rpm_cmd) + +- # XXX this is a nasty hack -- we really should have a proper way to +- # find out the names of the RPM files created; also, this assumes +- # that RPM creates exactly one source and one binary RPM. + if not self.dry_run: + if not self.binary_only: +- srpms = glob.glob(os.path.join(rpm_dir['SRPMS'], "*.rpm")) +- assert len(srpms) == 1, \ +- "unexpected number of SRPM files found: %s" % srpms +- dist_file = ('bdist_rpm', 'any', +- self._dist_path(srpms[0])) +- self.distribution.dist_files.append(dist_file) +- self.move_file(srpms[0], self.dist_dir) ++ srpm = os.path.join(rpm_dir['SRPMS'], source_rpm) ++ assert(os.path.exists(srpm)) ++ self.move_file(srpm, self.dist_dir) + + if not self.source_only: +- rpms = glob.glob(os.path.join(rpm_dir['RPMS'], "*/*.rpm")) +- debuginfo = glob.glob(os.path.join(rpm_dir['RPMS'], +- "*/*debuginfo*.rpm")) +- if debuginfo: +- rpms.remove(debuginfo[0]) +- assert len(rpms) == 1, \ +- "unexpected number of RPM files found: %s" % rpms +- dist_file = ('bdist_rpm', get_python_version(), +- self._dist_path(rpms[0])) +- self.distribution.dist_files.append(dist_file) +- self.move_file(rpms[0], self.dist_dir) +- if debuginfo: +- dist_file = ('bdist_rpm', get_python_version(), +- self._dist_path(debuginfo[0])) +- self.move_file(debuginfo[0], self.dist_dir) ++ for rpm in binary_rpms: ++ rpm = os.path.join(rpm_dir['RPMS'], rpm) ++ if os.path.exists(rpm): ++ self.move_file(rpm, self.dist_dir) + # run() + + def _dist_path(self, path): diff --git a/python-2.5-lib64.patch b/python-2.5-lib64.patch new file mode 100644 index 0000000..3e8c245 --- /dev/null +++ b/python-2.5-lib64.patch @@ -0,0 +1,165 @@ +--- Python-2.5b1/Lib/distutils/command/install.py.lib64 2006-03-27 16:55:21.000000000 -0500 ++++ Python-2.5b1/Lib/distutils/command/install.py 2006-06-22 12:20:35.000000000 -0400 +@@ -39,14 +39,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', +--- Python-2.5b1/Lib/distutils/sysconfig.py.lib64 2006-05-23 08:01:11.000000000 -0400 ++++ Python-2.5b1/Lib/distutils/sysconfig.py 2006-06-22 12:20:35.000000000 -0400 +@@ -99,8 +99,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: +--- Python-2.5b1/Lib/site.py.lib64 2006-06-12 04:23:02.000000000 -0400 ++++ Python-2.5b1/Lib/site.py 2006-06-22 12:20:35.000000000 -0400 +@@ -182,9 +182,14 @@ + sitedirs = [os.path.join(prefix, "Lib", "site-packages")] + elif os.sep == '/': + sitedirs = [os.path.join(prefix, +- "lib", ++ "lib64", + "python" + sys.version[:3], + "site-packages"), ++ os.path.join(prefix, ++ "lib", ++ "python" + sys.version[:3], ++ "site-packages"), ++ os.path.join(prefix, "lib64", "site-python"), + os.path.join(prefix, "lib", "site-python")] + else: + sitedirs = [prefix, os.path.join(prefix, "lib", "site-packages")] +--- Python-2.5b1/setup.py.lib64 2006-06-05 19:38:06.000000000 -0400 ++++ Python-2.5b1/setup.py 2006-06-22 12:22:14.000000000 -0400 +@@ -244,7 +244,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 +@@ -496,11 +496,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) ) + if platform not in ['mac']: +@@ -532,8 +532,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 +--- Python-2.5b1/Makefile.pre.in.lib64 2006-06-11 15:45:57.000000000 -0400 ++++ Python-2.5b1/Makefile.pre.in 2006-06-22 12:20:34.000000000 -0400 +@@ -84,11 +84,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) +--- Python-2.5b1/Modules/Setup.dist.lib64 2006-06-22 12:20:34.000000000 -0400 ++++ Python-2.5b1/Modules/Setup.dist 2006-06-22 12:20:35.000000000 -0400 +@@ -401,7 +401,7 @@ + # and the subdirectory of PORT where you built it. + DBLIBVER=4.3 + DBINC=/usr/include/db4 +-DBLIB=/usr/lib ++DBLIB=/usr/lib64 + _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER) + + # Historical Berkeley DB 1.85 +@@ -447,7 +447,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 + # +--- Python-2.5b1/Modules/getpath.c.lib64 2006-04-12 22:06:09.000000000 -0400 ++++ Python-2.5b1/Modules/getpath.c 2006-06-22 12:20:35.000000000 -0400 +@@ -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 char exec_prefix[MAXPATHLEN+1]; + static char progpath[MAXPATHLEN+1]; + static char *module_search_path = NULL; +-static char lib_python[] = "lib/python" VERSION; ++static char lib_python[] = "lib64/python" VERSION; + + static void + reduce(char *dir) +@@ -524,7 +524,7 @@ + } + else + strncpy(zip_path, PREFIX, MAXPATHLEN); +- joinpath(zip_path, "lib/python00.zip"); ++ joinpath(zip_path, "lib64/python00.zip"); + bufsz = strlen(zip_path); /* Replace "00" with version */ + zip_path[bufsz - 6] = VERSION[0]; + zip_path[bufsz - 5] = VERSION[2]; +@@ -534,7 +534,7 @@ + fprintf(stderr, + "Could not find platform dependent libraries \n"); + strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); +- joinpath(exec_prefix, "lib/lib-dynload"); ++ joinpath(exec_prefix, "lib64/lib-dynload"); + } + /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ + diff --git a/python-db45.patch b/python-db45.patch new file mode 100644 index 0000000..61faed2 --- /dev/null +++ b/python-db45.patch @@ -0,0 +1,69 @@ +--- Python-2.5/setup.py.db45 2006-08-09 19:42:18.000000000 -0400 ++++ Python-2.5/setup.py 2006-12-05 16:05:43.000000000 -0500 +@@ -606,7 +606,7 @@ + # a release. Most open source OSes come with one or more + # versions of BerkeleyDB already installed. + +- max_db_ver = (4, 4) ++ max_db_ver = (4, 5) + min_db_ver = (3, 3) + db_setup_debug = False # verbose debug prints from this script? + +@@ -623,7 +623,7 @@ + '/sw/include/db3', + ] + # 4.x minor number specific paths +- for x in (0,1,2,3,4): ++ for x in (0,1,2,3,4,5): + db_inc_paths.append('/usr/include/db4%d' % x) + db_inc_paths.append('/usr/include/db4.%d' % x) + db_inc_paths.append('/usr/local/BerkeleyDB.4.%d/include' % x) +--- Python-2.5/Modules/_bsddb.c.db45 2006-12-05 16:12:08.000000000 -0500 ++++ Python-2.5/Modules/_bsddb.c 2006-12-05 16:15:44.000000000 -0500 +@@ -4129,6 +4129,7 @@ + } + + ++#if (DBVER < 45) + static PyObject* + DBEnv_set_lk_max(DBEnvObject* self, PyObject* args) + { +@@ -4144,7 +4145,7 @@ + RETURN_IF_ERR(); + RETURN_NONE(); + } +- ++#endif + + #if (DBVER >= 32) + +@@ -5233,7 +5234,9 @@ + {"set_lg_regionmax",(PyCFunction)DBEnv_set_lg_regionmax, METH_VARARGS}, + #endif + {"set_lk_detect", (PyCFunction)DBEnv_set_lk_detect, METH_VARARGS}, ++#if (DBVER <= 40) + {"set_lk_max", (PyCFunction)DBEnv_set_lk_max, METH_VARARGS}, ++#endif + #if (DBVER >= 32) + {"set_lk_max_locks", (PyCFunction)DBEnv_set_lk_max_locks, METH_VARARGS}, + {"set_lk_max_lockers", (PyCFunction)DBEnv_set_lk_max_lockers, METH_VARARGS}, +@@ -5835,7 +5838,9 @@ + ADD_INT(d, DB_AFTER); + ADD_INT(d, DB_APPEND); + ADD_INT(d, DB_BEFORE); ++#if (DBVER <= 40) + ADD_INT(d, DB_CACHED_COUNTS); ++#endif + #if (DBVER >= 41) + _addIntToDict(d, "DB_CHECKPOINT", 0); + #else +@@ -5870,7 +5875,9 @@ + ADD_INT(d, DB_POSITION); + ADD_INT(d, DB_PREV); + ADD_INT(d, DB_PREV_NODUP); ++#if (DBVER <= 40) + ADD_INT(d, DB_RECORDCOUNT); ++#endif + ADD_INT(d, DB_SET); + ADD_INT(d, DB_SET_RANGE); + ADD_INT(d, DB_SET_RECNO); diff --git a/python.spec b/python.spec index fc9bfef..6ab09e3 100644 --- a/python.spec +++ b/python.spec @@ -1,4 +1,5 @@ %{!?__python_ver:%define __python_ver EMPTY} +#define __python_ver 25 %define unicode ucs4 %if "%{__python_ver}" != "EMPTY" @@ -11,49 +12,39 @@ %define tkinter tkinter %endif -%define pybasever 2.4 -%define jp_codecs 1.4.11 +%define pybasever 2.5 %define tools_dir %{_libdir}/python%{pybasever}/Tools %define demo_dir %{_libdir}/python%{pybasever}/Demo %define doc_tools_dir %{_libdir}/python%{pybasever}/Doc/tools Summary: An interpreted, interactive, object-oriented programming language. Name: %{python} -Version: %{pybasever}.4 -Release: 2%{?dist} +#Version: %{pybasever}.3 +Version: 2.5 +Release: 0%{?dist} License: PSF - see LICENSE Group: Development/Languages Provides: python-abi = %{pybasever} Provides: python(abi) = %{pybasever} -# optik is part of python 2.3 as optparse -Provides: python-optik = 1.4.1 -Obsoletes: python-optik Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.bz2 -Source5: http://www.python.jp/pub/JapaneseCodecs/JapaneseCodecs-%{jp_codecs}.tar.gz -Source6: http://gigue.peabody.jhu.edu/~mdboom/omi/source/shm_source/shmmodule.c -Source7: python-2.3.4-optik.py - -Patch0: python-2.4.3-config.patch -Patch3: Python-2.2.1-pydocnogui.patch -Patch7: python-2.3.4-lib64-regex.patch -Patch8: python-2.4.4-lib64.patch -Patch9: japanese-codecs-lib64.patch -Patch13: python-2.4-distutils-bdist-rpm.patch -Patch14: python-2.3.4-pydocnodoc.patch -Patch15: python-2.4.1-canonicalize.patch -Patch16: python-2.4-gen-assert.patch -Patch17: python-2.4-webbrowser.patch -Patch18: python-2.4.3-cflags.patch -Patch19: python-2.4.3-locale.patch + +Patch0: python-2.5-config.patch +Patch1: Python-2.2.1-pydocnogui.patch +Patch2: python-2.5-distutils-bdist-rpm.patch +Patch3: python-2.3.4-pydocnodoc.patch +Patch4: python-2.4.1-canonicalize.patch +Patch5: python-2.5-cflags.patch +Patch6: python-db45.patch + +# lib64 patches +Patch101: python-2.3.4-lib64-regex.patch +Patch102: python-2.5-lib64.patch %if %{main_python} Obsoletes: Distutils Provides: Distutils Obsoletes: python2 Provides: python2 = %{version} -BuildPrereq: db4-devel >= 4.3 -%else -#BuildPrereq: db3-devel %endif BuildRoot: %{_tmppath}/%{name}-%{version}-root @@ -61,8 +52,10 @@ BuildPrereq: readline-devel, libtermcap-devel, openssl-devel, gmp-devel BuildPrereq: ncurses-devel, gdbm-devel, zlib-devel, expat-devel BuildPrereq: libGL-devel tk tix gcc-c++ libX11-devel glibc-devel BuildPrereq: bzip2 tar /usr/bin/find pkgconfig tcl-devel tk-devel -BuildPrereq: tix-devel bzip2-devel +BuildPrereq: tix-devel bzip2-devel sqlite-devel BuildPrereq: autoconf +BuildPrereq: db4-devel >= 4.3 + URL: http://www.python.org/ %description @@ -138,22 +131,21 @@ You should install the tkinter package if you'd like to use a graphical user interface for Python programming. %prep -%setup -q -n Python-%{version} -a 5 +%setup -q -n Python-%{version} %patch0 -p1 -b .rhconfig -%patch3 -p1 -b .no_gui +%patch1 -p1 -b .no_gui +%patch2 -p1 -b .bdist-rpm +%patch3 -p1 -b .no-doc +%patch4 -p1 -b .canonicalize +%patch5 -p1 -b .cflags +%patch6 -p1 -b .db45 + %if %{_lib} == lib64 -%patch7 -p1 -b .lib64-regex -%patch8 -p1 -b .lib64 -%patch9 -p0 -b .lib64-j +%patch101 -p1 -b .lib64-regex +%patch102 -p1 -b .lib64 %endif -%patch13 -p1 -b .bdist-rpm -%patch14 -p1 -b .no-doc -%patch15 -p1 -b .canonicalize -%patch16 -p2 -b .gen-assert -%patch17 -p0 -b .web-browser -%patch18 -p1 -b .cflags -%patch19 -p2 -b .locale + # This shouldn't be necesarry, but is right now (2.2a3) find -name "*~" |xargs rm -f @@ -162,17 +154,6 @@ find -name "*~" |xargs rm -f # as executable files chmod 0644 Lib/test/test_*.py -# shm module -cp %{SOURCE6} Modules -cat >> Modules/Setup.dist << EOF - -# Shared memory module -shm shmmodule.c -EOF - -# Backwards compatible optik -install -m 0644 %{SOURCE7} Lib/optik.py - %build topdir=`pwd` export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC" @@ -185,13 +166,18 @@ if pkg-config openssl ; then fi # Force CC export CC=gcc -# For patch 15, need to get a newer configure generated out of configure.in +# For patch 4, need to get a newer configure generated out of configure.in autoconf %configure --enable-ipv6 --enable-unicode=%{unicode} --enable-shared make OPT="$CFLAGS" %{?_smp_mflags} LD_LIBRARY_PATH=$topdir $topdir/python Tools/scripts/pathfix.py -i "%{_bindir}/env python%{pybasever}" . -make OPT="$CFLAGS" %{?_smp_mflags} +# Rebuild with new python +# We need a link to a versioned python in the build directory +ln -s python python%{pybasever} +LD_LIBRARY_PATH=$topdir PATH=$PATH:$topdir make -s OPT="$CFLAGS" %{?_smp_mflags} + + %install [ -d $RPM_BUILD_ROOT ] && rm -fr $RPM_BUILD_ROOT @@ -272,7 +258,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/python%{pybasever}/site-packages/modulator/Templ # Clean up the testsuite - we don't need compiled files for it find $RPM_BUILD_ROOT%{_libdir}/python%{pybasever}/test \ -name "*.pyc" -o -name "*.pyo" | xargs rm -f -rm -f $RPM_BUILD_ROOT%{_libdir}/python2.2/LICENSE.txt +rm -f $RPM_BUILD_ROOT%{_libdir}/python%{pybasever}/LICENSE.txt #make the binaries install side by side with the main python @@ -288,14 +274,6 @@ mv pydoc pydoc%{__python_ver} popd %endif -# Japanese codecs -pushd JapaneseCodecs-%{jp_codecs} -# We need to set LD_LIBRARY_PATH since python is now compiled as shared, and -# we always want to use the currently compiled one -LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} \ - ../python setup.py install --root=$RPM_BUILD_ROOT -popd - find $RPM_BUILD_ROOT%{_libdir}/python%{pybasever}/lib-dynload -type d | sed "s|$RPM_BUILD_ROOT|%dir |" > dynfiles find $RPM_BUILD_ROOT%{_libdir}/python%{pybasever}/lib-dynload -type f | grep -v "_tkinter.so$" | sed "s|$RPM_BUILD_ROOT||" >> dynfiles @@ -333,6 +311,9 @@ 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%{_libdir}/python%{pybasever}/distutils/sysconfig.py +# Get rid of egg-info files (core python modules are installed through rpms) +rm $RPM_BUILD_ROOT%{_libdir}/python%{pybasever}/*.egg-info + %clean rm -fr $RPM_BUILD_ROOT @@ -345,27 +326,26 @@ rm -fr $RPM_BUILD_ROOT %{_libdir}/libpython%{pybasever}.so* %dir %{_libdir}/python%{pybasever} -%{_libdir}/python%{pybasever}/site-packages/japanese.pth %dir %{_libdir}/python%{pybasever}/site-packages -%{_libdir}/python%{pybasever}/site-packages/japanese %{_libdir}/python%{pybasever}/site-packages/README -%{_libdir}/python%{pybasever}/LICENSE.txt %{_libdir}/python%{pybasever}/*.py* %{_libdir}/python%{pybasever}/*.doc %{_libdir}/python%{pybasever}/bsddb +%{_libdir}/python%{pybasever}/compiler %dir %{_libdir}/python%{pybasever}/config %{_libdir}/python%{pybasever}/config/Makefile +%{_libdir}/python%{pybasever}/ctypes %{_libdir}/python%{pybasever}/curses %{_libdir}/python%{pybasever}/distutils +%{_libdir}/python%{pybasever}/email %{_libdir}/python%{pybasever}/encodings +%{_libdir}/python%{pybasever}/hotshot %{_libdir}/python%{pybasever}/idlelib -%{_libdir}/python%{pybasever}/lib-old %{_libdir}/python%{pybasever}/logging -%{_libdir}/python%{pybasever}/xml -%{_libdir}/python%{pybasever}/email -%{_libdir}/python%{pybasever}/compiler %{_libdir}/python%{pybasever}/plat-linux2 -%{_libdir}/python%{pybasever}/hotshot +%{_libdir}/python%{pybasever}/sqlite3 +%{_libdir}/python%{pybasever}/wsgiref +%{_libdir}/python%{pybasever}/xml %if %{_lib} == lib64 %attr(0755,root,root) %dir /usr/lib/python%{pybasever} %attr(0755,root,root) %dir /usr/lib/python%{pybasever}/site-packages @@ -399,33 +379,31 @@ rm -fr $RPM_BUILD_ROOT %{_libdir}/python%{pybasever}/lib-dynload/_tkinter.so %changelog -* Fri Nov 10 2006 Jeremy Katz - 2.4.4-2 -- rebuild against new db - -* Mon Oct 23 2006 Jeremy Katz - 2.4.4-1 -- update to 2.4.4 - -* Sun Oct 01 2006 Jesse Keating - 2.4.3-18 -- rebuilt for unwind info generation, broken in gcc-4.1.1-21 +* Tue Dec 5 2006 Jeremy Katz +- support db 4.5 -* Tue Sep 26 2006 Mihai Ibanescu - 2.4.3-17 -- Fixed bug #208166 / CVE-2006-4980: repr unicode buffer overflow +* Mon Oct 30 2006 Jeremy Katz +- fix _md5 and _sha modules (Robert Sheck) +- no longer provide optik compat; it's been a couple of years now +- no longer provide the old shm module; if this is still needed, let's + build it separately +- no longer provide japanese codecs; should be a separate package -* Thu Aug 17 2006 Mihai Ibanescu - 2.4.3-15 -- Fixed bug #201434 (distutils.sysconfig is confused by the change to make - python-devel multilib friendly) +* Mon Oct 23 2006 Jeremy Katz - 2.5-0 +- update to 2.5.0 final -* Fri Jul 21 2006 Mihai Ibanescu - 2.4.3-14 -- Fixed bug #198971 (case conversion not locale safe in logging library) - -* Thu Jul 20 2006 Mihai Ibanescu - 2.4.3-13 +* Fri Aug 18 2006 Mihai Ibanescu - 2.4.99.c1 +- Updated to 2.5c1. Merged fixes from FC6 too: - Fixed bug #199373 (on some platforms CFLAGS is needed when linking) +- Fixed bug #198971 (case conversion not locale safe in logging library) +- Verified bug #201434 (distutils.sysconfig is confused by the change to make + python-devel multilib friendly) is fixed upstream -* Mon Jul 17 2006 Mihai Ibanescu - 2.4.3-12 -- added dist tag back +* Sun Jul 16 2006 Mihai Ibanescu - 2.4.99.b2 +- Updated to 2.5b2 (which for comparison reasons is re-labeled 2.4.99.b2) -* Wed Jul 12 2006 Jesse Keating - 2.4.3-11.FC6.1 -- rebuild +* Fri Jun 23 2006 Mihai Ibanescu - 2.4.99.b1 +- Updated to 2.5b1 (which for comparison reasons is re-labeled 2.4.99.b1) * Tue Jun 13 2006 Jeremy Katz - 2.4.3-11.FC6 - and fix it for real diff --git a/sources b/sources index 3bb92ff..99f6917 100644 --- a/sources +++ b/sources @@ -1,3 +1 @@ -e4f2ed866f4ce978fb54bb962eab4fdf JapaneseCodecs-1.4.11.tar.gz -141c683447d5e76be1d2bd4829574f02 Python-2.4.3.tar.bz2 -0ba90c79175c017101100ebf5978e906 Python-2.4.4.tar.bz2 +ddb7401e711354ca83b7842b733825a3 Python-2.5.tar.bz2