commit 98b301ebb44fb5cabb56fc24bc3aaa437c47c038
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Dec 12 11:40:33 2023 +0100

    Preparing for rpm 4.19.1

commit 4eb72997ef06cbc44bc24a2f6352532539f173ec
Author: Florian Festi <ffesti@redhat.com>
Date:   Mon Dec 11 15:50:15 2023 +0100

    Print full path if file removal fails
    
    For normal debug output the basename of the files are sufficient as when
    debugging is enabled the directories are also printed. But here the
    warning is given without a debug flag so we need the full context right
    there.
    
    (cherry picked from commit dcf8c5abc64eb0fe3c81482008b8a13bec19eb20)

commit 5dfb9877dd2b433879c0a2e57608c05aac5da029
Author: Frank Dana <ferdnyc@gmail.com>
Date:   Tue Oct 31 11:31:39 2023 -0400

    docs/macros.md: Fix expansion shorthand
    
    (cherry picked from commit f4ad03dc2a62de1f182fc4c7841784a35bc6ae22)

commit f9873aed0a2e871d11d7ce740380b7bc8347ec1f
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Dec 7 17:21:04 2023 +0100

    Refactor cmake config for man pages
    
    No functional changes, just reduces verbosity a bit.
    
    (cherry picked from commit 014b09de6fd0e4a295b0e751f2ef30eaa7c1aa04)

commit 4b5c47236b0a34fe33cd3d484f1ad745f2c7fe93
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Dec 7 17:19:35 2023 +0100

    Build all manuals regardless of enabled features
    
    Commit 1870f4df16d9f20e5a5341ea000c5b8aa19a2d21 stopped the installation
    of man pages for disabled features.  We were still building them all,
    though, so they appeared in dist tarballs as they should have.
    
    This was lost in the cmake translation where the opposite problem was
    introduced: only man pages for enabled features are now built, meaning
    that when preparing a tarball, you need to make sure all the features
    are enabled in your build in order to have all the man pages pre-built
    and bundled.
    
    Fix this "regression" by building all man pages unconditionally again
    while only installing those that are enabled.
    
    (backported from commit ddc0ad85a58a9f678cfd26fa7c6246ff314ff2ff)

commit 234b34d918839a70771ec57ef3b01e29fd069c46
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Dec 5 11:03:47 2023 +0100

    Don't include git refs in ChangeLog
    
    Right now, we "leak" any local branch or tag names into the ChangeLog
    which is unnecessary (e.g. "experiment-foo-123") and also just pollutes
    the diff when comparing ChangeLogs between releases.  Only show the
    plain log.
    
    Fixes: #2647
    (cherry picked from commit 017b5a4141e1143fc43acf276bdc6bfb6c1eb91a)

commit 77d3529c31ca090a40b8d3959a0bcdd721a556d6
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 30 13:33:46 2023 +0200

    Never use current user info or file ownership during build
    
    There's no situation where rpmbuild should use uid/gid from either
    the filesystem or current user. The former made sense in the
    pre-historic times before Buildroot was a thing, but in the last 20+
    years that's always the wrong thing to do. Always. The only user/group
    info rpm can legitimately use is the one that is explicitly specified in
    the packaging, and otherwise fallback to root/equivalent.
    
    Besides fixing a long-standing annoyance with src.rpm file ownership,
    this also fixes a regression in 4.19.0 where a non-local or otherwise
    unresolvable user info could cause a segfault during rpmbuild (RhBug:2248763).
    
    Fixes: #2604
    (backported from commit a0553eb38a01772254cd48fef7ad116294cf801a)

commit d146585a7e064edb67ca0f4f354f3bfb67400c9b
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Dec 1 14:26:50 2023 +0200

    Bumb CI to Fedora 39
    
    No particular reason this time, but nice to be on the same page with
    the system rpm.
    
    (cherry picked from commit c576d96930bfaf8f4328170de4c2915e76c1f715)

commit 6fd08587514f3b3c903ad195f4834d8756b679a9
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Dec 1 13:41:17 2023 +0200

    Optimize Doxygen output for C
    
    This simply uses terminology better suited for C, such as "data
    structures" instead of "classes" and so on.
    
    (cherry picked from commit 15bd653a5be4fdb60269c2a712c0049bddccd600)

commit 993191a89d85514ca8a3e5570047f012b7b8420c
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Dec 1 13:30:14 2023 +0200

    Honor ENABLE_WERROR on Doxygen too
    
    (cherry picked from commit 5d7a192c9279ac24e57d443e417a8fb7ecffc012)

