Files
meta-openembedded/meta-filesystems
Martin Jansa 8e5f98be35 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>
2024-02-09 09:52:16 -08:00
..
2013-08-16 12:58:31 +02:00

This README file contains information on the contents of the filesystems layer.

Please see the corresponding sections below for details.

Dependencies

This layer depends on:

URI: git://git.openembedded.org/openembedded-core layers: meta branch: master

URI: git://git.openembedded.org/meta-openembedded layers: meta-oe branch: master

Patches

Please submit any patches against the filesystems layer to the OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org) with '[meta-filesystems]' in the subject.

Layer maintainer: Khem Raj raj.khem@gmail.com

When sending single patches, please use something like:

git send-email -1 -M
--to openembedded-devel@lists.openembedded.org
--subject-prefix='meta-filesystems][PATCH'

Table of Contents

I. Adding the filesystems layer to your build II. Misc

I. Adding the filesystems layer to your build

In order to use this layer, you need to make the build system aware of it.

Assuming the filesystems layer exists at the top-level of your yocto build tree, you can add it to the build system by adding the location of the filesystems layer to bblayers.conf, along with any other layers needed. e.g.:

BBLAYERS ?= "
/path/to/yocto/meta
/path/to/yocto/meta-oe
/path/to/yocto/meta-filesystems
"

II. Misc

--- physfs --- A library to provide abstract access to various archives

--- fuse --- Filesystem in Userspace (FUSE) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel.

--- ifuse --- A fuse filesystem to access the contents of an iPhone or iPod Touch

--- sshfs-fuse --- A filesystem client based on the SSH File Transfer Protocol

--- owfs --- An easy way to use the 1-Wire file system

--- ntfs-3g-ntfsprogs --- The ntfs-3g is a freely available read/write NTFS driver for Linux and ntfsprogs includes utilities for doing all required tasks to NTFS partitions.

--- cramfs --- Builds cramfs filesystems for embedded systems

--- smbnetfs --- SMBNetFS is a Linux/FreeBSD filesystem that allow you to use samba/microsoft network in the same manner as the network neighborhood in Microsoft Windows.

--- fuse-exfat --- A read and write exFAT driver for FUSE

--- exfat-utils --- Utilities to create, check, label and dump exFAT filesystem

--- f2fs-tools --- Tools needed for creating and managing f2fs partitions

--- xfsprogs --- It provides XFS filesystem utilities.