Go to file
Yann E. MORIN c5bd8af65e system: add options for /bin /sbin and /lib to be symlinks into /usr
systemd is increasingly expecting things to live in /usr/bin, /usr/sbin
or /usr/lib nad not in /bin, /sbin or /lib. It has inherited those
expectations from a Fedora change:
    https://fedoraproject.org/wiki/Features/UsrMove

Note however, that systemd does support /usr being on a separate
filesystem; it just expects an initramfs to mount it before the final
switchroot over to the actual rootfs.

But the traditional use-case for Buildroot is not to boot with an
initramfs; although that is totally feasible, that's probably not what
is commonly done in the vast majority of cases.

However, a lot of packages still install stuff directly into /bin,
/sbin or /lib, which systemd may need early-on in the boot process,
even before it may have a chance to mount /usr. Even though we can
tell systemd, at configure-time, where it should expect programs to
be at runtime, it does not make sense to go head-first against an
upstream wa^Hill.

Add an option so that /bin, /sbin and /lib be symlinks to /usr/bin
and /usr/sbin. That option is forcibly enabled when the init system
is systemd.

Note: we need not handle /lib32 or /lib64, as they already are symlinks
to /lib, which means they will automatically be redirected to /usr/lib,
as /usr/lib32 and /usr/lib64 already are.

Furthermore, this means we're no longer supporting a split-usr setup, so
the corresponding configure options have been removed as well for
systemd and, when using a merged /usr, for eudev as well.

In Buildroot, we decided (with this patch) not to support a split-usr
when systemd is used as an init system. This is a design decision, not
a systemd issue. Thus the select is with BR2_INIT_SYSTEMD rather than
with BR2_PACKAGE_SYSTEMD.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Mike Williams <mike@mikebwilliams.com>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Tested-by: Mike Williams <mike@mikebwilliams.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-10-14 22:50:03 +02:00
arch arch: add support for mips32r6 and mips64r6 variants 2015-10-12 21:33:56 +02:00
board qemu: add new board support for qemu-system-sparc64 2015-10-10 12:52:16 +02:00
boot uboot: arm64 arch build support 2015-10-12 21:59:44 +02:00
configs configs: remove old/broken Atmel configurations 2015-10-13 23:29:59 +02:00
docs ccache: support changing the output directory 2015-10-04 18:22:21 +02:00
fs fs/romfs: remove redunant ROMFS_TARGET definition 2015-10-06 08:20:01 +02:00
linux linux: add 'Image' as the image name for aarch64 2015-10-05 16:01:32 +02:00
package system: add options for /bin /sbin and /lib to be symlinks into /usr 2015-10-14 22:50:03 +02:00
support package-cmake: remove now-redundant target ccache support 2015-10-04 18:22:20 +02:00
system system: add options for /bin /sbin and /lib to be symlinks into /usr 2015-10-14 22:50:03 +02:00
toolchain toolchain: add mips64 for uClibc-ng 2015-10-13 00:01:25 +02:00
.defconfig arch: kill avr32 2015-02-14 17:39:50 +01:00
.gitignore
CHANGES Update for 2015.08 2015-08-31 23:06:58 +02:00
Config.in ccache: support changing the output directory 2015-10-04 18:22:21 +02:00
Config.in.legacy media-ctl: remove package 2015-10-10 11:40:54 +02:00
COPYING
Makefile toolchain-wrapper: support change of BR2_CCACHE 2015-10-04 18:22:20 +02:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README README: mention 'make list-defconfigs' 2015-04-04 15:19:43 +02:00

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 Freenode IRC.