Skip to content
This repository has been archived by the owner on Feb 23, 2021. It is now read-only.

First attempt at a simple wrapper for configuring luv-yocto #43

Open
wants to merge 659 commits into
base: master
Choose a base branch
from

Conversation

mfleming
Copy link
Contributor

issue #31 explains the reasons it'd be good to have some simple to use script to configure the build environment. Basically, having manual steps makes it far too easy to get one of them wrong or skip it accidentally.

This is a first attempt at providing a simple to use single wrapper.

/cc @ricardon

tzanussi and others added 30 commits December 12, 2013 16:59
rpmmisc imports rpm and contains misc rpm utilities related to
packaging and determining arches based on the packaging.  We should
never run across this in the initial version of wic, so remove the
dependency.

(From OE-Core master rev: 2d59b6eeb418cf23eef3e32b43354b4ab16a40b9)

(From OE-Core rev: b16a9de9f5eb2d252ee263a4b2c66c74ff4ff78f)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
mylrlgrab is in grabber, which imports rpm.  For current
functionality, we don't need to grab urls or import rpm, so remove the
dependency.

(From OE-Core master rev: 429ecc2afa499df35a1ae9da6f92b88c6f2d8d11)

(From OE-Core rev: 1ef27c9dfa28f65458750c0afb2e136c4b79b226)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
We don't currently use rpm functionality, so we don't need to silence
rpm warnings.

(From OE-Core master rev: dd3cc03d4fa3347f8ef2db23d8ff98bdbdb73baa)

(From OE-Core rev: 8827b46d8cb4d6918451bd1c3c278465d8796e4b)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
BaseImageCreator is a base class for DirectImageCreator and others,
and imports rpm and grabber (which imports rpm).

The various plugins e.g. DirectPlugin import the creators and
therefore these dependencies, which manifest at run-time as e.g.:

  Warning: Failed to load plugin imager/direct_plugin: No module named
    rpm

(From OE-Core master rev: a1e24c4a5f5771b7ad35e53ce96c6d82212e4d7e)

(From OE-Core rev: f5587ec7e7f925b321b9bfe6923be0879dadb2aa)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
We don't currently use LiveCDImageCreator, but it makes calls when
initialized via the plugin interface to rpmmisc module functions,
which we don't want the dependency on.

To make it (and LiveUSBImageCreator) happy, we give it the dummy
"i386" value for now.

(From OE-Core master rev: e10ae516cfc10900ed12e84c743e3a7127372135)

(From OE-Core rev: a3cc57cf3116c997ec11dd3cbfa3b0d615e5dabc)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Current functionality doesn't make use of kpartx, mount, or unmount,
and we use native mkswap, so remove the binary checks for those.

(From OE-Core master rev: 76293d2d6bbdeacd7b34f39f26fb97c3d7f9496f)

(From OE-Core rev: 0ed290b81e1c3b781170033f50db01ddfff14784)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
find_binary_path() is useful, but if the binary isn't found, it prints
a stacktrace and a less-than-useful message.  Users complain when they
get stacktraces for things they can act on, so remove the stacktrace
and tell the user what the problem is.

(From OE-Core master rev: 0d9eef0eaa267500e8eedab8b72ddf24eb0516db)

(From OE-Core rev: 8a17195c9be38815e9ae431bcb18f66a4ad2cdcb)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Remove unnecessary pseudo exports i.e. PSEUDO_DISABLED and move the
setup to the top-level prepare_rootfs().

(From OE-Core master rev: 4bf11cd7d7301da664c098c8a0ae9c0294a6f423)

(From OE-Core rev: 8d661f578276c70e1671edfc810aa4dad97de970)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Test that filter backup module files (files starting with ~)
was accidentally reversed in e6039e6e3b98d6ab91252a5012d76279b1fac6e8,
this patch restore initial behavior.

(From OE-Core master rev: b2eb846ee12989add7a7ca8bbf45f293a3a7e56d)

(From OE-Core rev: 00ff958fec53e55cc475c1b31fb9813d97872ceb)

Signed-off-by: Michaël Burtin <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
midori depends on webkit-gtk which could not build for mips64.

