Go to file
Yann E. MORIN a4f5ed5a7c package/dracut: workaround breakage on non-merged-usr hosts
dracut is not really ready to be installed with a non-/ prefix, and it
has a lot of hard-coded assumptions that it is going to run on the host
for which it is goign to generate an initramfs; for example, it
hard-codes calls to /lib/dracut/some-file in some of its modules. It
also uses the host system layout to decide whether it needs a
merged-usr or not.

Furthermore, dracut populates the temporary directory which content will
be used to generate the cpio, with a bunch of files, even before calling
any of the dracut modules.

The name for that temporary directory is not predictable (looks like the
output of 'mktemp -d dracut.XXXXXX', with names like dracut.1Vfn9F seen
while debugging).

As a consequence, we can't prepare the temporary directory with the
proper symlinks beforehand.

So, we provide a very-early module of our own, that will (hopefully) run
before any other module, to fixup the messed-up layout prepared by
dracut. This module moves the content of /lib, /bin, and /sbin, out and
into their counterparts in /usr, and creates the usual symlinks.

When we do not require a merged-usr, then we have nothing to do, so the
module checks for /lib being a symlink, as the hint that we want a
merged-usr or not.

Note: currently, we've seen nothing that dracut installed in /bin or
/sbin, but for trying to be future-proof, we also handle them; this
causes a spurious warning:
    mv: cannot stat '..../build/buildroot-fs/cpio/tmp/dracut.YQnzNP/initramfs/bin/*': No such file or directory

Since there are already quite a bunch of similar failures in the
official modules bundled in dracut, an extra such issue or two should
not be too scary...

Fixes:
    https://gitlab.com/buildroot.org/buildroot/-/jobs/3282261241
    https://gitlab.com/buildroot.org/buildroot/-/jobs/3282261239
    https://gitlab.com/buildroot.org/buildroot/-/jobs/3282261236

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thierry Bultel <thierry.bultel@linatsea.fr>
Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-11-13 22:10:55 +01:00
arch arch/Config.in.arm: drop support for iwmmxt architecture variant 2022-09-25 14:06:08 +02:00
board board/zynqmp/kria/kv260/uboot.fragment: remove unnecessary CONFIG_MULTI_DTB_FIT option 2022-11-13 21:57:21 +01:00
boot boot/arm-trusted-firmware: fix SSP disable in v2.2 2022-11-13 21:54:57 +01:00
configs configs/kontron_bl_imx8mm_defconfig: bump U-boot to 2022.10 2022-11-13 14:31:20 +01:00
docs Update for 2022.11-rc1 2022-11-03 16:50:49 +01:00
fs fs/cpio: don't fail systems without /dev/null 2022-11-01 21:44:49 +01:00
linux package/linux: don't leak host timezone into linux version string 2022-11-05 15:09:33 +01:00
package package/dracut: workaround breakage on non-merged-usr hosts 2022-11-13 22:10:55 +01:00
support support/testing/tests/package/test_gdb.py: drop version-specific tests 2022-11-03 23:08:10 +01:00
system
toolchain package/glibc: headers >= 5.4 needed on RISC-V 32-bit 2022-10-30 12:44:15 +01:00
utils utils/genrandconfig: handle a10disp 2022-10-31 13:20:03 +01:00
.clang-format
.defconfig
.flake8
.gitignore
.gitlab-ci.yml
.shellcheckrc
CHANGES Update for 2022.11-rc1 2022-11-03 16:50:49 +01:00
Config.in
Config.in.legacy package/libdcadec: remove package 2022-11-05 19:09:54 +01:00
COPYING
DEVELOPERS DEVELOPERS: drop entry related to inexisting directory 2022-11-11 22:58:42 +01:00
Makefile Update for 2022.11-rc1 2022-11-03 16:50:49 +01:00
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches