Unfortunately, we can't do something like this with RPM in Fedora. It's simply not how it's done there and our tools don't support it.
Ondra ----- Original Message ----- From: "Viktor Dukhovni" <postfix-us...@dukhovni.org> To: "Postfix users" <postfix-users@postfix.org> Sent: Sunday, August 28, 2016 3:37:40 AM Subject: Re: [PATCH] Preserve timestamps during 'make install' > On Aug 27, 2016, at 8:39 PM, Michael Orlitzky <mich...@orlitzky.com> wrote: > > On 08/27/2016 07:42 PM, Wietse Venema wrote: >>> >>> Thanks. The "cp -p" feature was not portable in the days that this script >>> was written, but it should be safe to use now. >> >> Unfortunately, I have to roll back this change, because it may >> install files with non-root ownership. >> >> Those who built postfix-3.2-2060827 should do "postfix set-permissions" >> or install postfix-3.2-2060828 which I will upload in a few minutes >> time to ftp.porcupine.org. > > The "-p" flag (at least in GNU coreutils) is a shortcut for, > > --preserve=mode,ownership,timestamps > > Unfortunately, the behavior of "--preserve" is not sufficiently > standard. Perhaps "tar --no-same-owner" can be used as a poor man's cp, > since it preserves modification times by default? The real defect here is not in how Postfix installs files, but rather in how Postfix is packaged into O/S packages. The fix belongs there. Postfix does not replace unmodified files. If new builds upgrade previous build images, then unmodified files will retain their timestamps. I used to package Postfix in exactly this way some years back. * Unpack a copy of the previous build * Build and install updated files. * Remove old files no longer in the "postfix-files" file. * Create the package. One might also file a bug against package installers that update unmodified files. Or negligent users who don't run "make" in /etc/postfix (where they should maintain a suitable table update Makefile) after upgrading Postfix packages. Note that by default Postfix uses no tables, so a configuration in which /etc/postfix/virtual is actually used is a non-default configuration. If a particular O/S package enables (say) a virtual_alias_maps in the default main.cf it installs, then that release -- Viktor.