Re: introducing curl-minimal and libcurl-minimal RPM packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 17 March 2016 11:55:31 Bill Nottingham wrote:
> Kamil Dudka (kdudka@xxxxxxxxxx) said:
> > > If you care about a consistent developer, user, and debugging experience
> > > regardless of mechanism of delivery, you wouldn't do this in the first
> > > place, or you'd change the global curl package. Either the features are
> > > important, or they aren't.
> > 
> > Are you implying that curl maintainers know better than users which
> > features are important for the users themselves?
> 
> ... well, that's sort of what turning off features for this case implies.
> 
> > > If you care about minimizing size overall (neglecting the fact that
> > > cutting out kerberos and to a lesser extent ldap dependencies don't
> > > really
> > > save you anything due to their system library use), then might as well
> > > just
> > > start -Os-ing random packages and throwing in busybox.
> > 
> > Micro-optimization is way to hell.  The system needs to optimized by
> > design.
> EXACTLY!  Maybe I'm not being clear in what I'm trying to say, but this is
> the point - it needs to be designed.
> 
> 1) Start with the design of who are we targeting - what jobs are then trying
> to do?
> 
> 2) Then, what do we produce? (Atomic, Server, Cloud, Workstation)
> 
> 3) Do they have different needs? Do we build components with different
> features for each? (This solution implies 'yes', but I don't recall seeing
> that stated before)
> 
> 4) If so, what are the differentiating features that require different
> components with different feature sets? What's the job that someone is
> trying to do that requires this? (The impliciation is 'download the base
> image somewhat faster', but that's still very vague.)
> 
> 5) Then, pick the targeted points and propose implementation of individual
> features that serve the larger goal.

The motivation behind this effort is pretty straightforward.  I have been 
maintaining curl in Fedora/RHEL since 2009.  From time to time users ask me
to reduce the number of run-time dependencies of (lib)curl.

At the same time, users are continuously requesting to add new features to 
Fedora (lib)curl and this introduces additional run-time dependencies.  The 
last request, which actually triggered this effort, was adding the support
for libpsl, which itself requires libicu and libstdc++:

https://bugzilla.redhat.com/1305701#c1

I wanted to provide a solution to the continuously growing list of (lib)curl 
run-time dependencies.  Having two builds of the same source code that just 
differ in their build-time configuration sounded like a good trade-off from 
the perspective of a maintainer:

- one suitable for the users that request adding new features

- one suitable for the users that request reducing the run-time dependencies

I am open to discuss what features should be included in (lib)curl-minimal
and I already refined my draft base on the discussion in this thread.

I am also open to discuss other solution to the above problem.  The other 
proposals I have captured in this thread are:

- use dlopen() -- already proven wrong (see RHBZ and upstream ML)

- use static linking -- sub-optimal due to high security advisory rate

- multiple libcurl DSOs on a system -- problematic (see RHBZ and upstream ML)

- tweak dnf to use libcurl-minimal if installed in parallel to libcurl -- not
  a generic enough solution for me to consider (as it would work for dnf only)

> It's possible that, just poking my head up, I missed all the 1-4 discussion
> that this is tied to. But given that the following has all popped up in
> the past few months:
> 
> - "Minimizing the fedora docker base image footprint" (by yanking dnf et.al.
> into a seprate container, making size of it much more irrelevant) - "DNF
> into C initiative started" (enabling a much larger depythoning that doesn't
> require differing library buidls)
> - "F24 Self Contained Change: System Python"
> 
> ... the fact that we now have four separate implementation details, all of
> which could make different parts of the others irrelevant, makes me wonder
> about the design behind it.

So what exactly are you proposing?

Kamil

> Bill
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux