diff options
author | Martin Jansa <martin.jansa@gmail.com> | 2024-02-08 17:51:35 +0100 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2024-02-09 09:52:16 -0800 |
commit | 8e5f98be352946fe1440a54700026580c2ae2043 (patch) | |
tree | 7124f73ac342d6eb512d7445a38be114a72f8833 /meta-filesystems | |
parent | 5057523005cc2838597931272b21a9a5d91e5da5 (diff) | |
download | meta-openembedded-8e5f98be352946fe1440a54700026580c2ae2043.tar.gz |
xfstests: drop the upstream rejected install-sh hack
* I'm trying to fix random build failure from world builds:
tests-install sometimes fails as shown bellow:
cp: cannot stat 'group.list': No such file or directory
...
mv: failed to preserve ownership for 'group.list': Invalid argument
whole log:
2023.10.29: http://errors.yoctoproject.org/Errors/Details/752403/
2024.01.14 http://errors.yoctoproject.org/Errors/Details/752404/
* Interestingly I finally triggered this error for first time in my
local build (when rebuilding it after reverting this upgrade -
which might be just coincidence), here is the log:
While looking at this a bit more, I've noticed that install-sh in:
# install-sh script in the project is outdated
# we use the one from the latest libtool to solve installation issues
# It looks like the upstream is not interested in having it fixed :(
# https://www.spinics.net/lists/fstests/msg16981.html
do_configure:prepend() {
cp ${STAGING_DIR_NATIVE}${datadir}/libtool/build-aux/install-sh ${B}
}
is copied only to ${B}, but Makefile still has "cp include/install-sh ."
which was removed in proposed change for upstream:
https://www.spinics.net/lists/fstests/msg16899.html
but here it isn't, so shouldn't we copy it to ${B}/include to make
sure that make won't use the old version?
So I've tried to add:
cp ${STAGING_DIR_NATIVE}${datadir}/libtool/build-aux/install-sh ${B}/include
in do_configure:prepend and then I've triggered the build failure again
this time with 2024.01.14 version as well by running:
for i in `seq -w 1 100`; do bitbake -c cleansstate xfstests; bitbake -k xfstests 2>&1 | tee log.xfstests.$i; done
so the issue isn't fixed in the 2024.01.14 version, but maybe it's
a bug introduced by our install-sh?
It was rejected by upstream in:
https://www.spinics.net/lists/fstests/msg16928.html
This install-sh has been used for performance reason, I'd like keep it
if possible. Would you please describe the failures you hit in
cross-compilation env? It'd be great if we could fix the env issue.
Also the important error isn't:
"mv: failed to preserve ownership for 'group.list': Invalid argument"
because that's shown in all the builds:
xfstests $ grep -c "mv: failed to preserve ownership for 'group.list': Invalid argument" */temp/log.do_install*
2023.10.29-broken/temp/log.do_install:14
2023.10.29-broken/temp/log.do_install.1094046:14
2023.10.29-fixed-after-broken/temp/log.do_install:14
2023.10.29-fixed-after-broken/temp/log.do_install.1094046:14
2023.10.29-fixed-after-broken/temp/log.do_install.1120923:14
2023.10.29/temp/log.do_install:14
2023.10.29/temp/log.do_install.1094046:14
2024.01.14-ok/temp/log.do_install:14
2024.01.14-ok/temp/log.do_install.1186155:14
but the "cp: cannot stat 'group.list': No such file or directory" which is shown only in the ones which in the end failed:
xfstests $ grep cp */temp/log.do_install*
2023.10.29-broken/temp/log.do_install:cp: cannot stat 'group.list': No such file or directory
2023.10.29-broken/temp/log.do_install.1094046:cp: cannot stat 'group.list': No such file or directory
2023.10.29-fixed-after-broken/temp/log.do_install.1094046:cp: cannot stat 'group.list': No such file or directory
2023.10.29/temp/log.do_install:cp: cannot stat 'group.list': No such file or directory
2023.10.29/temp/log.do_install.1094046:cp: cannot stat 'group.list': No such file or directory
So I guess we should just drop this install-sh hack from do_configure completely
as cross-compilation seems to be fixed upstream already in:
https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/commit/?id=5d20084fefaf09e86be26d7c71bd1c7ac2a2b35c
xfstests/2024.01.14-ok/git $ git log --oneline include/install-sh
fa993e51 include/: spdx license conversion
da7916f7 build: Use the original install-sh file from SGI
xfstests/2024.01.14-ok/git $ git log --oneline install-sh
5d20084f build: allow cros-compilation on chromeOS
e3ca126a xfstests: respect DESTDIR when installing
fa6a7868 xfsqa: more sh to bash conversions
491d467f Add GPL license plate to SGI's files.
d259454b Update copyright annotations and license boilerplates to correspond with SGI Legals preferences. Merge of master-melb:xfs-cmds:24329a by kenmcd.
3ef12e38 Update copyright dates (again)
bc4eb461 Undoes mod: xfs-cmds:slinx:120772a Undo xfs-cmds:slinx:120772a, inadvertently whacked a previous mod.
8ce73f86 Update copyright dates
db6944ec need a copy of this here too.
* buildhistory doesn't show any difference, so all the
files are installed in the same location as before
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-filesystems')
-rw-r--r-- | meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb index 33d441e41e..711637a70d 100644 --- a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb +++ b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb @@ -16,6 +16,7 @@ SRCREV_unionmount = "e3825b16b46f4c4574a1a69909944c059835f914" S = "${WORKDIR}/git" +# brokensep because m4/package_globals.m4 calls ". ./VERSION" (and that's not the only issue) inherit autotools-brokensep useradd DEPENDS += "xfsprogs acl" @@ -44,15 +45,22 @@ USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2" EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE" -# install-sh script in the project is outdated -# we use the one from the latest libtool to solve installation issues -# It looks like the upstream is not interested in having it fixed :( -# https://www.spinics.net/lists/fstests/msg16981.html + do_configure:prepend() { - cp ${STAGING_DIR_NATIVE}${datadir}/libtool/build-aux/install-sh ${B} + # this is done by Makefile configure target, but we don't call it in do_configure + cp -a ${S}/include/install-sh . } -do_install:append() { +# Not sure if this is needed, but with old install-sh it was sometimes failing with: +# cp: cannot stat 'group.list': No such file or directory +# http://errors.yoctoproject.org/Errors/Details/752404/ +# PARALLEL_MAKEINST = "-j1" + +do_install:prepend() { + # otherwise install-sh duplicates DESTDIR prefix + export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}" + oe_runmake install + unionmount_target_dir=${D}/usr/xfstests/unionmount-testsuite install -d ${D}/usr/xfstests/unionmount-testsuite/tests install -D ${WORKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests |