}
message(MESS_DEBUG, "running preinstall script (if any)\n");
- if (runScript(prefix, h, RPMTAG_PREIN, flags & INSTALL_NOSCRIPTS)) {
+ if (runScript(prefix, h, RPMTAG_PREIN, flags & INSTALL_NOSCRIPTS,
+ flags & INSTALL_UPGRADE)) {
free(fileList);
if (replacedList) free(replacedList);
return 2;
message(MESS_DEBUG, "running postinstall script (if any)\n");
- if (runScript(prefix, h, RPMTAG_POSTIN, flags & INSTALL_NOSCRIPTS)) {
+ if (runScript(prefix, h, RPMTAG_POSTIN, flags & INSTALL_NOSCRIPTS,
+ flags & INSTALL_UPGRADE)) {
return 2;
}
message(MESS_DEBUG, "removing old versions of package\n");
intptr = oldVersions;
while (*intptr) {
- rpmRemovePackage(prefix, db, *intptr, 0);
+ rpmRemovePackage(prefix, db, *intptr, 1, 0);
intptr++;
}
}
int findSharedFiles(rpmdb db, int offset, char ** fileList, int fileCount,
struct sharedFile ** listPtr, int * listCountPtr);
-int runScript(char * prefix, Header h, int tag, int dontRunScripts);
+int runScript(char * prefix, Header h, int tag, int dontRunScripts,
+ int upgrade);
#endif
int rpmInstallSourcePackage(char * prefix, int fd, char ** specFile);
int rpmInstallPackage(char * prefix, rpmdb db, int fd, int flags,
notifyFunction notify, char * labelFormat);
-int rpmRemovePackage(char * prefix, rpmdb db, unsigned int offset, int test);
+int rpmRemovePackage(char * prefix, rpmdb db, unsigned int offset,
+ int upgrade, int test);
int rpmdbRemove(rpmdb db, unsigned int offset, int tolerant);
int rpmdbAdd(rpmdb db, Header dbentry);
int rpmdbUpdateRecord(rpmdb db, int secOffset, Header secHeader);