commit b1207ee9933c25c8e45d0350c873cde9d7b4a15f
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Dec 1 13:26:17 2023 +0200

    Silence not-documented warnings from Doxygen
    
    These litter our build logs with redundant noise from undocumented
    macros and typedefs that aren't really worth the trouble to document.
    Sadly Doxygen doesn't have fine-grained controls for emitted warnings.
    
    (cherry picked from commit c47ee2435fa673c32103c7e3dda380de1641d3ab)

commit 11daac6757abecd9f01246e11c822afd96d861fd
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Dec 1 13:19:48 2023 +0200

    Fix a bunch of undocumented-warnings from Doxygen
    
    No functional changes, just docs.
    
    (backported from commit 06ea60361f12251664187b0d1dd80848ba92d352)

commit 5d3f82a7596a48aab05356623f67cdc69bdaed4f
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Dec 1 11:23:40 2023 +0200

    Drop autoconf-era leftover Doxygen config
    
    (cherry picked from commit 3ffa334a990c0a431ea33ded839b8dd82a93a786)

commit 135f94955e8f7d9b61584f0dc72960c241ec6797
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Wed Nov 29 13:18:33 2023 +0200

    Clarify pgpParsePkts() and pgpReadPkts() API docs
    
    Both process exactly one ASCII-armored block, this wasn't clear in
    the docs.
    
    Fixes: #2387
    (cherry picked from commit bccf58f0d414a90fe2aca736255f126ad2bf45b2)

commit ca6236cf7bcba1f44c4924dc47d74adfdc964f43
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 16 14:22:15 2023 +0200

    Fix integer overflow in memory calculations on 32bit systems
    
    "long int" on at least x86 Linux is exactly the same as a plain "int",
    so calculations can easily overflow. 32bit systems are not expected to
    have hundreds of gigabytes of memory but a 32bit process on a x86_64 can
    run into all sorts of funny things, such having 500GB system memory. At
    which point the type capable of addressing all of process memory is
    absolutely useless for calculating the total memory.
    
    Use uint64_t in the memory calculations to make the size explicit. Of course
    one day we may cross that border too, but I hope to be retired by then.
    
    Fixes https://issues.redhat.com/browse/RHEL-16557
    
    (cherry picked from commit 1cd9f9077a2829c363a198e5af56c8a56c6bc346)

commit 5ab960e9feea3c29565917a7e1fc3108129c4a0d
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 27 14:32:42 2023 +0200

    Avoid compiler complaints from Transmeta Crusoe detection on x86 builds
    
    Multi-character character constants are implementation defined, and
    while it MAY be reliable enough on i386 gcc, even that produces a
    warning. I don't have a test-Robinson here so rather than risk a
    conversion to string comparison like the other is_arch() tests are,
    just write out the integer and leave the character constant as a
    reference comment.
    
    (cherry picked from commit d0e03b21cabfcd090e70620f3e19227e6519f1c3)

commit 0d38b67ce31b471d0e1e51c383b96b6e72ef38f4
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 27 13:42:30 2023 +0200

    Fix a bunch of integer size mismatch warnings on 32bit builds
    
    (cherry picked from commit 54a79a19c4ff82a0874588ebe24fce21462f7926)

commit f615aa118f33f3ad437b9a236009d175a9b0f106
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 27 11:52:34 2023 +0200

    Emit full paths for file disposition diagnostics on --fsmdebug
    
    The full path is visible in the actual file operations later, but the
    pre-flight disposition diagnostics is unreadable without the full path.
    This regressed in the switch to relative paths for the *at() API family
    for the symlink CVE fixes.
    
    (cherry picked from commit c140768202e271b60910644c1e4bf848a50218d3)

commit 27afe5f0b036c16649b33ee4f3c98bc19ba0000d
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 20 10:43:16 2023 +0200

    Add support for retrieving %generate_buildrequires section from the spec
    
    Should've been in commit 58dcfddc376a7c97de1432f0082be0d5f01adbcd
    
    (cherry picked from commit c359a5cd354ae963175091c8e6ed2bde918771a2)

commit a9eacf9285b875a4e62fc26a09857835b590ce88
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Nov 17 12:16:48 2023 +0100

    Extend test README
    
    Fixes: #2611
    (cherry picked from commit 949f2819749ddb8854162bf544d83a1a1402291c)

commit 78a9bd120b1ce809ac8a4daf2ec91fb439d1fc21
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 16 11:19:14 2023 +0200

    Fix segfault on %{?getncpus}, regression in 4.19.x
    
    Commit deaebd0c89a6d453bb971fd8f5a3b858e7a95733 assumed there would
    always be args, but in the macro existence test none are set up.
    
    Reported as a side-issue in https://issues.redhat.com/browse/RHEL-16557
    
    (cherry picked from commit c110ad11c33aeb0fe9ef1d494d689b59e47e855e)