[YOCTO #5141]

(From OE-Core master rev: abadeb934d4f41288c4fde6a4e5df2b124326326)

(From OE-Core rev: 672cd50a39a697b53c337a79c34fab05b48e0920)

Signed-off-by: Jackie Huang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
The PACKAGECONFIG flags were iterated over using dict.items(), but this
returns the items in an undefined order. As this order determines the
EXTRA_OECONF append order, we can get EXTRA_OECONF which are functionally
equivalent, but whose contents differ, resulting in not using shared state
archives we should be using.

(From OE-Core master rev: 843a5dd8f8f0461e286d9fdb3ba55205b4275f88)

(From OE-Core rev: 73f77c195e1af3df594eecce2cab47ee963d5c2e)

Signed-off-by: Christopher Larson <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
mDNS name resolution is a key part of mDNS, so if the DISTRO_FEATURE is enabled
then install libnss-mdns.

(From OE-Core master rev: ef2ee68778be8e5336cd33ab6551bce1d56047b6)

(From OE-Core rev: fb72bebc999aef7bb006a7ba273eaa96376a4016)

Signed-off-by: Ross Burton <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
If the same username exists on both target and the build host, but
the uids differ, and we start target via NFS, then the uid for the
user will be incorrect on target.

For example, if postfix's uid on host is 119 and on target is 1024,
then if we start target via NFS, the uid for postfix will be 119.

The root cause is that when we use runqemu-extract-sdk to generate
the NFS rootfs for later use, the tar command will respect the username
instead of uid. So if PSEUDO_PASSWD environment is not set correctly,
the host /etc/passwd will be used, resulting in wrong uids.

The situation for gid is completely analogous to that of uid.

It's almost impossible for the runqemu-extract-sdk to guess the correct
location of the needed password file merely based on the target tarball
name.

This patch solves this problem by adding the '--numeric-owner' option
to the tar command so that the uid/gid will be used when extracting the
tarball using runqemu-extract-sdk. In this situation, we'll always get
the correct uid/gid after extracting the tarball.

[YOCTO #5364]

(From OE-Core master rev: acce6ff1a77cfd29e3868faa89b120becb58bbbf)

(From OE-Core rev: c2baac739a521d1edd408a24f6b1fece8f755218)

Signed-off-by: Chen Qi <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Python 2.4 does not support the 'b' string literal or the
keyword 'as' in exception handling. Python 3 does not accept
the old method of exception handling and defaults to unicode.
The b() function converts strings to bytes on Python 3 and
using sys.exc_info() avoids the exception handling syntax.

(From OE-Core master rev: 1e2ec5f576f167673d7980737826987fefdc74a9)

(From OE-Core rev: 343127f2f81be337596d3eacbbc92278e82ce574)

Signed-off-by: Konrad Scherer <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
As the same reason to powerpc64, mips64 also need the flag.

(From OE-Core master rev: d6f3cb0d71c3b6739365f085b6d5a5e20f329fa5)

(From OE-Core rev: 9c4b604ea0d81bc1de224b35ae160f87be6bcf7b)

Signed-off-by: Wenzong Fan <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
An incorrect process name in the nfsserver initscript prevented
rpc.statd from being shut down.

root@qemux86-64:~# /etc/init.d/nfsserver start
creating NFS state directory: done
starting 8 nfsd kernel threads: done
starting mountd: done
starting statd: done

root@qemux86-64:~# ps | grep rpc.statd
  650 root     10532 S    /usr/sbin/rpc.statd
  654 root      4720 S    grep rpc.statd

root@qemux86-64:~# /etc/init.d/nfsserver stop
stopping statd: done
stopping mountd: done
stopping nfsd: done

root@qemux86-64:~# ps | grep rpc.statd
  650 root     10532 S    /usr/sbin/rpc.statd
  662 root      4720 S    grep rpc.statd

As this daemon drops a pid file,simply use that instead.
Also add some initialization checks so the daemons are not
left partially started in the absence of kernel nfsd support.

(From OE-Core master rev: 37e70a28e9cfc773bd70f09d7129295ce891ae18)

(From OE-Core rev: 5f22bad97a3bacb87cefb54ffd785d359c58aec0)

Signed-off-by: Andy Ross <[email protected]>
Signed-off-by: Qiang Chen <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
…eads

nfsserver restart without killing kernel threads worked when portmap
was the rpc publishing process and portmap was restarted.
When rpcbind replaces portmap, nfsserver restart in this way does not
work after an rpcbind restart.

Steps to reproduce:
1). Make ext3 filesystem image on local host.
cd /root
dd if=/dev/zero of=test bs=1024K count=50
mkfs.ext3 -F test

2). runqemu qemux86-64
mkdir /mnt/wrtest
mount -t ext3 -o loop test /mnt/wrtest
echo "/mnt/wrtest *(sync,rw,no_subtree_check,no_root_squash)" > /etc/exports
/etc/init.d/rpcbind restart
/etc/init.d/nfsserver restart
showmount -e localhost
mkdir wrtest
mount -t nfs localhost:/mnt/wrtest wrtest

