mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-01 13:58:04 +00:00
lib/oe/package_manager: .deb pre/postinst args
The debian policy manual and MaintainerScripts wiki page states that the postinst script is supposed to be called with the `configure` argument at first install, likewise the preinst script is supposed to be called with the `install` argument on first install. https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html https://wiki.debian.org/MaintainerScripts (From OE-Core rev: 3d9c3aae54589794ce3484fa1b21d1af2bd32661) (From OE-Core rev: ba59b6416f24ad53f1caccf9185b46cb60da213a) Signed-off-by: Linus Wallgren <linus.wallgren@scypho.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
8d9783464a
commit
2d5e8043be
|
|
@ -2000,7 +2000,10 @@ class DpkgPM(OpkgDpkgPM):
|
|||
"""
|
||||
def run_pre_post_installs(self, package_name=None):
|
||||
info_dir = self.target_rootfs + "/var/lib/dpkg/info"
|
||||
suffixes = [(".preinst", "Preinstall"), (".postinst", "Postinstall")]
|
||||
ControlScript = collections.namedtuple("ControlScript", ["suffix", "name", "argument"])
|
||||
control_scripts = [
|
||||
ControlScript(".preinst", "Preinstall", "install"),
|
||||
ControlScript(".postinst", "Postinstall", "configure")]
|
||||
status_file = self.target_rootfs + "/var/lib/dpkg/status"
|
||||
installed_pkgs = []
|
||||
|
||||
|
|
@ -2023,16 +2026,18 @@ class DpkgPM(OpkgDpkgPM):
|
|||
|
||||
failed_pkgs = []
|
||||
for pkg_name in installed_pkgs:
|
||||
for suffix in suffixes:
|
||||
p_full = os.path.join(info_dir, pkg_name + suffix[0])
|
||||
for control_script in control_scripts:
|
||||
p_full = os.path.join(info_dir, pkg_name + control_script.suffix)
|
||||
if os.path.exists(p_full):
|
||||
try:
|
||||
bb.note("Executing %s for package: %s ..." %
|
||||
(suffix[1].lower(), pkg_name))
|
||||
subprocess.check_output(p_full, stderr=subprocess.STDOUT)
|
||||
(control_script.name.lower(), pkg_name))
|
||||
subprocess.check_output([p_full, control_script.argument],
|
||||
stderr=subprocess.STDOUT)
|
||||
except subprocess.CalledProcessError as e:
|
||||
bb.note("%s for package %s failed with %d:\n%s" %
|
||||
(suffix[1], pkg_name, e.returncode, e.output.decode("utf-8")))
|
||||
(control_script.name, pkg_name, e.returncode,
|
||||
e.output.decode("utf-8")))
|
||||
failed_pkgs.append(pkg_name)
|
||||
break
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user