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