On 12/21/20 3:07 PM, Mark Mielke wrote: > On Mon, Dec 21, 2020 at 2:50 PM Stephen John Smoogen > <smooge at gmail.com> wrote: >> On Mon, 21 Dec 2020 at 14:31, Mark Mielke <mark.mielke at gmail.com> wrote: >>> 4. It's still not perfect, however, in almost every way there is >>> currently a 1:1 relationship between the exact .spec file and patch >>> set being used to build CentOS releases, in parallel (or a short >>> time later) to RHEL minor release. >> A spec file is the tiniest part of making something match. Build >> order, hardware, etc have a larger effect. > I think your definition of match is overly pedantic, and I love it. > :-) When it comes to behaviour exhibited by the program - my own > experience is that source bundle and the patch set primary defines the > visible and user-impacting behaviours. ... With the understanding that > we are talking about "perfect reproduction" and not "reproduction that > would pass most inspections", I would agree. :-) Perfect reproduction requires: 1.) Same source (easy) 2.) Same spec (easy) 3.) Same patches (easy) 4.) Same binary buildroot (HARD; same versions of every package in upstream buildroot, where each of those packages has been built in a perfectly reproduced environment; the exact contents of any given package's buildroot can be dramatically different from another distributed package's buildroot; Modularity greatly complicates this) 5.) Same .rpmmacro setup (not impossible, but not easy) While item 4 often gets oversimplified as 'build order' (I've said it that way recently myself) it actually is beyond that, since each particular buildroot might not contain the very latest built packages but earlier ones (I don't know how the RHEL buildroots are populated). The many tools that have been developed over the years to try to make this happen are better now than they were at the beginning (mach, anyone?), but it still sometimes requires guesswork. While I've not been doing this at the same scale as you and others, I have done this before; you and I have the same favorite package, PostgreSQL.... :-)