diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-12-07 15:48:14 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-12-08 15:14:04 +0000 |
commit | dc433b556f5b44a6d818a81df6be484ad59daebd (patch) | |
tree | 91b51e75b97bd3537fc1035a04781459e93fc973 /meta | |
parent | 70a276509f0f006fcc269296afc3dcc88d2825e1 (diff) | |
download | openembedded-core-dc433b556f5b44a6d818a81df6be484ad59daebd.tar.gz openembedded-core-dc433b556f5b44a6d818a81df6be484ad59daebd.tar.bz2 openembedded-core-dc433b556f5b44a6d818a81df6be484ad59daebd.zip |
dpkg: Fix preinst execution
Add a patch to fix exeuction of pre/post install scripts. See the patch
header for more details.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/preinst.patch | 46 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb | 5 |
2 files changed, 49 insertions, 2 deletions
diff --git a/meta/recipes-devtools/dpkg/dpkg/preinst.patch b/meta/recipes-devtools/dpkg/dpkg/preinst.patch new file mode 100644 index 0000000000..06d2aacf3f --- /dev/null +++ b/meta/recipes-devtools/dpkg/dpkg/preinst.patch @@ -0,0 +1,46 @@ +Our pre/postinsts expect $D to be set when running in a sysroot and +don't expect a chroot. This matches up our system expectations with +what dpkg does. + +Upstream-Status: Inappropriate [OE Specific] + +RP 2011/12/07 + +Index: dpkg-1.15.8.7/src/help.c +=================================================================== +--- dpkg-1.15.8.7.orig/src/help.c 2010-12-20 01:25:36.000000000 +0000 ++++ dpkg-1.15.8.7/src/help.c 2011-12-07 14:51:02.783461487 +0000 +@@ -181,30 +181,9 @@ + * FIXME: none of the stuff here will work if admindir isn't inside + * instdir as expected. + */ +- size_t instdirl; +- +- if (*instdir) { +- if (chroot(instdir)) ohshite(_("failed to chroot to `%.250s'"),instdir); +- if (chdir("/")) +- ohshite(_("failed to chdir to `%.255s'"), "/"); +- } +- if (f_debug & dbg_scripts) { +- struct varbuf args = VARBUF_INIT; +- const char **argv = cmd->argv; +- +- while (*++argv) { +- varbufaddc(&args, ' '); +- varbufaddstr(&args, *argv); +- } +- varbufaddc(&args, '\0'); +- debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename, args.buf); +- varbuf_destroy(&args); +- } +- instdirl= strlen(instdir); +- if (!instdirl) +- return cmd->filename; +- assert(strlen(cmd->filename) >= instdirl); +- return cmd->filename + instdirl; ++ if (*instdir) ++ setenv("D", instdir, 1); ++ return cmd->filename; + } + + void diff --git a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb b/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb index f1a0eebcd5..f1030faf94 100644 --- a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb +++ b/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb @@ -4,10 +4,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" SRC_URI += "file://noman.patch \ file://check_snprintf.patch \ file://check_version.patch \ - file://perllibdir.patch" + file://perllibdir.patch \ + file://preinst.patch" SRC_URI[md5sum] = "d1731d4147c1ea3b537a4d094519a6dc" SRC_URI[sha256sum] = "1ec1376471b04717a4497e5d7a27cd545248c92116898ce0c53ced8ea94267b5" -PR = "${INC_PR}.1" +PR = "${INC_PR}.3" |