commit d8cc2775f07c0f4365ec29937e221fcd09a52ea4
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Wed Nov 15 14:44:42 2023 +0200

    Document pgpPrtParamsSubkeys() returning only signing-capable keys
    
    Since commit a9cca032a2b7c0c6bcacc6ab4ecd25c95cc75305 we've only
    returned signing capable subkeys, but this has seemed like an
    implementation detail. Make it explicit.
    
    Fixes: #2515
    (cherry picked from commit 01fb42d42ca710bf24e3af841d43b4e3d60b3aef)

commit 217caa46e1aad597a870b0abb8371b26ff7d6176
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Wed Nov 15 09:24:28 2023 +0200

    Fix %{getncpus proc/thread} potentially returning zero
    
    Add the missing sanity check/fixup for memory starved systems where
    we end up returning zero cpus. Should've been in commit
    deaebd0c89a6d453bb971fd8f5a3b858e7a95733 originally.
    
    Reported in https://issues.redhat.com/browse/RHEL-16557
    
    (cherry picked from commit 6714ec7068a0343dcb4aaaeb4fe49940c129292f)

commit 6dd356915f2163686794e4c1779abe4eac72d9db
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Tue Nov 14 11:59:18 2023 +0200

    Add a test-case for invalid intermediate symlink owner (CVE-2021-35939)
    
    This should've been in commit 96ec957e281220f8e137a2d5eb23b83a6377d556
    but back then we didn't have a good way to test ownership matters.
    
    (cherry picked from commit 0091214d2f2b489f4d38464c8d217cd7f5aba50a)

commit 406a1beee0b60a33ef2078116b4a749adcda157c
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Tue Nov 14 11:37:48 2023 +0200

    Fix wrong return code on O_DIRECTORY open of invalid symlink
    
    The dir argument to fsmOpenpath() is supposed to be a rough O_DIRECTORY
    equivalent, and if the path is actually a misowned symlink it should
    return ENOTDIR instead of ELOOP. Makes the resulting error messages
    at least a little more comprehensible.
    
    (cherry picked from commit 89ce4e7ca592f5abafc3f25aeaa07d36a7b43a61)

commit 40eda139494886f707d5827774b478fea8db0eec
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Tue Nov 14 09:07:28 2023 +0200

    Allow version to be omitted in the replace test spec
    
    (cherry picked from commit 2c20f9677eff989817148d236543191dec0d8059)

commit f6216e71e44f327d4f8f5a40d8312d72b1fda3f6
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 15:24:37 2023 +0200

    Refactor / cleanup rpm2archive entry fillup a bit
    
    Do all the entry fillup in the function intended for that,
    no functional changes intended. Drop the unnecessary nlink check
    from the unpacking: if there's content, it should unpacked.
    
    (cherry picked from commit 3151a187402767ab87ec91d34bb7337dee89af92)

commit a24f9ba1fbce426c75aeec911dc808d646599e1f
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 15:18:55 2023 +0200

    Document rpm2cpio as obsolete, add pointer to rpm2archive.
    
    (cherry picked from commit f6b47609a963a6cf2d3181a0bb90437c330d401f)

commit ee9314b09a69c56de9247a1a6d3d40c71ada5fdd
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 10:30:46 2023 +0200

    Add cpio format support to rpm2archive
    
    cpio is a legacy format but content in that format will remain with us
    for a very, very, very long time still. Better support the format here
    than have to support a separate tool just for the purpose.
    
    The "new ascii cpio" format can't host files larger than 4GB, but
    most rpm content fits and will continue to do so in that range easily,
    so instead of just outlawing the good 'ole format, just skip over
    anything we can't handle and emit a warning.
    
    Additionally, if invoked as "rpm2cpio", behave like it: no compression,
    cpio format.
    
    (cherry picked from commit 04d49fbd2f3f470669dccfba0a4f2264509a4513)

commit db1996e4e982d86531714373e17fc8df059615d7
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 13:45:14 2023 +0200

    Fix uid, gid and nlinks not getting populated by rpm2archive
    
    Take advantage of rpmfiStat() and archive_entry_copy_stat() which
    handle most of the dirty work here. Hardlink sizes are special because
    in archives, the file size is 0 except for the one with the content,
    but otherwise of course hardlinked files have sizes as usual.
    
    (cherry picked from commit b86f6ad4f0c557f64ffbb53dbb90e4f2d9f85a7c)

commit 9829e88af044f45398302b683b45b454bf526c39
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 10:46:48 2023 +0200

    At least try to handle write errors in rpm2archive
    
    (cherry picked from commit fa1fbe95ed12ea7dd916cc277ac2cb227d7f9621)

