Hi Zbyszek,
On Thursday, October 14, 2021 11:52:59 AM CEST Zbigniew Jędrzejewski-Szmek wrote:
Hi Kamil and everyone,
what is the plan with introduction of libcurl-minimal in Fedora?
I proposed to use libcurl-minimal and curl-minimal in minimal base images
half a year ago but there has been no reply so far:
https://pagure.io/minimization/issue/25
IIUC, libcurl and libcurl-minimal both have the same Provides, so
libcurl-minimal can be used to satisfy automatically generated
dependencies:
$ dnf repoquery --provides libcurl-minimal
libcurl = 7.78.0-3.fc35
libcurl(x86-32) = 7.78.0-3.fc35
libcurl(x86-64) = 7.78.0-3.fc35
libcurl-minimal = 7.78.0-3.fc35
libcurl-minimal(x86-32) = 7.78.0-3.fc35
libcurl-minimal(x86-64) = 7.78.0-3.fc35
libcurl.so.4
libcurl.so.4()(64bit)
$ dnf repoquery --provides libcurl
libcurl = 7.78.0-3.fc35
libcurl(x86-32) = 7.78.0-3.fc35
libcurl(x86-64) = 7.78.0-3.fc35
libcurl-full = 7.78.0-3.fc35
libcurl-full(x86-32) = 7.78.0-3.fc35
libcurl-full(x86-64) = 7.78.0-3.fc35
libcurl.so.4
libcurl.so.4()(64bit)
AFAICS, no other package makes use of libcurl-{full,minimal}.
In systemd we only care about a narrow subset of protocols, so
libcurl-minimal is perfect. I considered adding
Suggests:libcurl-minimal%{_isa} in systemd. IIUC, that'd bias dnf towards
the installation of libcurl-minimal. But the problem is that if some other
package expects libcurl in the full version, it'll be disappointed.
If a package (strictly) requires libcurl-full, it should probably have an
explicit dependency for it. If some packages require implementation of a
specific protocol or feature, we could introduce virtual provides for them,
too, to make the sets of protocols/features in the -minimal variants less
hard-coded.
Hence my question: how to proceed with pulling in libcurl-minimal
where
it'd be useful? Should I just add Suggests:libcurl-minimal%{_isa} in
systemd and let the maintainers of other packages add
Recommends:libcurl-minimal%{_isa} or Requires:libcurl-minimal%{_isa} if
they need it? What packages would that be?
Another option would be do not do any of this at package level, but instead
pull in libcurl-minimal through comps or kickstart or equivalent when doing
installations.
This is more a question for users of (lib)curl. I do not have any strong
opinion on that.
Kamil
(Sorry if this is all documented somewhere… I looked around, but
didn't see
anything relevant.)
Zbyszek