Hi everyone, I am resending this message, because I think it got lost. I sent it at the begining of a weekend, so people must not have seen it. I am CC'ing the change owner, as I feel that more clarification is required. I maintain that this change should only apply to updates; `dnf install`, `dnf reinstall` should behave as they have been. At least, this change and all of its effects should be fully explained to packagers. We should probably discuss the shell completion stuff seperately. Thanks, Maxwell On Fri, 2021-11-12 at 15:48 -0600, Maxwell G wrote: > Hi everyone, > > On Thu, 2021-09-16 at 15:17 -0400, Ben Cotton wrote: > > https://fedoraproject.org/wiki/Changes/ExcludeFromWeakAutodetect > > > > > > == Summary == > > exclude_from_weak_autodetect enables autodetection of unmet weak > > dependencies (Recommends or Supplements) of installed packages and > > blocks installation of packages satisfying already unmet > > dependencies. > > In other words: When you don't have the recommended package > > installed, > > it won't be automatically installed with future upgrades of the > > recommending package. > > I am not sure if this was intended, but this change has broken rich > weak dependencies when both packages are not installed as part of the > same transaction. > > In my yt-dlp package's specfile[1], I have three subpackages for > shell > completions: `yt-dlp-bash-completion`, `yt-dlp-zsh-completion`, and > `yt-dlp-fish-completion. Here is the `bash-completion` block: > > ``` spec > %package bash-completion > Summary: Bash completion for %{name} > Requires: %{name} = %{version} > Requires: bash-completion > Supplements: (%{name} and bash-completion) > BuildArch: noarch > ``` > > The intended effect is for the shell completions to be installed at > the > time `yt-dlp` itself is installed if the respective shell package > (`bash-completion`, `zsh` or `fish`) is already present while still > allowing users to opt out. However, now this does not work; dnf will > only install the completions if both `yt-dlp` and the shell package > are > installed as part of the same transaction. I can confirm that this is > caused by this change, because adding `-- > setopt=exclude_from_weak_autodetect=false` fixes the problem. > Replacing > `Supplements` with forward facing boolean `Requires` did not work > either. > > ``` spec > Recommends: (%{name}-bash-completion if bash-completion) > Recommends: (%{name}-zsh-completion if zsh) > Recommends: (%{name}-fish-completion if fish) > ``` > > While I agree that {rich,} weak dependencies should not be > reinstalled > as part of updates, I do believe that they should be installed if one > of the packages is being installed for the first time. > > I also think we should consider implementing better guidelines for > shell completions in Fedora. I believe that shell completions should > be > split into subpackages and that these subpackages should depend on > the > shells themselves or a `-filesystem` package that actually own the > directories. Right now, directory ownership is kind of a mess. At > least > on my system, there are several packages that own /usr/share/bash- > completion, /usr/share/zsh/vendor-completions, /usr/share/zsh/site- > functions, and /usr/share/fish/vendor_completions.d/. We can also use > this oppurtunity to create macros for each of these directories. > > Management of shell completion packages was discussed further in my > package review ticket [2]. > > I am relatively new to Fedora, so please correct me if I got anything > wrong. > > Thanks, > Maxwell > > [1]: > https://src.fedoraproject.org/rpms/yt-dlp/blob/rawhide/f/yt-dlp.spec > [2]: https://bugzilla.redhat.com/show_bug.cgi?id=2012522 > -- Maxwell G (@gotmax23) Pronouns: He/Him/His PGP Key Fingerprint: f57c76e5a238fe0a628e2ecef79e4e25e8c661f8 PGP Keyserver: hkp://keyserver.ubuntu.com gotmax@e.email
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure