Don't complain about a bad md5 sum for repackaged rpms.
authorAnas Nashif <anas.nashif@intel.com>
Thu, 11 Oct 2012 22:45:41 +0000 (15:45 -0700)
committerAnas Nashif <anas.nashif@intel.com>
Sun, 3 Feb 2013 00:44:15 +0000 (16:44 -0800)
lib/psm.c

index aad047fcf52ebd89ad524a84b4577be2e59ccf11..42a2ad46cd0ee7db13419218e772b8c3d6d54158 100644 (file)
--- a/lib/psm.c
+++ b/lib/psm.c
@@ -813,12 +813,17 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage)
            rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, 0);
 
            if (rpmfiFC(fi) > 0 && !(rpmtsFlags(ts) & RPMTRANS_FLAG_JUSTDB)) {
+               rpmtransFlags oldtsflags;
                FD_t payload = rpmtePayload(psm->te);
                if (payload == NULL) {
                    rc = RPMRC_FAIL;
                    break;
                }
 
+               oldtsflags = rpmtsFlags(ts);
+               if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
+                   (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
+
                fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
                                  payload, psm, &psm->failedFile);
 
@@ -827,6 +832,9 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage)
                rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_DIGEST),
                         fdOp(payload, FDSTAT_DIGEST));
 
+               if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
+                   (void) rpmtsSetFlags(ts, oldtsflags);
+
                Fclose(payload);
            }