Patrick Ohly [Fri, 6 May 2016 14:58:44 +0000 (17:58 +0300)]
image_types: add support for zip compression
Support for the other compression format is not always readily
available on all OSes. Using zip instead of, say, xz is less
efficient, but perhaps more user-friendly for users on such OSes.
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ed Bartosh [Wed, 4 May 2016 13:06:27 +0000 (16:06 +0300)]
wic: use next builtin instead of .next method
Generators in Python 3 don't have .next method. It's recommended
to use 'next' builtin instead. As it also present in Python >= 2.6
it should make wic code compatible with both Python 2 and Python 3.
Ed Bartosh [Wed, 4 May 2016 13:06:26 +0000 (16:06 +0300)]
wic: don't encode unicode strings
Removed check for unicode type as it doesn't work in Python 3.
This check is not needed for wic as all its output seem to be
strings. This allows to run code under both pythons.
Ed Bartosh [Wed, 4 May 2016 13:06:25 +0000 (16:06 +0300)]
wic: decode output of subprocess.communicate
stdeout and stderr content returned by communicate API has different
types in Python 3(bytes) and Python 2(string). Decoding it to 'utf-8'
makes it unicode on both pythons.
Decoded stdout and stderr output to utf-8 to make the code
working under both Python 2 and Python 3.
Ed Bartosh [Wed, 4 May 2016 13:06:24 +0000 (16:06 +0300)]
wic: use // operator instead of /
Division operator works differently in Python 3. It results in
float unlike in Python 2, where it results in int.
Explicitly used "floor division" operator instead of 'division'
operator. This should make the code to result in integer under
both pythons.
Ed Bartosh [Wed, 4 May 2016 13:06:23 +0000 (16:06 +0300)]
wic: use find_executable in favor of bb.utils.which
As bitbake is not ported to Python 3 yet it's better to
avoid using its APIs as much as possible to be able to
test wic under Python 3 at least partially.
Used distutils.spawn.find_executable API in favor of
bb.utils.which to get path of the command to run.
Ed Bartosh [Wed, 4 May 2016 13:06:21 +0000 (16:06 +0300)]
wic: refactor pluginbase
Wic plugin machinery implemented using metaclasses.
Reimplemented plugin machinery using this advice from
https://wiki.python.org/moin/PortingToPy3k/BilingualQuickRef
Syntax for creating instances with different metaclasses is very
different between Python 2 and 3. Use the ability to call type instances
as a way to portably create such instances.
Now it should work under both Python 2 and Python 3.
Ed Bartosh [Wed, 4 May 2016 13:06:20 +0000 (16:06 +0300)]
wic: remove unused functions
Removed 'raw', 'ask', 'choice' and 'pause' functions from
msger.py as they're not used in wic code and some of them
use raw_input, which is not present in Python 3.
Ed Bartosh [Wed, 4 May 2016 13:06:18 +0000 (16:06 +0300)]
wic: remove with_statement imports
'with' statement is not used in baseimager.py
It's supported by Python 2.7, which is included into all target
distros. Other wic modules use this statement.
Removed useless 'from __future__ import with_statement' from
wic code.
Ed Bartosh [Wed, 4 May 2016 13:06:17 +0000 (16:06 +0300)]
wic: don't inherit classes from object
All classes in Python3 are new style classes and don't need
to be inherited from object. Wic code works fine without
this inheritance even with Python2, so it's harmless to
remove it.
Ed Bartosh [Wed, 4 May 2016 13:06:16 +0000 (16:06 +0300)]
wic: don't use dict.keys and dict.has_key
Replaced calls of dict.keys and dict.has_key methods with the
'key in dict' statement. 'key in dict' is more pythonic, faster
and readable. dict.has_key doesn't exist in Python 3.
Ed Bartosh [Wed, 4 May 2016 13:06:15 +0000 (16:06 +0300)]
wic: use items instead of iteritems
Dictionary method 'iteritems' doesn't exist in Python 3.
Replaced 'iteritems' with 'items' to be able to run the
code under both Python 3 and Python 2.
Patrick Ohly [Fri, 13 May 2016 16:56:57 +0000 (18:56 +0200)]
combo-layer: avoid too long command lines in update with history
As suspected, invoking "git archive" with all intended files as
parameters can run into command line length limitations. Splitting up
the parameters into multiple invocations (xargs-style) works and was
tested after encountering the situation in practice.
Patrick Ohly [Fri, 13 May 2016 16:56:56 +0000 (18:56 +0200)]
combo-layer: fix default "update" mode
When the "history" option is not set in the combo-layer.conf, the
intended default was to use the traditional method. Passing "True" as
default when querying the config was unintentional.
python-native: Point to expat in native sysroot and add missing dep on expat-native
This fixes inconsistency where expat dependency is
then depending upon build host having it or not having it
Fixes errors like
WARNING: renaming "pyexpat" since importing it failed: build/lib.linux-x86_64-2.7/pyexpat.so: undefined symbol: XML_SetCommentHandler
also reported here
https://dev.openwrt.org/ticket/20087
This work due to the fact that we use -isystem pointing to native sysroot
so the search order of native includedir is moved after buildhosts system
includdirs. Moment we replace it with -I, build falls apart
This also fixes the error
Caught exception: <type 'exceptions.ImportError'> ImportError('No module named _elementtree',)
where gobject-introspection-native fails to find _elementtree
which is only compiled if expat is available
Since commit 972b4fc (feature-arm-neon.inc: restore vfpv3-d16 support)
we're replacing _all_ dashes (-) in ARMPKGSFX_FPU, which is causing
problems for all legitimate uses of the dash as TUNE_PKGARCH doesn't
have the right value anymore:
E.g. on raspberrypi2:
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Error, the PACKAGE_ARCHS variable (all any noarch armv5hf-vfp armv5thf-vfp
armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp
armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon
armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4 cortexa7hf-vfp cortexa7hf-neon
cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon
cortexa7t2hf-neon-vfpv4 raspberrypi3) for DEFAULTTUNE (cortexa7thf-neon-vfpv4)
does not contain TUNE_PKGARCH (cortexa7hf-neonvfpv4).
Fix this by being more explicit about what we're modifying.
Daniel McGregor [Tue, 10 May 2016 16:04:47 +0000 (10:04 -0600)]
openjade-native: work around bug exposed by GCC 6
Simply turn off the optimzation that is causing this breakage. I had
originally used -fno-lifetime-dse, but -fno-tree-dse works at least
going back as far as gcc 4.8.
This isn't a real fix, but it allows openjade to work enough to complete
a build.
Michael Wood [Thu, 12 May 2016 13:31:58 +0000 (14:31 +0100)]
report-error: Replace the build directory path in the error text
Replace the TOPDIR in the output error file so that the error report once
submitted can then be more easily matched to find duplicate error
reports. This also reduces the need to manually redact any information that
might be in the error log path such as hostnames or home directories.
Maxin B. John [Thu, 12 May 2016 13:16:52 +0000 (16:16 +0300)]
connman: update to version 1.32
Removed following upstreamed/backported patches:
a) 0001-Detect-backtrace-API-availability-before-using-it.patch
b) 0001-iptables-Add-missing-function-item-of-xtables-to-mat.patch
Mariano Lopez [Thu, 12 May 2016 11:28:13 +0000 (11:28 +0000)]
package_manager.py: Add extract() method for opkg and dpkg
Sometimes it is needed to have the content of a package outside
the recipe context. This new method extract the content of an
IPK/DEB file to a tmpdir, without actually installing the package.
A new OpkgDpkgPM class was added to share the code for opkg and dpkg.
There were need some changes to opkg_query() in order to use it
with apt-cache output. Also set default values to avoid UnboundLocalError
image_types: adjust default level of XZ compression
XZ extreme compression method usually uses a lot more CPU time with not
that often big saving on space. Same goes with -6 level of compression.
Compression level -3 usually the best balance for time/size, especially
on big images.
Elliot Smith [Fri, 13 May 2016 16:02:58 +0000 (17:02 +0100)]
bitbake: toaster: fix progress bar in MySQL environment
When using MySQL, the project builds info delivered by MySQL
differs from that delivered by SQLite: the former returns text
values from the enumeration for Build outcomes, while the latter
returns the integer value. This causes the progress bar JS to
break, as it is expecting outcome strings.
Modify the recent_build() method to include an outcomeText property
for each Build object, then use this in the conditionals in the
progress bar JS.
Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 12 May 2016 07:15:34 +0000 (08:15 +0100)]
bitbake: main: Ensure exceptions are correctly displayed
If the cooker fails to start, ensure a correct exception is displayed to the
user. After handling any queued events simply re-raise the original exception
else the output can be unclear.
Richard Purdie [Thu, 12 May 2016 07:05:32 +0000 (08:05 +0100)]
bitbake: event/msg: Pass formatted exceptions
python3 can't cope with the previous approach we were using to pass
exceptions through the RPC. Avoid this by creating a formatted exception
on the sender side.
Richard Purdie [Wed, 11 May 2016 22:00:15 +0000 (23:00 +0100)]
bitbake: utils: Force bitbake to en_US.UTF-8 locale setting everywhere
Under python 3, if we spawn python processes, we need to have a UTF-8
locale, else python's file access methods will use ascii. You can't
change that mode once the interpreter is started so we have to ensure
a locale is set. Ideally we'd use C.UTF-8 since OE already forces the
C locale but not all distros support that and we need to set something.
Was tempted to choose en_GB so colour gets spelt correctly :).
This is in some ways pretty nasty, forcing it into the environment
everywhere however we only have a limited number of ways of making
everything work correctly and this beats having to add utf-8 encoding
to every file access command.
A similar change will be needed to bitbake.conf in OE.
Richard Purdie [Wed, 11 May 2016 21:55:14 +0000 (22:55 +0100)]
bitbake: runqueue: Improve timestamp comparisons
python3 cares more about invalid type comparisons. Add break statements
and better tests to make the code paths clearer and avoid type issues
in python3. No code functionality change.
Khem Raj [Wed, 11 May 2016 17:35:45 +0000 (10:35 -0700)]
gcc-runtime, libgcc: Symlink c++ header and startup files in target_triplet for SDK use
We build SDKs such that gcc-cross-candian is built for only one
target *-*-linux and then use -muclibc or -mmusl to let it compile
code for other libc variants. This works fine when libc = glibc
however it does not work for c++ programs when libc != glibc since
there are c++ headers installed under ${includedir}/c++/${BINV}/${TARGET_SYS}
which is fine when gcc-runtime and gcc-cross-candian uses same --target options
gxx includedir searches in right triplet, but it fails with musl/uclibc
since gcc will look for glibc based triplet but gcc-runtime will install
them under musl/uclibc triplet.
This patch symlinks the musl/uclibc triplet to glibc triplet when libc != glibc
Khem Raj [Wed, 11 May 2016 17:35:40 +0000 (10:35 -0700)]
musl: Create symlinks for stub libraries
Some libraries e.g. libm.so are needed to be
created so that SDKs built with distros which
disable static librararies can have the stubs
and since default linker script requires -lm
this helps in compiling applications with SDK
there are .a equivalents for these libraries
but they do not land in SDKs when static libs
are disabled distrowide
Marek Vasut [Wed, 11 May 2016 17:35:39 +0000 (10:35 -0700)]
bitbake: Oldest kernel for nios2 is 3.19
The oldest kernel version for nios2 is 3.19.0, set it so, otherwise
qemu-nios2 -r ${OLDEST_KERNEL} fails with "FATAL: kernel too old"
message from glibc.
Khem Raj [Wed, 11 May 2016 17:35:37 +0000 (10:35 -0700)]
gdb: Disable binutils components
when building from git we also get the binutils
components since the tree for gdb and binutils is
same, this can then casue building binutils with
gdb as well and cause packaging conflicts, hence
disable the binutils pieces in configure itself
Khem Raj [Wed, 11 May 2016 17:35:33 +0000 (10:35 -0700)]
libgcc: Ensure that gcc configure options are passed to libgcc too
libgcc uses certain options from EXTRA_OECONF as well, curently we are
ignoring them, as a result we do not configure libgcc to match cross gcc
in some cases e.g. ppc/musl should have used 64bit long doubles but
it went for 128-ldbls which is default, works on glibc but not on musl
Khem Raj [Wed, 11 May 2016 17:35:31 +0000 (10:35 -0700)]
libgcc: Ensure that gcc configure options are passed to libgcc too
libgcc uses certain options from EXTRA_OECONF as well, curently we are
ignoring them, as a result we do not configure libgcc to match cross gcc
in some cases e.g. ppc/musl should have used 64bit long doubles but
it went for 128-ldbls which is default, works on glibc but not on musl
Andrew Kelley (1):
fix incorrect protocol name and number for egp
Bobby Bingham (1):
add powerpc64 port
LeMay, Michael (1):
fix redundant processing of --build flag in configure script
Petr Vaněk (1):
remove dead store in res_msend
Rich Felker (10):
fix undefined pointer comparison in stdio-internal __toread
fix regression disabling use of pause instruction for x86 a_spin
fix read past end of haystack buffer for short needles in memmem
add support for mips and mips64 r6 isa
add mips n32 port (ILP32 ABI for mips64)
fix thread structure/dtv-pointer corruption on powerpc
fix FILE buffer underflow in ungetwc
update COPYRIGHT file to clarify that permissions apply for all files
follow standard configure behavior for cross compile prefix
fix spurious trailing whitespace in powerpc & powerpc64 bits/errno.h
Khem Raj [Wed, 11 May 2016 17:35:28 +0000 (10:35 -0700)]
bitbake.conf: Empty out BUILDSDK_CPPFLAGS
The nativesdk sysroot is already being passed in
via --sysroot option, adding -isystem is redundant
and more so it causes build failures with gcc-6
since it messed with internal search order for system
includedirs
see
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Q5SWCUUMWQ4EMS7CU2CBOZHV3WZYOOTT/
Khem Raj [Wed, 11 May 2016 17:35:14 +0000 (10:35 -0700)]
nss: Upgrade to 3.23
Disable Werror on native builds. This helps
in building nss-native on build hosts which have
gcc < 4.9 eg. ubuntu 14.04
The real issue is that we use headers from native
staging sysroot and it has the updated glibc headers
which then ends up with errors e.g.
| In function 'memset',
| inlined from 'sec_PKCS7Encrypt' at p7local.c:715:14:
| /usr/include/x86_64-linux-gnu/bits/string3.h:81:30: error: call to '__warn_memset_zero_len' declared with attribute warning: memset used with constant zero length parameter; this could be due to transposed parameters [-Werror]
| __warn_memset_zero_len ();
| ^
| cc1: all warnings being treated as errors
| make[2]: *** [Linux3.4_x86_64_glibc_PTH_64_OPT.OBJ/p7local.o] Error 1
Khem Raj [Wed, 11 May 2016 17:35:11 +0000 (10:35 -0700)]
webkitgtk: Upgrade to 2.12.1
Fix build with gcc-6
Do not tinker with -isystem, this causes issues
where gcc does not find standard C++ headers since
the default search ordered for system headers is
changed and is not correct anymore. Errorr like
WebCore/editing/gtk/EditorGtk.cpp:27:
/mnt/oe/poky/build/tmp/sysroots/qemuarm/usr/include/c++/6.0.1/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
It brings a patch to fix typename mismatch
for pow()
see
https://bugs.webkit.org/show_bug.cgi?id=153071
Drop upstreamed patches
User -fPIC on aarch64 to fix
relocation truncated to fit: R_AARCH64_LD64_GOTPAGE_LO15 against symbol `__stack_chk_guard@@GLIBC_2.17' defined in .data.rel.ro section
Khem Raj [Wed, 11 May 2016 17:35:06 +0000 (10:35 -0700)]
glib-2.0: Ignore useless warning found with gcc-6
../../glib-2.46.2/glib/gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonliteral]
tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm);
^~~~~~
| ../../../../../../../../workspace/sources/glib-2.0/glib/tests/gdatetime.c: In function 'test_strftime':
| ../../../../../../../../workspace/sources/glib-2.0/glib/tests/gdatetime.c:1338:3: error: '%c' yields only last 2 digits of year in some locales [-Werror=format-y2k]
| "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m M%M " \
Additionally fix the problem seen where write() return code is ignored