* [PATCH] Supply correct argument to .deb pre/postinsts
@ 2016-11-14 10:35 Linus Wallgren
2016-11-14 14:02 ` Burton, Ross
0 siblings, 1 reply; 3+ messages in thread
From: Linus Wallgren @ 2016-11-14 10:35 UTC (permalink / raw)
To: openembedded-core; +Cc: Linus Wallgren
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
---
meta/lib/oe/package_manager.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 3cee973..ec947c3 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -1993,7 +1993,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 = []
@@ -2016,16 +2019,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
--
2.10.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] Supply correct argument to .deb pre/postinsts
2016-11-14 10:35 [PATCH] Supply correct argument to .deb pre/postinsts Linus Wallgren
@ 2016-11-14 14:02 ` Burton, Ross
2016-11-14 16:20 ` [PATCH] lib/oe/package_manager: .deb pre/postinst args Linus Wallgren
0 siblings, 1 reply; 3+ messages in thread
From: Burton, Ross @ 2016-11-14 14:02 UTC (permalink / raw)
To: Linus Wallgren; +Cc: OE-core
[-- Attachment #1: Type: text/plain, Size: 667 bytes --]
On 14 November 2016 at 10:35, Linus Wallgren <linus.wallgren@scypho.com>
wrote:
> 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
>
Please prefix the commit shortlog with the name of the component being
modified ("lib/oe/package_manager: " seems reasonable to me), and add a
signed-off-by to the commit log.
Ross
[-- Attachment #2: Type: text/html, Size: 1313 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH] lib/oe/package_manager: .deb pre/postinst args
2016-11-14 14:02 ` Burton, Ross
@ 2016-11-14 16:20 ` Linus Wallgren
0 siblings, 0 replies; 3+ messages in thread
From: Linus Wallgren @ 2016-11-14 16:20 UTC (permalink / raw)
To: openembedded-core; +Cc: Linus Wallgren
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
Signed-off-by: Linus Wallgren <linus.wallgren@scypho.com>
---
meta/lib/oe/package_manager.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 3cee973..ec947c3 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -1993,7 +1993,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 = []
@@ -2016,16 +2019,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
--
2.10.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-11-14 16:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 10:35 [PATCH] Supply correct argument to .deb pre/postinsts Linus Wallgren
2016-11-14 14:02 ` Burton, Ross
2016-11-14 16:20 ` [PATCH] lib/oe/package_manager: .deb pre/postinst args Linus Wallgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox