I cannot mock-rebuild packages that have /some/ BuildRequires: with explicit
file dependencies, for F40. I have no idea why just /some/ of them are
rejected.
I'm using mock to rebuild SRPMS in an F40 chroot, and it fails thusly:
Updating and loading repositories:
updates 100% | 286.7 KiB/s | 23.8 KiB | 00m00s
fedora 100% | 229.3 KiB/s | 19.7 KiB | 00m00s
Repositories loaded.
Failed to resolve the transaction:
No match for argument: /usr/include/ltdl.h
No match for argument: /usr/lib/rpm/macros.d/macros.systemd
These are absolute file paths referenced by BuildRequires:.
I replaced the problematic BuildRequires: with package names, libtool-ltdl-
devel and systemd-rpm-macros. This allowed the build to proceed.
But here's a head-scratcher. Here's (a part of) my diff:
--- a/courier-authlib/courier-authlib.spec.in
+++ b/courier-authlib/courier-authlib.spec.in
@@ -54,7 +54,7 @@ BuildRequires: redhat-rpm-config
BuildRequires: courier-unicode-devel
BuildRequires: %{__make}
BuildRequires: shadow-utils
-BuildRequires: %{_includedir}/ltdl.h
+BuildRequires: libtool-ltdl-devel
That %{__make} is still there. Somewhat unneeded, but it's there. And this
built fine.
So, can anyone tell me why %{_includedir}/ltdl.h, which is
/usr/include/ltdl.h, got rejected by mock+dnf5, but %{__make}, which is
/usr/bin/make was just peachy?