Fixes so that libcros can compile on ARM. We update to a newer version of
dev-python/numpy which cross-compiles OK. We also take the pygobject from
the OpenMoko Gentoo project that has a fix for cross compiling. With these,
libcros is able to cross compile.
Review URL: http://codereview.chromium.org/661443
diff --git a/dev-python/numpy/files/numpy-1.1.0-f2py.patch b/dev-python/numpy/files/numpy-1.1.0-f2py.patch
new file mode 100644
index 0000000..1ec18a9
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.1.0-f2py.patch
@@ -0,0 +1,36 @@
+diff -Nur numpy/f2py/f2py.1 numpy/f2py.new/f2py.1
+--- numpy/f2py/f2py.1 2006-07-26 21:04:19.000000000 +0100
++++ numpy/f2py.new/f2py.1 2007-02-14 12:16:47.000000000 +0000
+@@ -184,7 +184,7 @@
+
+ Optional Numarray 0.9 or higher partially supported.
+
+-numpy_distutils from Scipy (can be downloaded from F2PY homepage)
++numpy_distutils from Numpy (can be downloaded from F2PY homepage)
+ .SH "SEE ALSO"
+ python(1)
+ .SH BUGS
+@@ -200,10 +200,8 @@
+
+ Mailing list: http://cens.ioc.ee/mailman/listinfo/f2py-users/
+
+-Scipy website: http://www.numpy.org
++Numpy website: http://numeric.numpy.org
+ .SH COPYRIGHT
+ Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Pearu Peterson
+ .SH LICENSE
+ NumPy License
+-.SH VERSION
+-2.45.241
+diff -Nur numpy/f2py/setup.py numpy/f2py.new/setup.py
+--- numpy/f2py/setup.py 2006-10-03 05:35:22.000000000 +0100
++++ numpy/f2py.new/setup.py 2007-02-14 12:16:41.000000000 +0000
+@@ -35,8 +35,7 @@
+
+ config.add_data_files('src/fortranobject.c',
+ 'src/fortranobject.h',
+- 'f2py.1'
+ )
+
+ config.make_svn_version_py()
+
diff --git a/dev-python/numpy/files/numpy-1.3.0-fenv-freebsd.patch b/dev-python/numpy/files/numpy-1.3.0-fenv-freebsd.patch
new file mode 100644
index 0000000..629fc76
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.3.0-fenv-freebsd.patch
@@ -0,0 +1,28 @@
+--- numpy/core/include/numpy/ufuncobject.h.orig 2009-07-28 15:04:42 -0400
++++ numpy/core/include/numpy/ufuncobject.h 2009-07-28 15:05:58 -0400
+@@ -318,8 +318,10 @@
+
+ #elif defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
+
+-#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__) || defined(__FreeBSD__)
++#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__)
+ #include <fenv.h>
++#elif defined(__FreeBSD__)
++#include "fenv/fenv.h"
+ #elif defined(__CYGWIN__)
+ #include "fenv/fenv.c"
+ #endif
+--- numpy/numarray/_capi.c.orig 2009-07-28 15:18:13 -0400
++++ numpy/numarray/_capi.c 2009-07-28 15:19:04 -0400
+@@ -8,8 +8,10 @@
+ #include <sys/param.h>
+ #endif
+
+-#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
++#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__)
+ #include <fenv.h>
++#elif (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
++#include "numpy/fenv/fenv.h"
+ #elif defined(__CYGWIN__)
+ #include "numpy/fenv/fenv.h"
+ #include "numpy/fenv/fenv.c"
diff --git a/dev-python/numpy/files/numpy-1.4.0-interix.patch b/dev-python/numpy/files/numpy-1.4.0-interix.patch
new file mode 100644
index 0000000..244737f
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.4.0-interix.patch
@@ -0,0 +1,15 @@
+Reported [2010.01.18]: http://projects.scipy.org/numpy/ticket/1365
+
+diff -ru numpy-1.4.0.orig/numpy/core/setup.py numpy-1.4.0/numpy/core/setup.py
+--- numpy-1.4.0.orig/numpy/core/setup.py 2010-01-15 16:49:14 +0100
++++ numpy-1.4.0/numpy/core/setup.py 2010-01-15 17:02:27 +0100
+@@ -169,6 +169,9 @@
+ priv = []
+ pub = []
+
++ if os.uname()[0] == "Interix":
++ return priv, pub
++
+ # Check for complex support
+ st = config.check_header('complex.h')
+ if st:
diff --git a/dev-python/numpy/files/numpy-1.4.0-python-2.7.patch b/dev-python/numpy/files/numpy-1.4.0-python-2.7.patch
new file mode 100644
index 0000000..9bc5591
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.4.0-python-2.7.patch
@@ -0,0 +1,13 @@
+--- numpy/distutils/ccompiler.py
++++ numpy/distutils/ccompiler.py
+@@ -2,9 +2,11 @@
+ import os
+ import sys
+ import new
++from copy import copy
+
+ from distutils.ccompiler import *
+ from distutils import ccompiler
++from distutils.errors import DistutilsExecError, DistutilsModuleError, DistutilsPlatformError
+ from distutils.sysconfig import customize_compiler
+ from distutils.version import LooseVersion
diff --git a/dev-python/numpy/numpy-1.4.0.ebuild b/dev-python/numpy/numpy-1.4.0.ebuild
new file mode 100644
index 0000000..873621e
--- /dev/null
+++ b/dev-python/numpy/numpy-1.4.0.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/numpy/numpy-1.4.0.ebuild,v 1.3 2010/02/24 14:52:39 mduft Exp $
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils eutils flag-o-matic toolchain-funcs versionator
+
+NP="${PN}-1.3"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/ http://pypi.python.org/pypi/numpy"
+SRC_URI="mirror://sourceforge/numpy/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${NP}.x/numpy-html.zip -> ${NP}-html.zip
+ http://docs.scipy.org/doc/${NP}.x/numpy-ref.pdf -> ${NP}-ref.pdf
+ http://docs.scipy.org/doc/${NP}.x/numpy-user.pdf -> ${NP}-user.pdf
+ )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="dev-python/setuptools
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ lapack? ( dev-util/pkgconfig )
+ test? ( >=dev-python/nose-0.10 )
+ doc? ( app-arch/unzip )"
+RESTRICT_PYTHON_ABIS="3.*"
+
+pkg_setup() {
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ use lapack || return
+ [[ -z ${FC} ]] && FC=$(tc-getFC)
+ # when fortran flags are set, pic is removed.
+ FFLAGS="${FFLAGS} -fPIC"
+ export NUMPY_FCONFIG="config_fc --noopt --noarch"
+}
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${NP}-html.zip -d html || die
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.1.0-f2py.patch
+ epatch "${FILESDIR}"/${PN}-1.3.0-fenv-freebsd.patch # bug 279487
+ epatch "${FILESDIR}"/${P}-python-2.7.patch
+
+ # Gentoo patch for ATLAS library names
+ sed -i \
+ -e "s:'f77blas':'blas':g" \
+ -e "s:'ptf77blas':'blas':g" \
+ -e "s:'ptcblas':'cblas':g" \
+ -e "s:'lapack_atlas':'lapack':g" \
+ numpy/distutils/system_info.py \
+ || die "sed system_info.py failed"
+
+ if use lapack; then
+ append-ldflags "$(pkg-config --libs-only-other cblas lapack)"
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ cat >> site.cfg <<-EOF
+ [atlas]
+ include_dirs = $(pkg-config --cflags-only-I \
+ cblas | sed -e 's/^-I//' -e 's/ -I/:/g')
+ library_dirs = $(pkg-config --libs-only-L \
+ cblas blas lapack | sed -e 's/^-L//' -e 's/ -L/:/g' -e 's/ //g'):${libdir}
+ atlas_libs = $(pkg-config --libs-only-l \
+ cblas blas | sed -e 's/^-l//' -e 's/ -l/, /g' -e 's/,.pthread//g')
+ lapack_libs = $(pkg-config --libs-only-l \
+ lapack | sed -e 's/^-l//' -e 's/ -l/, /g' -e 's/,.pthread//g')
+ [blas_opt]
+ include_dirs = $(pkg-config --cflags-only-I \
+ cblas | sed -e 's/^-I//' -e 's/ -I/:/g')
+ library_dirs = $(pkg-config --libs-only-L \
+ cblas blas | sed -e 's/^-L//' -e 's/ -L/:/g' -e 's/ //g'):${libdir}
+ libraries = $(pkg-config --libs-only-l \
+ cblas blas | sed -e 's/^-l//' -e 's/ -l/, /g' -e 's/,.pthread//g')
+ [lapack_opt]
+ library_dirs = $(pkg-config --libs-only-L \
+ lapack | sed -e 's/^-L//' -e 's/ -L/:/g' -e 's/ //g'):${libdir}
+ libraries = $(pkg-config --libs-only-l \
+ lapack | sed -e 's/^-l//' -e 's/ -l/, /g' -e 's/,.pthread//g')
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ epatch "${FILESDIR}"/${P}-interix.patch
+}
+
+src_compile() {
+ distutils_src_compile ${NUMPY_FCONFIG}
+}
+
+src_test() {
+ testing() {
+ "$(PYTHON)" setup.py ${NUMPY_FCONFIG} build -b "build-${PYTHON_ABI}" install \
+ --home="${S}/test-${PYTHON_ABI}" --no-compile || die "install test failed"
+ pushd "${S}/test-${PYTHON_ABI}/"lib* > /dev/null
+ PYTHONPATH=python "$(PYTHON)" -c "import numpy; numpy.test()" 2>&1 | tee test.log
+ grep -q '^ERROR' test.log && die "test failed"
+ popd > /dev/null
+ rm -fr test-${PYTHON_ABI}
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ [[ -z ${ED} ]] && local ED=${D}
+ distutils_src_install ${NUMPY_FCONFIG}
+ dodoc THANKS.txt DEV_README.txt COMPATIBILITY
+ rm -f "${ED}"/usr/lib/python*/site-packages/numpy/*.txt || die
+ docinto f2py
+ dodoc numpy/f2py/docs/*.txt || die "dodoc f2py failed"
+ doman numpy/f2py/f2py.1 || die "doman failed"
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ doins -r "${WORKDIR}"/html || die
+ doins "${DISTDIR}"/${NP}*pdf || die
+ fi
+}