From 763cbf05b57da940d2972e0b448548481be400c6 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Tue, 18 Nov 2008 18:54:26 +0200 Subject: [PATCH] Use finer grained rpmfi creation flags for in rpmteNew() - also call the erase flags erase, not remove... --- lib/rpmfi.h | 2 +- lib/rpmte.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/rpmfi.h b/lib/rpmfi.h index 616a79f..3587e97 100644 --- a/lib/rpmfi.h +++ b/lib/rpmfi.h @@ -404,7 +404,7 @@ typedef enum rpmfiFlags_e { RPMFI_ISSOURCE = (1 << 31), /* internal */ } rpmfiFlags; -#define RPMFI_FLAGS_REMOVE \ +#define RPMFI_FLAGS_ERASE \ (RPMFI_NOFILECLASS | RPMFI_NOFILELANGS | RPMFI_NOFILEMODES | \ RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | RPMFI_NOFILEINODES | \ RPMFI_NOFILEVERIFYFLAGS) diff --git a/lib/rpmte.c b/lib/rpmte.c index 9227c45..a264ecb 100644 --- a/lib/rpmte.c +++ b/lib/rpmte.c @@ -80,6 +80,7 @@ static void addTE(rpmts ts, rpmte p, Header h, rpmte savep; const char *name, *version, *release, *arch, *os; struct rpmtd_s td; + rpmfiFlags fiflags; name = version = release = arch = NULL; headerNEVRA(h, &name, NULL, &version, &release, &arch); @@ -138,6 +139,8 @@ static void addTE(rpmts ts, rpmte p, Header h, p->conflicts = rpmdsNew(h, RPMTAG_CONFLICTNAME, 0); p->obsoletes = rpmdsNew(h, RPMTAG_OBSOLETENAME, 0); + fiflags = (p->type == TR_ADDED) ? (RPMFI_NOHEADER | RPMFI_FLAGS_INSTALL) : + (RPMFI_NOHEADER | RPMFI_FLAGS_ERASE); savep = rpmtsSetRelocateElement(ts, p); p->fi = rpmfiNew(ts, h, RPMTAG_BASENAMES, RPMFI_NOHEADER|RPMFI_NOFILECLASS); (void) rpmtsSetRelocateElement(ts, savep); -- 2.7.4