Hi everyone, Currently, packaging shell completions is a bit of a hassle. You have to memorize a bunch of long directory names (`%{_datadir}/bash-completion/ completions`, `%{_datadir}/fish/vendor_completions.d`, and `%{_datadir}/zsh/ site-functions`), and repeat them multiple times in the specfile. For some reason, the bash completion directories are owned by filesystem, but zsh and fish's shell completions directories are not. Therefore, every package needs to copy ``` %files [...] %{_datadir}/bash-completion/completions/%{name} %dir %{_datadir}/fish %dir %{_datadir}/fish/vendor_completions.d %{_datadir}/fish/vendor_completions.d/%{name}.fish %dir %{_datadir}/zsh %dir %{_datadir}/zsh/site-functions %{_datadir}/zsh/site-functions/_%{name} ``` or own each shell's respective root directory and not bother with `%dir` and explicit paths. I don't like doing the latter, as I prefer to be explicit and follow the spirit of https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_lists. I was thinking of creating an sh-completions-packaging package (name suggestions welcome) that provides a subpackage containing macros for each of those directories that would be part of the default buildroot and a filesystem subpackage that owns these directories so packages can Require it and not have to copy this long boiler plate. I would appreciate any feedback you have, particularly regarding naming of the packages and macros. For the macros, would `%{_bashcompdir}`, `%{_zshcompdir}`, and `%{_fishcompdir}` be appropriate macro names? I'm a bit unclear about macro namespacing conventions. Even if you don't like this idea, I think the guidelines could at least use some clarification in this area. I have seen or dealt with multiple packages that install shell completions to the wrong directories, don't properly own the directories, or have other problems. -- Thanks, Maxwell G (@gotmax23) Pronouns: He/Him/His
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ packaging mailing list -- packaging@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to packaging-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/packaging@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure