* [PATCH V3 0/4] Postinst logging reimplementation
@ 2013-05-21 8:12 Qi.Chen
2013-05-21 8:12 ` [PATCH V3 1/4] image.bbclass: add postinst_enable_logging Qi.Chen
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Qi.Chen @ 2013-05-21 8:12 UTC (permalink / raw)
To: openembedded-core; +Cc: qingtao.cao
From: Chen Qi <Qi.Chen@windriver.com>
Goal:
1. Enable postinst logging if 'debug-tweaks' is in IMAGE_FEATURES
2. Make rpm, opkg and dpkg not depend on IMAGE_FEATURES and POSTLOG
Implementation:
1. The run-postinst scripts will log outputs by checking the configuration in /etc/default/postinst.
2. The log location is by default /var/log/postinstall.log.
But it could be configured to a different location.
The following changes since commit 6271ac326d08fb3e9b4c2008b796233ee11a83e4:
zlib: put shared libraries in base_libdir (2013-05-21 00:18:46 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib ChenQi/postinst-logging-reimplementation
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/postinst-logging-reimplementation
Chen Qi (4):
image.bbclass: add postinst_enable_logging
dpkg: modify the run-postinst script to enable postinst logging
opkg: modify the run-postinst script to enable postinst logging
rpm-postinsts.bb: enable postinst logging
meta/classes/image.bbclass | 11 +++++++++++
meta/recipes-devtools/dpkg/dpkg.inc | 11 ++++++-----
meta/recipes-devtools/opkg/opkg.inc | 7 ++++++-
meta/recipes-devtools/rpm/rpm-postinsts.bb | 13 +++++++------
4 files changed, 30 insertions(+), 12 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH V3 1/4] image.bbclass: add postinst_enable_logging
2013-05-21 8:12 [PATCH V3 0/4] Postinst logging reimplementation Qi.Chen
@ 2013-05-21 8:12 ` Qi.Chen
2013-05-21 8:12 ` [PATCH V3 2/4] dpkg: modify the run-postinst script to enable postinst logging Qi.Chen
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Qi.Chen @ 2013-05-21 8:12 UTC (permalink / raw)
To: openembedded-core; +Cc: qingtao.cao
From: Chen Qi <Qi.Chen@windriver.com>
Add a function postinst_enable_logging, so that when 'debug-tweaks'
is in IMAGE_FEATURES, we create /etc/default/postinst config file,
which is sourced by run-postinst scripts to determine whether to log
or not, and where to log.
[YOCTO #4262]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/classes/image.bbclass | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 4f07708..c7eedd4 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -175,6 +175,10 @@ MACHINE_POSTPROCESS_COMMAND ?= ""
ROOTFS_POSTPROCESS_COMMAND_prepend = "run_intercept_scriptlets; "
# Allow dropbear/openssh to accept logins from accounts with an empty password string if debug-tweaks is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "ssh_allow_empty_password; ", "",d)}'
+# Enable postinst logging if debug-tweaks is enabled
+ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "postinst_enable_logging; ", "",d)}'
+# Set default postinst log file
+POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log"
# some default locales
IMAGE_LINGUAS ?= "de-de fr-fr en-gb"
@@ -484,6 +488,13 @@ ssh_allow_empty_password () {
fi
}
+# Enable postinst logging if debug-tweaks is enabled
+postinst_enable_logging () {
+ mkdir -p ${IMAGE_ROOTFS}/etc/default
+ echo "POSTINST_LOGGING=1" >> ${IMAGE_ROOTFS}/etc/default/postinst
+ echo "LOGFILE=${POSTINST_LOGFILE}" >> ${IMAGE_ROOTFS}/etc/default/postinst
+}
+
# Turn any symbolic /sbin/init link into a file
remove_init_link () {
if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH V3 2/4] dpkg: modify the run-postinst script to enable postinst logging
2013-05-21 8:12 [PATCH V3 0/4] Postinst logging reimplementation Qi.Chen
2013-05-21 8:12 ` [PATCH V3 1/4] image.bbclass: add postinst_enable_logging Qi.Chen
@ 2013-05-21 8:12 ` Qi.Chen
2013-05-21 8:12 ` [PATCH V3 3/4] opkg: " Qi.Chen
2013-05-21 8:12 ` [PATCH V3 4/4] rpm-postinsts.bb: " Qi.Chen
3 siblings, 0 replies; 5+ messages in thread
From: Qi.Chen @ 2013-05-21 8:12 UTC (permalink / raw)
To: openembedded-core; +Cc: qingtao.cao
From: Chen Qi <Qi.Chen@windriver.com>
Enable postinst logging by checking the configuration in /etc/
default/postinst.
In this way, the postinst logging is enabled if 'debug-tweaks' is
in IMAGE_FEATURES, and at the same time, we avoid unnecessary rebuilt
if IMAGE_FEATURES is changed.
[YOCTO #4262]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-devtools/dpkg/dpkg.inc | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index d773fbd..08a9f5a 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -35,10 +35,6 @@ do_configure () {
autotools_do_configure
}
-POSTLOG ?= "/var/log/postinstall.log"
-REDIRECT_CMD = "${@base_contains('IMAGE_FEATURES', 'debug-tweaks', '>${POSTLOG} 2>&1', '', d)}"
-REDIRECT_CMD[vardepsexclude] += "IMAGE_FEATURES POSTLOG"
-
DPKG_INIT_POSITION ?= "98"
do_install_append () {
@@ -67,7 +63,12 @@ if [ "x$D" != "x" ] && [ -f $D/var/lib/dpkg/status ]; then
# this happens at S98 where our good 'ole packages script used to run
echo "#!/bin/sh
-dpkg --configure -a ${REDIRECT_CMD}
+[ -e /etc/default/postinst ] && . /etc/default/postinst
+if [ \"\$POSTINST_LOGGING\" = \"1\" ]; then
+ dpkg --configure -a >\$LOGFILE 2>&1
+else
+ dpkg --configure -a
+fi
rm -f ${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}run-postinsts
" > $D${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}run-postinsts
chmod 0755 $D${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}run-postinsts
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH V3 3/4] opkg: modify the run-postinst script to enable postinst logging
2013-05-21 8:12 [PATCH V3 0/4] Postinst logging reimplementation Qi.Chen
2013-05-21 8:12 ` [PATCH V3 1/4] image.bbclass: add postinst_enable_logging Qi.Chen
2013-05-21 8:12 ` [PATCH V3 2/4] dpkg: modify the run-postinst script to enable postinst logging Qi.Chen
@ 2013-05-21 8:12 ` Qi.Chen
2013-05-21 8:12 ` [PATCH V3 4/4] rpm-postinsts.bb: " Qi.Chen
3 siblings, 0 replies; 5+ messages in thread
From: Qi.Chen @ 2013-05-21 8:12 UTC (permalink / raw)
To: openembedded-core; +Cc: qingtao.cao
From: Chen Qi <Qi.Chen@windriver.com>
Enable postinst logging by checking the configuration in /etc/
default/postinst.
In this way, the postinst logging is enabled if 'debug-tweaks' is
in IMAGE_FEATURES, and at the same time, we avoid unnecessary rebuilt
if IMAGE_FEATURES is changed.
[YOCTO #4262]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-devtools/opkg/opkg.inc | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/opkg/opkg.inc b/meta/recipes-devtools/opkg/opkg.inc
index 631aafc..2de75e1 100644
--- a/meta/recipes-devtools/opkg/opkg.inc
+++ b/meta/recipes-devtools/opkg/opkg.inc
@@ -68,7 +68,12 @@ if [ "x$D" != "x" ] && [ -f $D${OPKGLIBDIR}/opkg/status ]; then
# this happens at S98 where our good 'ole packages script used to run
echo "#!/bin/sh
-opkg-cl configure ${REDIRECT_CMD}
+[ -e /etc/default/postinst ] && . /etc/default/postinst
+if [ \"\$POSTINST_LOGGING\" = \"1\" ]; then
+ opkg-cl configure >\$LOGFILE 2>&1
+else
+ opkg-cl configure
+fi
rm -f ${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts
" > $D${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts
chmod 0755 $D${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH V3 4/4] rpm-postinsts.bb: enable postinst logging
2013-05-21 8:12 [PATCH V3 0/4] Postinst logging reimplementation Qi.Chen
` (2 preceding siblings ...)
2013-05-21 8:12 ` [PATCH V3 3/4] opkg: " Qi.Chen
@ 2013-05-21 8:12 ` Qi.Chen
3 siblings, 0 replies; 5+ messages in thread
From: Qi.Chen @ 2013-05-21 8:12 UTC (permalink / raw)
To: openembedded-core; +Cc: qingtao.cao
From: Chen Qi <Qi.Chen@windriver.com>
Enable postinst logging by checking the configuration in /etc/
default/postinst.
In this way, the postinst logging is enabled if 'debug-tweaks' is
in IMAGE_FEATURES, and at the same time, we avoid unnecessary rebuild
if IMAGE_FEATURES is changed.
[YOCTO #4262]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-devtools/rpm/rpm-postinsts.bb | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/meta/recipes-devtools/rpm/rpm-postinsts.bb b/meta/recipes-devtools/rpm/rpm-postinsts.bb
index 3c0f520..7798fe6 100644
--- a/meta/recipes-devtools/rpm/rpm-postinsts.bb
+++ b/meta/recipes-devtools/rpm/rpm-postinsts.bb
@@ -9,10 +9,6 @@ inherit allarch
#
POSTINSTALL_INITPOSITION ?= "98"
-POSTLOG ?= "/var/log/postinstall.log"
-REDIRECT_CMD = "${@base_contains('IMAGE_FEATURES', 'debug-tweaks', '>>${POSTLOG} 2>&1', '', d)}"
-REDIRECT_CMD[vardepsexclude] += "IMAGE_FEATURES POSTLOG"
-
do_fetch() {
:
}
@@ -34,11 +30,16 @@ if [ "x$D" != "x" ] && [ -f $D/var/lib/rpm/Packages ]; then
install -d $D/${sysconfdir}/rcS.d
cat > $D${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts << "EOF"
#!/bin/sh
-
+[ -e /etc/default/postinst ] && . /etc/default/postinst
[ -d /etc/rpm-postinsts ] && for i in `ls /etc/rpm-postinsts/`; do
i=/etc/rpm-postinsts/$i
echo "Running postinst $i..."
- if [ -f $i ] && $i ${REDIRECT_CMD}; then
+ if [ -x $i ]; then
+ if [ "$POSTINST_LOGGING" = "1" ]; then
+ $i >>$LOGFILE 2&>1
+ else
+ $i
+ fi
rm $i
else
echo "ERROR: postinst $i failed."
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-05-21 8:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-21 8:12 [PATCH V3 0/4] Postinst logging reimplementation Qi.Chen
2013-05-21 8:12 ` [PATCH V3 1/4] image.bbclass: add postinst_enable_logging Qi.Chen
2013-05-21 8:12 ` [PATCH V3 2/4] dpkg: modify the run-postinst script to enable postinst logging Qi.Chen
2013-05-21 8:12 ` [PATCH V3 3/4] opkg: " Qi.Chen
2013-05-21 8:12 ` [PATCH V3 4/4] rpm-postinsts.bb: " Qi.Chen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.