Hello, On 2022-05-24 08:14, Richard Biener wrote:
On Mon, 23 May 2022, Martin Wilck wrote:
On Sat, 2022-05-21 at 21:30 +0930, Simon Lees wrote:
Recommends really means "The maintainer thinks you really should have this unless your use case has a very good reason not to".
People keep saying this on this ML, but I don't buy it. First of all, it's different from the natural language meaning of "Recommends". It'd rather be like "VeryStronglyRecommends:". Second, not every maintainer uses it like this.
First: The meaning of "Recommends" in RPM does not need to match exactly the natural language meaning because the word "Recommends" in RPM is a technical term with its specific technical meaning which should be reasonably related to its natural language meaning but could be somewhat different. Second: All openSUSE package maintainers should specify RPM dependencies in the same way to get a consistent user experience. Third ( "tertium datur" - always! ;-) An end-user frontend should use wording in natural language so end-users understand things. Using technical terms "as is" in an end-user frontend may cause confusion when the meaning of technical terms does not match well the natural language meaning. In contrast an admin frontend could (likely even should) use technical terms "as is".
I believe that we have better instruments than "Recommends" these days, in particular booleans. In the example at hand, we could create a pseudo-package by the name of, say, "system-requires-wifi". Yast would install this package automatically during system setup if Wifi hardware was deteced. Then Networkmanager could have a dependency like this:
Requires: (NetworkManager-wifi = %{version} if system-requires-wifi)
RFC 1925 item 6a: "It is always possible to add another level of indirection." RFC 1925 item 6: "It is easier to move a problem around (for example, by moving the problem to a different part of the overall [...] architecture) than it is to solve it." RFC 1925 item 5: "It is always possible to aglutenate [sic] multiple separate problems into a single complex interdependent solution. In most cases this is a bad idea." I think what software is usually needed by the user should be better specified via patterns. Patterns also add another level of indirection but the patterns indirection is at least only one single generic and commonly known way to do that in contrast to various kind of individual levels of indirections at each specific RPM package.
I disagree - system configuration should not be done via rpm requires (or even recommends).
I disagree even more: System configuration cannot be done via RPM spec files because one RPM spec file can only specify one "hardcoded" case which contradicts "configuration" which means "choice". Cf. what I had written in the "Use of 'recommends' and 'suggests'" mail thread on the "packaging" mailing list on 16. and 17. February 2022: https://lists.opensuse.org/archives/list/packaging@lists.opensuse.org/thread... By the way: It seems some more items of RFC 1925 apply here ;-) Kind Regards Johannes Meixner -- SUSE Software Solutions Germany GmbH Maxfeldstr. 5 - 90409 Nuernberg - Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman (HRB 36809, AG Nuernberg)