* [PATCH 1/3] rpm: redirect output of post install script
2013-02-20 6:16 [PATCH 0/3] Redirect output of post-install scripts when "debug-tweak" enabled Kang Kai
@ 2013-02-20 6:16 ` Kang Kai
2013-02-21 14:19 ` Martin Donnelly
2013-02-20 6:16 ` [PATCH 2/3] dpkg: redirect output of postinstall script Kang Kai
2013-02-20 6:16 ` [PATCH 3/3] opkg: save output of postinst scripts Kang Kai
2 siblings, 1 reply; 6+ messages in thread
From: Kang Kai @ 2013-02-20 6:16 UTC (permalink / raw)
To: openembedded-core; +Cc: Zhenfeng.Zhao
When distro feature "debug-tweak" enabled, redirect output of post
install script to log file which can be configured.
[Yocto 3223]
Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
.../recipes-devtools/rpm/rpm/redirect-output.patch | 38 ++++++++++++++++++++
meta/recipes-devtools/rpm/rpm_5.4.9.bb | 6 +++-
2 files changed, 43 insertions(+), 1 deletions(-)
create mode 100644 meta/recipes-devtools/rpm/rpm/redirect-output.patch
diff --git a/meta/recipes-devtools/rpm/rpm/redirect-output.patch b/meta/recipes-devtools/rpm/rpm/redirect-output.patch
new file mode 100644
index 0000000..1bc53dc
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/redirect-output.patch
@@ -0,0 +1,38 @@
+Upstream-Status: Inappropriate [other]
+
+This patch redirect output of post install script to a log file when
+distro feature "debug-tweak" enabled.
+
+[Yocto 3223]
+
+Signed-off-by: Kang Kai <kai.kang@windriver.com>
+
+--- rpm-5.4.9/lib/psm.c.orig 2013-02-18 11:34:19.646852294 +0800
++++ rpm-5.4.9/lib/psm.c 2013-02-18 13:18:00.291071721 +0800
+@@ -1111,6 +1111,14 @@ assert(he->p.str != NULL);
+ if (ssp != NULL)
+ *ssp |= RPMSCRIPT_STATE_EXEC;
+
++#ifdef RPM_VENDOR_POKY
++ int fd = open(LOGFILE, O_RDWR|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
++ if (psm->scriptTag == RPMTAG_POSTIN && fd != -1) {
++ dup2(fd, STDERR_FILENO);
++ dup2(fd, STDOUT_FILENO);
++ }
++#endif
++
+ /* Permit libselinux to do the scriptlet exec. */
+ if (rpmtsSELinuxEnabled(ts) == 1) {
+ if (ssp != NULL)
+@@ -1121,6 +1129,11 @@ assert(he->p.str != NULL);
+ xx = execv(argv[0], (char *const *)argv);
+ /*@=nullstate@*/
+ }
++
++#ifdef RPM_VENDOR_POKY
++ if (fd)
++ close(fd);
++#endif
+ }
+
+ if (ssp != NULL)
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
index 39b0481..dc43678 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native"
-PR = "r61"
+PR = "r62"
# rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed
# in order to extract the distribution SRPM into a format we can extract...
@@ -85,6 +85,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
file://rpm-reloc-macros.patch \
file://rpm-platform2.patch \
file://rpm-remove-sykcparse-decl.patch \
+ ${@base_contains('DISTRO_FEATURES', 'debug-tweak', 'file://redirect-output.patch', '', d)} \
"
# Uncomment the following line to enable platform score debugging
@@ -197,6 +198,9 @@ EXTRA_OECONF += "--verbose \
CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE"
+POSTLOG ?= "/var/log/postinstall.log"
+CFLAGS_append += "${@base_contains('DISTRO_FEATURES', 'debug-tweak', ' -DLOGFILE=\'\"${POSTLOG}\"\'', '', d)}"
+
LDFLAGS_append_libc-uclibc = "-lrt -lpthread"
PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm-dev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale"
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/3] dpkg: redirect output of postinstall script
2013-02-20 6:16 [PATCH 0/3] Redirect output of post-install scripts when "debug-tweak" enabled Kang Kai
2013-02-20 6:16 ` [PATCH 1/3] rpm: redirect output of post install script Kang Kai
@ 2013-02-20 6:16 ` Kang Kai
2013-02-20 6:16 ` [PATCH 3/3] opkg: save output of postinst scripts Kang Kai
2 siblings, 0 replies; 6+ messages in thread
From: Kang Kai @ 2013-02-20 6:16 UTC (permalink / raw)
To: openembedded-core; +Cc: Zhenfeng.Zhao
When distro feature "debug-tweak" enabled, redirect output of
postinstall script to log file /var/log/postinstall.log which
can be configured.
[Yocto 3223]
Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
.../dpkg/dpkg/redirect-output.patch | 37 ++++++++++++++++++++
meta/recipes-devtools/dpkg/dpkg_1.16.9.bb | 8 +++-
2 files changed, 43 insertions(+), 2 deletions(-)
create mode 100644 meta/recipes-devtools/dpkg/dpkg/redirect-output.patch
diff --git a/meta/recipes-devtools/dpkg/dpkg/redirect-output.patch b/meta/recipes-devtools/dpkg/dpkg/redirect-output.patch
new file mode 100644
index 0000000..584d6ff
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg/redirect-output.patch
@@ -0,0 +1,37 @@
+Upstream-Status: Inappropriate [other]
+
+This patch redirect output of post install script to a log file when
+distro feature "debug-tweak" enabled.
+
+[Yocto 3223]
+
+Signed-off-by: Kang Kai <kai.kang@windriver.com>
+
+--- dpkg-1.16.9/src/script.c.orig 2013-02-19 16:05:33.154474040 +0800
++++ dpkg-1.16.9/src/script.c 2013-02-19 16:11:20.438486290 +0800
+@@ -30,6 +30,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <fcntl.h>
+
+ #include <dpkg/i18n.h>
+ #include <dpkg/dpkg.h>
+@@ -193,8 +166,17 @@ vmaintainer_script_installed(struct pkgi
+ }
+ ohshite(_("unable to stat %s `%.250s'"), buf, scriptpath);
+ }
++
++ int fd = open(LOGFILE, O_RDWR|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
++ if (strcmp(desc, "post-installation") == 0 && fd != -1) {
++ dup2(fd, STDERR_FILENO);
++ dup2(fd, STDOUT_FILENO);
++ }
+ do_script(pkg, &pkg->installed, &cmd, &stab, 0);
+
++ if (fd)
++ close(fd);
++
+ command_destroy(&cmd);
+
+ return 1;
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.16.9.bb b/meta/recipes-devtools/dpkg/dpkg_1.16.9.bb
index 9ae4042..c1b23fc 100644
--- a/meta/recipes-devtools/dpkg/dpkg_1.16.9.bb
+++ b/meta/recipes-devtools/dpkg/dpkg_1.16.9.bb
@@ -6,9 +6,13 @@ SRC_URI += "file://noman.patch \
file://check_version.patch \
file://preinst.patch \
file://fix-timestamps.patch \
- file://remove-tar-no-timestamp.patch"
+ file://remove-tar-no-timestamp.patch \
+ ${@base_contains('DISTRO_FEATURES', 'debug-tweak', 'file://redirect-output.patch', '', d)}"
+
+POSTLOG ?= "/var/log/postinstall.log"
+CFLAGS_append += "${@base_contains('DISTRO_FEATURES', 'debug-tweak', ' -DLOGFILE=\'\"${POSTLOG}\"\'', '', d)}"
SRC_URI[md5sum] = "4df9319b2d17e19cdb6fe94dacee44da"
SRC_URI[sha256sum] = "73cd7fba4e54acddd645346b4bc517030b9c35938e82215d3eeb8b4e7af26b7a"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 3/3] opkg: save output of postinst scripts
2013-02-20 6:16 [PATCH 0/3] Redirect output of post-install scripts when "debug-tweak" enabled Kang Kai
2013-02-20 6:16 ` [PATCH 1/3] rpm: redirect output of post install script Kang Kai
2013-02-20 6:16 ` [PATCH 2/3] dpkg: redirect output of postinstall script Kang Kai
@ 2013-02-20 6:16 ` Kang Kai
2 siblings, 0 replies; 6+ messages in thread
From: Kang Kai @ 2013-02-20 6:16 UTC (permalink / raw)
To: openembedded-core; +Cc: Zhenfeng.Zhao
When has distro feature "debug-tweak", redirect output of postinstall
scripts to log file /var/log/postinstall.log. And the log file can be
configured.
[Yocto 3223]
Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
.../opkg/opkg/redirect-output.patch | 29 ++++++++++++++++++++
meta/recipes-devtools/opkg/opkg_svn.bb | 6 +++-
2 files changed, 34 insertions(+), 1 deletions(-)
create mode 100644 meta/recipes-devtools/opkg/opkg/redirect-output.patch
diff --git a/meta/recipes-devtools/opkg/opkg/redirect-output.patch b/meta/recipes-devtools/opkg/opkg/redirect-output.patch
new file mode 100644
index 0000000..6710372
--- /dev/null
+++ b/meta/recipes-devtools/opkg/opkg/redirect-output.patch
@@ -0,0 +1,29 @@
+Upstream-Status: Inappropriate [other]
+
+This patch redirect output of post install script to a log file when
+distro feature "debug-tweak" enabled.
+
+[Yocto 3223]
+
+Signed-off-by: Kang Kai <kai.kang@windriver.com>
+
+--- trunk/libopkg/opkg_configure.c.orig 2013-02-18 15:00:42.715289097 +0800
++++ trunk/libopkg/opkg_configure.c 2013-02-18 15:01:43.971291259 +0800
+@@ -26,6 +26,7 @@ int
+ opkg_configure(pkg_t *pkg)
+ {
+ int err;
++ char buf[256];
+
+ /* DPKG_INCOMPATIBILITY:
+ dpkg actually does some conffile handling here, rather than at the
+@@ -33,7 +34,8 @@ opkg_configure(pkg_t *pkg)
+ /* DPKG_INCOMPATIBILITY:
+ dpkg actually includes a version number to this script call */
+
+- err = pkg_run_script(pkg, "postinst", "configure");
++ sprintf(buf, "configure | tee %s", LOGFILE);
++ err = pkg_run_script(pkg, "postinst", buf);
+ if (err) {
+ if (!conf->offline_root)
+ opkg_msg(ERROR, "%s.postinst returned %d.\n", pkg->name, err);
diff --git a/meta/recipes-devtools/opkg/opkg_svn.bb b/meta/recipes-devtools/opkg/opkg_svn.bb
index 382bfdd..164af88 100644
--- a/meta/recipes-devtools/opkg/opkg_svn.bb
+++ b/meta/recipes-devtools/opkg/opkg_svn.bb
@@ -3,10 +3,14 @@ require opkg.inc
SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \
file://obsolete_automake_macros.patch \
"
+SRC_URI += "${@base_contains('DISTRO_FEATURES', 'debug-tweak', 'file://redirect-output.patch', '', d)}"
S = "${WORKDIR}/trunk"
SRCREV = "649"
PV = "0.1.8+svnr${SRCPV}"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
+
+POSTLOG ?= "/var/log/postinstall.log"
+CFLAGS_append += "${@base_contains('DISTRO_FEATURES', 'debug-tweak', ' -DLOGFILE=\'\"${POSTLOG}\"\'', '', d)}"
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread