generic-poky/meta/recipes-devtools/python/python3_3.5.0.bb

227 lines
8.5 KiB
BlitzBasic
Raw Normal View History

python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
require recipes-devtools/python/python.inc
DEPENDS = "python3-native libffi bzip2 db gdbm openssl readline sqlite3 zlib virtual/libintl xz"
PR = "${INC_PR}.0"
PYTHON_MAJMIN = "3.5"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
PYTHON_BINABI= "${PYTHON_MAJMIN}m"
DISTRO_SRC_URI ?= "file://sitecustomize.py"
DISTRO_SRC_URI_linuxstdbase = ""
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://python-config.patch \
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
file://000-cross-compile.patch \
file://020-dont-compile-python-files.patch \
file://030-fixup-include-dirs.patch \
file://070-dont-clean-ipkg-install.patch \
file://080-distutils-dont_adjust_files.patch \
file://110-enable-zlib.patch \
file://130-readline-setup.patch \
file://150-fix-setupterm.patch \
file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
${DISTRO_SRC_URI} \
"
SRC_URI += "\
file://03-fix-tkinter-detection.patch \
file://04-default-is-optimized.patch \
file://avoid_warning_about_tkinter.patch \
file://cgi_py.patch \
file://host_include_contamination.patch \
file://python-3.3-multilib.patch \
file://shutil-follow-symlink-fix.patch \
file://sysroot-include-headers.patch \
file://unixccompiler.patch \
file://avoid-ncursesw-include-path.patch \
file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
file://python3-setup.py-no-host-headers-libs.patch \
file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
file://setup.py-find-libraries-in-staging-dirs.patch \
file://use_packed_importlib.patch \
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
"
SRC_URI[md5sum] = "d149d2812f10cbe04c042232e7964171"
SRC_URI[sha256sum] = "d6d7aa1634a5eeeca6ed4fca266982a04f84bd8f3945a9179e20b24ad2e2be91"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
# exclude pre-releases for both python 2.x and 3.x
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
S = "${WORKDIR}/Python-${PV}"
inherit autotools multilib_header python3native pkgconfig
CONFIGUREOPTS += " --with-system-ffi "
CACHED_CONFIGUREVARS = "ac_cv_have_chflags=no \
ac_cv_have_lchflags=no \
ac_cv_have_long_long_format=yes \
ac_cv_buggy_getaddrinfo=no \
ac_cv_file__dev_ptmx=yes \
ac_cv_file__dev_ptc=no \
"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
SDK_CC_ARCH += "-DNDEBUG -fno-inline"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
EXTRA_OEMAKE += "CROSS_COMPILE=yes"
EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
export CROSS_COMPILE = "${TARGET_PREFIX}"
export _PYTHON_PROJECT_BASE = "${B}"
export _PYTHON_PROJECT_SRC = "${S}"
export CCSHARED = "-fPIC"
# Fix ctypes cross compilation
export CROSSPYTHONPATH = "${B}/build/lib.linux-${TARGET_ARCH}-${PYTHON_MAJMIN}:${S}/Lib:${S}/Lib/plat-linux"
# No ctypes option for python 3
PYTHONLSBOPTS = ""
do_configure_append() {
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
rm -f ${S}/Makefile.orig
autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
}
do_compile() {
# regenerate platform specific files, because they depend on system headers
cd ${S}/Lib/plat-linux*
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
${S}/Tools/scripts/h2py.py -i '(u_long)' \
${STAGING_INCDIR}/dlfcn.h \
${STAGING_INCDIR}/linux/cdrom.h \
${STAGING_INCDIR}/netinet/in.h \
${STAGING_INCDIR}/sys/types.h
sed -e 's,${STAGING_DIR_HOST},,g' -i *.py
cd -
# remove any bogus LD_LIBRARY_PATH
sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile
if [ ! -f Makefile.orig ]; then
install -m 0644 Makefile Makefile.orig
fi
sed -i -e 's,^CONFIGURE_LDFLAGS=.*,CONFIGURE_LDFLAGS=-L. -L${STAGING_LIBDIR},g' \
-e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \
-e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \
-e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \
-e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \
-e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \
-e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \
Makefile
# save copy of it now, because if we do it in do_install and
# then call do_install twice we get Makefile.orig == Makefile.sysroot
install -m 0644 Makefile Makefile.sysroot
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
STAGING_LIBDIR=${STAGING_LIBDIR} \
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
STAGING_INCDIR=${STAGING_INCDIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
LIB=${baselib} \
ARCH=${TARGET_ARCH} \
OPT="${CFLAGS}" libpython3.so
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
STAGING_LIBDIR=${STAGING_LIBDIR} \
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
LIB=${baselib} \
ARCH=${TARGET_ARCH} \
OPT="${CFLAGS}"
}
do_install() {
# make install needs the original Makefile, or otherwise the inclues would
# go to ${D}${STAGING...}/...
install -m 0644 Makefile.orig Makefile
install -d ${D}${libdir}/pkgconfig
install -d ${D}${libdir}/python${PYTHON_MAJMIN}/config
# rerun the build once again with original makefile this time
# run install in a separate step to avoid compile/install race
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
STAGING_LIBDIR=${STAGING_LIBDIR} \
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
LIB=${baselib} \
ARCH=${TARGET_ARCH} \
DESTDIR=${D} LIBDIR=${libdir}
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
STAGING_LIBDIR=${STAGING_LIBDIR} \
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
LIB=${baselib} \
ARCH=${TARGET_ARCH} \
DESTDIR=${D} LIBDIR=${libdir} install
# avoid conflict with 2to3 from Python 2
rm -f ${D}/${bindir}/2to3
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
if [ -e ${WORKDIR}/sitecustomize.py ]; then
install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
fi
oe_multilib_header python${PYTHON_BINABI}/pyconfig.h
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
}
do_install_append_class-nativesdk () {
create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo'
}
SSTATE_SCAN_FILES += "Makefile"
PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
py_package_preprocess () {
# copy back the old Makefile to fix target package
install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
# Remove references to buildmachine paths in target Makefile and _sysconfigdata
sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile \
${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
}
require python-${PYTHON_MAJMIN}-manifest.inc
# manual dependency additions
RPROVIDES_${PN}-core = "${PN}"
RRECOMMENDS_${PN}-core = "${PN}-readline"
RRECOMMENDS_${PN}-crypt = "openssl"
RRECOMMENDS_${PN}-crypt_class-nativesdk = "nativesdk-openssl"
FILES_${PN}-2to3 += "${bindir}/2to3-${PYTHON_MAJMIN}"
FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
PACKAGES =+ "${PN}-pyvenv"
FILES_${PN}-pyvenv += "${bindir}/pyvenv-${PYTHON_MAJMIN} ${bindir}/pyvenv"
# package libpython3
PACKAGES =+ "libpython3 libpython3-staticdev"
FILES_libpython3 = "${libdir}/libpython*.so.*"
FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_BINABI}/libpython${PYTHON_BINABI}.a"
# catch debug extensions (isn't that already in python-core-dbg?)
FILES_${PN}-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug"
# catch all the rest (unsorted)
PACKAGES += "${PN}-misc"
RDEPENDS_${PN}-misc += "${PN}-core"
python3: Add target and native recipes 3.3.3 is latest bugfix release in 3.3 series License text is changed to reflect year and prev releases +++ ../Python-3.3.2/LICENSE 2013-05-15 09:32:54.000000000 -0700 @@ -74,7 +74,9 @@ 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes + 3.2.4 3.2.3 2013 PSF yes 3.3.0 3.2 2012 PSF yes + 3.3.1 3.3.0 2013 PSF yes Footnotes: @@ -110,8 +112,8 @@ distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python -alone or in any derivative version prepared by Licensee. +2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained +in Python alone or in any derivative version prepared by Licensee. We use native python in disutils bbclass and this needs to peek into target sysroot when building plugins in cross environment. Otherwise anything that inherits distutils3.bbclass will not build. Fix host include contamination issue Let compiler append sysroot to include path if it can Fix the compiler invocation and linker flags when cross compiling The details are in patch header. This should fix the QA errors about host contamination Add virtual/libintl to dep list There is use of libintl.h but we dont express the dependency Add lzma dependency for python3-misc Fixes and from test-dependencies.sh run there is undeterministic lzma dependency: WARN: packages/armv5te-oe-linux-gnueabi/python3/python3-misc/latest lost dependency on liblzma Fix staging warnings due to duplicate install WARNING: The recipe python3 is trying to install files into a shared area when those files already exist. Those files and their manifest location are: builds/world/tmp/sysroots/qemux86-64/usr/include/python3.3m/pyconfig.h builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so.1.0 builds/world/tmp/sysroots/qemux86-64/usr/lib/libpython3.3m.so builds/world/tmp/sysroots/qemux86-64/usr/lib/python3.3/config/Makefile Let compiler search includes relative to sysroot This makes it cross compilable and assumption on hardcoded paths is fixed. Errors like below would appear if ncursesw is installed on build host cc1: warning: include location "/usr/include/ncursesw" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 185fcfc3286b355394ae89300f22b8cb7aaa43c1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Fix linking not happening issue in modules We need to tweak CONFIGURE_LDFLAGS for python3 instead of LDFLAGS directly Add second compile stage which uses original makefile Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-14 22:00:26 +00:00
FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
# catch manpage
PACKAGES += "${PN}-man"
FILES_${PN}-man = "${datadir}/man"
BBCLASSEXTEND = "nativesdk"