commit 0488c494f7098313a81c8ebd4714a78605beaefa
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 13:34:06 2023 +0200

    Fix some invalid rpm2cpio invocations in the test-suite
    
    runroot is the wrong thing to use with rpm2cpio which doesn't understand
    things like --define. This has only worked because rpm2cpio is dumb
    enough not to look at its arguments at all.
    
    (cherry picked from commit 80d5fc3c9ece8861bb63001e1b76b2fa8b01afd2)

commit 56af525e6f0ca24967f18bf21f46dfdf454b24b1
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 09:57:02 2023 +0200

    Use the expected rpm2cpio-like syntax for rpm2archive tests
    
    (cherry picked from commit 243deae923065160e6aba6dbbe825de73ae74276)

commit cf4c02a0d7a0ee49d6209fb7d36bd02fe36141f6
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 09:53:30 2023 +0200

    Split the two rpm2archive tests to separate test-cases
    
    No actual change, just allows more comprehensive testing, easier to
    read and add more.
    
    (cherry picked from commit d49e26498e9861e54971a98b2442aaeeb7bfff61)

commit 35b4537b534d97e5e537833e6556608ae5477d2e
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Nov 10 10:38:54 2023 +0200

    Fix sbit removal if fchmodat() doesn't support AT_SYMLINK_NOFOLLOW
    
    glibc versions prior to 2020 know about AT_SYMLINK_NOFOLLOW but don't
    actually implement it for fchmodat() and returns ENOSYS when used.
    We don't check the return code in removeSBITS() so this silently fails
    on those older versions.
    
    We already verify the thing is not a link in the fstatat() condition
    because cap_set_fileat() doesn't have any "dont follow" mode at all,
    so we can just as well drop it from the fchmodat() and make this
    work on more libc versions.
    
    Add a test for the suid bit removal while at it.
    
    (cherry picked from commit 7d3d9041af2d75c4709cf7a721daf5d1787cce14)

commit 7676d95fe09f97f584f2ce88655ab0db502ed608
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Nov 9 16:08:53 2023 +0200

    Split the dependency generation test into individual checks
    
    No actual changes, just makes it much easier to read + work with.
    
    (cherry picked from commit e3ab8a9871da5acdadd13d8f62709f4b0259ba1b)

commit b2d5c289e9666ff83fd5eb232b6c969aa2d10017
Author: Dirk Müller <dirk@dmllr.de>
Date:   Thu Nov 9 13:34:15 2023 +0100

    Switch brp-compress to bash
    
    commit f3f763e54d introduced the use of 'read -d' which is
    bash specific.
    
    Signed-off-by: Dirk Müller <dirk@dmllr.de>
    (cherry picked from commit 4d219ed463984d69c532413584a4bd7b5e76e8d9)

commit 1c12a5d614926d9af8c652a856ba9168d9239485
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Nov 7 16:40:36 2023 +0100

    Adapt Dockerfile.fedora to F39
    
    The fedora-repos-modular package is gone from F39.  This commit makes
    the Dockerfile work on a F39 host with the mktree.oci backend since we
    override the release with "podman build --from fedora:39 ..." there.
    
    (cherry picked from commit f851bce1ef69c047a869a3a83b1063a037bcd289)

commit 30f222c6681656313bcd2ab2f185c84ab482ebda
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Wed Nov 8 17:28:09 2023 +0100

    Allow SOURCE_DATE_EPOCH=0 again
    
    Commit 11132fc21fb01ed63c621d852bc081a914d4f021 assumed that the value
    of 0 is never used in practice and thus used it to indicate "disabled",
    however that assumption has turned out to be wrong because ostree uses
    precisely that value as mtime in inodes, which in turn breaks existing
    workflows in this space (see the associated ticket).
    
    Fix this by reverting the above commit (except leaving source_date_epoch
    initialized to 0, to prevent GCC warnings as mentioned in that commit).
    
    As to why not just initialize source_date_epoch to -1: time_t happens to
    be a signed integer on most platforms but POSIX doesn't specify its
    signed-ness.
    
    Add some accompanying tests too.
    
    Fixes: #2679
    (cherry picked from commit bb1eeb49132e2be3582f1e949a20ea5f6c8104cf)

commit 4b6f142f79560f7f4075fb0ffc843d334b3dd146
Author: Takuya Wakazono <pastalian46@gmail.com>
Date:   Wed Nov 8 01:56:56 2023 +0900

    Fix a macro in the comment
    
    Nothing defines RPMHOME, replace it with RPM_CONFIGDIR.
    
    (cherry picked from commit 17f72c4e7f872a70809128160cf1e74be9c4500c)

