On Wed, 26 Feb 2025 at 20:33:46 +0800, Sean Whitton wrote: > I believe that there is a procedural issue which trumps the substantive > issue about merging or not merging [/usr/bin with /usr/games] ... > I would encourage those of you most interested in the merge to do an MBF > requesting the merge be performed for all the affected packages, and > then we can undo this again.
You're talking about this in terms of a "merge", but I think both the existing Policy wording and the change you're proposing are about the extent to which executables with different functionality in /usr/bin/ and /usr/games/ are allowed to have the same name, like /usr/bin/pacman (Arch Linux's package manager) and /usr/games/pacman (a maze-navigation game), and that's not quite the same thing. I think it's reasonable to want to forbid/avoid name collisions between /usr/bin and /usr/games, even without also wanting to merge the two directories (make one an alias for the other) or otherwise remove /usr/games as a separate concept. I am unsure whether it is a good idea to merge or remove /usr/games (there is lots of reasoning for and against it in #567033), but I do think we should consider it to be a bug to have two executables of the same name in the PATH. For example, if one of the pacmans (pacmen?) was renamed, then I would be able to be confident that running 'pacman' on a sufficiently modern Debian system would either do what I expect, or raise an error because the package was not installed, but certainly not result in getting the other meaning of pacman, regardless of whether my PATH looks like /usr/bin:/usr/games or /usr/games:/usr/bin. Similarly I think it would be a consistent and reasonable position to want to keep /usr/sbin separate from /usr/bin, but require /usr/sbin/foo to be functionally equivalent to /usr/bin/foo in any situation where both exist. What I would like to avoid here is having maintainers feel that they should reject attempts to resolve naming collisions with reasoning like "this is part of a merge like the /usr-merge and I didn't like the /usr-merge", because I think resolving naming collisions in the PATH is a good goal in its own right, independent of whether any more directories get merged. > ("may" and "encouraged" here have their official Policy meanings) > > --8<---------------cut here---------------start------------->8--- > diff --git a/policy/ch-files.rst b/policy/ch-files.rst > index 6fda3b1..c2e4700 100644 > --- a/policy/ch-files.rst > +++ b/policy/ch-files.rst > @@ -19,6 +19,13 @@ to the ``debian-devel`` mailing list and try to find a > consensus about > which program will have to be renamed. If a consensus cannot be reached, > *both* programs must be renamed. > > +There is a exception to the above rules for ``/usr/games``: packages that > +already install programs to ``/usr/games``, where another package installs a > +program of the same with different functionality to a different directory on > +the default ``PATH``, may continue to do so. However, packages must not > +install any newly conflicting programs to ``/usr/games``, and packages > already > +doing so are encouraged to move these programs to non-conflicting names. > + > Packages must not install files to paths whose first component is a name > directly under the file system root and which is a symbolic link to a > directory of the same name under ``/usr``. That is, packages must not > install > --8<---------------cut here---------------end--------------->8--- Do we know that this is only a practical problem for /usr/games, or are there also collisions between /usr/bin/foo and /usr/sbin/foo in practice? (Is this something that dumat or debian-dedup can tell us?) smcv