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
+}