mount: mounting localhost:/mnt/wrtest on wrtest failed: Connection refused

Modifying the nfsserver script to kill and restart kernel threads on
restart makes the problem go away and is consistent with current
RHEL/SUSE and Ubuntu/Debian mechanisms of handling the nfs server.

(From OE-Core master rev: 1a96b8d7dfc490fc61bbd470a8b09065750cd563)

(From OE-Core rev: d1b5e944656807c9db9cbe5d08d7b4bd8daeb826)

Signed-off-by: Rich Dubielzig <[email protected]>
Signed-off-by: Qiang Chen <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
(From OE-Core master rev: 89d7d46947d9bb8c7bf568c65e52d5bbe159027f)

(From OE-Core rev: 7c6504c6c059ba6b37f88143801ac8137267cf83)

Signed-off-by: Konrad Scherer <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
When installing the SDK to another location than the default one, qmake
will look for libraries, headers, etc. in the default location. That's
because the paths are hard-coded in the binary itself. Luckily, QT
allows to override this using a qt.conf file installed in the same
directory with the application executable. However, we already have a
patch that allows for the installation of qt.conf in another place and
read the location from QT_CONF_PATH environment variable.

Hence, install qt.conf in ${sysconfdir}. This will allow other apps, that
use QLibraryInfo class, to find it.

