summaryrefslogtreecommitdiffstats
path: root/meta-filesystems/recipes-utils
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2024-02-08 17:51:35 +0100
committerKhem Raj <raj.khem@gmail.com>2024-02-09 09:52:16 -0800
commit8e5f98be352946fe1440a54700026580c2ae2043 (patch)
tree7124f73ac342d6eb512d7445a38be114a72f8833 /meta-filesystems/recipes-utils
parent5057523005cc2838597931272b21a9a5d91e5da5 (diff)
downloadmeta-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/recipes-utils')
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb20
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
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
18 18
19# brokensep because m4/package_globals.m4 calls ". ./VERSION" (and that's not the only issue)
19inherit autotools-brokensep useradd 20inherit autotools-brokensep useradd
20 21
21DEPENDS += "xfsprogs acl" 22DEPENDS += "xfsprogs acl"
@@ -44,15 +45,22 @@ USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2"
44EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" 45EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root"
45 46
46TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE" 47TARGET_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
51do_configure:prepend() { 49do_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
55do_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
59do_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