ca-certificates: fix on-target postinstall script

When the package is installed directly on the machine (instead of
installing it in the rootfs directly), the postinstall script fails with
the following error:

/usr/sbin/update-ca-certificates: line 75: shift: shift count out of range

The reason is that the "update-ca-certificates" script is executed with
the "--sysroot" argument, and as the sysroot $D is passed. However on the
target system this variable doesn't exist, so the argument is passed without
this mandatory value, and the execution fails.

To avoid this error, check if the $D variable exists, and pass the --sysroot
argument only when it does.

Reported-by: WXbet <Wxbet@proton.me>
(From OE-Core rev: 9a2bd3b6e2e53071a1463d2804d0d4fb17b1814f)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cf39461e97098a1b28693299677888ba7e8bfccf)
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Gyorgy Sarvari 2025-11-10 23:21:47 +13:00 committed by Steve Sakoman
parent d9c3943da3
commit 7810db935d

View File

@ -60,7 +60,8 @@ do_install:append:class-target () {
}
pkg_postinst:${PN}:class-target () {
$D${sbindir}/update-ca-certificates --sysroot $D
[ -n "$D" ] && sysroot_args="--sysroot $D"
$D${sbindir}/update-ca-certificates $sysroot_args
}
CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf"