]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
base-files: Drop /bin/sh dependency
authorMarek Vasut <marex@denx.de>
Mon, 10 Feb 2025 22:15:03 +0000 (23:15 +0100)
committerSteve Sakoman <steve@sakoman.com>
Tue, 11 Feb 2025 13:51:35 +0000 (05:51 -0800)
commit61880aac34ff408a8bc5060c6140bfd086b27524
treea30ccab19388779e32d0987ef72c9a076912bd52
parentd34b38ecc2571fae0d58a34db1358dff2505148d
base-files: Drop /bin/sh dependency

Remove /bin/sh from bash RPROVIDES as this has a side-effect which
confuses rpm package manager when also busybox provides /bin/sh and
base-files depend on /bin/sh . The problem is broken down below.

First, bash depends on base-files and bash pkg_postinst must run
after base-files was installed, because it requires /etc/shells
provided by base-files to be in place.

Second, base-files depends on /bin/sh, which is provided by either
bash or busybox in this case. This is the actual problem here, if
bash is selected as /bin/sh provider, then there is cyclic dependency
between bash and base-files, and that confuses dnf which may install
the packages in the wrong order, bash first and base-files second .

To make this worse, if busybox is also /bin/sh provider, it can and
does happen that some systems pick busybox as the /bin/sh provider,
while others pick bash as the /bin/sh provider, and that cyclic
dependency does not always appear.

Attempt to break this dependency, remove pre-inst script from the
base-files recipe, which removes its dependency on /bin/sh and
allows it to be installed very early, and always before bash.

(From OE-Core rev: e71b64a9b22c7db316e92e78a4bce8b9f994a4ae)

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/recipes-core/base-files/base-files_3.0.14.bb