commit 05b97f011cab0f4576efb9e883ff73722213b2e2
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Nov 3 12:15:58 2023 +0200

    Fix comment line handling in sysusers.d(8) files
    
    sysusers.d(8) format permits empty lines and commits, and so must we.
    Add some extra fluff to the test-case for this.
    
    This is the second half of
    https://bugzilla.redhat.com/show_bug.cgi?id=2246236
    
    Fixes: #2741
    (cherry picked from commit a8ec768950f0adb9fb0c264596350fc929437ac8)

commit 5addad402cc360df4f0681b9ffdcec09e5f78788
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Nov 3 11:53:11 2023 +0200

    Handle unsupported 'r' and 'm' sysusers types more gracefully
    
    People will want to use existing sysusers.d files through rpm and while
    we don't support 'r' and 'm' at this time, we shouldn't really call
    them "invalid" and error out. Issue a warning instead, and ignore.
    
    This is the first half of
    https://bugzilla.redhat.com/show_bug.cgi?id=2246236
    
    (cherry picked from commit 43cf645fc1fab93b5424cfc22cb520eb486fdbee)

commit 323e3f7053173a052eefc0ce4fb5aa4f9d879aaf
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Nov 3 11:51:11 2023 +0200

    Fix an apparent thinko/typo in the sysusers test spec
    
    I'm quite sure I didn't really intend to test duplicate files behavior
    here...
    
    (cherry picked from commit d141c874b3281a806bc027d0cf6cf22afd759f7a)

commit 6a9934c781862df84a77c6be47633b37f0b9fee7
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Nov 3 11:34:54 2023 +0200

    Use macro error reporting for %add_sysuser errors
    
    Lua has error() but no warning() (obviously) which we'll want in the next
    step, so for consistency lets just use macro.error() instead.
    
    (cherry picked from commit 22e177f428a2afec2db8adad032c17e954ce0a59)

commit 899ffecfdfe9fbb38958d21fd60ee864ceeeef52
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 6 15:58:54 2023 +0200

    Expose and document rpmdb --verifydb operation
    
    After years of BDB, sometimes folks just want some assurance that their db
    is still fine. Properly exposing an operation to do so hopefully makes
    less likely to poke at the db directly (with eg sqlite3 command).
    
    (cherry picked from commit 173b737f40e7da85f79544e3f4ea4ad7b8f7d5c2)

commit d0f98715c990483eed802580a17349f3230831e5
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 6 15:58:07 2023 +0200

    Document rpmdb --exportdb and --importdb switches + minor other tweaks
    
    (cherry picked from commit e85a8a63692a37db7df7384310749cbfa796183a)

commit 6bab2c0b1df040800f6274e9ce81eb44163efea2
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Mon Nov 6 12:35:56 2023 +0200

    Properly document our different macro types and their scopes
    
    (cherry picked from commit f8b4c99bd874c56cef73ab1ca204e225eebae8a7)

commit 8ae49748bc27fcdfc67c6f724f5a51deb31f690c
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Oct 31 16:37:44 2023 +0100

    Exit from mktree on failure
    
    Right now, if the podman image fails to build or rpm fails to
    build/install, we happily continue and run the test-suite, only to
    eventually fail with some cryptic error, such as:
    
        error: cannot find rpm
    
    Not too helpful, indeed.  Instead, just fail the whole tree preparation
    process if we encounter an error.
    
    Fix the return code of unshared() so that we don't fail on that, though.
    Also, when building the RPM layer, use a proper cleanup trap instead of
    ignoring SIGINT since a failing make_install() can now terminate the
    script.
    
    Fixes: #2667
    (cherry picked from commit 302793af0b80defd77c750bdcf1a8721d75353e1)

commit e1b94c6cf10722eb1029f48eb11aeda62f922ed8
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Oct 27 11:00:07 2023 +0200

    Rename mktree.podman to mktree.oci
    
    This name is a better fit as it puts more emphasis on the format of the
    resulting tree, not as much on the actual container engine used (which
    can be swapped, and currently is in the CI where we use docker instead
    of podman).
    
    Also drop the awkward .docker symlink now and instead pass the container
    engine through the MKTREE_ENGINE environment variable.
    
    (cherry picked from commit 05c3b37d1f8f91c3face5eeafe8d4c76fbdda495)

commit 9f3ff6939c7f9b5e7738feda6420bf43ef903c39
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Oct 27 13:55:20 2023 +0200

    Remove sudo from GH workflow
    
    Turns out the docker command in CI is set up such that it doesn't need
    an explicit sudo, so remove it.  This will also allow us to easily pass
    environment variables to mktree in the next commit (as otherwise we'd
    have to use the ugly -E, --preserve-env option).
    
    No functional change.
    
    (cherry picked from commit 15897bca7fe2305434fbef3928152019c5e0ce9a)

