generate-manifest-3.3.py: Add script to generate python 3.3 manifests

Bases on python 2.7.x generator

Package collections/ in python-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
python-3.3-manifest: Add python3 manifest file

Like python2 mostly except

This will package collections into python3-core instead
of python3-misc fixes errors like

Traceback (most recent call last):
File "/usr/lib/python3.3/site.py", line 69, in

     import os
   File "/usr/lib/python3.3/os.py", line 659, in <module>
     from collections.abc import MutableMapping
 ImportError: No module named 'collections'

Signed-off-by: Khem Raj <raj.khem@gmail.com>
python3native.bbclass: Add python3 abstraction class

Signed-off-by: Khem Raj <raj.khem@gmail.com>
package_rpm.bbclass: Trigger the regexp on exact keyword match

This causes issues when postinstalls have ERROR keywords
its interpreted as error and image build is cancelled

Signed-off-by: Khem Raj <raj.khem@gmail.com>
classes/distutils: Introduce PYTHON_PN

This is needed to accomodate python3 alongside
python2

Signed-off-by: Khem Raj <raj.khem@gmail.com>
classes: Add distutils for python3

In line with python2 add distutils and setuptools
classes for handing python3

Use python-distribute instead of python-setuptools in setuptools bbclass

Remove --single-version-externally-managed since its setuptools
specific and we dont use it anymore

Do build_ext as separate step during compile

Add DISTUTILS_BUILD_EXT_ARGS for modules to pass flags to build_ext step
in setup.py

Add build_ext as sepate step during compile and add
the cross sysrooted library and headers since we are cross
compiling

Use ${PYTHON_PN} in place of hardcoding python name

Remove the /etc/share if its empty

Since OE-Core times we now have machine specific sysroots
for targets unlike before when we used arch specific sysroots
so reflect that here

Use MACHINE for sysroot when not building for build host

Python's machinery replaces directories in sysroot path to match OE's
staging area sysroots. Earlier we use to have HOST_SYS represent sysroot
always but now we use MACHINE to represent target sysroots but HOST_SYS
to represent host sysroot. This patch caters to that difference

Signed-off-by: Khem Raj <raj.khem@gmail.com>
distutils: Introduce PYTHON_ABI variable

In python3 this has to be taken care of, it defines a variable to
denote ABI currently its at 'm' and it uses this to construct
the directory names for installing the python headers and library
names in sysroot. e.g. it will be something like ../python3.3m/...

We need this information when we are using distutils to cross build
python extentions and want to know the locations of python headers
and libraries install locations

Signed-off-by: Khem Raj <raj.khem@gmail.com>
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]

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>
python_2.7.3.bb: Inherit python-dir

So it can get the correct python direcotries for python2

Signed-off-by: Khem Raj <raj.khem@gmail.com>
python-distribute: Add recipes for python2 and python3

in python3-distribute rename easy_install to easy3_install

Signed-off-by: Khem Raj <raj.khem@gmail.com>
python-setuptools: Remove its provided by python-distribute

Use python-distribute-native in packagegroup-toolset-native

Also fixes warnings like

WARNING: The recipe python-setuptools is trying to install files into a
shared area when those files already exist. Those files and their
manifest location are:

/srv/ssd/sgw/builds/world/tmp/sysroots/qemux86-64/usr/lib/python2.7/site-packages/setuptools.pth
    Matched in manifest-qemux86-64-python-distribute

/srv/ssd/sgw/builds/world/tmp/sysroots/qemux86-64/usr/lib/python2.7/site-packages/site.pyc
    Matched in manifest-qemux86-64-python-distribute

/srv/ssd/sgw/builds/world/tmp/sysroots/qemux86-64/usr/lib/python2.7/site-packages/site.py
    Matched in manifest-qemux86-64-python-distribute

Conflicts:
	meta/recipes-devtools/python/python-setuptools_1.4.bb

Signed-off-by: Khem Raj <raj.khem@gmail.com>
postinst-intercept: New recipe to include postinstall intercepts in nativesdk

Adding ability to use postinstalls intercepts in the nativesdk env, and
making sure the correlate between repo + SDK.

This to enable rootfs generation from a package repository using only a
package repository and the toolchain tarball.

See https://github.com/nysan/rootfs-sandbox for examples.

Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nativesdk-packagegroup-sdk-host: Adding nativesdk-postinst-intercept to SDK

Adding ability to use postinstalls intercepts in the nativesdk env, and
making sure the correlate between repo + SDK.

This to enable rootfs generation from a package repository using only a
package repository and the toolchain tarball.

See https://github.com/nysan/rootfs-sandbox for examples.

Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nspr: Added nativesdk to BBCLASSEXTEND

nspr is a dependency of nss. Since shsignlibs is used
from the nss postinstall hook. It should be included in
nativesdk to make offline rootfs construction possible.

Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nss: Add nativesdk to BBCLASSEXTEND and bugfix

Since shsignlibs is used
from the nss postinstall hook. It should be included in
nativesdk to make offline rootfs construction possible.

Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
binutils: Upgrade to 2.24

This builds and runs images for all qemu machines

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libpng: upgrade to 1.6.8

Note: license has not changed. MD5 sum of files changed because new
contributors were added to LICENSE and png.h file contains the
version of the new release.

Signed-off-by: Marius Avram <marius.avram@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/base-passwd/base-passwd/noshadow.patch: Split it into two parts

The current change contains two different logics resulting that users like me
may need to partially override the behavior of it. It would be easier for end
users to keep one change while dropping the other if needed, like in our case.

Signed-off-by: Laszlo Papp <lpapp@kde.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glib-2.0: fix handling of skipped tests

Backport a patch from upstream to fix skipped tests, essential for gdk-pixbuf to
pass without enabling all loaders.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/oeqa: allow multiple layers to provide their own TEST_TARGET class

Use a python module "folder" rather than a single module within
layers to ensure multiple layers can define a TEST_TARGET class.
Current implementation using controllers.py module will only allow
a single layer to define test targets.

Add a controllers folder as well as a TestTargetLoader class whose
job is to load the given TEST_TARGET class from any number of
python modules within the oeqa/controllers/ directory of any
layer.
The only condition will be that layers will need to ensure
the TEST_TARGET class name they provide is unique otherwise there
is no guarantee which class is instantiated. a bb.warn is used
to alude to this if it happens.

Signed-off-by: Sipke Vriend <sipke.vriend@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>