[OE-core] pseudo: host user contamination

Andre McCurdy armccurdy at gmail.com
Tue Mar 27 01:10:07 UTC 2018


I've verified that the QA warnings on FC27 can be fixed by preloading
a wrapper for libc syscall(). Just a proof of concept but if anyone
would like to reproduce it my steps are below.


$ cat ../meta/recipes-core/mvtest/mvtest.bb
LICENSE = "CLOSED"

do_compile() {
        echo foo > bar
}

do_install() {
        install -D -p -m 0644 bar ${D}/bin/bar
        install -d -m 0755 ${D}/usr/bin
        mv ${D}/bin/bar ${D}/usr/bin/bar
        ln -s /usr/bin/bar ${D}/bin/bar
}

FILES_${PN} = "/bin/* /usr/bin/*"

$ bitbake mvtest
WARNING: Host distribution "fedora-27" has not been validated with
this version of the build system; you may possibly experience
unexpected failures. It is recommended that you use a tested
distribution.
Parsing recipes: 100%
|#######################################################| Time:
0:00:49
Parsing of 815 .bb files complete (0 cached, 815 parsed). 1282
targets, 45 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.37.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "i586-poky-linux"
MACHINE              = "qemux86"
DISTRO               = "poky"
DISTRO_VERSION       = "2.4+snapshot-20180327"
TUNE_FEATURES        = "m32 i586"
TARGET_FPU           = ""
meta
meta-poky
meta-yocto-bsp       = "master:80c7ca2c28959d08a59d960d318d8360392bd488"

Initialising tasks: 100%
|####################################################| Time: 0:00:00
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: mvtest-1.0-r0 do_package_qa: QA Issue: mvtest:
/mvtest/usr/bin/bar is owned by uid 1000, which is the same as the
user running bitbake. This may be due to host contamination
[host-user-contaminated]
NOTE: Tasks Summary: Attempted 470 tasks of which 456 didn't need to
be rerun and all succeeded.

Summary: There were 2 WARNING messages shown.

$ git clone https://github.com/armcc/interposers.git
Cloning into 'interposers'...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 12 (delta 0), reused 5 (delta 0), pack-reused 6
Unpacking objects: 100% (12/12), done.
$ make -C interposers/
make: Entering directory '/home/vagrant/poky/build/interposers'
gcc -O2 -Wl,-O1 -Wl,--hash-style=gnu -fPIC -Wall -Werror -std=c99
-shared -o libinterpose_memcpy.so memcpy.c -ldl
gcc -O2 -Wl,-O1 -Wl,--hash-style=gnu -fPIC -Wall -Werror -std=c99
-shared -o libinterpose_syscall.so syscall.c -ldl
make: Leaving directory '/home/vagrant/poky/build/interposers'

$ sudo mkdir /usr/lib/interposers
$ sudo cp interposers/libinterpose_syscall.so /usr/lib/interposers
$ sudo cp interposers/interpose_syscall /usr/local/bin/
$ sudo cp interposers/mv_wrapper /usr/local/bin/mv
$ ln -sf /usr/local/bin/interpose_syscall tmp/hosttools/interpose_syscall
$ ln -sf /usr/local/bin/mv tmp/hosttools/mv

$ bitbake mvtest -c cleanall

$ bitbake mvtest
WARNING: Host distribution "fedora-27" has not been validated with
this version of the build system; you may possibly experience
unexpected failures. It is recommended that you use a tested
distribution.
Loading cache: 100%
|#########################################################| Time:
0:00:00
Loaded 1282 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.37.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "i586-poky-linux"
MACHINE              = "qemux86"
DISTRO               = "poky"
DISTRO_VERSION       = "2.4+snapshot-20180327"
TUNE_FEATURES        = "m32 i586"
TARGET_FPU           = ""
meta
meta-poky
meta-yocto-bsp       = "master:80c7ca2c28959d08a59d960d318d8360392bd488"

Initialising tasks: 100%
|####################################################| Time: 0:00:00
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 470 tasks of which 456 didn't need to
be rerun and all succeeded.

Summary: There was 1 WARNING message shown.



More information about the Openembedded-core mailing list