commit a9f259b35f1883518f8f5c31960cc3f5349842dd
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Oct 27 16:05:01 2023 +0200

    Remove function keywords from atlocal
    
    These are bashism, not really needed.
    
    (cherry picked from commit 47067768a3d972b80613e4983e840eb36d171fe9)

commit 3b3107c8493b4599a99d8b6ad54d367165225a0c
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Oct 27 10:48:31 2023 +0200

    Move snapshot() back to atlocal
    
    Commit 09e472040ad8bd87d50dac63aa6f72a359ade47e moved the snapshot
    function to mktree.common so that we could later use it in non-cmake
    mode (outside of the build directory) too, to containerize rpmtests
    itself.  In the end, however, we've decided to just use Podman/Docker
    for the outer container as it simplifies things.
    
    Therefore, the snapshot function is no longer needed outside of the
    test-suite, it's an internal implementation detail at this point which
    doesn't have anything to do with mktree, so move it back to atlocal
    where it really belongs.
    
    As a bonus, the rpmtests wrapper can now be simplified a bit more, too.
    
    No functional change.
    
    (cherry picked from commit c7ed626fbf0f88f12556374bcecf0047e648db7c)

commit e68177a9402d7ae8a5ddffa233b2097916368549
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Oct 12 16:05:16 2023 +0200

    Standardize on OCI images in test-suite
    
    Instead of manually bootstrapping our own base "image" using a host
    specific script, just use the official, prebuilt OCI images with
    Podman/Docker.  This has several advantages:
    
    - Standard, ubiquitous OCI images (easy support for other distros)
    - No manual setup of DNF, RPM macros, user namespaces and whatnot
    - Single recipe (Dockerfile) for both the local and CI purposes
    - Outsourced image caching (Podman/Docker storage)
    - Faster (just downloads the prebuilt image)
    - Less dependencies on the host
    
    Now that we've prepared mktree.podman for local use, just switch to it
    in cmake and drop the Fedora backend.  Update the docs and comments
    accordingly, too, those should explain the details.
    
    Fixes: #2643
    (cherry picked from commit 93eef6d3a27f5de4977b1f14e8bf1c101bca76a2)

commit d1a0db2d5221092dc56e9b504cc9f3ecaff577a5
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Oct 19 15:53:32 2023 +0200

    Add native mode to mktree.podman
    
    Instead of building RPM from scratch as part of the image, allow for
    reusing the existing build artifacts on the host to produce the final
    image.
    
    This ensures we test the actual local build, not just the sources, and
    speeds up the whole process, allowing it to be used for local
    development as well.
    
    No immediate effect, we'll hook this up to cmake in the next commit.
    
    (cherry picked from commit 1a7956e008479ad3a3bb58297d920b0ba6f09b44)

commit bb1169f613c0ba8274d9d3036b4b521bd425d339
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Oct 19 16:32:05 2023 +0200

    Add Dockerfile.fedora
    
    Rename the existing Dockerfile and add a symlink for the original
    filename.  This will allow for supporting other, non-Fedora, Linux
    distros in the future and is a prerequisite for the next commits.
    
    (cherry picked from commit ec5ec7923198a481c7798cfe7dc3b521d6376b9c)

commit 87974f7781d1570b22522cf0cf553732c2529b85
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Oct 19 15:02:51 2023 +0200

    Only rebuild the RPM test layer
    
    Right now, we build and tag a new image on each mktree.podman run.  This
    causes an unnecessary buildup of images over time that needs to be
    manually cleaned with podman-image-prune(1).  Instead, tag the base
    layer and then only rebuild the RPM layer.
    
    (cherry picked from commit fe0c09f16f8f6df3ab370d75bab29f3f6b44ebd6)

commit b9de143afd0c629126a1776b7db9869f0166ba8e
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Oct 27 17:18:43 2023 +0200

    Bind mount $PWD at /srv in test container
    
    This is another step towards the unified OCI backend, no functional
    change yet.
    
    (cherry picked from commit 5fd2e028b0672ee37c54eaf8141bbc418bf69c30)

commit f1aa106cc22023a329778ae775840ec65492d937
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Fri Oct 27 17:18:32 2023 +0200

    Use --log only if running from source dir
    
    Log mode is mostly useful in the CI environment so don't enable it by
    default.  This is another step towards the unified OCI backend.
    
    No functional change.
    
    (cherry picked from commit b1eed579f0d71fbcd5f71f2cc8e47b4b5db52660)

