diff options
author | Alastair Tse <liquidx@gentoo.org> | 2006-08-09 14:50:30 +0000 |
---|---|---|
committer | Alastair Tse <liquidx@gentoo.org> | 2006-08-09 14:50:30 +0000 |
commit | 6d41f6e09e336d11b44c9204d1bb1357dc320841 (patch) | |
tree | d425be6a85f0c692b2e6b6bb62a980a87b754571 /dev-lang/python | |
parent | removing experimental slang (diff) | |
download | liquidx-6d41f6e09e336d11b44c9204d1bb1357dc320841.tar.gz liquidx-6d41f6e09e336d11b44c9204d1bb1357dc320841.tar.bz2 liquidx-6d41f6e09e336d11b44c9204d1bb1357dc320841.zip |
experimental python 2.5 ebuilds for people who will like to experiment
svn path=/; revision=46
Diffstat (limited to 'dev-lang/python')
-rw-r--r-- | dev-lang/python/ChangeLog | 4 | ||||
-rw-r--r-- | dev-lang/python/Manifest | 52 | ||||
-rw-r--r-- | dev-lang/python/files/digest-python-2.5_beta3 | 3 | ||||
-rw-r--r-- | dev-lang/python/files/patches/2.5-libdir.patch | 126 | ||||
-rw-r--r-- | dev-lang/python/files/patches/2.5-mimetypes_gentoo_apache.patch | 11 | ||||
-rw-r--r-- | dev-lang/python/files/patches/2.5-readline.patch | 17 | ||||
-rw-r--r-- | dev-lang/python/files/patches/python-2.4-add_portage_search_path.patch | 11 | ||||
-rw-r--r-- | dev-lang/python/files/patches/python-2.4-disable_modules_and_ssl.patch | 36 | ||||
-rw-r--r-- | dev-lang/python/files/patches/python-2.4-gentoo_py_dontcompile.patch | 18 | ||||
-rw-r--r-- | dev-lang/python/files/patches/python-2.4.1-crosscompile.patch | 106 | ||||
-rw-r--r-- | dev-lang/python/files/patches/python-2.4.3-db4.patch | 38 | ||||
-rw-r--r-- | dev-lang/python/files/patches/python-2.4.3-gentoo_obsd-r1.patch | 35 | ||||
-rw-r--r-- | dev-lang/python/files/python-config-2.5 | 11 | ||||
-rw-r--r-- | dev-lang/python/files/python-updater-r1 | 322 | ||||
-rw-r--r-- | dev-lang/python/python-2.5_beta3.ebuild | 310 |
15 files changed, 1100 insertions, 0 deletions
diff --git a/dev-lang/python/ChangeLog b/dev-lang/python/ChangeLog new file mode 100644 index 0000000..025d4f7 --- /dev/null +++ b/dev-lang/python/ChangeLog @@ -0,0 +1,4 @@ +* Removed st_flags patch +* Added sqlite USE flag +* Block on elementtree, celementtree, pysqlite-2*, ctypes +* Added webbrowser to the skipped_tests because of sandbox violation. diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest new file mode 100644 index 0000000..833d768 --- /dev/null +++ b/dev-lang/python/Manifest @@ -0,0 +1,52 @@ +AUX patches/2.5-libdir.patch 5865 RMD160 1e4ce24e05f2d1b1c9587d9047d36facc93d7a2f SHA1 f9d15014e53a346fe02e00595b5611369a6cccd3 SHA256 aa960b6e9a45d263fa6b87d29ad1198c1c18877d11169fb20ae81820ab17fa4e +MD5 447c7d1e97dca1d3a361dc968e8272b9 files/patches/2.5-libdir.patch 5865 +RMD160 1e4ce24e05f2d1b1c9587d9047d36facc93d7a2f files/patches/2.5-libdir.patch 5865 +SHA256 aa960b6e9a45d263fa6b87d29ad1198c1c18877d11169fb20ae81820ab17fa4e files/patches/2.5-libdir.patch 5865 +AUX patches/2.5-mimetypes_gentoo_apache.patch 490 RMD160 b92d065bf43fb0be0867e9084f6bc29c30d41200 SHA1 cd237858f6aaa54f06e863b634227f0570e7c0ac SHA256 1b0e6a6d5e53a84227b36908228ecd252f8c9a8ad374cf4b03895a6a2fa24c0d +MD5 49740763b3951df283ba5614c288d7b0 files/patches/2.5-mimetypes_gentoo_apache.patch 490 +RMD160 b92d065bf43fb0be0867e9084f6bc29c30d41200 files/patches/2.5-mimetypes_gentoo_apache.patch 490 +SHA256 1b0e6a6d5e53a84227b36908228ecd252f8c9a8ad374cf4b03895a6a2fa24c0d files/patches/2.5-mimetypes_gentoo_apache.patch 490 +AUX patches/2.5-readline.patch 532 RMD160 277928eea5e36d7a79276118fe82c241c6a94f18 SHA1 232ed820f759522145051818a162d62b31f4932a SHA256 9e469a96e02f25d034ab7f6d52502662386cce760d0775e2f8908a95e2a364c7 +MD5 b2a39b01f64db9a3f598d4015d86bf3e files/patches/2.5-readline.patch 532 +RMD160 277928eea5e36d7a79276118fe82c241c6a94f18 files/patches/2.5-readline.patch 532 +SHA256 9e469a96e02f25d034ab7f6d52502662386cce760d0775e2f8908a95e2a364c7 files/patches/2.5-readline.patch 532 +AUX patches/python-2.4-add_portage_search_path.patch 556 RMD160 858be60495dd7bd21429821750997cab7bccada1 SHA1 62a2ed1c44ef28971eac083d041262294201df23 SHA256 7042fdf98e3e228460d46ad5ee100e28fc29e9f1fa2008d29da0c25719b611cb +MD5 5bee9fa15d4effc7423e76d2f7f47655 files/patches/python-2.4-add_portage_search_path.patch 556 +RMD160 858be60495dd7bd21429821750997cab7bccada1 files/patches/python-2.4-add_portage_search_path.patch 556 +SHA256 7042fdf98e3e228460d46ad5ee100e28fc29e9f1fa2008d29da0c25719b611cb files/patches/python-2.4-add_portage_search_path.patch 556 +AUX patches/python-2.4-disable_modules_and_ssl.patch 1285 RMD160 995029e98fa3f9be38dff8446f7684dcd44ef11b SHA1 1d91fb65989b01e283e98e3cafae624e3953b05b SHA256 34f3604347510a18c613ba5eaacc4176e7499bdf2a7efaee486232cb00c49388 +MD5 2b953054102d344834597bc73b209e12 files/patches/python-2.4-disable_modules_and_ssl.patch 1285 +RMD160 995029e98fa3f9be38dff8446f7684dcd44ef11b files/patches/python-2.4-disable_modules_and_ssl.patch 1285 +SHA256 34f3604347510a18c613ba5eaacc4176e7499bdf2a7efaee486232cb00c49388 files/patches/python-2.4-disable_modules_and_ssl.patch 1285 +AUX patches/python-2.4-gentoo_py_dontcompile.patch 477 RMD160 b0734a4d8cf58ad922938082b20495ee17234105 SHA1 7c83501c7dd2a05338e00f834d829f1b56e8ed44 SHA256 49bdcfa5cbda826158c534a96fe62109aacb4ada1f1913ddb57bce168e65dea7 +MD5 2121d3986faa4b6c2c3ed472f77f2a9d files/patches/python-2.4-gentoo_py_dontcompile.patch 477 +RMD160 b0734a4d8cf58ad922938082b20495ee17234105 files/patches/python-2.4-gentoo_py_dontcompile.patch 477 +SHA256 49bdcfa5cbda826158c534a96fe62109aacb4ada1f1913ddb57bce168e65dea7 files/patches/python-2.4-gentoo_py_dontcompile.patch 477 +AUX patches/python-2.4.1-crosscompile.patch 4126 RMD160 58ff65efe6526a89deb317084f31fffca24fbfd1 SHA1 237335f6a43b1490a6f1a28aa3cc3fc9526e5265 SHA256 5d5edae052e7087c7a5327cafe34e5360b799aa820b61fe38a94f793ff6e7312 +MD5 ec1400ca4877399cae56ccefb72a200f files/patches/python-2.4.1-crosscompile.patch 4126 +RMD160 58ff65efe6526a89deb317084f31fffca24fbfd1 files/patches/python-2.4.1-crosscompile.patch 4126 +SHA256 5d5edae052e7087c7a5327cafe34e5360b799aa820b61fe38a94f793ff6e7312 files/patches/python-2.4.1-crosscompile.patch 4126 +AUX patches/python-2.4.3-db4.patch 1602 RMD160 59a533ba6dc0ee4702c22ecd1b28c1b95a54e4c7 SHA1 c7eb00c0e3ee215bf76cc80ec629ae22a8a0c197 SHA256 6366623ed12d682210931211d8dc0edb78c4ea9256fd2357661762864f5a7611 +MD5 99edd492f449d6b61456ea8d5fd71ee9 files/patches/python-2.4.3-db4.patch 1602 +RMD160 59a533ba6dc0ee4702c22ecd1b28c1b95a54e4c7 files/patches/python-2.4.3-db4.patch 1602 +SHA256 6366623ed12d682210931211d8dc0edb78c4ea9256fd2357661762864f5a7611 files/patches/python-2.4.3-db4.patch 1602 +AUX patches/python-2.4.3-gentoo_obsd-r1.patch 1162 RMD160 fa91e83d08ff4880f6c3c40b610189fcb090a39f SHA1 04c9e473ad41954c399eab0c9a937898c36895f2 SHA256 025ede7c7993aeb453ce95660d2c1244aab7e633f06b3e76f059639a8e5710b9 +MD5 6990e6f24bbdd37fb4f4a8b7bbb16928 files/patches/python-2.4.3-gentoo_obsd-r1.patch 1162 +RMD160 fa91e83d08ff4880f6c3c40b610189fcb090a39f files/patches/python-2.4.3-gentoo_obsd-r1.patch 1162 +SHA256 025ede7c7993aeb453ce95660d2c1244aab7e633f06b3e76f059639a8e5710b9 files/patches/python-2.4.3-gentoo_obsd-r1.patch 1162 +AUX python-config-2.5 232 RMD160 cc6697f47dfdb7687df7a37c31aea1f152cb5965 SHA1 ae9a5532dfa551e8dcd7c4dfee0046d4aaaef0bc SHA256 037364e801efd49e16c25f364505b0550832b9849b520be271f883e52ca9c09b +MD5 ec3a084ddd27398af0e7c532afbd44eb files/python-config-2.5 232 +RMD160 cc6697f47dfdb7687df7a37c31aea1f152cb5965 files/python-config-2.5 232 +SHA256 037364e801efd49e16c25f364505b0550832b9849b520be271f883e52ca9c09b files/python-config-2.5 232 +AUX python-updater-r1 8773 RMD160 e06ccb17d9ae39cbd1fd1acc7c2f95c9b24b861b SHA1 bbe3522762a2fb819bf902407e375cf732587bf2 SHA256 751e731e85feb382b8278352c90b57921f4ab480c8145a8f2a79c9c5aaa8e029 +MD5 dab449a65cb1a0e96395eed43939b17b files/python-updater-r1 8773 +RMD160 e06ccb17d9ae39cbd1fd1acc7c2f95c9b24b861b files/python-updater-r1 8773 +SHA256 751e731e85feb382b8278352c90b57921f4ab480c8145a8f2a79c9c5aaa8e029 files/python-updater-r1 8773 +DIST Python-2.5b3.tar.bz2 9362705 RMD160 ba16dd5043a13b2c8945b33707c6033ab1a8f449 SHA1 31741b7a5b37cb03de1dfbfdfbcf6adc6668297c SHA256 c2c673763addd4a48df1a148656085a09730579b8165519f0acacaab44f66301 +EBUILD python-2.5_beta3.ebuild 9652 RMD160 8db7f0f6a9cadfbcf5982ba6bdeba617e07b3925 SHA1 54b3aae1b382bedcd2b1cd418b05e51a6372d8a4 SHA256 4d07c693e12e87c75747b6dc6a1787ffc8026888a3e5715433b150b59e596616 +MD5 c366ec9d9f2876b06fd0ee1d351c41df python-2.5_beta3.ebuild 9652 +RMD160 8db7f0f6a9cadfbcf5982ba6bdeba617e07b3925 python-2.5_beta3.ebuild 9652 +SHA256 4d07c693e12e87c75747b6dc6a1787ffc8026888a3e5715433b150b59e596616 python-2.5_beta3.ebuild 9652 +MD5 df32ea3ca3ce2ace66a93ceb4c8b122c files/digest-python-2.5_beta3 244 +RMD160 33139c5a65fc7c84bf0ed3deba446cdcfe1a9753 files/digest-python-2.5_beta3 244 +SHA256 a3002eae29f02dd011208972c0fc18bf870d5132f2633b7b347d77a1d1f9721c files/digest-python-2.5_beta3 244 diff --git a/dev-lang/python/files/digest-python-2.5_beta3 b/dev-lang/python/files/digest-python-2.5_beta3 new file mode 100644 index 0000000..170e8eb --- /dev/null +++ b/dev-lang/python/files/digest-python-2.5_beta3 @@ -0,0 +1,3 @@ +MD5 30d851f535e31c8eac7924003c43e8a9 Python-2.5b3.tar.bz2 9362705 +RMD160 ba16dd5043a13b2c8945b33707c6033ab1a8f449 Python-2.5b3.tar.bz2 9362705 +SHA256 c2c673763addd4a48df1a148656085a09730579b8165519f0acacaab44f66301 Python-2.5b3.tar.bz2 9362705 diff --git a/dev-lang/python/files/patches/2.5-libdir.patch b/dev-lang/python/files/patches/2.5-libdir.patch new file mode 100644 index 0000000..0347f41 --- /dev/null +++ b/dev-lang/python/files/patches/2.5-libdir.patch @@ -0,0 +1,126 @@ +--- ./Lib/distutils/sysconfig.py~ 2006-06-27 11:08:25.000000000 +0100 ++++ ./Lib/distutils/sysconfig.py 2006-08-09 14:38:58.000000000 +0100 +@@ -100,7 +100,8 @@ + + if os.name == "posix": + libpython = os.path.join(prefix, +- "lib", "python" + get_python_version()) ++ "@@GENTOO_LIBDIR@@", ++ "python" + get_python_version()) + if standard_lib: + return libpython + else: +@@ -409,7 +410,7 @@ + # command. (It's also needed for non-MS compilers on Windows, and + # it's taken care of for them by the 'build_ext.get_libraries()' + # method.) +- g['LDSHARED'] = ("%s -L%s/lib -lpython%s" % ++ g['LDSHARED'] = ("%s -L%s/@@GENTOO_LIBDIR@@ -lpython%s" % + (linkerscript, PREFIX, get_python_version())) + + global _config_vars +--- ./Lib/distutils/command/install.py~ 2006-03-27 22:55:21.000000000 +0100 ++++ ./Lib/distutils/command/install.py 2006-08-09 14:36:01.000000000 +0100 +@@ -38,8 +38,8 @@ + + INSTALL_SCHEMES = { + 'unix_prefix': { +- 'purelib': '$base/lib/python$py_version_short/site-packages', +- 'platlib': '$platbase/lib/python$py_version_short/site-packages', ++ 'purelib': '$base/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', ++ 'platlib': '$platbase/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', + 'headers': '$base/include/python$py_version_short/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', +--- ./Lib/site.py~ 2006-08-09 14:34:02.000000000 +0100 ++++ ./Lib/site.py 2006-08-09 14:40:31.000000000 +0100 +@@ -182,13 +182,13 @@ + sitedirs = [os.path.join(prefix, "Lib", "site-packages")] + elif os.sep == '/': + sitedirs = [os.path.join(prefix, +- "lib", ++ "@@GENTOO_LIBDIR@@", + "python" + sys.version[:3], + "site-packages"), +- os.path.join(prefix, "lib", "site-python")] +- sitedirs = [os.path.join(prefix,"lib","portage","pym")] + sitedirs ++ os.path.join(prefix, "@@GENTOO_LIBDIR@@", "site-python")] ++ sitedirs = [os.path.join(prefix, "@@GENTOO_LIBDIR@@", "portage","pym")] + sitedirs + else: +- sitedirs = [prefix, os.path.join(prefix, "lib", "site-packages")] ++ sitedirs = [prefix, os.path.join(prefix, "@@GENTOO_LIBDIR@@", "site-packages")] + if sys.platform == 'darwin': + # for framework builds *only* we add the standard Apple + # locations. Currently only per-user, but /Library and +--- ./Makefile.pre.in~ 2006-07-30 17:20:10.000000000 +0100 ++++ ./Makefile.pre.in 2006-08-09 14:46:42.000000000 +0100 +@@ -84,11 +84,11 @@ + + # Expanded directories + BINDIR= $(exec_prefix)/bin +-LIBDIR= $(exec_prefix)/lib ++LIBDIR= $(exec_prefix)/@@GENTOO_LIBDIR@@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include +-SCRIPTDIR= $(prefix)/lib ++SCRIPTDIR= $(prefix)/@@GENTOO_LIBDIR@@ + + # Detailed destination directories + BINLIBDEST= $(LIBDIR)/python$(VERSION) +--- ./setup.py~ 2006-08-09 14:45:13.000000000 +0100 ++++ ./setup.py 2006-08-09 14:46:21.000000000 +0100 +@@ -504,11 +504,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/@@GENTOO_LIBDIR@@/termcap'], + 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], +- library_dirs=['/usr/lib/termcap'], ++ library_dirs=['/usr/@@GENTOO_LIBDIR@@/termcap'], + extra_link_args=readline_extra_link_args, + libraries=readline_libs) ) + if platform not in ['mac']: +--- ./Modules/Setup.dist~ 2006-08-09 14:42:29.000000000 +0100 ++++ ./Modules/Setup.dist 2006-08-09 14:42:45.000000000 +0100 +@@ -448,7 +448,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)/@@GENTOO_LIBDIR@@ -lz + + # Interface to the Expat XML parser + # +--- ./Modules/getpath.c~ 2006-08-09 14:43:13.000000000 +0100 ++++ ./Modules/getpath.c 2006-08-09 14:43:43.000000000 +0100 +@@ -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[] = "@@GENTOO_LIBDIR@@/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, "@@GENTOO_LIBDIR@@/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 <exec_prefix>\n"); + strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); +- joinpath(exec_prefix, "lib/lib-dynload"); ++ joinpath(exec_prefix, "@@GENTOO_LIBDIR@@/lib-dynload"); + } + /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ + diff --git a/dev-lang/python/files/patches/2.5-mimetypes_gentoo_apache.patch b/dev-lang/python/files/patches/2.5-mimetypes_gentoo_apache.patch new file mode 100644 index 0000000..edf42e4 --- /dev/null +++ b/dev-lang/python/files/patches/2.5-mimetypes_gentoo_apache.patch @@ -0,0 +1,11 @@ +--- Lib/mimetypes.py.old 2006-08-09 14:31:43.000000000 +0100 ++++ Lib/mimetypes.py 2006-08-09 14:32:32.000000000 +0100 +@@ -33,6 +33,8 @@ + + knownfiles = [ + "/etc/mime.types", ++ "/etc/apache/conf/mime.types", # Gentoo Apache 1 ++ "/etc/apache2/conf/mime.types", # Gentoo Apache 2 + "/etc/httpd/mime.types", # Mac OS X + "/etc/httpd/conf/mime.types", # Apache + "/etc/apache/mime.types", # Apache 1 diff --git a/dev-lang/python/files/patches/2.5-readline.patch b/dev-lang/python/files/patches/2.5-readline.patch new file mode 100644 index 0000000..e9ef328 --- /dev/null +++ b/dev-lang/python/files/patches/2.5-readline.patch @@ -0,0 +1,17 @@ +--- configure.in.old 2006-08-09 14:27:46.000000000 +0100 ++++ configure.in 2006-08-09 14:28:16.000000000 +0100 +@@ -3069,10 +3069,10 @@ + # save the value of LIBS so we don't actually link Python with readline + LIBS_no_readline=$LIBS + AC_CHECK_LIB(readline, readline) +-if test "$ac_cv_have_readline_readline" = no +-then +- AC_CHECK_LIB(termcap, readline) +-fi ++#if test "$ac_cv_have_readline_readline" = no ++#then ++# AC_CHECK_LIB(termcap, readline) ++#fi + + # check for readline 2.1 + AC_CHECK_LIB(readline, rl_callback_handler_install, diff --git a/dev-lang/python/files/patches/python-2.4-add_portage_search_path.patch b/dev-lang/python/files/patches/python-2.4-add_portage_search_path.patch new file mode 100644 index 0000000..655eeed --- /dev/null +++ b/dev-lang/python/files/patches/python-2.4-add_portage_search_path.patch @@ -0,0 +1,11 @@ +--- Lib/site.py 2004-09-03 15:10:33.158488512 -0700 ++++ Lib/site.py 2004-09-03 15:10:24.101865328 -0700 +@@ -183,6 +183,7 @@ + "python" + sys.version[:3], + "site-packages"), + os.path.join(prefix, "lib", "site-python")] ++ sitedirs = [os.path.join(prefix,"lib","portage","pym")] + sitedirs + else: + sitedirs = [prefix, os.path.join(prefix, "lib", "site-packages")] + if sys.platform == 'darwin': + diff --git a/dev-lang/python/files/patches/python-2.4-disable_modules_and_ssl.patch b/dev-lang/python/files/patches/python-2.4-disable_modules_and_ssl.patch new file mode 100644 index 0000000..808d7cb --- /dev/null +++ b/dev-lang/python/files/patches/python-2.4-disable_modules_and_ssl.patch @@ -0,0 +1,36 @@ +--- setup.py.old 2003-11-01 19:23:48.495647848 +0000 ++++ setup.py 2003-11-01 19:24:16.044459792 +0000 +@@ -15,7 +15,14 @@ + from distutils.command.install_lib import install_lib + + # This global variable is used to hold the list of modules to be disabled. +-disabled_module_list = [] ++try: ++ disabled_module_list = os.environ["PYTHON_DISABLE_MODULES"].split() ++except KeyError: ++ disabled_module_list = [] ++try: ++ disable_ssl = os.environ["PYTHON_DISABLE_SSL"] ++except KeyError: ++ disable_ssl = 0 + + def add_dir_to_list(dirlist, dir): + """Add the directory 'dir' to the list 'dirlist' (at the front) if +@@ -240,6 +247,7 @@ + return sys.platform + + def detect_modules(self): ++ global disable_ssl + # Ensure that /usr/local is always used + add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') + add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') +@@ -451,7 +459,8 @@ + ] ) + + if (ssl_incs is not None and +- ssl_libs is not None): ++ ssl_libs is not None and ++ not disable_ssl): + exts.append( Extension('_ssl', ['_ssl.c'], + include_dirs = ssl_incs, + library_dirs = ssl_libs, diff --git a/dev-lang/python/files/patches/python-2.4-gentoo_py_dontcompile.patch b/dev-lang/python/files/patches/python-2.4-gentoo_py_dontcompile.patch new file mode 100644 index 0000000..9cd1c31 --- /dev/null +++ b/dev-lang/python/files/patches/python-2.4-gentoo_py_dontcompile.patch @@ -0,0 +1,18 @@ +--- Python-2.4/Python/import.c 2004-09-08 10:02:03.166032656 +0100 ++++ import.c 2004-09-08 10:02:57.423420120 +0100 +@@ -808,8 +808,12 @@ + write_compiled_module(PyCodeObject *co, char *cpathname, long mtime) + { + FILE *fp; +- +- fp = open_exclusive(cpathname); ++ char *py_dontcompile = getenv("PYTHON_DONTCOMPILE"); ++ ++ if (!py_dontcompile) ++ fp = open_exclusive(cpathname); ++ else ++ fp = NULL; + if (fp == NULL) { + if (Py_VerboseFlag) + PySys_WriteStderr( + diff --git a/dev-lang/python/files/patches/python-2.4.1-crosscompile.patch b/dev-lang/python/files/patches/python-2.4.1-crosscompile.patch new file mode 100644 index 0000000..6a78648 --- /dev/null +++ b/dev-lang/python/files/patches/python-2.4.1-crosscompile.patch @@ -0,0 +1,106 @@ +Ripped from OpenEmbedded + +--- Python-2.4c1/Makefile.pre.in ++++ Python-2.4c1/Makefile.pre.in +@@ -162,6 +162,7 @@ + + PYTHON= python$(EXE) + BUILDPYTHON= python$(BUILDEXE) ++HOSTPYTHON= $(BUILDPYTHON) + + # === Definitions added by makesetup === + +@@ -188,7 +189,7 @@ + ########################################################################## + # Parser + PGEN= Parser/pgen$(EXE) +- ++HOSTPGEN= $(PGEN)$(EXE) + POBJS= \ + Parser/acceler.o \ + Parser/grammar1.o \ +@@ -320,8 +321,8 @@ + # Build the shared modules + sharedmods: $(BUILDPYTHON) + case $$MAKEFLAGS in \ +- *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ +- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ ++ *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \ ++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \ + esac + + # buildno should really depend on something like LIBRARY_SRC +@@ -442,7 +443,7 @@ + + + $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) +- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) ++ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + + $(PGEN): $(PGENOBJS) + $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) +@@ -718,19 +719,19 @@ + done + $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + +@@ -825,7 +826,7 @@ + # Install the dynamically loadable modules + # This goes into $(exec_prefix) + sharedinstall: +- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ ++ $(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ +--- Python-2.4c1/setup.py ++++ Python-2.4c1/setup.py +@@ -206,6 +206,7 @@ + try: + imp.load_dynamic(ext.name, ext_filename) + except ImportError, why: ++ return + self.announce('*** WARNING: renaming "%s" since importing it' + ' failed: %s' % (ext.name, why), level=3) + assert not self.inplace +@@ -239,8 +240,6 @@ + + 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.include_dirs, '/usr/local/include') + + # Add paths to popular package managers on OS X/darwin + if sys.platform == "darwin": +@@ -260,12 +260,6 @@ + add_dir_to_list(self.compiler.library_dirs, '/opt/local/lib') + add_dir_to_list(self.compiler.include_dirs, '/opt/local/include') + +- if os.path.normpath(sys.prefix) != '/usr': +- add_dir_to_list(self.compiler.library_dirs, +- sysconfig.get_config_var("LIBDIR")) +- add_dir_to_list(self.compiler.include_dirs, +- sysconfig.get_config_var("INCLUDEDIR")) +- + try: + have_unicode = unicode + except NameError: diff --git a/dev-lang/python/files/patches/python-2.4.3-db4.patch b/dev-lang/python/files/patches/python-2.4.3-db4.patch new file mode 100644 index 0000000..0ad5b3b --- /dev/null +++ b/dev-lang/python/files/patches/python-2.4.3-db4.patch @@ -0,0 +1,38 @@ +--- setup.py.old 2006-04-02 11:33:32.000000000 +0200 ++++ setup.py 2006-04-02 11:34:57.000000000 +0200 +@@ -500,30 +500,13 @@ + # construct a list of paths to look for the header file in on + # top of the normal inc_dirs. + db_inc_paths = [ ++ '/usr/include/db4.3', ++ '/usr/include/db4.2', ++ '/usr/include/db4.1', + '/usr/include/db4', +- '/usr/local/include/db4', +- '/opt/sfw/include/db4', +- '/sw/include/db4', +- '/usr/include/db3', +- '/usr/local/include/db3', +- '/opt/sfw/include/db3', +- '/sw/include/db3', ++ '/usr/include/db3.2', ++ '/usr/include/db3', + ] +- # 4.x minor number specific paths +- for x in (0,1,2,3,4): +- 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) +- db_inc_paths.append('/usr/local/include/db4%d' % x) +- db_inc_paths.append('/pkg/db-4.%d/include' % x) +- db_inc_paths.append('/opt/db-4.%d/include' % x) +- # 3.x minor number specific paths +- for x in (2,3): +- db_inc_paths.append('/usr/include/db3%d' % x) +- db_inc_paths.append('/usr/local/BerkeleyDB.3.%d/include' % x) +- db_inc_paths.append('/usr/local/include/db3%d' % x) +- db_inc_paths.append('/pkg/db-3.%d/include' % x) +- db_inc_paths.append('/opt/db-3.%d/include' % x) + + db_ver_inc_map = {} + diff --git a/dev-lang/python/files/patches/python-2.4.3-gentoo_obsd-r1.patch b/dev-lang/python/files/patches/python-2.4.3-gentoo_obsd-r1.patch new file mode 100644 index 0000000..ed2e3c8 --- /dev/null +++ b/dev-lang/python/files/patches/python-2.4.3-gentoo_obsd-r1.patch @@ -0,0 +1,35 @@ +diff -Naur Python-2.4.3.orig/Include/Python.h Python-2.4.3/Include/Python.h +--- Python-2.4.3.orig/Include/Python.h 2006-05-04 14:20:30.000000000 +0000 ++++ Python-2.4.3/Include/Python.h 2006-05-04 14:21:26.000000000 +0000 +@@ -2,6 +2,11 @@ + #define Py_PYTHON_H + /* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */ + ++/* Required on Gentoo/OpenBSD */ ++#if defined(__OpenBSD__) ++#include <sys/types.h> ++#endif ++ + /* Include nearly all Python header files */ + + #include "patchlevel.h" +diff -Naur Python-2.4.3.orig/configure.in Python-2.4.3/configure.in +--- Python-2.4.3.orig/configure.in 2006-05-04 14:20:30.000000000 +0000 ++++ Python-2.4.3/configure.in 2006-05-04 14:23:22.000000000 +0000 +@@ -1528,9 +1528,16 @@ + + # only check for sem_ini if thread support is requested + if test "$with_threads" = "yes" -o -z "$with_threads"; then ++ case "$ac_sys_system" in ++ OpenBSD*) ++ LIBS="-pthread ${LIBS}" ++ ;; ++ *) + AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris + # posix4 on Solaris 2.6 + # pthread (first!) on Linux ++ ;; ++ esac + fi + + # check if we need libintl for locale functions diff --git a/dev-lang/python/files/python-config-2.5 b/dev-lang/python/files/python-config-2.5 new file mode 100644 index 0000000..6a799bc --- /dev/null +++ b/dev-lang/python/files/python-config-2.5 @@ -0,0 +1,11 @@ +#!/usr/bin/python + +import distutils.sysconfig +import sys + +pyver = sys.version[:3] +modlibs = distutils.sysconfig.get_config_var("MODLIBS") +print "-lpython%s -lm -L@PYTHON_LIBDIR@/python%s/config %s" % \ + (pyver, pyver, modlibs) + + diff --git a/dev-lang/python/files/python-updater-r1 b/dev-lang/python/files/python-updater-r1 new file mode 100644 index 0000000..b72a91a --- /dev/null +++ b/dev-lang/python/files/python-updater-r1 @@ -0,0 +1,322 @@ +#!/bin/sh +# +# A bit of hackery to update everything that is humanly possible +# that maybe related to an older version of python. This script can +# be run as many times as you like. It will log the results in +# /tmp/python-updater.log +# +# OLD_PY_VER = old python version we are upgrading from +# NEW_PY_VER = new python version we are upgrading to +# PKGS_EXCEPTIONS = packages that should NOT be re-emerged for any reason +# PKGS_MANUAL = packages that should be re-emerged even if they don't +# fit the criteria (eg. ones that have python compiled +# statically) - FIXME +# +# Runtime Variables: +# +# PKGS_TO_REMERGE = list of packages we deem to need re-emerging +# PKGS_OK = list of packages that should be merged without any problems +# PKGS_MISSING = list of packages that are installed, but cannot be merged +# because they have been pruned from portage +# PKGS_MASKED = list of packages that are installed, but masked. +# + +NEW_PY_VER=$(python -V 2>&1 | sed 's:Python \([0-9]*\.[0-9]*\).*$:\1:') + +PKGS_EXCEPTIONS="dev-lang/python sys-apps/portage" +PKGS_MANUAL="app-office/gnumeric app-office/dia x11-libs/vte" +LOGFILE="/var/log/python-updater.log" + +# portage variables +PKG_DBDIR=/var/db/pkg +PORTDIR=`portageq portdir` +PORTDIR_OVERLAYS=`portageq portdir_overlay` + +PRETEND=0 +PKGS_TO_REMERGE="" +PKGS_COUNT_REMERGE=0 +PORTAGE_PYTHON="/usr/bin/python" + +# load the gentoo-style info macros, but hack to get around +# it thinking this is an rc script +EBUILD="1" +source /sbin/functions.sh + + + +for old in 2.5 2.4 2.3 2.2 2.1; do + if [ "${old}" != "${NEW_PY_VER}" ]; then + if [ -e /usr/bin/python${old} ] ; then + OLD_PY_VER=${old} + break; + fi + fi +done + + +if [ -z "${OLD_PY_VER}" ] ; then + eerror "Can't determine any previous Python version(s)." + exit 1 +fi + + +# misc helper functions +eloginfo() { + einfo $* + DATESTRING=`date +"%Y/%m/%d %H:%M:%S"` + echo "${DATESTRING} - ${*}" >> ${LOGFILE} +} + +elogecho() { + echo -n " " + echo $* + DATESTRING=`date +"%Y/%m/%d %H:%M:%S"` + echo "${DATESTRING} - ${*}" >> ${LOGFILE} +} + +elogerr() { + eerror $* + DATESTRING=`date +"%Y/%m/%d %H:%M:%S"` + echo "${DATESTRING} ! ${*}" >> ${LOGFILE} +} + +elog() { + DATESTRING=`date +"%Y/%m/%d %H:%M:%S"` + echo "${DATESTRING} - ${*}" >> ${LOGFILE} +} + + +usage() { + echo "usage: python-updater [-h|-p|-o X.X|-n X.X]" + echo " -h help" + echo " -p pretend (don't do anything)" + echo " -o X.X set old python version to upgrade from [default: ${OLD_PY_VER}]" + echo " -n X.X set new python version to upgrade to [default: ${NEW_PY_VER}]" +} + +# +# Sanity check +# + +if [ -z "${PORTDIR}" ]; then + eerror "Unable to proceed. Can not find PORTDIR. Make sure the command:" + eerror " " + eerror " portageq portdir" + eerror " " + eerror "returns a value. If it doesn't, make sure you have updated to" + eerror "latest portage version." + eerror " " + eerror "Report bugs to http://bugs.gentoo.org/" + exit 1 +fi + +if [ ! -f ${LOGFILE} ]; then + if ! touch ${LOGFILE} 2>&1 > /dev/null; then + ewarn "Logging disabled due to permissions" + LOGFILE=/dev/null + fi +elif [ ! -w ${LOGFILE} -o ! -L ${LOGFILE} ]; then + ewarn "Logging disabled due to permissions" + LOGFILE=/dev/null +fi + +# +# +# Command Line Parsing +# +# +while [ -n "$1" ]; do + case "$1" in + -h) + usage + exit 0 + ;; + -p) + PRETEND=1 + ;; + -o) + shift + OLD_PY_VER="$1" + ;; + -n) + shift + NEW_PY_VER="$1" + ;; + *) + usage + echo "unrecognised option: $1" + ;; + esac + shift +done + +# +# Test where portage is, in python2.2 or somewhere else? +# +for py in /usr/bin/python /usr/bin/python${OLD_PY_VER} /usr/bin/python${NEW_PY_VER}; do + if ${py} -c "import portage"; then + PORTAGE_PYTHON=${py} + break; + fi +done + +# +# +# Find all packages that have installed something in +# /usr/lib/python${OLD_PY_VER} +# +# +OLD_MODULES_DIRS="/usr/lib/python${OLD_PY_VER} /usr/lib32/python${OLD_PY_VER} /usr/lib64/python${OLD_PY_VER}" +OLD_INCLUDE_DIR=/usr/include/python${OLD_PY_VER} + +eloginfo "Starting Python Updater from ${OLD_PY_VER} to ${NEW_PY_VER} :" +eloginfo "Searching for packages with files in ${OLD_MODULES_DIRS} .." + +# iterate thru all the installed package's contents +for content in `find ${PKG_DBDIR} -name CONTENTS`; do + # extract the category, package name and package version + CATPKGVER=$(echo ${content} | sed "s:${PKG_DBDIR}/\(.*\)/CONTENTS:\1:") + + # exclude packages that are an exception, like portage and python itself. + exception=0 + for exp in ${PKGS_EXCEPTIONS}; do + if [ -n "$(echo ${CATPKGVER} | grep ${exp})" ]; then + exception=1 + break; + fi + done + + if [ ${exception} = 1 ]; then + continue; + fi + + for OLD_MODULES_DIR in ${OLD_MODULES_DIRS}; do + if fgrep "${OLD_MODULES_DIR}" ${content} > /dev/null; then + PKGS_TO_REMERGE="${PKGS_TO_REMERGE} ${CATPKGVER}" + elogecho "Adding to list: ${CATPKGVER}" + elif fgrep "${OLD_INCLUDE_DIR}" ${content} > /dev/null; then + PKGS_TO_REMERGE="${PKGS_TO_REMERGE} ${CATPKGVER}" + fi + done +done + +# now we have to do each emerge seperately because if an installed version +# does not have the corresponding ebuild in portage, then it will bail. + +eloginfo "Calculating Upgrade Package List .." + +PKGS_OK="" +PKGS_MASKED="" +PKGS_MISSING="" + +MASKED_STRING="been masked" +MISSING_STRING="there are no masked or unmasked ebuilds to satisfy" + +for pkg in ${PKGS_TO_REMERGE}; do + emerge_output="$(emerge -p \=$pkg 2>&1)" + if $(echo "${emerge_output}" | grep "${MASKED_STRING}" > /dev/null); then + PKGS_MASKED="${PKGS_MASKED} $pkg" + elogecho "$pkg is masked" + elif $(echo "${emerge_output}" | grep "${MISSING_STRING}" > /dev/null); then + PKGS_MISSING="${PKGS_MISSING} $pkg" + elogecho "$pkg is missing from portage" + else + PKGS_OK="${PKGS_OK} $pkg" + PKGS_COUNT_REMERGE=$((PKGS_COUNT_REMERGE + 1)) + fi +done + +# +# Use my super dumb package reordering algorithm that works most of the time +# + +eloginfo "Re-ordering packages to merge .." + +PKGS_OK_SORTED="$(${PORTAGE_PYTHON} ${PORTDIR}/dev-lang/python/files/depreorder-topsort.py ${PKGS_OK} | xargs)" + +eloginfo "Preparing to merge these packages in this order:" +for pkg in $PKGS_OK_SORTED; do + elogecho "$pkg" +done + +# we emerge each package seperately to ensure we know exactly which ones might +# cause an error, and then report it at the end + +COUNT=1 +PKGS_FAILED="" +if [ "${PRETEND}" != "1" ]; then + for pkg in ${PKGS_OK_SORTED}; do + eloginfo "Starting to merge ($COUNT/$PKGS_COUNT_REMERGE) $pkg .." + if ! emerge --oneshot --nodeps =$pkg; then + PKGS_FAILED="${PKGS_FAILED} $pkg" + elogerr "Failed merging $pkg ($COUNT/$PKGS_COUNT_REMERGE)!" + fi + COUNT=$((COUNT+1)) + done +fi + +# final output stuff +OUTPUT_PKGS_MASKED="" +for pkg in ${PKGS_MASKED}; do OUTPUT_PKGS_MASKED="${OUTPUT_PKGS_MASKED} \=$pkg"; done +OUTPUT_PKGS_MISSING="" +for pkg in ${PKGS_MISSING}; do OUTPUT_PKGS_MISSING="${OUTPUT_PKGS_MISSING} $pkg"; done +OUTPUT_PKGS_FAILED="" +for pkg in ${PKGS_FAILED}; do OUTPUT_PKGS_FAILED="${OUTPUT_PKGS_FAILED} \=$pkg"; done + +if [ -n "${PKGS_FAILED}" -o -n "${PKGS_MISSING}" -o -n "${PKGS_MASKED}" ]; then + echo + ewarn "************************************************************" + ewarn "* Packages that still need to be manually emerged : *" + ewarn "************************************************************" + if [ -n "${OUTPUT_PKGS_MASKED}" ]; then + echo + ewarn " Masked Packages:" + ewarn " ----------------" + ewarn " Unmask the following packages (at your own risk) and " + ewarn " emerge them using this command after removing the '-p'" + ewarn " parameter." + echo + ewarn " emerge -p ${OUTPUT_PKGS_MASKED}" + echo + fi + if [ -n "${OUTPUT_PKGS_MISSING}" ]; then + echo + ewarn " Missing Packages:" + ewarn " -----------------" + ewarn " These packages need to be updated because their versions do" + ewarn " not exist in portage anymore." + echo + for x in ${OUTPUT_PKGS_MISSING}; do + echo " ${x}" + done + fi + if [ -n "${OUTPUT_PKGS_FAILED}" ]; then + echo + ewarn " Failed Packaged:" + ewarn " ----------------" + ewarn " These packages have failed and need to be re-emerged again." + ewarn " Alternatively, try re-running this script again to see if it" + ewarn " can be fixed." + echo + ewarn " emerge -p ${OUTPUT_PKGS_FAILED}" + echo + fi + + elog "Python update completed with errors." + elog "Masked Packages:" + for x in ${PKGS_MASKED}; do + elog $x + done + elog "Missing Packages:" + for x in ${PKGS_MISSING}; do + elog $x + done + elog "Failed Packages:" + for x in ${PKGS_FAILED}; do + elog $x + done + elog "Update script completed." +else + eloginfo "Python update completed successfully." +fi + diff --git a/dev-lang/python/python-2.5_beta3.ebuild b/dev-lang/python/python-2.5_beta3.ebuild new file mode 100644 index 0000000..4776b5e --- /dev/null +++ b/dev-lang/python/python-2.5_beta3.ebuild @@ -0,0 +1,310 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.4.3-r1.ebuild,v 1.12 2006/07/20 17:25:17 blubb Exp $ + +# NOTE about python-portage interactions : +# - Do not add a pkg_setup() check for a certain version of portage +# in dev-lang/python. It _WILL_ stop people installing from +# Gentoo 1.4 images. + +inherit eutils autotools flag-o-matic python multilib versionator toolchain-funcs + +# we need this so that we don't depends on python.eclass +PYVER_MAJOR=$(get_major_version) +PYVER_MINOR=$(get_version_component_range 2) +PYVER="${PYVER_MAJOR}.${PYVER_MINOR}" + +MY_PV=${PV/_beta/b} +MY_P="Python-${MY_PV}" +S="${WORKDIR}/${MY_P}" + +DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." +HOMEPAGE="http://www.python.org/" +SRC_URI="http://www.python.org/ftp/python/${PYVER}/${MY_P}.tar.bz2" + +LICENSE="PSF-2.2" +SLOT="2.5" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="ncurses gdbm ssl readline tk berkdb bootstrap ipv6 build ucs2 sqlite doc nocxx" + +# NOTE: dev-python/{elementtree,celementtree,pysqlite,ctypes} +# included into python-2.5 proper. - liquidx +# NOTE: dev-python/cjkcodecs +# included into python-2.4 proper. - liquidx + +DEPEND=">=sys-libs/zlib-1.1.3 + !dev-python/cjkcodecs + !dev-python/elementtree + !dev-python/celementtree + !dev-python/ctypes + !build? ( + sqlite? ( !=dev-python/pysqlite-2* + >=dev-db/sqlite-3 ) + tk? ( >=dev-lang/tk-8.0 ) + ncurses? ( >=sys-libs/ncurses-5.2 + readline? ( >=sys-libs/readline-4.1 ) ) + berkdb? ( >=sys-libs/db-3.1 ) + gdbm? ( sys-libs/gdbm ) + ssl? ( dev-libs/openssl ) + doc? ( =dev-python/python-docs-${PV}* ) + dev-libs/expat + )" + +# NOTE: The dev-python/python-fchksum RDEPEND is needed so that this python +# provides the functionality expected from previous pythons. + +# NOTE: python-fchksum is only a RDEPEND and not a DEPEND since we don't need +# it to compile python. We just need to ensure that when we install +# python, we definitely have fchksum support. - liquidx + +# NOTE: changed RDEPEND to PDEPEND to resolve bug 88777. - kloeri + +PDEPEND="${DEPEND} dev-python/python-fchksum" + +PROVIDE="virtual/python" + +# confcache breaks a dlopen check, causing python to not support +# loading .so files - marienz +RESTRICT="confcache" + +src_unpack() { + unpack ${A} + cd ${S} + + # unnecessary termcap dep in readline (#79013) + epatch "${FILESDIR}/patches/2.5-readline.patch" + # db4.2 support + epatch "${FILESDIR}/patches/${PN}-2.4.3-db4.patch" + + # adds support for PYTHON_DONTCOMPILE shell environment to + # supress automatic generation of .pyc and .pyo files - liquidx (08 Oct 03) + epatch "${FILESDIR}/patches/${PN}-2.4-gentoo_py_dontcompile.patch" + epatch "${FILESDIR}/patches/${PN}-2.4-disable_modules_and_ssl.patch" + epatch "${FILESDIR}/patches/2.5-mimetypes_gentoo_apache.patch" + + # prepends /usr/lib/portage/pym to sys.path + epatch "${FILESDIR}/patches/${PN}-2.4-add_portage_search_path.patch" + + epatch "${FILESDIR}/patches/2.5-libdir.patch" + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + Lib/distutils/command/install.py \ + Lib/distutils/sysconfig.py \ + Lib/site.py \ + Makefile.pre.in \ + Modules/Setup.dist \ + Modules/getpath.c \ + setup.py || die + + # fix os.utime() on hppa. utimes it not supported but unfortunately reported as working - gmsoft (22 May 04) + # PLEASE LEAVE THIS FIX FOR NEXT VERSIONS AS IT'S A CRITICAL FIX !!! + [ "${ARCH}" = "hppa" ] && sed -e 's/utimes //' -i ${S}/configure + + if tc-is-cross-compiler ; then + epatch "${FILESDIR}/patches/${PN}-2.4.1-crosscompile.patch" + fi + + # fix gentoo/obsd problems (bug 117261) + epatch "${FILESDIR}/patches/${PN}-2.4.3-gentoo_obsd-r1.patch" + + eautoreconf +} + +src_configure() { + # disable extraneous modules with extra dependencies + if use build; then + export PYTHON_DISABLE_MODULES="readline pyexpat dbm gdbm bsddb _curses _curses_panel _tkinter _sqlite3" + export PYTHON_DISABLE_SSL=1 + else + use gdbm \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} gdbm" + use berkdb \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} dbm bsddb" + use readline \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} readline" + use tk \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _tkinter" + use ncurses \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _curses _curses_panel" + use sqlite \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _sqlite3" + use ssl \ + || export PYTHON_DISABLE_SSL=1 + export PYTHON_DISABLE_MODULES + echo $PYTHON_DISABLE_MODULES + fi +} + +src_compile() { + filter-flags -malign-double + + # Seems to no longer be necessary + #[ "${ARCH}" = "amd64" ] && append-flags -fPIC + [ "${ARCH}" = "alpha" ] && append-flags -fPIC + + # http://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flag -O3; then + is-flag -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + export OPT="${CFLAGS}" + + local myconf + #if we are creating a new build image, we remove the dependency on g++ + if use build && ! use bootstrap || use nocxx ; then + myconf="--with-cxx=no" + fi + + # super-secret switch. don't use this unless you know what you're + # doing. enabling UCS2 support will break your existing python + # modules + use ucs2 \ + && myconf="${myconf} --enable-unicode=ucs2" \ + || myconf="${myconf} --enable-unicode=ucs4" + + src_configure + + if tc-is-cross-compiler ; then + OPT="-O1" CFLAGS="" LDFLAGS="" CC="" \ + ./configure --with-cxx=no || die "cross-configure failed" + emake python Parser/pgen || die "cross-make failed" + mv python hostpython + mv Parser/pgen Parser/hostpgen + make distclean + sed -i \ + -e '/^HOSTPYTHON/s:=.*:=./hostpython:' \ + -e '/^HOSTPGEN/s:=.*:=./Parser/hostpgen:' \ + Makefile.pre.in || die + fi + + # export CXX so it ends up in /usr/lib/python2.x/config/Makefile + tc-export CXX + # set LINKCC to prevent python from being linked to libstdc++.so + export LINKCC="\$(PURIFY) \$(CC)" + econf \ + --with-fpectl \ + --enable-shared \ + `use_enable ipv6` \ + --infodir='${prefix}'/share/info \ + --mandir='${prefix}'/share/man \ + --with-threads \ + --with-libc='' \ + ${myconf} || die + emake || die "Parallel make failed" +} + +src_install() { + dodir /usr + src_configure + make DESTDIR="${D}" altinstall || die + + # install our own custom python-config + exeinto /usr/bin + newexe ${FILESDIR}/python-config-${PYVER} python-config + + # Use correct libdir in python-config + dosed "s:/usr/lib/:/usr/$(get_libdir)/:" /usr/bin/python-config + + # The stuff below this line extends from 2.1, and should be deprecated + # in 2.3, or possibly can wait till 2.4 + + # seems like the build do not install Makefile.pre.in anymore + # it probably shouldn't - use DistUtils, people! + insinto /usr/$(get_libdir)/python${PYVER}/config + doins ${S}/Makefile.pre.in + + # While we're working on the config stuff... Let's fix the OPT var + # so that it doesn't have any opts listed in it. Prevents the problem + # with compiling things with conflicting opts later. + dosed -e 's:^OPT=.*:OPT=-DNDEBUG:' \ + /usr/$(get_libdir)/python${PYVER}/config/Makefile + + # install python-updater in /usr/sbin + #dosbin ${FILESDIR}/python-updater + newsbin ${FILESDIR}/python-updater-r1 python-updater + + if use build ; then + rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/{test,encodings,email,lib-tk,bsddb/test} + else + use elibc_uclibc && rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/{test,bsddb/test} + use berkdb || rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/bsddb + use tk || rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/lib-tk + fi + + prep_ml_includes usr/include/python${PYVER} +} + +pkg_postrm() { + python_makesym + python_mod_cleanup /usr/lib/python${PYVER} + [[ "$(get_libdir)" == "lib" ]] || python_mod_cleanup /usr/$(get_libdir)/python${PYVER} +} + +pkg_postinst() { + local myroot + myroot=$(echo $ROOT | sed 's:/$::') + + python_makesym + python_mod_optimize + python_mod_optimize -x site-packages -x test ${myroot}/usr/lib/python${PYVER} + [[ "$(get_libdir)" == "lib" ]] || python_mod_optimize -x site-packages -x test ${myroot}/usr/$(get_libdir)/python${PYVER} + + + # workaround possible python-upgrade-breaks-portage situation + if [ ! -f ${myroot}/usr/lib/portage/pym/portage.py ]; then + if [ -f ${myroot}/usr/lib/python2.3/site-packages/portage.py ]; then + einfo "Working around possible python-portage upgrade breakage" + mkdir -p ${myroot}/usr/lib/portage/pym + cp ${myroot}/usr/lib/python2.4/site-packages/{portage,xpak,output,cvstree,getbinpkg,emergehelp,dispatch_conf}.py ${myroot}/usr/lib/portage/pym + python_mod_optimize ${myroot}/usr/lib/portage/pym + fi + fi + + # try to upgrade to new python automatically - something to think about + #if [ "${ROOT}" = "/" ]; then + # /usr/sbin/python-updater + #fi + + echo + ewarn + ewarn "If you have just upgraded from an older version of python you will need to run:" + ewarn + ewarn "/usr/sbin/python-updater" + ewarn + ewarn "This will automatically rebuild all the python dependent modules" + ewarn "to run with python-${PYVER}." + ewarn + ewarn "Your original Python is still installed and can be accessed via" + ewarn "/usr/bin/python2.x." + ewarn + ebeep 5 +} + +src_test() { + # PYTHON_DONTCOMPILE=1 breaks test_import + unset PYTHON_DONTCOMPILE + + #skip all tests that fail during emerge but pass without emerge: + #(See bug# 67970) + local skip_tests="distutils global mimetools minidom mmap strptime subprocess syntax tcl time urllib urllib2 webbrowser" + + for test in ${skip_tests} ; do + mv ${S}/Lib/test/test_${test}.py ${T} + done + + # rerun failed tests in verbose mode (regrtest -w) + EXTRATESTOPTS="-w" make test || die "make test failed" + + for test in ${skip_tests} ; do + mv ${T}/test_${test}.py ${S}/Lib/test/test_${test}.py + done + + einfo "Portage skipped the following tests which aren't able to run from emerge:" + for test in ${skip_tests} ; do + einfo "test_${test}.py" + done + + einfo "If you'd like to run them, you may:" + einfo "cd /usr/lib/python${PYVER}/test" + einfo "and run the tests separately." +} |