diff options
author | Sebastien Fabbro <bicatali@gentoo.org> | 2007-06-06 21:27:52 +0000 |
---|---|---|
committer | Sebastien Fabbro <bicatali@gentoo.org> | 2007-06-06 21:27:52 +0000 |
commit | d9ba2f6281528e036761ee8878f6d6822fa770d3 (patch) | |
tree | 79fe794158d1f59fff0d5bf0ff53d9d07806dea3 /sci-libs | |
parent | alpha/ia64/x86 stable wrt #181017 (diff) | |
download | historical-d9ba2f6281528e036761ee8878f6d6822fa770d3.tar.gz historical-d9ba2f6281528e036761ee8878f6d6822fa770d3.tar.bz2 historical-d9ba2f6281528e036761ee8878f6d6822fa770d3.zip |
Revision including a bunch of patches from scipy-svn. Now also includes
sandbox modules with a use flag. Revert to fftw-2.* for fftw, faster for
complex. Added a patch to enable numpy-1.0.3 API changes.
Package-Manager: portage-2.1.2.7
Diffstat (limited to 'sci-libs')
-rw-r--r-- | sci-libs/scipy/ChangeLog | 15 | ||||
-rw-r--r-- | sci-libs/scipy/Manifest | 65 | ||||
-rw-r--r-- | sci-libs/scipy/files/digest-scipy-0.5.2-r2 | 3 | ||||
-rw-r--r-- | sci-libs/scipy/files/enabled_packages.txt | 25 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-bspline.patch | 29 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-getpath.patch | 108 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-minpack.patch | 10 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-mio.patch | 524 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-montecarlo-test.patch | 11 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-nonexisting.patch | 42 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-randomkit.patch | 552 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-signals.patch | 19 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-umfpack.patch | 28 | ||||
-rw-r--r-- | sci-libs/scipy/files/scipy-0.5.2-viewer.patch | 41 | ||||
-rw-r--r-- | sci-libs/scipy/scipy-0.5.2-r2.ebuild | 148 |
15 files changed, 1612 insertions, 8 deletions
diff --git a/sci-libs/scipy/ChangeLog b/sci-libs/scipy/ChangeLog index ab3a760c0d27..89167d3ea81a 100644 --- a/sci-libs/scipy/ChangeLog +++ b/sci-libs/scipy/ChangeLog @@ -1,6 +1,19 @@ # ChangeLog for sci-libs/scipy # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-libs/scipy/ChangeLog,v 1.18 2007/06/04 13:51:25 bicatali Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-libs/scipy/ChangeLog,v 1.19 2007/06/06 21:27:52 bicatali Exp $ + +*scipy-0.5.2-r2 (06 Jun 2007) + + 06 Jun 2007; Sébastien Fabbro <bicatali@gentoo.org> + +files/scipy-0.5.2-getpath.patch, +files/scipy-0.5.2-minpack.patch, + +files/scipy-0.5.2-mio.patch, +files/scipy-0.5.2-montecarlo-test.patch, + +files/scipy-0.5.2-nonexisting.patch, +files/scipy-0.5.2-randomkit.patch, + +files/scipy-0.5.2-signals.patch, +files/scipy-0.5.2-umfpack.patch, + +files/scipy-0.5.2-viewer.patch, +files/enabled_packages.txt, + +files/scipy-0.5.2-bspline.patch +scipy-0.5.2-r2.ebuild: + Revision including a bunch of patches from scipy-svn. Now also includes + sandbox modules with a use flag. Revert to fftw-2.* for fftw, faster for + complex. Added a patch to enable numpy-1.0.3 API changes. 04 Jun 2007; Sébastien Fabbro <bicatali@gentoo.org> -files/system_info.diff, -scipy-0.4.9.ebuild, -scipy-0.5.1.ebuild: diff --git a/sci-libs/scipy/Manifest b/sci-libs/scipy/Manifest index 27b914353000..46caa6301143 100644 --- a/sci-libs/scipy/Manifest +++ b/sci-libs/scipy/Manifest @@ -1,19 +1,67 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 +AUX enabled_packages.txt 181 RMD160 b9a6c1d710f286eacd6741dedffe6e134768b235 SHA1 463eeb53dc178753c2bb577757ab00628cc2c10e SHA256 ee4c1664e91ef92bea34ffbd2aa88d957e88f1c86f13e41caeace8e982272223 +MD5 d6458d50d1751e316e70c1c143762d30 files/enabled_packages.txt 181 +RMD160 b9a6c1d710f286eacd6741dedffe6e134768b235 files/enabled_packages.txt 181 +SHA256 ee4c1664e91ef92bea34ffbd2aa88d957e88f1c86f13e41caeace8e982272223 files/enabled_packages.txt 181 +AUX scipy-0.5.2-bspline.patch 698 RMD160 6ff37711eb52f0ec03d11c2f5627b1ac1b01b7ce SHA1 8a1dc19931fa306af8077dedb875cfb3fa848b01 SHA256 d47e91cceca2d0fb92869f9b8bbed62c7f6a94d31db358919da07d5ed8eb448b +MD5 3b1cb851da530f138576d5ff78a0d2b5 files/scipy-0.5.2-bspline.patch 698 +RMD160 6ff37711eb52f0ec03d11c2f5627b1ac1b01b7ce files/scipy-0.5.2-bspline.patch 698 +SHA256 d47e91cceca2d0fb92869f9b8bbed62c7f6a94d31db358919da07d5ed8eb448b files/scipy-0.5.2-bspline.patch 698 +AUX scipy-0.5.2-getpath.patch 4604 RMD160 b7338ca1b88286387545420db5711aa3419d2e16 SHA1 5b63bdfc4c4bdcdf519e624be30f88c55a2387b4 SHA256 d2cca10b9df1372d024249520e757010b27e6abe46e9d00be336f7fa7d883ef1 +MD5 e2ec5ae9fde88a6d60ea009902845049 files/scipy-0.5.2-getpath.patch 4604 +RMD160 b7338ca1b88286387545420db5711aa3419d2e16 files/scipy-0.5.2-getpath.patch 4604 +SHA256 d2cca10b9df1372d024249520e757010b27e6abe46e9d00be336f7fa7d883ef1 files/scipy-0.5.2-getpath.patch 4604 +AUX scipy-0.5.2-minpack.patch 348 RMD160 b0922386d3d888cb012afff3811a5248ab73bcc7 SHA1 d25b8aaf30bc01c44c23f674dc5fc73dd2388dce SHA256 fe1d9297b57062f27e21df450c1b9ed2ddcb9e1e5030b04ee8a860d265450fc6 +MD5 d72e80a7712eb70829e485f74d390c2d files/scipy-0.5.2-minpack.patch 348 +RMD160 b0922386d3d888cb012afff3811a5248ab73bcc7 files/scipy-0.5.2-minpack.patch 348 +SHA256 fe1d9297b57062f27e21df450c1b9ed2ddcb9e1e5030b04ee8a860d265450fc6 files/scipy-0.5.2-minpack.patch 348 +AUX scipy-0.5.2-mio.patch 19474 RMD160 7224a4073767ad911fcaaa2fb21af3265bfa9951 SHA1 412ed7b8a77df50f0ee497feb3739a11759784e8 SHA256 b5825dfb108a757e10f4ac579af9e89b6a2f11615c8fc7dfd5e0481643f3e3f6 +MD5 126123f9a51bc2052eef5e3ba595a565 files/scipy-0.5.2-mio.patch 19474 +RMD160 7224a4073767ad911fcaaa2fb21af3265bfa9951 files/scipy-0.5.2-mio.patch 19474 +SHA256 b5825dfb108a757e10f4ac579af9e89b6a2f11615c8fc7dfd5e0481643f3e3f6 files/scipy-0.5.2-mio.patch 19474 +AUX scipy-0.5.2-montecarlo-test.patch 457 RMD160 bbe5b0bf3c997a6fa1fe50e1ff0c15ddfe846107 SHA1 73064a43b95ea783ea528657c41d94157cf119bd SHA256 35e1c50a1fbe9e1c3c6cba52f457f6b8f058c37234963b9fe2bb7c5316f2fa82 +MD5 8673ad54b40cdf9e0f9393a6be010a36 files/scipy-0.5.2-montecarlo-test.patch 457 +RMD160 bbe5b0bf3c997a6fa1fe50e1ff0c15ddfe846107 files/scipy-0.5.2-montecarlo-test.patch 457 +SHA256 35e1c50a1fbe9e1c3c6cba52f457f6b8f058c37234963b9fe2bb7c5316f2fa82 files/scipy-0.5.2-montecarlo-test.patch 457 +AUX scipy-0.5.2-nonexisting.patch 1468 RMD160 d2173785086aadf46b4ee24517c7d384d7cb2e09 SHA1 c0b1bfb174e538a0d387b1030deee50797ab0a48 SHA256 64db61d450ce47479126ffc6108ecc396a8729f9b78dbb8486e869b1fda91e7e +MD5 5952ef8546d131732d690671f5336a79 files/scipy-0.5.2-nonexisting.patch 1468 +RMD160 d2173785086aadf46b4ee24517c7d384d7cb2e09 files/scipy-0.5.2-nonexisting.patch 1468 +SHA256 64db61d450ce47479126ffc6108ecc396a8729f9b78dbb8486e869b1fda91e7e files/scipy-0.5.2-nonexisting.patch 1468 +AUX scipy-0.5.2-randomkit.patch 15275 RMD160 45cfba2ffadca1fd169388b24f1676649ec9e644 SHA1 c2c2fb6a0cc57f8070727a2d278aebbcae274880 SHA256 1b7e1245746f5d77f104c816113fb788572364f820493dfab860aa619e312c00 +MD5 143afb7ee9ded60020f77334fa5553f1 files/scipy-0.5.2-randomkit.patch 15275 +RMD160 45cfba2ffadca1fd169388b24f1676649ec9e644 files/scipy-0.5.2-randomkit.patch 15275 +SHA256 1b7e1245746f5d77f104c816113fb788572364f820493dfab860aa619e312c00 files/scipy-0.5.2-randomkit.patch 15275 +AUX scipy-0.5.2-signals.patch 771 RMD160 df127aa59f8f6fa26037f7b3848388b6282e64d2 SHA1 868b50a711d51237df4c923e82dc0dd7f37086c0 SHA256 acb3b45b77c10e15885451bdca2bf3754f961443a016297ce3cab60f3540c050 +MD5 1656f03cf849790b15eb9570f6f50137 files/scipy-0.5.2-signals.patch 771 +RMD160 df127aa59f8f6fa26037f7b3848388b6282e64d2 files/scipy-0.5.2-signals.patch 771 +SHA256 acb3b45b77c10e15885451bdca2bf3754f961443a016297ce3cab60f3540c050 files/scipy-0.5.2-signals.patch 771 +AUX scipy-0.5.2-umfpack.patch 846 RMD160 b2331df676061e586c07910cd5b0d90d6f34420c SHA1 a670e1c6987a0806ce66f46082029dbaae4521dc SHA256 bd00b3c327434ab65c555f288093b76c01dfb371ecc5b72dabc8c330d2d8bb53 +MD5 8b702e4285632068149b8b04081df9f4 files/scipy-0.5.2-umfpack.patch 846 +RMD160 b2331df676061e586c07910cd5b0d90d6f34420c files/scipy-0.5.2-umfpack.patch 846 +SHA256 bd00b3c327434ab65c555f288093b76c01dfb371ecc5b72dabc8c330d2d8bb53 files/scipy-0.5.2-umfpack.patch 846 +AUX scipy-0.5.2-viewer.patch 1273 RMD160 7401d0ef5668f51ed83b62fa6a01a9e9b88397ae SHA1 fbc7b09b55f9b28436f31c45b70f71814d207bf3 SHA256 c02d4101693ea9f8ddd7f7aeae0e5d7aa6ad14f407617dc5e5ec14448c3155cc +MD5 9b6e6fab17b7ebe5dbd27d10479302a4 files/scipy-0.5.2-viewer.patch 1273 +RMD160 7401d0ef5668f51ed83b62fa6a01a9e9b88397ae files/scipy-0.5.2-viewer.patch 1273 +SHA256 c02d4101693ea9f8ddd7f7aeae0e5d7aa6ad14f407617dc5e5ec14448c3155cc files/scipy-0.5.2-viewer.patch 1273 DIST scipy-0.5.2.tar.gz 6362164 RMD160 fa945185df7fc48e03bafdddeaaea72a8eb4914d SHA1 879cfdbb2b2f7a8616737f828cd01790d222a636 SHA256 38e42155d3445699f28c36facdaa82200d8e017b4ca608f95f6d928065dc03ed EBUILD scipy-0.5.2-r1.ebuild 2551 RMD160 beb1b81030c5958ec316b8b01f88eaed829d768c SHA1 59b313b4e554524da9ffe9436ce47e1fee88213d SHA256 7a1216d385a2029074c015d87204766e29e8fef38218ba0d2d9d6ac4434302f3 MD5 0b074c8f5329a56fe76d51078d004caa scipy-0.5.2-r1.ebuild 2551 RMD160 beb1b81030c5958ec316b8b01f88eaed829d768c scipy-0.5.2-r1.ebuild 2551 SHA256 7a1216d385a2029074c015d87204766e29e8fef38218ba0d2d9d6ac4434302f3 scipy-0.5.2-r1.ebuild 2551 +EBUILD scipy-0.5.2-r2.ebuild 3927 RMD160 016098b67750187d71964c17e403db7266a4a009 SHA1 679588f2a620f5fe705f068cd8685ce466771e6c SHA256 ef4124e2d0f148bcf5a9d5fbf5d9d977ee1c0a753c24180be03e7475c791740e +MD5 948a1fd21c80299f351baa096825b312 scipy-0.5.2-r2.ebuild 3927 +RMD160 016098b67750187d71964c17e403db7266a4a009 scipy-0.5.2-r2.ebuild 3927 +SHA256 ef4124e2d0f148bcf5a9d5fbf5d9d977ee1c0a753c24180be03e7475c791740e scipy-0.5.2-r2.ebuild 3927 EBUILD scipy-0.5.2.ebuild 2290 RMD160 195b7e4a0a7012b2abdf5dd41d850fa017a22d09 SHA1 134f2fb73fbdac7059ded08833c980a38de3c5d0 SHA256 2da67d20e5c0b6bbd05df9d5c6fb267b4d070ff91fd9ab421444ca9b0626d953 MD5 bd429029b1626be0f4d7d811779ace89 scipy-0.5.2.ebuild 2290 RMD160 195b7e4a0a7012b2abdf5dd41d850fa017a22d09 scipy-0.5.2.ebuild 2290 SHA256 2da67d20e5c0b6bbd05df9d5c6fb267b4d070ff91fd9ab421444ca9b0626d953 scipy-0.5.2.ebuild 2290 -MISC ChangeLog 3516 RMD160 24e04865c3f01a367f5eae3d7caff8e8e50a08c1 SHA1 3e974cedb4eea6edf1c768f5294a6679f8590508 SHA256 75f53f5d394c42e5990e8373b1224ba75f6b1f92e996d106593f38ed92eb53f9 -MD5 dabd9af725dc4629e436114f62f41bcc ChangeLog 3516 -RMD160 24e04865c3f01a367f5eae3d7caff8e8e50a08c1 ChangeLog 3516 -SHA256 75f53f5d394c42e5990e8373b1224ba75f6b1f92e996d106593f38ed92eb53f9 ChangeLog 3516 +MISC ChangeLog 4225 RMD160 f357d4a923cf68f228756f3e7c968e06803bc47f SHA1 6048b183dd32fdd2d4f5b03d2a857eed39563061 SHA256 6e698b9766546a8e9c833eb35153c59ee4fbaacfa7e8f134ea6d64ed07ec708d +MD5 9169fa54b5a08b6c033a58efca08b040 ChangeLog 4225 +RMD160 f357d4a923cf68f228756f3e7c968e06803bc47f ChangeLog 4225 +SHA256 6e698b9766546a8e9c833eb35153c59ee4fbaacfa7e8f134ea6d64ed07ec708d ChangeLog 4225 MISC metadata.xml 577 RMD160 c9ddccf05c22b5460372ef1c47a91e3441ec6480 SHA1 fb55340f9fbf7877f5874cabcfbac9ea19f849bd SHA256 768246bd968275941fcf6cb3b9d084fdc45a2ab10d257709f644fe87c69c3b88 MD5 27ccaa063e4ff212f9a4f5e84e1d7386 metadata.xml 577 RMD160 c9ddccf05c22b5460372ef1c47a91e3441ec6480 metadata.xml 577 @@ -24,10 +72,13 @@ SHA256 05960916e457668d7d2c27fc089cefb7fa07abc02476cd812f9e6b5c0267f99e files/di MD5 a0f199713808244386c7eac017f8179d files/digest-scipy-0.5.2-r1 238 RMD160 45b26148c69c7694d10e9da1e25588098755792b files/digest-scipy-0.5.2-r1 238 SHA256 05960916e457668d7d2c27fc089cefb7fa07abc02476cd812f9e6b5c0267f99e files/digest-scipy-0.5.2-r1 238 +MD5 a0f199713808244386c7eac017f8179d files/digest-scipy-0.5.2-r2 238 +RMD160 45b26148c69c7694d10e9da1e25588098755792b files/digest-scipy-0.5.2-r2 238 +SHA256 05960916e457668d7d2c27fc089cefb7fa07abc02476cd812f9e6b5c0267f99e files/digest-scipy-0.5.2-r2 238 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) -iD8DBQFGZBjj1ycZbhPLE2ARAgg4AJ4/0LcY8Zo+uytvEftPmyoAk1w16QCgnCXA -hiA0B8PRgof4oaqTf70/20Y= -=IAZ5 +iD8DBQFGZybf1ycZbhPLE2ARAlBfAJoC2tG7dpNhOqnyHvXuC4Wats05zQCeLU8R +5fHSqCJNaMpq0GEeVqWoaJw= +=RQ0s -----END PGP SIGNATURE----- diff --git a/sci-libs/scipy/files/digest-scipy-0.5.2-r2 b/sci-libs/scipy/files/digest-scipy-0.5.2-r2 new file mode 100644 index 000000000000..89b1226c8e1b --- /dev/null +++ b/sci-libs/scipy/files/digest-scipy-0.5.2-r2 @@ -0,0 +1,3 @@ +MD5 e24387ac7f9e589816364db7c64c3185 scipy-0.5.2.tar.gz 6362164 +RMD160 fa945185df7fc48e03bafdddeaaea72a8eb4914d scipy-0.5.2.tar.gz 6362164 +SHA256 38e42155d3445699f28c36facdaa82200d8e017b4ca608f95f6d928065dc03ed scipy-0.5.2.tar.gz 6362164 diff --git a/sci-libs/scipy/files/enabled_packages.txt b/sci-libs/scipy/files/enabled_packages.txt new file mode 100644 index 000000000000..9f1a335d9055 --- /dev/null +++ b/sci-libs/scipy/files/enabled_packages.txt @@ -0,0 +1,25 @@ +ann +arpack +arraysetops +buildgrid +constants +cow +delaunay +exmplpackage +fdfpack +ga +gplt +image +models +montecarlo +netcdf +newoptimize +numexpr +plt +pyem +rkern +spline +stats +svm +umfpack +xplt diff --git a/sci-libs/scipy/files/scipy-0.5.2-bspline.patch b/sci-libs/scipy/files/scipy-0.5.2-bspline.patch new file mode 100644 index 000000000000..2169438c6997 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-bspline.patch @@ -0,0 +1,29 @@ +--- Lib/sandbox/models/bspline_module.py~ 2006-12-07 01:13:15.000000000 +0000 ++++ Lib/sandbox/models/bspline_module.py 2007-06-06 22:16:13.556342500 +0100 +@@ -128,7 +128,7 @@ + + eval_ext_code = ''' + +- int dim[2] = {upper-lower, Nx[0]}; ++ npy_intp dim[2] = {upper-lower, Nx[0]}; + PyArrayObject *basis; + double *data; + +@@ -252,7 +252,7 @@ + + gram_ext_code = ''' + +- int dim[2] = {Nknots[0]-m, m}; ++ npy_intp dim[2] = {Nknots[0]-m, m}; + double *data; + PyArrayObject *gram; + +@@ -315,7 +315,7 @@ + + invband_ext_code = ''' + +- int dim[2] = {NL[0], NL[1]}; ++ npy_intp dim[2] = {NL[0], NL[1]}; + int i, j; + double *data; + PyArrayObject *invband; diff --git a/sci-libs/scipy/files/scipy-0.5.2-getpath.patch b/sci-libs/scipy/files/scipy-0.5.2-getpath.patch new file mode 100644 index 000000000000..fe98a999411e --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-getpath.patch @@ -0,0 +1,108 @@ +diff -Nur Lib.orig/linalg/setup_atlas_version.py Lib/linalg/setup_atlas_version.py +--- Lib.orig/linalg/setup_atlas_version.py 2006-03-15 02:29:45.000000000 +0000 ++++ Lib/linalg/setup_atlas_version.py 2007-06-06 16:43:08.000000000 +0100 +@@ -4,14 +4,14 @@ + + import os + from distutils.core import Extension +-from numpy.distutils.misc_util import get_path, default_config_dict ++from numpy.distutils.misc_util import get_path_from_frame, default_config_dict + from numpy.distutils.system_info import get_info,AtlasNotFoundError + + def configuration (parent_package=''): + package = 'linalg' + config = default_config_dict(package,parent_package) + del config['fortran_libraries'] +- local_path = get_path(__name__) ++ local_path = get_path_from_frame(__name__) + atlas_info = get_info('atlas_threads') + if not atlas_info: + atlas_info = get_info('atlas') +diff -Nur Lib.orig/odr/setup.py Lib/odr/setup.py +--- Lib.orig/odr/setup.py 2006-12-02 03:24:44.000000000 +0000 ++++ Lib/odr/setup.py 2007-06-06 16:43:08.000000000 +0100 +@@ -6,7 +6,7 @@ + import warnings + + from numpy.distutils.core import Extension +-from numpy.distutils.misc_util import get_path, Configuration, dot_join ++from numpy.distutils.misc_util import get_path_from_frame, Configuration, dot_join + + from numpy.distutils.system_info import get_info,dict_append,\ + AtlasNotFoundError,LapackNotFoundError,BlasNotFoundError,\ +diff -Nur Lib.orig/sandbox/ga/setup_ga.py Lib/sandbox/ga/setup_ga.py +--- Lib.orig/sandbox/ga/setup_ga.py 2006-01-05 03:35:26.000000000 +0000 ++++ Lib/sandbox/ga/setup_ga.py 2007-06-06 16:43:08.000000000 +0100 +@@ -1,7 +1,7 @@ + #!/usr/bin/env python + + import os +-from numpy.distutils.misc_util import get_path, default_config_dict ++from numpy.distutils.misc_util import get_path_from_frame, default_config_dict + + def configuration(parent_package='',parent_path=None): + package = 'ga' +diff -Nur Lib.orig/sandbox/gplt/setup_gplt.py Lib/sandbox/gplt/setup_gplt.py +--- Lib.orig/sandbox/gplt/setup_gplt.py 2006-01-05 03:35:31.000000000 +0000 ++++ Lib/sandbox/gplt/setup_gplt.py 2007-06-06 16:43:08.000000000 +0100 +@@ -1,11 +1,11 @@ + #!/usr/bin/env python + + import os, sys +-from numpy.distutils.misc_util import get_path, default_config_dict ++from numpy.distutils.misc_util import get_path_from_frame, default_config_dict + + def configuration(parent_package='',parent_path=None): + package = 'gplt' +- local_path = get_path(__name__,parent_path) ++ local_path = get_path_from_frame(__name__,parent_path) + config = default_config_dict(package,parent_package) + + if sys.platform == 'win32': +diff -Nur Lib.orig/sandbox/image/setup_image.py Lib/sandbox/image/setup_image.py +--- Lib.orig/sandbox/image/setup_image.py 2006-03-15 02:29:18.000000000 +0000 ++++ Lib/sandbox/image/setup_image.py 2007-06-06 16:43:08.000000000 +0100 +@@ -6,12 +6,12 @@ + def configuration(parent_package='', parent_path=None): + from numpy.distutils.system_info import get_info, dict_append + from numpy.distutils.misc_util import default_config_dict, \ +- dot_join, get_path ++ dot_join, get_path_from_frame + + package = 'image' + config = default_config_dict(package,parent_package) + +- local_path = get_path(__name__, parent_path) ++ local_path = get_path_from_frame(__name__, parent_path) + image_path = os.path.join(parent_package,'image') + + color_files = glob(os.path.join(local_path, '*.txt')) +diff -Nur Lib.orig/sandbox/plt/setup_plt.py Lib/sandbox/plt/setup_plt.py +--- Lib.orig/sandbox/plt/setup_plt.py 2006-01-13 00:08:11.000000000 +0000 ++++ Lib/sandbox/plt/setup_plt.py 2007-06-06 16:43:08.000000000 +0100 +@@ -1,11 +1,11 @@ + #!/usr/bin/env python + + import os +-from numpy.distutils.misc_util import get_path, default_config_dict ++from numpy.distutils.misc_util import get_path_from_frame, default_config_dict + + def configuration(parent_package='',parent_path=None): + package = 'plt' +- local_path = get_path(__name__,parent_path) ++ local_path = get_path_from_frame(__name__,parent_path) + config = default_config_dict(package,parent_package) + return config + +diff -Nur Lib.orig/sandbox/pysparse/setup.py Lib/sandbox/pysparse/setup.py +--- Lib.orig/sandbox/pysparse/setup.py 2006-03-15 02:29:36.000000000 +0000 ++++ Lib/sandbox/pysparse/setup.py 2007-06-06 16:43:08.000000000 +0100 +@@ -12,7 +12,7 @@ + + import os + from numpy.distutils.core import Extension +-from numpy.distutils.misc_util import get_path,Configuration,dot_join ++from numpy.distutils.misc_util import get_path_from_frame,Configuration,dot_join + join = os.path.join + import glob + diff --git a/sci-libs/scipy/files/scipy-0.5.2-minpack.patch b/sci-libs/scipy/files/scipy-0.5.2-minpack.patch new file mode 100644 index 000000000000..496fd70e06f3 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-minpack.patch @@ -0,0 +1,10 @@ +--- Lib/optimize/__minpack.h.orig 2007-06-06 17:34:35.232483750 +0100 ++++ Lib/optimize/__minpack.h 2007-06-06 17:34:37.788643500 +0100 +@@ -585,7 +585,6 @@ + else { + Py_DECREF(ap_fvec); + Py_DECREF(ap_fjac); +- Py_DECREF(ap_diag); + Py_DECREF(ap_ipvt); + Py_DECREF(ap_qtf); + return Py_BuildValue("Ni",PyArray_Return(ap_x),info); diff --git a/sci-libs/scipy/files/scipy-0.5.2-mio.patch b/sci-libs/scipy/files/scipy-0.5.2-mio.patch new file mode 100644 index 000000000000..b48c8eb4e770 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-mio.patch @@ -0,0 +1,524 @@ +diff -Nur Lib/io.orig/mio4.py Lib/io/mio4.py +--- Lib/io.orig/mio4.py 2007-06-06 14:56:05.610464000 +0100 ++++ Lib/io/mio4.py 2007-06-06 14:56:17.015176750 +0100 +@@ -1,9 +1,9 @@ + ''' Classes for read / write of matlab (TM) 4 files + ''' + +-from numpy import * ++import numpy as N + +-from miobase import * ++from scipy.io.miobase import * + + miDOUBLE = 0 + miSINGLE = 1 +@@ -76,7 +76,7 @@ + header['mclass'] = T + header['dims'] = (data['mrows'], data['ncols']) + header['is_complex'] = data['imagf'] == 1 +- remaining_bytes = header['dtype'].itemsize * product(header['dims']) ++ remaining_bytes = header['dtype'].itemsize * N.product(header['dims']) + if header['is_complex'] and not header['mclass'] == mxSPARSE_CLASS: + remaining_bytes *= 2 + next_pos = self.mat_stream.tell() + remaining_bytes +@@ -109,7 +109,7 @@ + num_bytes = dt.itemsize + for d in dims: + num_bytes *= d +- arr = ndarray(shape=dims, ++ arr = N.ndarray(shape=dims, + dtype=dt, + buffer=self.mat_stream.read(num_bytes), + order='F') +@@ -122,9 +122,9 @@ + def __init__(self, array_reader, header): + super(Mat4FullGetter, self).__init__(array_reader, header) + if header['is_complex']: +- self.mat_dtype = dtype(complex128) ++ self.mat_dtype = N.dtype(N.complex128) + else: +- self.mat_dtype = dtype(float64) ++ self.mat_dtype = N.dtype(N.float64) + + def get_raw_array(self): + if self.header['is_complex']: +@@ -137,12 +137,12 @@ + + class Mat4CharGetter(Mat4MatrixGetter): + def get_raw_array(self): +- arr = self.read_array().astype(uint8) ++ arr = self.read_array().astype(N.uint8) + # ascii to unicode + S = arr.tostring().decode('ascii') +- return ndarray(shape=self.header['dims'], +- dtype=dtype('U1'), +- buffer = array(S)).copy() ++ return N.ndarray(shape=self.header['dims'], ++ dtype=N.dtype('U1'), ++ buffer = N.array(S)).copy() + + + class Mat4SparseGetter(Mat4MatrixGetter): +@@ -166,7 +166,7 @@ + res = self.read_array() + tmp = res[:-1,:] + dims = res[-1,0:2] +- ij = transpose(tmp[:,0:2]) - 1 # for 1-based indexing ++ ij = N.transpose(tmp[:,0:2]) - 1 # for 1-based indexing + vals = tmp[:,2] + if res.shape[1] == 4: + vals = vals + res[:-1,3] * 1j +@@ -196,15 +196,15 @@ + def format_looks_right(self): + # Mat4 files have a zero somewhere in first 4 bytes + self.mat_stream.seek(0) +- mopt_bytes = ndarray(shape=(4,), +- dtype=uint8, ++ mopt_bytes = N.ndarray(shape=(4,), ++ dtype=N.uint8, + buffer = self.mat_stream.read(4)) + self.mat_stream.seek(0) + return 0 in mopt_bytes + + def guess_byte_order(self): + self.mat_stream.seek(0) +- mopt = self.read_dtype(dtype('i4')) ++ mopt = self.read_dtype(N.dtype('i4')) + self.mat_stream.seek(0) + if mopt < 0 or mopt > 5000: + return ByteOrder.swapped_code +@@ -222,7 +222,7 @@ + ''' + if dims is None: + dims = self.arr.shape +- header = empty((), mdtypes_template['header']) ++ header = N.empty((), mdtypes_template['header']) + M = not ByteOrder.little_endian + O = 0 + header['mopt'] = (M * 1000 + +@@ -237,11 +237,10 @@ + self.write_string(self.name + '\0') + + def arr_to_2d(self): +- self.arr = atleast_2d(self.arr) ++ self.arr = N.atleast_2d(self.arr) + dims = self.arr.shape + if len(dims) > 2: +- dims = [product(dims[:-1]), dims[-1]] +- self.arr = reshape(self.arr, dims) ++ self.arr = self.arr.reshape(-1,dims[-1]) + + def write(self): + assert False, 'Not implemented' +@@ -280,12 +279,12 @@ + T=mxCHAR_CLASS) + if self.arr.dtype.kind == 'U': + # Recode unicode to ascii +- n_chars = product(dims) +- st_arr = ndarray(shape=(), ++ n_chars = N.product(dims) ++ st_arr = N.ndarray(shape=(), + dtype=self.arr_dtype_number(n_chars), + buffer=self.arr) + st = st_arr.item().encode('ascii') +- self.arr = ndarray(shape=dims, dtype='S1', buffer=st) ++ self.arr = N.ndarray(shape=dims, dtype='S1', buffer=st) + self.write_bytes(self.arr) + + +@@ -296,9 +295,9 @@ + See docstring for Mat4SparseGetter + ''' + imagf = self.arr.dtype.kind == 'c' +- N = self.arr.nnz +- ijd = zeros((N+1, 3+imagf), dtype='f8') +- for i in range(N): ++ nnz = self.arr.nnz ++ ijd = N.zeros((nnz+1, 3+imagf), dtype='f8') ++ for i in range(nnz): + ijd[i,0], ijd[i,1] = self.arr.rowcol(i) + ijd[:-1,0:2] += 1 # 1 based indexing + if imagf: +@@ -322,13 +321,13 @@ + if have_sparse: + if scipy.sparse.issparse(arr): + return Mat4SparseWriter(stream, arr, name) +- arr = array(arr) ++ arr = N.array(arr) + dtt = arr.dtype.type +- if dtt is object_: ++ if dtt is N.object_: + raise TypeError, 'Cannot save object arrays in Mat4' +- elif dtt is void: ++ elif dtt is N.void: + raise TypeError, 'Cannot save void type arrays' +- elif dtt in (unicode_, string_): ++ elif dtt in (N.unicode_, N.string_): + return Mat4CharWriter(stream, arr, name) + else: + return Mat4NumericWriter(stream, arr, name) +diff -Nur Lib/io.orig/mio5.py Lib/io/mio5.py +--- Lib/io.orig/mio5.py 2007-06-06 14:56:05.610464000 +0100 ++++ Lib/io/mio5.py 2007-06-06 14:56:17.019177000 +0100 +@@ -29,9 +29,9 @@ + import zlib + from copy import copy as pycopy + from cStringIO import StringIO +-from numpy import * ++import numpy as N + +-from miobase import * ++from scipy.io.miobase import * + + try: # Python 2.3 support + from sets import Set as set +@@ -154,10 +154,10 @@ + + def read_element(self, copy=True): + raw_tag = self.mat_stream.read(8) +- tag = ndarray(shape=(), ++ tag = N.ndarray(shape=(), + dtype=self.dtypes['tag_full'], + buffer = raw_tag) +- mdtype = tag['mdtype'] ++ mdtype = tag['mdtype'].item() + byte_count = mdtype >> 16 + if byte_count: # small data element format + if byte_count > 4: +@@ -165,10 +165,10 @@ + mdtype = mdtype & 0xFFFF + dt = self.dtypes[mdtype] + el_count = byte_count / dt.itemsize +- return ndarray(shape=(el_count,), ++ return N.ndarray(shape=(el_count,), + dtype=dt, + buffer=raw_tag[4:]) +- byte_count = tag['byte_count'] ++ byte_count = tag['byte_count'].item() + if mdtype == miMATRIX: + return self.current_getter(byte_count).get_array() + if mdtype in self.codecs: # encoded char data +@@ -180,7 +180,7 @@ + else: # numeric data + dt = self.dtypes[mdtype] + el_count = byte_count / dt.itemsize +- el = ndarray(shape=(el_count,), ++ el = N.ndarray(shape=(el_count,), + dtype=dt, + buffer=self.mat_stream.read(byte_count)) + if copy: +@@ -193,8 +193,8 @@ + def matrix_getter_factory(self): + ''' Returns reader for next matrix at top level ''' + tag = self.read_dtype(self.dtypes['tag_full']) +- mdtype = tag['mdtype'] +- byte_count = tag['byte_count'] ++ mdtype = tag['mdtype'].item() ++ byte_count = tag['byte_count'].item() + next_pos = self.mat_stream.tell() + byte_count + if mdtype == miCOMPRESSED: + getter = Mat5ZArrayReader(self, byte_count).matrix_getter_factory() +@@ -285,7 +285,7 @@ + self.mat_dtype = 'f8' + + def get_raw_array(self): +- return array([[]]) ++ return N.array([[]]) + + + class Mat5NumericMatrixGetter(Mat5MatrixGetter): +@@ -293,7 +293,7 @@ + def __init__(self, array_reader, header): + super(Mat5NumericMatrixGetter, self).__init__(array_reader, header) + if header['is_logical']: +- self.mat_dtype = dtype('bool') ++ self.mat_dtype = N.dtype('bool') + else: + self.mat_dtype = self.class_dtypes[header['mclass']] + +@@ -305,7 +305,7 @@ + res = res + (res_j * 1j) + else: + res = self.read_element() +- return ndarray(shape=self.header['dims'], ++ return N.ndarray(shape=self.header['dims'], + dtype=res.dtype, + buffer=res, + order='F') +@@ -334,14 +334,14 @@ + stored in column order, this gives the column corresponding to + each rowind + ''' +- cols = empty((len(res)), dtype=rowind.dtype) +- col_counts = diff(colind) ++ cols = N.empty((len(res)), dtype=rowind.dtype) ++ col_counts = N.diff(colind) + start_row = 0 +- for i in where(col_counts)[0]: ++ for i in N.where(col_counts)[0]: + end_row = start_row + col_counts[i] + cols[start_row:end_row] = i + start_row = end_row +- ij = vstack((rowind[:len(res)], cols)) ++ ij = N.vstack((rowind[:len(res)], cols)) + if have_sparse: + result = scipy.sparse.csc_matrix((res,ij), + self.header['dims']) +@@ -354,19 +354,19 @@ + def get_raw_array(self): + res = self.read_element() + # Convert non-string types to unicode +- if isinstance(res, ndarray): +- if res.dtype.type == uint16: ++ if isinstance(res, N.ndarray): ++ if res.dtype.type == N.uint16: + codec = miUINT16_codec + if self.codecs['uint16_len'] == 1: +- res = res.astype(uint8) +- elif res.dtype.type in (uint8, int8): ++ res = res.astype(N.uint8) ++ elif res.dtype.type in (N.uint8, N.int8): + codec = 'ascii' + else: + raise TypeError, 'Did not expect type %s' % res.dtype + res = res.tostring().decode(codec) +- return ndarray(shape=self.header['dims'], +- dtype=dtype('U1'), +- buffer=array(res), ++ return N.ndarray(shape=self.header['dims'], ++ dtype=N.dtype('U1'), ++ buffer=N.array(res), + order='F').copy() + + +@@ -374,12 +374,11 @@ + def get_raw_array(self): + # Account for fortran indexing of cells + tupdims = tuple(self.header['dims'][::-1]) +- length = product(tupdims) +- result = empty(length, dtype=object) ++ length = N.product(tupdims) ++ result = N.empty(length, dtype=object) + for i in range(length): + result[i] = self.get_item() +- result = transpose(reshape(result,tupdims)) +- return result ++ return result.reshape(tupdims).T + + def get_item(self): + return self.read_element() +@@ -507,7 +506,7 @@ + ''' Read in mat 5 file header ''' + hdict = {} + hdr = self.read_dtype(self.dtypes['file_header']) +- hdict['__header__'] = hdr['description'].strip(' \t\n\000') ++ hdict['__header__'] = hdr['description'].item().strip(' \t\n\000') + v_major = hdr['version'] >> 8 + v_minor = hdr['version'] & 0xFF + hdict['__version__'] = '%d.%d' % (v_major, v_minor) +@@ -516,8 +515,8 @@ + def format_looks_right(self): + # Mat4 files have a zero somewhere in first 4 bytes + self.mat_stream.seek(0) +- mopt_bytes = ndarray(shape=(4,), +- dtype=uint8, ++ mopt_bytes = N.ndarray(shape=(4,), ++ dtype=N.uint8, + buffer = self.mat_stream.read(4)) + self.mat_stream.seek(0) + return 0 not in mopt_bytes +@@ -525,7 +524,7 @@ + + class Mat5MatrixWriter(MatStreamWriter): + +- mat_tag = zeros((), mdtypes_template['tag_full']) ++ mat_tag = N.zeros((), mdtypes_template['tag_full']) + mat_tag['mdtype'] = miMATRIX + + def __init__(self, file_stream, arr, name, is_global=False): +@@ -555,14 +554,14 @@ + self._mat_tag_pos = self.file_stream.tell() + self.write_dtype(self.mat_tag) + # write array flags (complex, global, logical, class, nzmax) +- af = zeros((), mdtypes_template['array_flags']) ++ af = N.zeros((), mdtypes_template['array_flags']) + af['data_type'] = miUINT32 + af['byte_count'] = 8 + flags = is_complex << 3 | is_global << 2 | is_logical << 1 + af['flags_class'] = mclass | flags << 8 + af['nzmax'] = nzmax + self.write_dtype(af) +- self.write_element(array(self.arr.shape, dtype='i4')) ++ self.write_element(N.array(self.arr.shape, dtype='i4')) + self.write_element(self.name) + + def update_matrix_tag(self): +@@ -598,12 +597,12 @@ + T=mxCHAR_CLASS) + if self.arr.dtype.kind == 'U': + # Recode unicode to ascii +- n_chars = product(dims) +- st_arr = ndarray(shape=(), ++ n_chars = N.product(dims) ++ st_arr = N.ndarray(shape=(), + dtype=self.arr_dtype_number(n_chars), + buffer=self.arr) + st = st_arr.item().encode('ascii') +- self.arr = ndarray(shape=dims, dtype='S1', buffer=st) ++ self.arr = N.ndarray(shape=dims, dtype='S1', buffer=st) + self.write_bytes(self.arr) + + +@@ -615,7 +614,7 @@ + ''' + imagf = self.arr.dtype.kind == 'c' + N = self.arr.nnz +- ijd = zeros((N+1, 3+imagf), dtype='f8') ++ ijd = N.zeros((N+1, 3+imagf), dtype='f8') + for i in range(N): + ijd[i,0], ijd[i,1] = self.arr.rowcol(i) + ijd[:-1,0:2] += 1 # 1 based indexing +@@ -649,7 +648,7 @@ + if have_sparse: + if scipy.sparse.issparse(arr): + return Mat5SparseWriter(self.stream, arr, name, is_global) +- arr = array(arr) ++ arr = N.array(arr) + if arr.dtype.hasobject: + types, arr_type = classify_mobjects(arr) + if arr_type == 'c': +@@ -680,13 +679,13 @@ + o - object array + ''' + N = objarr.size +- types = empty((N,), dtype='S1') ++ types = N.empty((N,), dtype='S1') + types[:] = 'i' + type_set = set() + flato = objarr.flat + for i in range(N): + obj = flato[i] +- if isinstance(obj, ndarray): ++ if isinstance(obj, N.ndarray): + types[i] = 'a' + continue + try: +@@ -743,7 +742,7 @@ + ).write() + if self.do_compression: + str = zlib.compress(stream.getvalue()) +- tag = empty((), mdtypes_template['tag_full']) ++ tag = N.empty((), mdtypes_template['tag_full']) + tag['mdtype'] = miCOMPRESSED + tag['byte_count'] = len(str) + self.file_stream.write(tag.tostring() + str) +diff -Nur Lib/io.orig/miobase.py Lib/io/miobase.py +--- Lib/io.orig/miobase.py 2007-06-06 14:56:05.610464000 +0100 ++++ Lib/io/miobase.py 2007-06-06 14:56:17.019177000 +0100 +@@ -6,7 +6,7 @@ + + import sys + +-from numpy import * ++import numpy as N + + try: + import scipy.sparse +@@ -71,10 +71,10 @@ + a_dtype is assumed to be correct endianness + ''' + num_bytes = a_dtype.itemsize +- arr = ndarray(shape=(), +- dtype=a_dtype, +- buffer=self.mat_stream.read(num_bytes), +- order='F') ++ arr = N.ndarray(shape=(), ++ dtype=a_dtype, ++ buffer=self.mat_stream.read(num_bytes), ++ order='F') + return arr + + def read_ztstring(self, num_bytes): +@@ -184,7 +184,7 @@ + def convert_dtypes(self, dtype_template): + dtypes = dtype_template.copy() + for k in dtypes: +- dtypes[k] = dtype(dtypes[k]).newbyteorder( ++ dtypes[k] = N.dtype(dtypes[k]).newbyteorder( + self.order_code) + return dtypes + +@@ -227,10 +227,10 @@ + if len(dims) >= 2: # return array of strings + dtt = self.order_code + 'U' + n_dims = dims[:-1] +- str_arr = reshape(arr, +- (small_product(n_dims), +- dims[-1])) +- arr = empty(n_dims, dtype=object) ++ str_arr = arr.reshape( ++ (small_product(n_dims), ++ dims[-1])) ++ arr = N.empty(n_dims, dtype=object) + for i in range(0, n_dims[-1]): + arr[...,i] = self.chars_to_str(str_arr[i]) + else: # return string +@@ -241,9 +241,9 @@ + if getter.mat_dtype is not None: + arr = arr.astype(getter.mat_dtype) + if self.squeeze_me: +- arr = squeeze(arr) ++ arr = N.squeeze(arr) + if not arr.size: +- arr = array([]) ++ arr = N.array([]) + elif not arr.shape: # 0d coverted to scalar + arr = arr.item() + return arr +@@ -251,8 +251,8 @@ + + def chars_to_str(self, str_arr): + ''' Convert string array to string ''' +- dt = dtype('U' + str(small_product(str_arr.shape))) +- return ndarray(shape=(), ++ dt = N.dtype('U' + str(small_product(str_arr.shape))) ++ return N.ndarray(shape=(), + dtype = dt, + buffer = str_arr.copy()).item() + +@@ -354,7 +354,7 @@ + + def arr_dtype_number(self, num): + ''' Return dtype for given number of items per element''' +- return dtype(self.arr.dtype.str[:2] + str(num)) ++ return N.dtype(self.arr.dtype.str[:2] + str(num)) + + def arr_to_chars(self): + ''' Convert string array to char array ''' +@@ -362,7 +362,7 @@ + if not dims: + dims = [1] + dims.append(int(self.arr.dtype.str[2:])) +- self.arr = ndarray(shape=dims, ++ self.arr = N.ndarray(shape=dims, + dtype=self.arr_dtype_number(1), + buffer=self.arr) + +diff -Nur Lib/io.orig/mio.py Lib/io/mio.py +--- Lib/io.orig/mio.py 2007-06-06 14:56:05.610464000 +0100 ++++ Lib/io/mio.py 2007-06-06 14:56:17.015176750 +0100 +@@ -7,10 +7,10 @@ + import os + import sys + +-from numpy import * ++from scipy.io.mio4 import MatFile4Reader, MatFile4Writer ++from scipy.io.mio5 import MatFile5Reader, MatFile5Writer + +-from mio4 import MatFile4Reader, MatFile4Writer +-from mio5 import MatFile5Reader, MatFile5Writer ++__all__ = ['find_mat_file','mat_reader_factory','loadmat', 'savemat'] + + def find_mat_file(file_name, appendmat=True): + ''' Try to find .mat file on system path diff --git a/sci-libs/scipy/files/scipy-0.5.2-montecarlo-test.patch b/sci-libs/scipy/files/scipy-0.5.2-montecarlo-test.patch new file mode 100644 index 000000000000..681b32057815 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-montecarlo-test.patch @@ -0,0 +1,11 @@ +--- Lib/sandbox/montecarlo/tests/test_dictsampler.py.orig 2007-06-06 14:25:47.000000000 +0100 ++++ Lib/sandbox/montecarlo/tests/test_dictsampler.py 2007-06-06 14:26:02.000000000 +0100 +@@ -37,7 +37,7 @@ + #import pdb + #pdb.set_trace() + s = sampler.sample(n) +- assert sum(s[i]=='b' for i in range(n),axis=0)*1./n > 0.75 ++ assert sum((s[i]=='b' for i in range(n)),axis=0)*1./n > 0.75 + + #lam = 10.0 + #n = 35 diff --git a/sci-libs/scipy/files/scipy-0.5.2-nonexisting.patch b/sci-libs/scipy/files/scipy-0.5.2-nonexisting.patch new file mode 100644 index 000000000000..182768dfeff2 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-nonexisting.patch @@ -0,0 +1,42 @@ +--- Lib/maxentropy/setup.py.orig 2007-06-06 16:04:57.267196500 +0100 ++++ Lib/maxentropy/setup.py 2007-06-06 16:05:54.786791250 +0100 +@@ -10,7 +10,6 @@ + + config.add_data_dir('tests') + config.add_data_dir('examples') +- config.add_data_dir('doc') + + return config + +--- Lib/linsolve/setup.py.orig 2007-06-06 16:10:41.592715500 +0100 ++++ Lib/linsolve/setup.py 2007-06-06 16:11:01.929986500 +0100 +@@ -7,7 +7,6 @@ + from numpy.distutils.system_info import get_info + + config = Configuration('linsolve',parent_package,top_path) +- config.add_data_dir('tests') + + lapack_opt = get_info('lapack_opt',notfound_action=2) + if sys.platform=='win32': +--- Lib/sandbox/buildgrid/setup.py.orig 2007-06-06 16:49:49.411337500 +0100 ++++ Lib/sandbox/buildgrid/setup.py 2007-06-06 16:50:03.436214000 +0100 +@@ -10,7 +10,7 @@ + + config.add_extension('build_grid', + sources = ['build_grid.c']) +- config.add_data_files('README') ++ config.add_data_files('README.txt') + return config + + if __name__ == "__main__": +--- Lib/sandbox/montecarlo/setup.py.orig 2007-06-06 16:50:34.242139250 +0100 ++++ Lib/sandbox/montecarlo/setup.py 2007-06-06 16:52:00.442607500 +0100 +@@ -15,8 +15,6 @@ + ['_intsamplermodule.c', 'compact5table.c', 'randomkit.c']]) + + config.add_data_dir('tests') +- config.add_data_dir('examples') +- config.add_data_dir('doc') + + return config + diff --git a/sci-libs/scipy/files/scipy-0.5.2-randomkit.patch b/sci-libs/scipy/files/scipy-0.5.2-randomkit.patch new file mode 100644 index 000000000000..8ff523b1f866 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-randomkit.patch @@ -0,0 +1,552 @@ +--- Lib/sandbox/montecarlo/src/randomkit.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ Lib/sandbox/montecarlo/src/randomkit.c 2007-06-06 17:15:22.505066000 +0100 +@@ -0,0 +1,357 @@ ++/* Random kit 1.3 */ ++ ++/* ++ * Copyright (c) 2003-2005, Jean-Sebastien Roy (js@jeannot.org) ++ * ++ * The rk_random and rk_seed functions algorithms and the original design of ++ * the Mersenne Twister RNG: ++ * ++ * Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * 3. The names of its contributors may not be used to endorse or promote ++ * products derived from this software without specific prior written ++ * permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * Original algorithm for the implementation of rk_interval function from ++ * Richard J. Wagner's implementation of the Mersenne Twister RNG, optimised by ++ * Magnus Jonsson. ++ * ++ * Constants used in the rk_double implementation by Isaku Wada. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation the rights to use, copy, modify, merge, publish, ++ * distribute, sublicense, and/or sell copies of the Software, and to ++ * permit persons to whom the Software is furnished to do so, subject to ++ * the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included ++ * in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ++ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ++ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/* static char const rcsid[] = ++ "@(#) $Jeannot: randomkit.c,v 1.28 2005/07/21 22:14:09 js Exp $"; */ ++ ++#include <stddef.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <errno.h> ++#include <time.h> ++#include <limits.h> ++#include <math.h> ++ ++#ifdef _WIN32 ++/* Windows */ ++#include <sys/timeb.h> ++#ifndef RK_NO_WINCRYPT ++/* Windows crypto */ ++#ifndef _WIN32_WINNT ++#define _WIN32_WINNT 0x0400 ++#endif ++#include <windows.h> ++#include <wincrypt.h> ++#endif ++#else ++/* Unix */ ++#include <sys/time.h> ++#include <unistd.h> ++#endif ++ ++#include "randomkit.h" ++ ++#ifndef RK_DEV_URANDOM ++#define RK_DEV_URANDOM "/dev/urandom" ++#endif ++ ++#ifndef RK_DEV_RANDOM ++#define RK_DEV_RANDOM "/dev/random" ++#endif ++ ++char *rk_strerror[RK_ERR_MAX] = ++{ ++ "no error", ++ "random device unvavailable" ++}; ++ ++/* static functions */ ++static unsigned long rk_hash(unsigned long key); ++ ++void rk_seed(unsigned long seed, rk_state *state) ++{ ++ int pos; ++ seed &= 0xffffffffUL; ++ ++ /* Knuth's PRNG as used in the Mersenne Twister reference implementation */ ++ for (pos=0; pos<RK_STATE_LEN; pos++) ++ { ++ state->key[pos] = seed; ++ seed = (1812433253UL * (seed ^ (seed >> 30)) + pos + 1) & 0xffffffffUL; ++ } ++ ++ state->pos = RK_STATE_LEN; ++ state->has_gauss = 0; ++ state->has_binomial = 0; ++} ++ ++/* Thomas Wang 32 bits integer hash function */ ++unsigned long rk_hash(unsigned long key) ++{ ++ key += ~(key << 15); ++ key ^= (key >> 10); ++ key += (key << 3); ++ key ^= (key >> 6); ++ key += ~(key << 11); ++ key ^= (key >> 16); ++ return key; ++} ++ ++rk_error rk_randomseed(rk_state *state) ++{ ++#ifndef _WIN32 ++ struct timeval tv; ++#else ++ struct _timeb tv; ++#endif ++ int i; ++ ++ if(rk_devfill(state->key, sizeof(state->key), 0) == RK_NOERR) ++ { ++ state->key[0] |= 0x80000000UL; /* ensures non-zero key */ ++ state->pos = RK_STATE_LEN; ++ state->has_gauss = 0; ++ state->has_binomial = 0; ++ ++ for (i=0; i<624; i++) ++ { ++ state->key[i] &= 0xffffffffUL; ++ } ++ ++ return RK_NOERR; ++ } ++ ++#ifndef _WIN32 ++ gettimeofday(&tv, NULL); ++ rk_seed(rk_hash(getpid()) ^ rk_hash(tv.tv_sec) ^ rk_hash(tv.tv_usec) ++ ^ rk_hash(clock()), state); ++#else ++ _ftime(&tv); ++ rk_seed(rk_hash(tv.time) ^ rk_hash(tv.millitm) ^ rk_hash(clock()), state); ++#endif ++ ++ return RK_ENODEV; ++} ++ ++/* Magic Mersenne Twister constants */ ++#define N 624 ++#define M 397 ++#define MATRIX_A 0x9908b0dfUL ++#define UPPER_MASK 0x80000000UL ++#define LOWER_MASK 0x7fffffffUL ++ ++/* Slightly optimised reference implementation of the Mersenne Twister */ ++unsigned long rk_random(rk_state *state) ++{ ++ unsigned long y; ++ ++ if (state->pos == RK_STATE_LEN) ++ { ++ int i; ++ ++ for (i=0;i<N-M;i++) ++ { ++ y = (state->key[i] & UPPER_MASK) | (state->key[i+1] & LOWER_MASK); ++ state->key[i] = state->key[i+M] ^ (y>>1) ^ (-(y & 1) & MATRIX_A); ++ } ++ for (;i<N-1;i++) ++ { ++ y = (state->key[i] & UPPER_MASK) | (state->key[i+1] & LOWER_MASK); ++ state->key[i] = state->key[i+(M-N)] ^ (y>>1) ^ (-(y & 1) & MATRIX_A); ++ } ++ y = (state->key[N-1] & UPPER_MASK) | (state->key[0] & LOWER_MASK); ++ state->key[N-1] = state->key[M-1] ^ (y>>1) ^ (-(y & 1) & MATRIX_A); ++ ++ state->pos = 0; ++ } ++ ++ y = state->key[state->pos++]; ++ ++ /* Tempering */ ++ y ^= (y >> 11); ++ y ^= (y << 7) & 0x9d2c5680UL; ++ y ^= (y << 15) & 0xefc60000UL; ++ y ^= (y >> 18); ++ ++ return y; ++} ++ ++long rk_long(rk_state *state) ++{ ++ return rk_ulong(state) >> 1; ++} ++ ++unsigned long rk_ulong(rk_state *state) ++{ ++#if ULONG_MAX <= 0xffffffffUL ++ return rk_random(state); ++#else ++ return (rk_random(state) << 32) | (rk_random(state)); ++#endif ++} ++ ++unsigned long rk_interval(unsigned long max, rk_state *state) ++{ ++ unsigned long mask = max, value; ++ ++ if (max == 0) return 0; ++ ++ /* Smallest bit mask >= max */ ++ mask |= mask >> 1; ++ mask |= mask >> 2; ++ mask |= mask >> 4; ++ mask |= mask >> 8; ++ mask |= mask >> 16; ++#if ULONG_MAX > 0xffffffffUL ++ mask |= mask >> 32; ++#endif ++ ++ /* Search a random value in [0..mask] <= max */ ++ while ((value = (rk_ulong(state) & mask)) > max); ++ ++ return value; ++} ++ ++double rk_double(rk_state *state) ++{ ++ /* shifts : 67108864 = 0x4000000, 9007199254740992 = 0x20000000000000 */ ++ long a = rk_random(state) >> 5, b = rk_random(state) >> 6; ++ return (a * 67108864.0 + b) / 9007199254740992.0; ++} ++ ++void rk_fill(void *buffer, size_t size, rk_state *state) ++{ ++ unsigned long r; ++ unsigned char *buf = buffer; ++ ++ for (; size >= 4; size -= 4) ++ { ++ r = rk_random(state); ++ *(buf++) = r & 0xFF; ++ *(buf++) = (r >> 8) & 0xFF; ++ *(buf++) = (r >> 16) & 0xFF; ++ *(buf++) = (r >> 24) & 0xFF; ++ } ++ ++ if (!size) return; ++ ++ r = rk_random(state); ++ ++ for (; size; r >>= 8, size --) ++ *(buf++) = (unsigned char)(r & 0xFF); ++} ++ ++rk_error rk_devfill(void *buffer, size_t size, int strong) ++{ ++#ifndef _WIN32 ++ FILE *rfile; ++ int done; ++ ++ if (strong) ++ rfile = fopen(RK_DEV_RANDOM, "rb"); ++ else ++ rfile = fopen(RK_DEV_URANDOM, "rb"); ++ if (rfile == NULL) ++ return RK_ENODEV; ++ done = fread(buffer, size, 1, rfile); ++ fclose(rfile); ++ if (done) ++ return RK_NOERR; ++#else ++ ++#ifndef RK_NO_WINCRYPT ++ HCRYPTPROV hCryptProv; ++ BOOL done; ++ ++ if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, ++ CRYPT_VERIFYCONTEXT) || !hCryptProv) ++ return RK_ENODEV; ++ done = CryptGenRandom(hCryptProv, size, (unsigned char *)buffer); ++ CryptReleaseContext(hCryptProv, 0); ++ if (done) ++ return RK_NOERR; ++#endif ++ ++#endif ++ ++ return RK_ENODEV; ++} ++ ++rk_error rk_altfill(void *buffer, size_t size, int strong, rk_state *state) ++{ ++ rk_error err; ++ ++ err = rk_devfill(buffer, size, strong); ++ if (err) ++ rk_fill(buffer, size, state); ++ ++ return err; ++} ++ ++double rk_gauss(rk_state *state) ++{ ++ if (state->has_gauss) ++ { ++ state->has_gauss = 0; ++ return state->gauss; ++ } ++ else ++ { ++ double f, x1, x2, r2; ++ do ++ { ++ x1 = 2.0*rk_double(state) - 1.0; ++ x2 = 2.0*rk_double(state) - 1.0; ++ r2 = x1*x1 + x2*x2; ++ } ++ while (r2 >= 1.0 || r2 == 0.0); ++ ++ f = sqrt(-2.0*log(r2)/r2); /* Box-Muller transform */ ++ state->has_gauss = 1; ++ state->gauss = f*x1; /* Keep for next call */ ++ return f*x2; ++ } ++} ++ ++ +--- Lib/sandbox/montecarlo/src/randomkit.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ Lib/sandbox/montecarlo/src/randomkit.h 2007-06-06 17:15:22.505066000 +0100 +@@ -0,0 +1,189 @@ ++/* Random kit 1.3 */ ++ ++/* ++ * Copyright (c) 2003-2005, Jean-Sebastien Roy (js@jeannot.org) ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation the rights to use, copy, modify, merge, publish, ++ * distribute, sublicense, and/or sell copies of the Software, and to ++ * permit persons to whom the Software is furnished to do so, subject to ++ * the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included ++ * in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ++ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ++ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/* @(#) $Jeannot: randomkit.h,v 1.24 2005/07/21 22:14:09 js Exp $ */ ++ ++/* ++ * Typical use: ++ * ++ * { ++ * rk_state state; ++ * unsigned long seed = 1, random_value; ++ * ++ * rk_seed(seed, &state); // Initialize the RNG ++ * ... ++ * random_value = rk_random(&state); // Generate random values in [0..RK_MAX] ++ * } ++ * ++ * Instead of rk_seed, you can use rk_randomseed which will get a random seed ++ * from /dev/urandom (or the clock, if /dev/urandom is unavailable): ++ * ++ * { ++ * rk_state state; ++ * unsigned long random_value; ++ * ++ * rk_randomseed(&state); // Initialize the RNG with a random seed ++ * ... ++ * random_value = rk_random(&state); // Generate random values in [0..RK_MAX] ++ * } ++ */ ++ ++/* ++ * Useful macro: ++ * RK_DEV_RANDOM: the device used for random seeding. ++ * defaults to "/dev/urandom" ++ */ ++ ++#include <stddef.h> ++ ++#ifndef _RANDOMKIT_ ++#define _RANDOMKIT_ ++ ++#define RK_STATE_LEN 624 ++ ++typedef struct rk_state_ ++{ ++ unsigned long key[RK_STATE_LEN]; ++ int pos; ++ int has_gauss; /* !=0: gauss contains a gaussian deviate */ ++ double gauss; ++ ++ /* The rk_state structure has been extended to store the following ++ * information for the binomial generator. If the input values of n or p ++ * are different than nsave and psave, then the other parameters will be ++ * recomputed. RTK 2005-09-02 */ ++ ++ int has_binomial; /* !=0: following parameters initialized for ++ binomial */ ++ double psave; ++ long nsave; ++ double r; ++ double q; ++ double fm; ++ long m; ++ double p1; ++ double xm; ++ double xl; ++ double xr; ++ double c; ++ double laml; ++ double lamr; ++ double p2; ++ double p3; ++ double p4; ++ ++} ++rk_state; ++ ++typedef enum { ++ RK_NOERR = 0, /* no error */ ++ RK_ENODEV = 1, /* no RK_DEV_RANDOM device */ ++ RK_ERR_MAX = 2 ++} rk_error; ++ ++/* error strings */ ++extern char *rk_strerror[RK_ERR_MAX]; ++ ++/* Maximum generated random value */ ++#define RK_MAX 0xFFFFFFFFUL ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* ++ * Initialize the RNG state using the given seed. ++ */ ++extern void rk_seed(unsigned long seed, rk_state *state); ++ ++/* ++ * Initialize the RNG state using a random seed. ++ * Uses /dev/random or, when unavailable, the clock (see randomkit.c). ++ * Returns RK_NOERR when no errors occurs. ++ * Returns RK_ENODEV when the use of RK_DEV_RANDOM failed (for example because ++ * there is no such device). In this case, the RNG was initialized using the ++ * clock. ++ */ ++extern rk_error rk_randomseed(rk_state *state); ++ ++/* ++ * Returns a random unsigned long between 0 and RK_MAX inclusive ++ */ ++extern unsigned long rk_random(rk_state *state); ++ ++/* ++ * Returns a random long between 0 and LONG_MAX inclusive ++ */ ++extern long rk_long(rk_state *state); ++ ++/* ++ * Returns a random unsigned long between 0 and ULONG_MAX inclusive ++ */ ++extern unsigned long rk_ulong(rk_state *state); ++ ++/* ++ * Returns a random unsigned long between 0 and max inclusive. ++ */ ++extern unsigned long rk_interval(unsigned long max, rk_state *state); ++ ++/* ++ * Returns a random double between 0.0 and 1.0, 1.0 excluded. ++ */ ++extern double rk_double(rk_state *state); ++ ++/* ++ * fill the buffer with size random bytes ++ */ ++extern void rk_fill(void *buffer, size_t size, rk_state *state); ++ ++/* ++ * fill the buffer with randombytes from the random device ++ * Returns RK_ENODEV if the device is unavailable, or RK_NOERR if it is ++ * On Unix, if strong is defined, RK_DEV_RANDOM is used. If not, RK_DEV_URANDOM ++ * is used instead. This parameter has no effect on Windows. ++ * Warning: on most unixes RK_DEV_RANDOM will wait for enough entropy to answer ++ * which can take a very long time on quiet systems. ++ */ ++extern rk_error rk_devfill(void *buffer, size_t size, int strong); ++ ++/* ++ * fill the buffer using rk_devfill if the random device is available and using ++ * rk_fill if is is not ++ * parameters have the same meaning as rk_fill and rk_devfill ++ * Returns RK_ENODEV if the device is unavailable, or RK_NOERR if it is ++ */ ++extern rk_error rk_altfill(void *buffer, size_t size, int strong, ++ rk_state *state); ++ ++/* ++ * return a random gaussian deviate with variance unity and zero mean. ++ */ ++extern double rk_gauss(rk_state *state); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _RANDOMKIT_ */ diff --git a/sci-libs/scipy/files/scipy-0.5.2-signals.patch b/sci-libs/scipy/files/scipy-0.5.2-signals.patch new file mode 100644 index 000000000000..bbd6b3dcb812 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-signals.patch @@ -0,0 +1,19 @@ +--- Lib/signal/filter_design.py.orig 2007-06-06 14:27:50.000000000 +0100 ++++ Lib/signal/filter_design.py 2007-06-06 14:43:14.000000000 +0100 +@@ -4,11 +4,11 @@ + """ + + import numpy +-from numpy.core.umath import * +-from numpy import atleast_1d, poly, polyval, roots, imag, real, asarray,\ +- allclose, resize, pi, concatenate, absolute, logspace +-from numpy import mintypecode, select +-from scipy import special, optimize, linalg ++from numpy import atleast_1d, poly, polyval, roots, real, asarray, allclose, \ ++ resize, pi, absolute, logspace, r_, sqrt, tan, log10, arctan, arcsinh, \ ++ cos, exp, cosh, arccosh, ceil, conjugate, zeros, sinh ++from numpy import mintypecode ++from scipy import special, optimize + from scipy.misc import comb + import string, types + diff --git a/sci-libs/scipy/files/scipy-0.5.2-umfpack.patch b/sci-libs/scipy/files/scipy-0.5.2-umfpack.patch new file mode 100644 index 000000000000..21916b097ed9 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-umfpack.patch @@ -0,0 +1,28 @@ +--- Lib/linsolve/umfpack/umfpack.i.orig 2007-06-06 14:53:42.261505250 +0100 ++++ Lib/linsolve/umfpack/umfpack.i 2007-06-06 14:54:12.167374250 +0100 +@@ -114,6 +114,7 @@ + return NULL; \ + } \ + $1 = (double *) obj->data; \ ++ Py_DECREF( obj ); \ + }; + + /*! +@@ -127,7 +128,7 @@ + }; \ + %typemap( python, argout ) ttype* opaque_argout { \ + PyObject *obj; \ +- obj = SWIG_NewPointerObj( (ttype) (*$1), $*1_descriptor, 1 ); \ ++ obj = SWIG_NewPointerObj( (ttype) (*$1), $*1_descriptor, 0 ); \ + $result = helper_appendToTuple( $result, obj ); \ + }; + +@@ -143,7 +144,7 @@ + }; \ + %typemap( python, argout ) ttype* opaque_arginout { \ + PyObject *obj; \ +- obj = SWIG_NewPointerObj( (ttype) (*$1), $*1_descriptor, 1 ); \ ++ obj = SWIG_NewPointerObj( (ttype) (*$1), $*1_descriptor, 0 ); \ + $result = helper_appendToTuple( $result, obj ); \ + }; + diff --git a/sci-libs/scipy/files/scipy-0.5.2-viewer.patch b/sci-libs/scipy/files/scipy-0.5.2-viewer.patch new file mode 100644 index 000000000000..8c4bd2a6b9f9 --- /dev/null +++ b/sci-libs/scipy/files/scipy-0.5.2-viewer.patch @@ -0,0 +1,41 @@ +--- Lib/misc/pilutil.py.orig 2007-06-06 14:28:07.000000000 +0100 ++++ Lib/misc/pilutil.py 2007-06-06 14:44:10.000000000 +0100 +@@ -2,6 +2,7 @@ + + import types + import numpy ++import tempfile + + from numpy import amin, amax, ravel, asarray, cast, arange, \ + ones, newaxis, transpose, mgrid, iscomplexobj, sum, zeros, uint8 +@@ -226,17 +227,20 @@ + """Simple showing of an image through an external viewer. + """ + im = toimage(arr) +- if (len(arr.shape) == 3) and (arr.shape[2] == 4): +- try: +- import os +- im.save('/tmp/scipy_imshow.png') +- if os.system("(xv /tmp/scipy_imshow.png; rm -f /tmp/scipy_imshow.png)&"): +- raise RuntimeError +- return +- except: +- print "Warning: Alpha channel may not be handled correctly." ++ fnum,fname = tempfile.mkstemp('.png') ++ try: ++ im.save(fname) ++ except: ++ raise RuntimeError("Error saving temporary image data.") ++ ++ import os ++ os.close(fnum) ++ cmd = os.environ.get('SCIPY_PIL_IMAGE_VIEWER','see') ++ status = os.system("%s %s" % (cmd,fname)) ++ os.unlink(fname) ++ if status != 0: ++ raise RuntimeError('Could not execute image viewer.') + +- im.show() + return + + def imresize(arr,size): diff --git a/sci-libs/scipy/scipy-0.5.2-r2.ebuild b/sci-libs/scipy/scipy-0.5.2-r2.ebuild new file mode 100644 index 000000000000..ef2e2c15ed31 --- /dev/null +++ b/sci-libs/scipy/scipy-0.5.2-r2.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/scipy/scipy-0.5.2-r2.ebuild,v 1.1 2007/06/06 21:27:52 bicatali Exp $ + +NEED_PYTHON=2.3 + +inherit eutils distutils fortran + +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" +DESCRIPTION="Scientific algorithms library for Python" +HOMEPAGE="http://www.scipy.org/" +LICENSE="BSD" + +SLOT="0" + +IUSE="fftw umfpack sandbox" + +KEYWORDS="~amd64 ~x86" + +RDEPEND=">=dev-python/numpy-1.0 + virtual/blas + virtual/lapack + fftw? ( =sci-libs/fftw-2.1* ) + umfpack? ( sci-libs/umfpack ) + sandbox? ( >=sci-libs/netcdf-3.6 x11-libs/libX11 )" + +DEPEND="${RDEPEND} + umfpack? ( dev-lang/swig )" + +FORTRAN="gfortran g77" + +# test still buggy on lapack, remove when OK (check each new version) +RESTRICT="test" + +DOCS="THANKS.txt DEVELOPERS.txt LATEST.txt TOCHANGE.txt FORMAT_GUIDELINES.txt" + +scipy_configure() { + [[ -z "${FFLAGS}" ]] && FFLAGS="${CFLAGS}" + # scipy automatically detects libraries by default + export FFTW=None FFTW3=None UMFPACK=None DJBFFT=None + use fftw && unset FFTW + use umfpack && unset UMFPACK + # Map compilers to what numpy calls them (same as scipy) + case "${FORTRANC}" in + gfortran) + SCIPY_FC="gnu95" + ;; + g77) + SCIPY_FC="gnu" + ;; + ifc|ifort) + if use ia64; then + SCIPY_FC="intele" + elif use amd64; then + SCIPY_FC="intelem" + else + SCIPY_FC="intel" + fi + ;; + *) + local msg="Invalid Fortran compiler \'${FORTRANC}\'" + eerror "${msg}" + die "${msg}" + ;; + esac + export SCIPY_FC + + # http://projects.scipy.org/scipy/numpy/ticket/182 + # Can't set LDFLAGS + unset LDFLAGS + # need to build with -fPIC (bug #149153) + export F77FLAGS="${F77FLAGS} -fPIC" +} + +pkg_setup() { + if use umfpack && ! built_with_use dev-lang/swig python; then + eerror "With umfpack enabled you need" + eerror "dev-lang/swig with python enabled" + einfo "Please re-emerge swig with USE=python" + die "needs swig with python" + fi + fortran_pkg_setup + use sandbox && elog "Warning: using sandbox modules at your own risk!" +} + +src_unpack() { + unpack ${A} + cd "${S}" + # most of these patches should be useless in versions >=0.5.3) + # various patches from scipy svn and to allow sandbox modules + epatch "${FILESDIR}"/${P}-signals.patch + epatch "${FILESDIR}"/${P}-viewer.patch + epatch "${FILESDIR}"/${P}-randomkit.patch + epatch "${FILESDIR}"/${P}-umfpack.patch + epatch "${FILESDIR}"/${P}-montecarlo-test.patch + epatch "${FILESDIR}"/${P}-mio.patch + epatch "${FILESDIR}"/${P}-minpack.patch + epatch "${FILESDIR}"/${P}-bspline.patch + has_version ">=dev-python/numpy-1.0.3" && epatch "${FILESDIR}"/${P}-getpath.patch + # following patch still not fixed in svn + epatch "${FILESDIR}"/${P}-nonexisting.patch + # fix test (use a sed instead of big patch) + einfo "Fixing tests" + find Lib -name \*.py -exec grep -l ScipyTest '{}' \; | \ + xargs sed -i -e 's/ScipyTest/NumpyTest/g' \ + || die "sed failed" + use sandbox && cp "${FILESDIR}"/enabled_packages.txt Lib/sandbox/ + #use sandbox && cp "${FILESDIR}"/_bspline.cpp . +} + +src_compile() { + scipy_configure + distutils_src_compile \ + config_fc \ + --fcompiler="${SCIPY_FC}" \ + --opt="${FFLAGS}" +} + +src_test() { + scipy_configure + ${python} setup.py install \ + --home="${S}"/test \ + --no-compile \ + config_fc \ + --fcompiler=${SCIPY_FC} \ + --opt="${FFLAGS}" || die "install test failed" + pushd "${S}"/test/lib*/python + PYTHONPATH=. "${python}" -c \ + "import scipy as s;import sys;sys.exit(s.test(10,3))" \ + > test.log 2>&1 + grep -q OK test.log || die "test failed" + popd + rm -rf test +} + +src_install() { + scipy_configure + distutils_src_install \ + config_fc \ + --fcompiler="${SCIPY_FC}" \ + --opt="${FFLAGS}" +} + +pkg_postinst() { + elog "You might want to set the variable SCIPY_PIL_IMAGE_VIEWER" + elog "to your prefered image viewer if you don't like the default one. Ex:" + elog "\t echo \"export SCIPY_PIL_IMAGE_VIEWER=display\" >> ~/.bashrc" +} |