systemd: Use ${ROOT_HOME} instead of /root

systemd avoids using nss lookups for the root user, so
naturally it assumes that root's home directory is /root.
In OE that's not the case, and it can lead to long delays when
shutting down due to user shutdown unit failures.

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
python-smartpm: Add checking for "rpm-ignoresize" option

The do_rootfs takes a very long time when build host has mounted many NFS
devices. syscall lstat() was being called on every filesystem mounted on the
build host during building.
The reason for the lstat() is that rpm is verifying that enough free disk space
is available to do the install. However, since the install is into the target
rootfs it should not matter how much free space there is in the host mounts.
Add checking for "rpm-ignoresize", by it, smart can make whether RPM skip
checking for diskspace when install a rpm package.

Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
nfs-utils: fix a Gcc undefined behavior

Calling strncpy with NULL second argument, even when the size is 0,
is undefined behavior, which leads to GCC to drop the check old
variable with NULL in following code.

https://bugzilla.yoctoproject.org/show_bug.cgi?id=6743

Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
liburcu: revert ARM GCC blacklist commit

This fixes the following error when building liburcu:
"Your gcc version produces clobbered frame accesses"

OE-Core is using a patched GCC 4.8.2 which is able to compile liburcu
properly.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
libtool: Extend fix-final-rpath.patch

When building upower from meta-oe, the following QA error occurred:
ERROR: QA Issue: package upower contains bad RPATH

It appears to have been caused by one of the cases fix-final-rpath.patch
is meant to address but missed. So this change fixes the additional case
that was causing upower to have the QA error.

Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
default-versions.inc: match version of db and db-native while "AGPL-3.0" in ${INCOMPATIBLE_LICENSE}

The db 6.0.30's LICENSE is 'AGPL-3.0', and db 5.3.28 LICENSE is
'Sleepycat'

While building rpm image with "AGPL-3.0" in ${INCOMPATIBLE_LICENSE},
db 6.0.30 and db-native 5.3.28 were built, the different versions
caused the rpm doesn't work on target.

...
root@qemux86-64:~# rpm -qa
|rpmdb: BDB2531 Unacceptable log file /var/lib/rpm/./log/log.0000000001:
unsupported log version 21
|rpmdb: BDB2527 Invalid log file: log.0000000001: Invalid argument
|rpmdb: BDB0061 PANIC: Invalid argument
|==> rpmdbe_event_notify(0x623f40, PANIC(0), 0x7fffee0fbc0c) app_private
(nil)
|rpmdb: BDB1546 unable to join the environment
|error: db_init:tmp/work/core2-64-poky-linux/rpm/5.4.14-r0/rpm-5.4.14/
rpmdb/db3.c:1144: dbenv->open(-30973): BDB0087 DB_RUNRECOVERY: Fatal
error, run database recovery
...

