Don't complain about a bad md5 sum for repackaged rpms. --- ./lib/psm.c.orig 2011-05-11 14:27:32.000000000 +0000 +++ ./lib/psm.c 2011-05-11 16:32:11.000000000 +0000 @@ -811,6 +811,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg case PSM_PROCESS: if (psm->goal == PKG_INSTALL) { FD_t payload = NULL; + rpmtransFlags oldtsflags; if (rpmtsFlags(ts) & RPMTRANS_FLAG_JUSTDB) break; @@ -828,6 +829,9 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg break; } + oldtsflags = rpmtsFlags(ts); + if (headerIsEntry(fi->h, RPMTAG_REMOVETID)) + (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5); rc = fsmSetup(rpmfiFSM(fi), FSM_PKGINSTALL, ts, psm->te, fi, payload, NULL, &psm->failedFile); (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_UNCOMPRESS), @@ -835,6 +839,8 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DIGEST), fdOp(payload, FDSTAT_DIGEST)); xx = fsmTeardown(rpmfiFSM(fi)); + if (headerIsEntry(fi->h, RPMTAG_REMOVETID)) + (void) rpmtsSetFlags(ts, oldtsflags); saveerrno = errno; /* XXX FIXME: Fclose with libio destroys errno */ xx = Fclose(payload);