[YOCTO #5339]

(From OE-Core master rev: 23f88695683a8e428375a8ccb6be935347a8768c)

(From OE-Core rev: 0e71811a1c3285a71cbca682cb62c1563d3e74ee)

Signed-off-by: Laurentiu Palcu <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
This will allow apps using QLibraryInfo class to find qt.conf.

[YOCTO #5339]

(From OE-Core master rev: fffa4c37c49b169f663d28612b9251819cef9577)

(From OE-Core rev: 8dc1d62c5dc161ba606cebe27f6fe900699646f7)

Signed-off-by: Laurentiu Palcu <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
There is no need for += when using append hence removed and added a
leading space appropriately

(From OE-Core master rev: fb9cde0fc1a54b073edf5979f4cb7dc297b790fd)

(From OE-Core rev: 586db07af01da9d7772b7088a20886b506e09422)

Signed-off-by: Khem Raj <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
libpseudo.so is always installed into ${prefix}/lib/, not ${libdir},
so fix these paths; and skip libdir WARN_QA checking to ignore the
warning in 64bit and multilib enabled system

(From OE-Core master rev: 47c7850c025994685aa1811057f4f9a5f0f2a3ae)

(From OE-Core rev: 1929d4ef17652a3eb825942041908d679773244f)

Signed-off-by: Roy Li <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
- Wayland support depends on wayland-egl, which is provided by mesa.

(From OE-Core master rev: a1a379b3c9728a06b086b4c1f06f663f54d7d37d)

(From OE-Core rev: 8c75d888a5e4cf7fc2c92df730d80224f5ffa99a)

Signed-off-by: Andreas Oberritter <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
While ELF_C_RDWR_MMAP was used, elf_begin invoked mmap() to map file
into memory. While the file's bss Offset has a large number, elf_update
caculated file size by __elf64_updatenull_wrlock and the size was
enlarged.

In this situation, elf_update invoked ftruncate to enlarge the file,
and memory size (elf->maximum_size) also was incorrectly updated.
There was segment fault in elf_end which invoked munmap with the
length is the enlarged file size, not the mmap's length.

Before the above operations, invoke elf_begin/elf_update/elf_end
with ELF_C_RDWR and ELF_F_LAYOUT set to enlarge the above file, it
could make sure the file is safe for the following elf operations.

[YOCTO #5356]
https://bugzilla.redhat.com/show_bug.cgi?id=1019707
https://bugzilla.redhat.com/show_bug.cgi?id=1020842

(From OE-Core master rev: 35c8b1ac7c3b1e4209b1e30d1dbd1a457286b97b)

(From OE-Core rev: a82322a982dc97ebc95f3fc45f9ad98bed947ad9)

Signed-off-by: Hongxu Jia <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
When using the tar executable in the buildtools, tar will execute
gzip. If this happens before zlib-native is built, then the gzip
on the host will be used and can fail if the libz in the buildtools
is not compatible. Adding pigz to the build tools avoids this host
contamination.

(From OE-Core master rev: af6424e8c2bf3a938fddabc669c0956d68964ed0)

(From OE-Core rev: dd9945dd510d6e7764721bec5573591a0ad69ba4)

Signed-off-by: Konrad Scherer <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
This seems to be an obsolete check - we don't have any problems with
image creation under selinux, so remove it.

(From OE-Core master rev: 12e81eceab9e0a483765566ad3791b14718195b5)

(From OE-Core rev: 28830d3988047023d3b47bcaf320f5efa4428da6)

Signed-off-by: Tom Zanussi <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
(From OE-Core master rev: 3af8f2e0697a9523d3b505ba4c48eca35f6de3a9)

(From OE-Core rev: 438032411ea5d71a33b7b030752193867a90b9f7)

Signed-off-by: Jonathan Liu <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
ldd sysroots/x86_64-linux/usr/bin/gdk-pixbuf-query-loaders.real
<snip>
libz.so.1 => /sysroots/x86_64-linux/usr/bin/../../usr/lib/libz.so.1 (0x00007fab55393000)

If zlib-native has not been unpacked, host libz is used which can fail.

(From OE-Core master rev: 8422c759ae674856aaaee176eab5a395a620443c)

(From OE-Core rev: b9ae15b45768d25c44a9484b4a156a15da548bd9)

Signed-off-by: Konrad Scherer <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
(From OE-Core master rev: 9032c10cc882a96acdfd0739f090d121ab625a18)

(From OE-Core rev: c191cb79019482a5c6a404e02184bae40ff9f84a)

Signed-off-by: Roy Li <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
/etc/init.d/dbus-1 use "set -e" to let the script exit when any command failes.
This will cause "/etc/init.d/dbus-1 status" command can't display messages when dbus is stopped.

(From OE-Core master rev: 9844b5e2a544b2c2f76aac497c3a2cdfcc46577c)

(From OE-Core rev: 486d5d7e891df3fb2ce8d975d13625b11334814b)

Signed-off-by: Lu Chong <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
ricardon and others added 28 commits August 20, 2014 08:54
Make sure kernel-efi-warnings is included in the ramfs filesystem.

kerne-efi-warnings is a simple script that analyzes the kernel
messages to search for warnings that the kernel might issue if/when
it finds potential bugs in the UEFI firmware.

Signed-off-by: Ricardo Neri <[email protected]>
In order to display images from the boot menu we're going to need to
load gfxmenu, gfxterm and other grub modules. Turn them on in our
luvOS-specific bbappend.

Also include the chainloader module which is how we're going to execute
the bits tests.

Signed-off-by: Matt Fleming <[email protected]>
bits comes with its own version of the grub bootloader, with custom
modules installed as part of the grub image, for example a python module
to interpret the python tests.

We must install this boot loader alongside our default one, along with
the necessary parsers and test runners to extract the results of the
bits tests from userland.

Signed-off-by: Matt Fleming <[email protected]>
Without the header the bits runtime complains like so,

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/boot/python/init.py", line 69, in init
      bitsconfig.init()
    File "/boot/python/bitsconfig.py", line 42, in init
      config.read("/boot/bits-cfg.txt")
    File "/boot/python/lib/ConfigParser.py", line 305, in read
      self._read(fp, filename)
    File "/boot/python/lib/ConfigParser.py", line 512, in _read
      raise MissingSectionHeaderError(fpname, lineno, line)
  ConfigParser.MissingSectionHeaderError: File contains no section headers.
  file: /boot/bits-cfg.txt, line: 3
  'batch = test acpi smbios\n'

Include a [bits] header and make sure we actually install the config
file.

Signed-off-by: Matt Fleming <[email protected]>
When we've finished running the bits tests we need to return control to
the luvOS bootloader, so that we can run further tests, like booting a
Linux kernel.

Signed-off-by: Matt Fleming <[email protected]>
Curiously, the checksums have become invalid for bits-1084.zip. Update
them.

Signed-off-by: Matt Fleming <[email protected]>
Doing so will garble any image displayed by the main boot loader.

We're directly patching the python code as shipped in the bits release
zip file. This means that we need to regenerate the .pyc files, which
are required for bits to execute properly.

Signed-off-by: Matt Fleming <[email protected]>
Provide a luv splash screen for grub's use, which informs the user that
we're currently running boot tests.

Signed-off-by: Matt Fleming <[email protected]>
For luvOS we need to install more than one boot loader, plus a variety
of files to do boot time tests.

Roll our own class which gives us much more control over the
installation process and creation of the grub config.

Signed-off-by: Matt Fleming <[email protected]>
There are tools such as sbsigntool that require a native version
gnu-efi. Add support for building gnu-efi-native.

Cc: Stefan Stanacar <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
sbsigntool is a useful utility for cryptographically signing binaries
for use in UEFI systems.

Signed-off-by: Matt Fleming <[email protected]>
The tool cannot be built without this patch. We don't really need
the man pages in this project.

Signed-off-by: Ricardo Neri <[email protected]>
LuvOS is intended to be an automated testing tool. Thus, it does really
require much interaction from the user other than inserting the bootable
media, and removing it when tests are complete. Thus, we inform better
to the user what to do when the tests are complete.

Signed-off-by: Ricardo Neri <[email protected]>
Rather than hardcoding the package version, utilize the PV variable
to define the configure path. This will prevent build issues
when moving to a newer version.

Signed-off-by: Ricardo Neri <[email protected]>
1090 is the lastest release of the BIOS Implementation Test
Suite (BITS). These are the changes as per BITS relase notes:

 *Update to ACPICA version 20140325

 *Backport GRUB2 commit 4e42521d8c9232b6ee9eac7d8b4945a7479de781
  to preserve 16-byte alignment of the stack on EFI calls

 * python: Support the csv module

Signed-off-by: Ricardo Neri <[email protected]>
This patch was merged in V14.07.00 of fwts but we're currently on
V14.03.01.

We're seeing microcode test failures on a number of Haswell machines,
which shouldn't really be failures. This patch from upstream fixes that.

Signed-off-by: Matt Fleming <[email protected]>
A recent fix to change a securebootcert failure into an info message was
merged into upstream fwts. We're hitting this false positive on a number
of machines.

Signed-off-by: Matt Fleming <[email protected]>
We've no need to turn a data structure on the stack into a pointer and
use get_user() on a kernel address, and in fact, doing so is likely to
return -EFAULT, because the argument isn't a valid user address.

This bug was introduced in commit c2268a9 ("fwts: Copied the
structure from userland locally in kernel space"), and causes a
uefirttime failure.

Cc: Pradeep Gaddam <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
Things don't work across the board right now, anyhow. People have even
experienced hangs, and there's no way we can diagnose those hangs
without displaying the test log on the screen.

It's not ideal, and going forward we definitely need to satisfy both
requirements (easy debugging and pretty graphics), but if need to pick
one or the other, easy debugging wins every time.

Signed-off-by: Matt Fleming <[email protected]>
Providing verbose kernel output on the serial console during boot is a
useful way to debug issues. It also provides a much more informative
message of what is currently happening.

Enable both the standard ttyS0 device and ttyPCH0 which is the device
used on the Intel Minnowboard.

Tested-by: Gayatri Kammela <[email protected]>
Tested-by: Ricardo Neri <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
There's some latency somewhere in the test result pipeline, and it's
impossible to trace noticable hangs when writing test results to the
console to the offending unit test.

Just simplify the pipeline, and pipe the result output directly to the
console and results files instead of passing it through another instance
of gawk before it hits the console, since hunting down buffer-related
delays in gawk is extremely tedious.

There's no user-visible change with this patch - it's preparatory work
for a later patch that aggressively flushes the gawk output buffer.

Tested-by: Gayatri Kammela <[email protected]>
Tested-by: Ricardo Neri <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
The internal buffering that gawk does makes the test output pretty
useless, because it's not always possible to tell which test is
currently running. For example, a test may have completed but the output
will not appear on the screen until the output buffer fills and is
subsequently flushed. Effectively all the unit test results from a
single test suite are output as one block.

The wakealarm test from fwts provides a good illustration of the
user-visible problem. This test takes a number of seconds to complete,
but because all the fwts results are output in one go, it's not possible
to attribute delays to any one individual unit test.

Explicitly flush all open file descriptors and pipes anytime that we
print something from gawk.

This gives much better user interaction when looking at the serial
console because it's now possible to figure out which tests have the
longest latencies.

Whenever a unit test begins execution a message will be printed on the
serial console immediately, e.g.

      [+] wakealarm...

and when it finishes (in this case after multiple seconds) the result
will be printed too,

      [+] wakealarm... passed

Tested-by: Gayatri Kammela <[email protected]>
Tested-by: Ricardo Neri <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
As more LUV versions are released and the user base grows, it is important to
know which particular version of LUV a given user is running. Knowing the
version makes it easier to provide support and comments regarding bugs and
supported features.

Containing a summary of all the tests, luv.results is a good place to print
the LUV version. The version is pulled from the /etc/issue file, which is
updated with every release.

While here, update also the welcome message in the console to depict the
LUV version.

Signed-off-by: Ricardo Neri <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
Signed-off-by: Ricardo Neri <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
Windows will not mount and display more than one partition on a
removable disk.

Make the results partiion the first partition on the image so that users
are able to easily find the test results. Having this one partition
restriction isn't a problem otherwise, since there's little value in
auto-mounting the other partition (the EFI System Partition) anyway.

Of course, we're assuming firmware is smart enough to find the EFI
System Partition based on the partition table.

Fixes issue #23.

Reported-by: William Leara <[email protected]>
Debugged-by: Ricardo Neri <[email protected]>
Tested-by: Gayatri Kammela <[email protected]>
Signed-off-by: Matt Fleming <[email protected]>
This allows us to setup the correct DISTRO and MACHINE out of the box,
along with adding the meta-luv layer to BBLAYERS.

Signed-off-by: Matt Fleming <[email protected]>
Issue #30 showed that we currently have far too many configuration steps
that are required to build a luv image. And if you miss any of those
steps, the resulting failures are not at all helpful in diagnosing what
you did wrong.

Start simple for now, by just specifying a luv-specific TEMPLATECONF
directory. Later we could expand upon this and perhaps make it easier to
build for the various architectures.

Signed-off-by: Matt Fleming <[email protected]>
meghadey pushed a commit that referenced this pull request Mar 1, 2018
Changes in DBI 1.638:

Fix UTF-8 support for warn/croak calls within DBI internals,
    thanks to pali #53
Fix dependency on Storable for perl older than 5.8.9,
    thanks to H.Merijn Brand.

Add DBD::Mem driver, a pure-perl in-memory driver using DBI::DBD::SqlEngine,
    thanks to Jens Rehsack #42

Corrected missing semicolon in example in documentation,
    thanks to pali #55

Changes in DBI 1.637 - 16th August 2017:

Fix use of externally controlled format string (CWE-134) thanks to pali #44
    This could cause a crash if, for example, a db error contained a %.
    https://cwe.mitre.org/data/definitions/134.html
Fix extension detection for DBD::File related drivers
Fix tests for perl without dot in @inc RT#120443
Fix loss of error message on parent handle, thanks to charsbar #34
Fix disappearing $_ inside callbacks, thanks to robschaber #47
Fix dependency on Storable for perl older than 5.8.9

Allow objects to be used as passwords without throwing an error, thanks to demerphq #40
Allow $sth NAME_* attributes to be set from Perl code, re #45
Added support for DBD::XMLSimple thanks to nigelhorne #38

Documentation updates:
Improve examples using eval to be more correct, thanks to pali #39
Add cautionary note to prepare_cached docs re refs in %attr #46
Small POD changes (Getting Help -> Online) thanks to openstrike #33
Adds links to more module names and fix typo, thanks to oalders #43
Typo fix thanks to bor #37

Signed-off-by: Tim Orling <[email protected]>
Signed-off-by: Armin Kuster <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.