commit b61956b1b1006867a82200be5b47f91100174939
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Oct 19 15:02:38 2023 +0200

    Use the new --shell command in mktree.podman
    
    (cherry picked from commit f59100b3e7ec3784d0a0c28c475065789d1762d9)

commit 5f7a9babb52971c20c19049d30033fc89e36fdc6
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Mon Oct 23 21:56:28 2023 +0200

    Add --shell command to rpmtests wrapper
    
    This invokes an interactive shell in a dummy test where all the usual
    test commands work, and is meant as a replacement for what mktree.fedora
    currently does for its shell/atshell commands.  This feature basically
    emulates a single test so it really belongs to the rpmtests wrapper, not
    mktree.
    
    For consistency, also do the permission fixup for rpmtests.dir (just
    like in mktree.fedora), this will be needed once we drop mktree.fedora.
    
    (cherry picked from commit 0dc534891cea3905ba1c3a2100843e61df416bb1)

commit 253617a7fd4136eaceebf1f7c40d1b03e0be231d
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Thu Oct 26 17:31:06 2023 +0200

    Refactor rpmtests wrapper
    
    Don't symlink rpmtests itself, we can run it directly from the
    installation directory in the test tree.  This eliminates some extra
    cd-ing.
    
    No functional change.
    
    (cherry picked from commit 9ae317a81b223ec8e2c097f4cf637fdd0ea34e63)

commit 9570ea6e816422263c89344bf1796299fda7c3c6
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Tue Oct 31 13:41:25 2023 +0200

    Add a blurb about portability expecations to contributing guidelines
    
    (cherry picked from commit 61000db0bcce33c7c137c927a22f6ab9d926bee1)

commit a4603e89371492f42ffb53df1433f316666c8a09
Author: MridulSharma03 <149292435+MridulSharma03@users.noreply.github.com>
Date:   Tue Oct 31 13:22:08 2023 +0530

    Fix typos
    
    (cherry picked from commit 6e93ab1eb6f5d3cdddd51aaa2c3c93c55f281640)

commit 064d3f1f73cf8c5c074225e0262fe3210860cc8e
Author: Daniel Alley <dalley@redhat.com>
Date:   Wed Oct 25 09:16:35 2023 -0400

    Remove lead checks other than the "magic number" check
    
    Remove checks on the lead's "signature type" and "rpm package format
    version" fields. The lead is a long, long obsolete structure and the
    less we look at it the better, these checks accomplish exactly nothing
    at all.
    
    Fixes: #2423
    (cherry picked from commit b3449a0774487a091bbe59e821b4004b06d4fa66)

commit 9593684255071960e249e9f268ccb2a46c250cb5
Author: Florian Festi <ffesti@redhat.com>
Date:   Tue Oct 24 14:06:50 2023 +0200

    Use uniform formatting for SEE ALSO sections
    
    While there is no generally agreed standard for formatting SEE ALSO
    section of man pages we should at least use only one style. Comma separated
    lists are commonly used when referring to other man pages. Both *italic* and
    **bold** are used but the later seems to be more popular - so let's
    stick to that.
    
    Thanks to Frank Dana <https://github.com/ferdnyc> for pointing this out.
    
    Resolves: #2731
    (backported from commit c97fd9359c2582d350315b5e17697649ee7055f3)

commit 627c4a0f3c5e220266464cd13cd813988f46488b
Author: Florian Festi <ffesti@redhat.com>
Date:   Fri Oct 20 19:07:32 2023 +0200

    Add %_iconsdir macro
    
    Offer a generic way to place icons in the proper system dir
    
    Resolves: #2196
    (cherry picked from commit bbadc2bb6445e4608251d3b375120a02a8693286)

commit 58d3879662cde529465a940a203e01f678fb4d8d
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Thu Oct 19 10:32:52 2023 +0300

    Document the argv[1] (vs 0) in rpmlua manual
    
    Fixes: #2095
    (cherry picked from commit 3b070507abf1ce0b399d45268015fb76a829be9b)

commit 8257e0b3f5287d14b395a41107d53b5df3284e23
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Oct 17 12:41:11 2023 +0200

    Fix regression of mktree not always rebuilding
    
    Commit d4e808ebda3ec1d85fcdb176eae31901b74c6e91 added cmake caching for
    mktree so that we don't rebuild the tree on each "make check"
    invocation.  However, this means we can now easily miss some test
    dependencies being updated since we don't depend on everything, e.g. the
    data/ dir.
    
    To fix this, instead of adding each and every file and directory as a
    dependency of the mktree.output command, just rebuild the tree every
    time.  The base image (made with DNF) is already cached anyway, and the
    added overhead is tiny and outweighs the (potential) engineering hours
    lost due to this.
    
    The funny thing is, this was already fixed once in 2019:
    fc05045008d84429bf51154642e18fda70d3f256
    
    Sometimes you've just gotta fix stuff twice before it sticks!
    
    Fixes: #2725
    (cherry picked from commit 12b073b56ca5f849ae33e75ae99d3f4688392b70)

