[Buildroot] [PATCH 00/18 v3] system: add support for merged-bin (branch yem/merged-bin)

Yann E. MORIN yann.morin.1998 at free.fr
Mon Sep 1 09:01:24 UTC 2025


Hello All!

This series introduces support for so-called merged-bin, where /usr/sbin
is merged with /usr/bin, as an extra step after merged-usr, now just
requested, but in the future required, by systemd.

The series is organised in a few steps:

 1. patches 1-3 are cleanups in the Kconfig menu, related to the
    merged-usr prompt, to the defaults for PATH, and to the rationale
    for selecting merged-usr with systemd; those can be applied without
    considering the rest of the series;

 2. then patches 4-9 prepare support/scripts/check-merged-usr.sh to
    check for more than merged-usr: a good cleanup, and better check the
    merged state; those patch can also be applied without considering
    the rest of the series;

 3. with patches 9-12, support for merged-bin is added, and the merge
    level of skeleton and overlays properly enforced to match the
    configured merge setup; those require the two set of patches above
    to be applied first;

 4. then, patches 13-17 introduce workarounds for a few packages to
    properly support merged-bin. For ease of review, those are separate
    patches, but that means the series _may_ break if the merged-bin
    support is applied but not these per-package workarounds; these
    require that all patches above be applied first, of course;

 5. the last patch makes merged-bin mandatory for systemd and extend the
    systemd runtime test to catch future tainted flag; again, that
    requires that everything before is applied, too.

The series was tested with a large set of packages and a large set of
toolchains, and although it is a critical change, it is still pretty
well confined to just a few spots.

Changes v2 -> v3;
  - add fix for merged-bin to net-tools

Changes v1 -> v2:
  - add Arnout's Acked-by tag where appropriate
  - totally rewrite the test for merged status
  - reject unexpectedly merged skeletons or overlays
  - add runtime test to catch systemd tainted flags
  - typos

Regards,
Yann E. MORIN.


----------------------------------------------------------------
Yann E. MORIN (18):
      system: reword merged-usr prompt
      system: drop superfluous negative condition for default PATH
      package/systemd: select merged-usr from package, not init
      support/scripts: comonalise checking merged status
      support/scripts: prepare for a more complex check for merged directories
      support/scripts: also exit in error on improperly merged-usr
      support/scripts: move merged-usr errors message into check-merged-usr.sh
      support/scripts: fix and restrict conditions to accept merged dirs
      support/scripts: rename check-merged-usr.sh
      support/scripts; teach check-merged what to check
      system: add support for merged /usr/sbin (aka merged-bin)
      support/scripts: reject skeletons or overlays that are unexpectedly merged
      package/coreutils: no need for chroot workaround with merged-bin
      package/kmod: adjust paths for merged-bin
      package/util-linux: adjust paths for merged-bin
      package/net-tools: no need for ifconfig+route workarounds with merged-bin
      toolchain/external: support merged-bin
      package/systemd: require merged-bin

 Makefile                                   |  19 ++--
 package/coreutils/coreutils.mk             |   2 +
 package/kmod/kmod.mk                       |  12 ++-
 package/net-tools/net-tools.mk             |  10 +-
 package/skeleton-custom/skeleton-custom.mk |  25 ++---
 package/systemd/Config.in                  |   2 +
 package/util-linux/util-linux.mk           |   8 +-
 support/scripts/check-merged               | 146 +++++++++++++++++++++++++++++
 support/scripts/check-merged-usr.sh        |  39 --------
 support/testing/tests/init/test_systemd.py |  19 ++++
 system/Config.in                           |  20 ++--
 system/skeleton/usr/sbin/.empty            |   0
 system/system.mk                           |  14 ++-
 toolchain/helpers.mk                       |   8 +-
 14 files changed, 240 insertions(+), 84 deletions(-)
 create mode 100755 support/scripts/check-merged
 delete mode 100755 support/scripts/check-merged-usr.sh
 delete mode 100644 system/skeleton/usr/sbin/.empty

--
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list