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 33d441e41..711637a70 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" | |||
16 | 16 | ||
17 | S = "${WORKDIR}/git" | 17 | S = "${WORKDIR}/git" |
18 | 18 | ||
19 | # brokensep because m4/package_globals.m4 calls ". ./VERSION" (and that's not the only issue) | ||
19 | inherit autotools-brokensep useradd | 20 | inherit autotools-brokensep useradd |
20 | 21 | ||
21 | DEPENDS += "xfsprogs acl" | 22 | DEPENDS += "xfsprogs acl" |
@@ -44,15 +45,22 @@ USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2" | |||
44 | EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" | 45 | EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" |
45 | 46 | ||
46 | TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE" | 47 | TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE" |
47 | # install-sh script in the project is outdated | 48 | |
48 | # we use the one from the latest libtool to solve installation issues | ||
49 | # It looks like the upstream is not interested in having it fixed :( | ||
50 | # https://www.spinics.net/lists/fstests/msg16981.html | ||
51 | do_configure:prepend() { | 49 | do_configure:prepend() { |
52 | cp ${STAGING_DIR_NATIVE}${datadir}/libtool/build-aux/install-sh ${B} | 50 | # this is done by Makefile configure target, but we don't call it in do_configure |
51 | cp -a ${S}/include/install-sh . | ||
53 | } | 52 | } |
54 | 53 | ||
55 | do_install:append() { | 54 | # Not sure if this is needed, but with old install-sh it was sometimes failing with: |
55 | # cp: cannot stat 'group.list': No such file or directory | ||
56 | # http://errors.yoctoproject.org/Errors/Details/752404/ | ||
57 | # PARALLEL_MAKEINST = "-j1" | ||
58 | |||
59 | do_install:prepend() { | ||
60 | # otherwise install-sh duplicates DESTDIR prefix | ||
61 | export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}" | ||
62 | oe_runmake install | ||
63 | |||
56 | unionmount_target_dir=${D}/usr/xfstests/unionmount-testsuite | 64 | unionmount_target_dir=${D}/usr/xfstests/unionmount-testsuite |
57 | install -d ${D}/usr/xfstests/unionmount-testsuite/tests | 65 | install -d ${D}/usr/xfstests/unionmount-testsuite/tests |
58 | install -D ${WORKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests | 66 | install -D ${WORKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests |