File repackage-nomd5.diff of Package rpm

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);