diff -ru dpkg-1.13.25/lib/dpkg.h dpkg-1.13.25+iPhone/lib/dpkg.h --- dpkg-1.13.25/lib/dpkg.h 2006-11-24 04:08:31.000000000 +0000 +++ dpkg-1.13.25+iPhone/lib/dpkg.h 2008-09-03 07:28:26.000000000 +0000 @@ -82,6 +82,7 @@ #define PRERMFILE "prerm" #define POSTRMFILE "postrm" #define LISTFILE "list" +#define EXTRAINSTFILE "extrainst_" #define STATUSFILE "status" #define AVAILFILE "available" diff -ru dpkg-1.13.25/src/processarc.c dpkg-1.13.25+iPhone/src/processarc.c --- dpkg-1.13.25/src/processarc.c 2006-06-29 00:25:08.000000000 +0000 +++ dpkg-1.13.25+iPhone/src/processarc.c 2008-09-03 07:28:33.000000000 +0000 @@ -569,6 +569,16 @@ close(tc.backendpipe); waitsubproc(c1,BACKEND " --fsys-tarfile",PROCPIPE); + if (oldversionstatus == stat_notinstalled || oldversionstatus == stat_configfiles) { + maintainer_script_new(pkg->name, EXTRAINSTFILE, "extra-installation", cidir, cidirrest, + "install", (char *)0); + } else { + maintainer_script_new(pkg->name, EXTRAINSTFILE, "extra-installation", cidir, cidirrest, + "upgrade", versiondescribe(&pkg->installed.version, + vdew_nonambig), + (char *)0); + } + if (oldversionstatus == stat_halfinstalled || oldversionstatus == stat_unpacked) { /* Packages that were in `installed' and `postinstfailed' have been reduced * to `unpacked' by now, by the running of the prerm script.