[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: namespace conflict != package Conflict?



Sebastian Kuzminsky wrote:

>Adam Majer <adamm@zombino.com> wrote:
>  
>
>>Sebastian Kuzminsky wrote:
>>    
>>
>>>Hi folks, I have a noob question for you.  I maintain the Cogito package
>>>(my first), and it wants to install an executable as /usr/bin/git.  The
>>>GNU Interactive Tools package (git) also wants to install an executable
>>>as /usr/bin/git.  To avoid this conflict I made cogito Conflict with git.
>>>      
>>>
>>Of course this is *seriously* wrong. Why are you preventing people from
>>using git and cogito together?
>>    
>>
>
>As I see it, it's not _me_ preventing them from being used together,
>it's Linus Torvalds, the upstream developer of git-as-in-cogito, who
>chose a conflicting name for his project.  The problem has been pointed
>out to him and he doesnt care:
>
>    http://marc.theaimsgroup.com/?l=git&m=111350397024057&w=2
>  
>
Not a big deal if you ask me. Upstream is not preventing you from
renaming git -> cognito-git or similar.


>>>I have been told by Jurij Smakov that this is "seriously wrong", and
>>>I'm asking for help here.  What's the proper way to handle this situation?
>>>      
>>>
>>rename /usr/bin/git to /usr/bin/cogito-git or whatever. It is not that hard.
>>    
>>
>
>That's true Adam: renaming a file is not hard...  But in this case it
>has terrible consequences.
>  
>
I don't see them. Debian already has a big mess of stuff like
saslpasswd2 instead of saslpasswd. Having cogito-git instead of git
makes a lot of sense (see below).

>Naming it "cogito-git" makes no sense at all.  Cogito uses git, but
>git doesnt know or care about cogito.  That'd be like naming glibc
>"mozilla-glibc", because mozilla uses glibc.
>  
>
It is git and comes in the cogito package so it is named cogito-git ---
<package>-<bin>

If mozilla had their own glibc, then they would probably call it
mozilla-glibc because it is glibc that is part of mozilla package.

>Renaming it something else, like "git.scm" or "git.debian" or
>"git.not-gnu-interactive-tools" or something, _might_ make sense, except
>then we'd have an incompatible debian-specific fork of git/cogito.
>  
>
That's much, much worse. Using period is bad. Using unrelated things
like git.debian is not good either because git has little to do with
Debian. And the last one, well, kind of looooooooooooooooooooooong.
Neither of these are "forks". Rename != fork.

>People coming from other systems will correctly percieve this as
>debian-induced breakage.  Users downloading helper scripts and finding
>cookbook recipies on mailing list etc will discover that they are
>incompatible with the rest of the universe.
>
>That seems like too high a price to pay.
>  
>

An alternative to renaming would be to contact the maintainer of git and
try to work something out. If the two commands are compatible, you may
want to get them added to alternatives (symlinks) like the alternatives
for 'editor' or 'www-browser' or the rest of the things in
/etc/alternatives. Then you can rename the file to cognito-git and still
have it pointed to as git unless someone installs git or whatever the
priorities are set to be.

If git's and cognito's git are not compatible, then you really should
rename your git -> cognito-git. Conflicting should always be considered
*the* last thing to do because it prevents users from using git and
cognito on the same system (it is even worse for multi-user systems).
Also, users that need to have git pointing to cignoto-git (if
/etc/alternatives is not the way to go) can always set up their own
symlink in ~/bin or whatever.

I hope this makes a little bit of sense. In summary,
    * conflicts -> bad
    * renaming binaries -> less bad. Try to rename to <package>-<binary>
format. <package> could also be the name of the source if that makes
more sense.

- Adam




Reply to: