On Mon, Dec 21, 2020 at 1:42 PM Matthew Miller <mattdm(a)fedoraproject.org> wrote:
On Mon, Dec 21, 2020 at 07:14:08PM +0100, Marius Schwarz wrote:
> delta rpms safe so much time in form of bandwidth on the client side.
> If something really needs to change, it is the 50+ MB repo database
> that gets downloaded. It takes ages on slow connections to download
This needs a followup. I didn't push on it because the DNF team was
super-busy with modularity, but if someone wants to pick this up, it'd be a
significant improvement:
https://pagure.io/packaging-committee/issue/714
In short, 95% of the dependency data is full filename paths. That's not
hyperbole. It's literally 95% by count. Actually probably even more by
_space_ since they tend to be long.
Only a tiny fraction of packages use these at all, and almost all of the
packages using file deps outside of /usr/bin, /usr/sbin, or /etc could use
something else — and of the few using something else, many are actually
doing so only in error.
It remains convenient to be able to do
dnf install /usr/share/fonts/jetbrains-mono-fonts/JetBrainsMono-Regular.ttf
or whatever, but that seems like it could be covered by a DNF plugin.
Previously, there was a chicken-and-egg scenario where the DNF folks didn't
want to touch this while people were still making packages relying on this
feature, but since 2018 that's a "SHOULD NOT" in the guidelines. So, I
think there's room to move forward, should anyone like to take this on.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_dire...
The main problem is that wiring libsolv to callback to
opportunistically fetch and repopulate the solver cache has not been
figured out for libdnf. Once we do that, we don't need to do any more
work. Most cases will automatically only fetch primary.xml and
filelists.xml will only be fetched as requested. This is the behavior
that YUM v3 had, and it wasn't ported to DNF because we lacked a
mechanism to do this. In *theory*, such a mechanism exists now in
libsolv, though the API is sufficiently confusing that I'm not sure
how to do it exactly.
As someone who has to package for multiple distributions, I would
oppose any attempt to cripple DNF to stop supporting file dependencies
properly. I *aggressively* use file dependencies to avoid having to
litter my spec files with package name dependencies across RH/Fedora,
SUSE, Mandriva/Mageia, and others.
--
真実はいつも一つ!/ Always, there's only one truth!