Circular dependencies in RPM

Petr Pisar ppisar at redhat.com
Fri Aug 29 13:20:27 UTC 2014


On 2014-08-28, Darryl L. Pierce <mcpierce at gmail.com> wrote:
> On Tue, Aug 26, 2014 at 10:55:56AM +0000, Petr Pisar wrote:
>> In my opinion, it would be much more appreciated if Fedora had
>> a mechanism to express "I want support for PDF" on the installed system
>> and then package manager would use this boolean to install or skip
>> affected dependencies. (This is the case of "some code paths" from
>> previous paragraph.)
>
> Would virtual provides give us that?
>
> Packages A, B and C have "Provides: pdf_reader" and Package B has
> "Requires: pdf_reader". The issue would to determine which provider to
> install, and do you ask the user to install it first or maybe install
> a "recommended" package?
>
You are still going in circles. The key point is to express the "Requires:
pdf_reader" at package B is a weak dependency.

Then an interactive package manager could ask "The pdf_reader
B dependency is recommended but not needed. Do you want to fullfill
it?", and user had an opportunity to skip it completely.

(Of course, you could create an empty package providing "pdf_reader", but
I feel these fake provides just lead to confusion. So I do not recommend
this way. See the fakesystemd afair.)

And because users will get tired by explaining their choises with each
package manager invocation, the answer should go into local
configuration file so the decision could be reused next time.

This per-package decision can even get default value from a global
(all-package) configuration. E.g. if an user is not interested in the PDF
support at all, then any weak dependency somehow qualified as a PDF
could be auto-answered.

And the global configuration could even replace the server roles feature
because, at least now as I know, it's only about selecting default
package set.

If you know USE flags in Gentoo, then this is it.

-- Petr



More information about the devel mailing list