[YOCTO #6858]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
spdx.bbclass: improved stability, fixed SPDX compliance issues. Changes are reflected in licenses.conf.

The previous version could crash on dead links in the rootfs, or if the manifest directory did not
exist. The generated files were also not compliant with the SPDX specification, for example file
entries did not always start with the FileName tag, time stamps were incorrectly formatted etc.

Stability issues are addressed by added checks, originally written by Johan Thelin
<johan.thelin@pelagicore.com>, who never upstreamed them. I've also added an option for getting full
SPDX output from FOSSology, i.e. not only for all files, but for the package as well, including
license references. License refs are required in order to process the output by SPDXTools. For that
reason, this option defaults to true.

Signed-off-by: Tobias Olausson <tobias.olausson@pelagicore.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
grub: add cmdpath to grub configuration file

An issue was found where when yocto is installed to a hard disk
from a live USB key, no matter what boot order was selected in
the BIOS menu, the grub menu of the USB key would always show
up. The issue was narrowed down to the way grub configuration
file gets embedded into the standalone bootx64.efi image.

The commit prepends ($cmdpath) to the search path for grub.cfg,
thus making sure the UEFI environment itself sets this to the
correct device path. This in-turn lets the grub.cfg of the boot
device to be loaded.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Drew Moseley <drew_moseley@mentor.com>
Tested-by: Ravikiran Polepalli <Ravikiran_Polepalli@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
systemd: fix libidn floating dependency

WARNING: QA Issue: systemd rdepends on libidn, but it isn't a build dependency? [build-deps]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
libaio: fix for mips64

Add mips64 support in the libaio.h
- add macro PADDED/PADDEDptr/PADDEDul in the mips64 for structure iocb
  to be matched userland with kernel

Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
archiver: fix truncation of src_rev

In trying to eliminate AUTOINC+ from revision strings,
we accidently truncated the strings to almost guarantee
information from SRCREV_FORMAT, when supplied, would be
lost.  So, we now only delete any AUTOINC+'s from the string.

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
cross-localedef-native: provide SRCREV_FORMAT

Add SRCREV_FORMAT to provide a composite version number
for get_srcrev() in fetch2 code.

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
nfs-utils: fix start-statd

1. add /bin to PATH of start-statd, otherwise systemctl can not be found.
2. drop error when systemd fails to start statd.service; since if it failed,
rpc.statd will be called directly.

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
libxml2: fix CVE-2014-3660

It was discovered that the patch for CVE-2014-0191 for libxml2 is
incomplete.  It is still possible to have libxml2 incorrectly perform
entity substituton even when the application using libxml2 explicitly
disables the feature.  This can allow a remote denial-of-service attack on
systems with libxml2 prior to 2.9.2.

References:
    http://www.openwall.com/lists/oss-security/2014/10/17/7
    https://www.ncsc.nl/actueel/nieuwsberichten/kwetsbaarheid-ontdekt-in-libxml2.html

Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
kernel.bbclass: Create modules directory even if there is no modules installed

During kernel_do_install it needs to make symbol link at
${D}/lib/modules/${KERNEL_VERSION}/build, but there will not be
${D}/lib/modules/${KERNEL_VERSION} if there is no modules installed for current
image, which will result in a build failure.
Add "mkdir -p ${D}/lib/modules/${KERNEL_VERSION}" here to avoid this failure
and the need of similar changes in other scripts that also expect it to exist.

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
rpm: realpath is required before expanding _dbpath in chroot

A regression is introduced by commit 66573093:
[ rpm: Fix rpm relocation macro usage ]

_usr turned out to be a relative path to support dyanmic config after
that, but it's being used somewhere as a indicator to locate substrings,
so we must get the real path of it in advance.

Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
native.bbclass: use BUILD_* variables

Instead of replicating the logic for the host compiler naming from bitbake.conf,
use the BUILD_* variables directly.

Also change BUILD_CPP to use gcc -E (which native.bbclass previously used), as
some recipes (e.g. grub-efi) use ${CPP} with multiple input files, which gcc -E
can handle but cpp can't.

Signed-off-by: Ross Burton <ross.burton@intel.com>
unifdef: remove fork, package upstream

Instead of building specifiaclly for native a static fork of unifdef from
2007, simply package the latest tarball.

Signed-off-by: Ross Burton <ross.burton@intel.com>
linux-yocto/3.10: 8250/8250_dw: fix compile failure due to stable/Yocto conflict

Updating the SRCREVs for the following fix:

   8250/8250_dw: fix compile failure due to stable/Yocto conflict

    As of merge 60a9d9fc565e4503dbb8705803e83d906afc4ad2, "Merge
    tag 'v3.10.48' into standard/base" the 8250_dw.c fails to
    compile due to an undeclared variable.

    This happens because stable brought in:

     -------------------------
     commit 6d5e79331417886196cb3a733bdb6645ba85bc42
     Author: Tim Kryger <tim.kryger@linaro.org>
     Date:   Tue Oct 1 10:18:08 2013 -0700

        serial: 8250_dw: Improve unwritable LCR workaround

        commit c49436b657d0a56a6ad90d14a7c3041add7cf64d upstream.

     [...]

        [wangnan: backport to 3.10.43:
          - adjust context
          - remove unneeded local var]
        Signed-off-by: Wang Nan <wangnan0@huawei.com>
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
     ------------------------

    ...which deletes the p->private_data declaration since it became
    unused at that point, however in Yocto, we also have this:

     -----------------------
     commit 0e02b050c3cafbcbf9952125089a27e02d6ecea9
     Author: David Daney <david.daney@cavium.com>
     Date:   Wed Jun 19 20:37:27 2013 +0000

        tty/8250_dw: Add support for OCTEON UARTS.

     [...]

        Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
        (cherry picked from commit d5f1af7ece96cf52e0b110c72210ac15c2f65438)
        Signed-off-by: Darren Hart <dvhart@linux.intel.com>
     -----------------------

    ...which _adds_ another user of the p->private_data.

    Here we restore the declaration in order that 8250_dw compiles.

    Signed-off-by: Ong Boon Leong <boon.leong.ong@intel.com>
    [PG: add root cause info to commit log.]
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
linux-yocto/3.17: v3.17 release and config

Updating the SRCREVs to incoroprate the full 3.17 release, and also
updating the meta data to match the v3.17 content:

  9ba007f8d0ab meta: bump kver to v3.17-final
  5c6c5fe9b0bf config: remove CONFIG_HOTPLUG
  0ceecad5f15a qemu: explicitly include usb configuration fragments
  f6c78ada8655 gfx: convert CONFIG_TABLET_USB_WACOM to CONFIG_HID_USB_WACOM
  cd1dbedfa3c9 x86: Support 32 bit binaries

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>