mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
rootfs.py: change the logic in _uninstall_unneeded
Previously, if we have 'package-management' and 'read-only-rootfs' both in IMAGE_FEATRUES, we would meet the following error at system start-up. rm: can't remove '/etc/rcS.d/S99run-postinsts': Read-only file system However, what's really expected is that when there's no postinstall script at system start-up, the /etc/rcS.d/S99run-postinsts should not even be there. Whether or not to remove the init script symlinks to run-postinsts should not depend on whether we have 'package-management' in IMAGE_FEATURES; rather, it should only depend on whether we have any postinstall script left to run at system start-up. This patch changes the _uninstall_unneeded function based on the logic stated above. [YOCTO #6257] (From OE-Core rev: d51b1ced88958d31a1596e37db871257fe013446) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -130,11 +130,19 @@ class Rootfs(object):
|
|||||||
self._cleanup()
|
self._cleanup()
|
||||||
|
|
||||||
def _uninstall_uneeded(self):
|
def _uninstall_uneeded(self):
|
||||||
|
# Remove unneeded init script symlinks
|
||||||
|
delayed_postinsts = self._get_delayed_postinsts()
|
||||||
|
if delayed_postinsts is None:
|
||||||
|
if os.path.exists(self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts")):
|
||||||
|
self._exec_shell_cmd(["update-rc.d", "-f", "-r",
|
||||||
|
self.d.getVar('IMAGE_ROOTFS', True),
|
||||||
|
"run-postinsts", "remove"])
|
||||||
|
|
||||||
|
# Remove unneeded package-management related components
|
||||||
if base_contains("IMAGE_FEATURES", "package-management",
|
if base_contains("IMAGE_FEATURES", "package-management",
|
||||||
True, False, self.d):
|
True, False, self.d):
|
||||||
return
|
return
|
||||||
|
|
||||||
delayed_postinsts = self._get_delayed_postinsts()
|
|
||||||
if delayed_postinsts is None:
|
if delayed_postinsts is None:
|
||||||
installed_pkgs_dir = self.d.expand('${WORKDIR}/installed_pkgs.txt')
|
installed_pkgs_dir = self.d.expand('${WORKDIR}/installed_pkgs.txt')
|
||||||
pkgs_to_remove = list()
|
pkgs_to_remove = list()
|
||||||
@@ -154,10 +162,6 @@ class Rootfs(object):
|
|||||||
# Update installed_pkgs.txt
|
# Update installed_pkgs.txt
|
||||||
open(installed_pkgs_dir, "w+").write('\n'.join(pkgs_installed))
|
open(installed_pkgs_dir, "w+").write('\n'.join(pkgs_installed))
|
||||||
|
|
||||||
if os.path.exists(self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts")):
|
|
||||||
self._exec_shell_cmd(["update-rc.d", "-f", "-r",
|
|
||||||
self.d.getVar('IMAGE_ROOTFS', True),
|
|
||||||
"run-postinsts", "remove"])
|
|
||||||
else:
|
else:
|
||||||
self._save_postinsts()
|
self._save_postinsts()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user