Blame 0001-fix-minimize_writes.patch

830dbb
commit 03f146e955e099c24f7a49eff461645e1c0a0fd7
830dbb
Author: Panu Matilainen <pmatilai@redhat.com>
830dbb
Date:   Thu Jan 13 11:25:30 2022 +0200
830dbb
830dbb
    Fix minimize_writes not minimizing writes since 4.15 regression
830dbb
    
830dbb
    Commit 13f70e3710b2df49a923cc6450ff4a8f86e65666 caused minimize_writes
830dbb
    to actually not minimize anything since fsmVerify() only "verifies"
830dbb
    the thing does NOT exist anymore when it exist. Sigh.
830dbb
    
830dbb
    FA_TOUCH needs different kind of verification, stat the file instead
830dbb
    to see if it needs creating afterall. This is all soooo broken...
830dbb
    
830dbb
    Fixes: #1881
830dbb
830dbb
--- lib/fsm.c.orig
830dbb
+++ lib/fsm.c
830dbb
@@ -945,7 +945,12 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files,
830dbb
 	    }
830dbb
 	    /* Assume file does't exist when tmp suffix is in use */
830dbb
 	    if (!fp->suffix) {
830dbb
-		rc = fsmVerify(fp->fpath, fi);
830dbb
+		if (fp->action == FA_TOUCH) {
830dbb
+		    struct stat sb;
830dbb
+		    rc = fsmStat(fp->fpath, 1, &sb);
830dbb
+		} else {
830dbb
+		    rc = fsmVerify(fp->fpath, fi);
830dbb
+		}
830dbb
 	    } else {
830dbb
 		rc = RPMERR_ENOENT;
830dbb
 	    }