nim added a new comment to an issue you are following:
``
Hi Till,
pm request is basically a way for the spec to ask mock to install new packages in the
buildroot. Technically, the spec writes `install x y z` over a unix socket, mock asks dnf
to install those, and replies ok/nok over the socket.
So right now it’s used by the Go macro rework I’m finishing up to ask mock to install
BuildRequires at the end of `%prep` (after the packager used `%prep` to clean up sources,
so BuildRequires computation starts from a controlled state).
You can see it in action at line 2508 of
https://paste.fedoraproject.org/paste/hglkYSWJAHd2YuGBX2XnsA
At this point of the build `%prep` setup is finished, the macro has computed `%build`
requirements, and the spec can ask mock to instal those (this is a small easy Go package,
real-world packages can have many more deps than that).
The mock-install command is just a small helper to write `install x y z` over the socket
and read what mock answers.
It’s not ideal because pm request:
1. needs a socket, so not easy to use by a packager in a spec (I had to write
mock-install to workaround this)
2. is probably more flexible that we actually need. I'd rather have the buildsys look
for additional BuildRequires at specific point of the build process, than have specs poke
the build system whenever they like
3. it all happens without `rpmbuild` involvement, so the result is not traced in rpm
headers
Points 1. and 2. require mock changes
(
https://github.com/rpm-software-management/mock/issues/160)
Point 3. requires pm changes (
https://github.com/rpm-software-management/rpm/issues/104)
But nothing has been happening for years, everyone waits for the other to do the first
step, before expending energy to implement it in an ideal way. And in the meanwhile the
packaging situation in Fedora degrades (to much impedance mismatch between upstreams that
posit what amounts to dynamic BuildRequires, and the lack of any solution at the distro
level).
So I'm asking to deploy the existing solution, even if it is imperfect, because it is
sufficient to start producing working Fedora packages, and it will get all everyone to
focus on making it better, rather than waiting for the ideal solution to materialize from
thin air.
it all happens behind rpmbuild, so the result is not registered by rpmbuild in rpm
headers
, and installation is initated by the spec
``
To reply, visit the link below or just reply to this email
https://pagure.io/releng/issue/7878