commit 090729e642089bb7d3d8319bbb7e0d410ed5f287
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Oct 10 14:18:04 2023 +0200

    Add rpmtests wrapper for container use
    
    This script replaces the role of mktree.rootfs in the podman image where
    it serves as a wrapper for the bundled rpmtests that makes it store its
    working files in the current directory (bind mounted from host) by using
    an ugly symlink hack.  The built in -C option can't be used here because
    it looks for atlocal in the destination directory where it obviously
    isn't, hence the hack.
    
    However, calling "mktree check" in the container is pretty confusing so
    move the hack out into a separate rpmtests wrapper so that we can just
    call "rpmtests" as one would expect.  This also makes the hack more
    explicit and obvious.
    
    For consistency, use the same wrapper when running from the build dir
    (mktree.fedora) as well.  Still prefer the locally built test scripts,
    though, and don't print the test log if not asked.
    
    (cherry picked from commit 860b3d82fadd3f9c06c4048337d6200fb1a0a3ba)

commit b59046a4f5017465d51936c9ec12a959b7093f6b
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Tue Oct 10 09:13:38 2023 +0200

    Add --read-only argument to mount_tree
    
    Make it more obvious when the tree is mounted as read-only.
    No functional change.
    
    (cherry picked from commit cea7e09d7594c5d72598d510067ae90946bf2e57)

commit d8f7d99549fd9338a7c61b0f657bee3d0b381995
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Mon Oct 9 16:51:20 2023 +0200

    Depend on mktree script when building the tree
    
    A change to the script warrants a rebuild.
    
    (cherry picked from commit 70cc93cadf6aa8da33c3b410ed43896839f40343)

commit 5445f3532df9d26b985dbf774ada86babb0a2f1f
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Mon Oct 9 16:47:10 2023 +0200

    Move make_install to after package installation
    
    No functional change, just cosmetic (makes more sense this way).
    
    (cherry picked from commit 0d0303414c70fa2e34b96dd6420597d0e687cac0)

commit d144946c9d72cb04641cd54862cdba872737930f
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Mon Oct 9 12:42:53 2023 +0200

    Don't stack overlays in test-suite
    
    Rather than using the root overlay mount in the rpmtests container as
    our lowerdir for per test mounts, just use the original lowerdir from
    the host.
    
    This eliminates the extra level of indirection and enables us to use a
    podman image mount as the lowerdir (to be done later) as otherwise we
    would hit the kernel's limit for maximum fs stacking depth of 2.
    
    Keep the podman backend as is (using "/"), we'll remove it soon anyway.
    
    No functional change.
    
    (cherry picked from commit 03dd0743016bcd332452d564e39eda12d26b43fa)

commit 112c535f2a17636df3bad729352519b3ac8c45ac
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Mon Oct 9 12:37:09 2023 +0200

    Bind mount $PWD at $PWD, not /srv
    
    This allows us to reuse the host paths such as $RPMTREE inside the test
    container which will be needed in the next commits.
    
    No functional change.
    
    (cherry picked from commit 3fe6c981ec67acc971e74fec37b0e3de90937e66)

commit 9826886577d69bd03996c79fbf656d8fe06fbe4b
Author: Michal Domonkos <mdomonko@redhat.com>
Date:   Mon Oct 9 12:20:39 2023 +0200

    Move $PWD bind mount out of snapshot shell
    
    This command really shouldn't do more than actually invoke the default
    shell and set a user friendly hostname.  Do the host mount only where
    actually needed, i.e. when running rpmtests which creates overlays.
    
    Files can still be shared between the host and sandbox via "make
    atshell" which mounts the sandbox at $RPMTEST.
    
    (cherry picked from commit 1c25b5eb0e705df727e95f413470789db8acaf79)

commit 9b6335d06d5e739183488842b6f17184378173ad
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Tue Oct 10 15:34:19 2023 +0300

    Run the CI build in parallel
    
    The test-suite runs automatically in parallel but the main build
    doesn't.
    
    (cherry picked from commit 2fb0ddaf098c9d6930f7e577be3155a966802efc)

commit a7be58704be9f0750aa9a1734799ba7de621edbd
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Tue Oct 10 15:08:32 2023 +0300

    Enable debug information and optimizations in the CI build
