Bug 1166135 - RFE: Please rename "ninja-build" executable to just "ninja".
Summary: RFE: Please rename "ninja-build" executable to just "ninja".
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: ninja-build
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ben Boeckel
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1245828 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-11-20 12:30 UTC by Nadav Har'El
Modified: 2017-05-05 04:05 UTC (History)
11 users (show)

Fixed In Version: ninja-build-1.7.2-4.fc26 ninja-build-1.7.2-4.fc24 ninja-build-1.7.2-4.fc25
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-05-01 18:15:14 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1176420 0 unspecified CLOSED RFE: Help should be patched to use right command name 2021-02-22 00:41:40 UTC

Internal Links: 1176420

Description Nadav Har'El 2014-11-20 12:30:05 UTC
Fedora's "ninja-build" package installs an executable named "ninja-build", rather than the name "ninja" that the rest of the world expect (this is what it is called on Ubuntu, and this is how the developers of this software call their executable).

The name "ninja-build" is not only inconveniently long, it is also confusing because the program is "ninja-build" while the configuration file is build.ninja, causing people (at least me...) to routinely confuse the order of these words.

I would ask you to reconsider naming the executable just "ninja", like everyone else does. I don't mind what you call the package - it can remain with the name "ninja build".

I am guessing the reason why you didn't use executable name "ninja" is because it is taken by the ninja IRC client. I think, however, that if you check you'll see that the ninja build system has growing number of users, while the users of textual IRC clients are dwindling, if any even remained (I haven't used one since 1994!). So the ninja irc client can get the long name, while the up-and-coming new tool should get the well-established (in other popular distros) name.

Comment 1 Ben Boeckel 2014-11-20 15:17:07 UTC
Now that we have Recommends (I think?), how would a subpackage which provides a symlink at /usr/bin/ninja and Conflicts with ninja and is Recommend'd by ninja-build suffice? I'd like to avoid needless package conflicts.

But if the ninja maintainer is amenable to doing a joint update to swap binary names with proper Provides and Obsoletes so that anyone with both gets the swap, I'd be okay with that as well (but would probably wait for F22 where the above can happen in F21).

> while the users of textual IRC clients are dwindling, if any even remained (I haven't used one since 1994!).

I still use irssi ;) . Though I agree that the ninja client is probably not as popular (e.g., it's completely unmaintained in FreeBSD's ports).

Comment 2 Adrian Reber 2014-11-20 17:05:00 UTC
Hmm. The argument that the bug reporter has not used a console IRC client since 1994 is not very strong. I am still using a console based IRC client. Not ninja but also irssi. It is also true that ninja is not maintained anymore. Upstream does not exist. But renaming (or even removing) a package just because a newer piece of software has chosen the same name does not sound like the right way.

Renaming the binary would also be rude to the existing ninja users. If ninja-build wants to use the same binary name as the ninja IRC client maybe Conflicts are the best solution.

But avoiding conflicting packages is also a good argument. So I am not sure what the correct solution would be. This situation is now very unfortunate and mainly because the ninja-build upstream maintainers did not consider that there are already existing binaries called ninja.

Comment 3 Nadav Har'El 2014-11-20 21:02:43 UTC
I agree it's not obvious what to do here :-(

I'm surprised Fedora doesn't run into this problem more often. According to "yum repolist" there are almost 40,000 different packages in Fedora (wow, I didn't realize that), many of them very old or very esoteric. It's not really surprising that someone went ahead and invented a new program, "ninja", without noticing that Fedora included, 12 years ago, a different "ninja" package, one of 17 (made up number) different IRC clients included in Fedora. The inventor of ninja build probably never installed, or even heard of, the ninja IRC client.

I don't know what is the best solution, but I do think that if there is overwhelming evidence (and to be honest, I don't know if this is the case) that a new tool with some name has become much more popular than some old tool with that name, a rename would be the best approach. I agree users might be surprised after the upgrade, but we've had a lot of these in the past (I still remember the rename of soffice to ooffice, of netscape to firefox, the whole grub->grub2 business, and even, long ago, bzip to bzip2).

Another thing to consider is that as much as I love Fedora (my main computer was one version of Red Hat or another since 1998), Fedora is not alone in the Linux universe. It's very strange that I need to remember that the program I call "ninja-build" on Fedora, is actually "ninja" when I happen to run on some other Ubuntu machine. It's like suffering the rename over and over, every time I have the misfortune of using Ubuntu :-)

By the way, there is an easy workaround for me - I'll create a symbolic link ~/bin/ninja. I should have done this before getting used to the name "ninja-build" :-)

Comment 4 Ben Boeckel 2014-11-20 21:38:42 UTC
> I agree users might be surprised after the upgrade, but we've had a lot of these in the past (I still remember the rename of soffice to ooffice, of netscape to firefox, the whole grub->grub2 business, and even, long ago, bzip to bzip2).

That's all fine because the renaming there is basically just window dressing. ninja-the-IRC-client is *completely* different from ninja-the-build-tool, so having one Obsolete the other is basically a no-go.

Here is an issue to ninja-the-build-tool's upstream to rename: https://github.com/martine/ninja/issues/860

Logs from #fedora-devel about Suggests/Recommends:

< mathstuf> hi, are there any guidelines on using Suggests or Recommends in fedora yet (istr something about it on fdl, but ive forgotten and the wiki doesnt seem to have much on it)?
< drago01_> no
< mathstuf> https://bugzilla.redhat.com/show_bug.cgi?id=1166135
< drago01_> the fpc (still) hasn't decided anything iirc
< mathstuf> hrm
< mathstuf> ok
< nirik> well, mostly because there's no good use cases and dnf maintainers haven't decided behavior based on them yet.

Comment 5 Ben Boeckel 2014-12-11 05:06:33 UTC
So upstream said "no" to renaming it "ninja-build" upstream. Should I go forward with asking FPC for a conflict exception for a subpackage to conflict with ninja?

Comment 6 Adrian Reber 2014-12-12 11:19:18 UTC
Sure. No objections from me.

Comment 7 Adrian Reber 2015-01-29 11:05:30 UTC
I orphaned ninja on the devel branch, so that it can be retired. As far as I know it is not possible to retire a package on a released branch, so starting with Fedora 22 ninja can be the name of the build system.

Comment 8 Christopher Meng 2015-01-30 07:50:30 UTC
I don't think FPC will accept such shift on different packages.

Comment 9 Fedora End Of Life 2015-05-29 13:20:14 UTC
This message is a reminder that Fedora 20 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 20. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '20'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 20 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 10 Fedora End Of Life 2015-06-30 01:13:12 UTC
Fedora 20 changed to end-of-life (EOL) status on 2015-06-23. Fedora 20 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 11 Nadav Har'El 2015-10-03 21:19:50 UTC
I'm reopening this issue - it is still relevant in Fedora 22.

Comment 12 Avi Kivity 2015-10-09 15:01:33 UTC
Ping?

With the retirement of the ninja irc client, nothing stands in the way of a simple rename (possibly leaving a symlink for compatibility).

The package should be renamed as well, to be in line with other distributions.

Comment 13 guoxiao 2015-10-14 08:03:49 UTC
The naming of ninja-build binary breaks the zsh auto-complete files located at /usr/share/zsh/site-functions/_ninja.

It's necessary to link it to /usr/bin/ninja to make it works again.
Replacing all ninja in _ninja with ninja-build and renaming the file to _ninja-build may be another solution but I think it's too complicated.

Comment 14 Avi Kivity 2015-10-14 08:24:43 UTC
I think a symlink ninja-build -> ninja is fine.

Comment 15 Avi Kivity 2015-10-14 08:24:53 UTC
I think a symlink ninja-build -> ninja is fine.

Comment 16 Avi Kivity 2015-10-25 10:50:35 UTC
Is there any way in which I can help progress on this bug?

Comment 17 Christopher Meng 2015-10-26 10:46:06 UTC
(In reply to Avi Kivity from comment #16)
> Is there any way in which I can help progress on this bug?

No. We may not change anything still.

There is no way shifting a new software to an old hole by just renaming, even there are hardly any ninja irc users left. The current solution should be a change in zsh auto-completion files.

For all upstreams using ninja (I don't think it can supersede any old but famous build systems), they should offer an option for people to fill the ninja executable filename on their own.

Comment 18 Avi Kivity 2015-10-26 15:46:32 UTC
The problem is not scripts, it is users who follow build instructions and get the wrong name.  Having per-distribution build instructions is confusing and error prone, and we see a steady stream of such problems.  Why add a source of confusion to users, when the trend is towards minimizing gratuitous platform differences?

The ninja IRC client does not exist in Fedora 22, let alone 23, and its upstream is completely gone.  The existing ninja irc users were abandoned by both their upstream and Fedora, I don't see how keeping zsh autocompletion rules helps them.

Comment 19 Raphael Groner 2015-11-15 16:15:53 UTC
IMHO This issue must be solved in rawhide first.

Comment 20 Ben Boeckel 2015-11-16 23:05:31 UTC
*** Bug 1245828 has been marked as a duplicate of this bug. ***

Comment 21 Akos Ladanyi 2016-04-11 20:14:19 UTC
Any news on this? Would submitting a patch accelerate things?

Comment 22 Michael Catanzaro 2016-10-16 20:31:53 UTC
Hi, the original ninja package was retired almost two years ago (see comment #7). Can we push forward on this please? /usr/bin/ninja is now free and it should surely be provided by the ninja-build package.

It's debatable whether /usr/bin/ninja-build should continue to exist as a symlink or not. People will have to update scripts if it's removed, but I'd recommend getting rid of it to reduce compatibility issues between distributions.

Comment 23 Zbigniew Jędrzejewski-Szmek 2017-04-21 14:37:27 UTC
Ben, any chance we could get the rename? If you are busy with other things, I can do this myself, using pp privs. I'd push a simple update which renames the binary and adds a compat symlink ninja-build → ninja. Would you be OK with that?

Comment 24 Michael Catanzaro 2017-04-24 04:15:04 UTC
We should definitely do this ASAP, for F26 as well as rawhide.

Comment 25 Fedora Update System 2017-04-24 06:52:29 UTC
ninja-build-1.7.2-4.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-82adf9f65f

Comment 26 Zbigniew Jędrzejewski-Szmek 2017-04-24 06:55:18 UTC
mathstuf acked the update on IRC.

I built it on Friday, but couldn't make the update because of the power outage. It's done now for rawhide and F26. The question is, what about F24/F25. I don't see a particular reason not to do the update too. It should be completely backwards compatible.

Comment 27 Michael Catanzaro 2017-04-24 12:43:58 UTC
I guess it's fine, since there's a symlink.

I recommend removing the symlink from rawhide, though, to reduce divergence from other distros.

Comment 28 Fedora Update System 2017-04-24 19:35:00 UTC
ninja-build-1.7.2-4.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-04178f09e6

Comment 29 Fedora Update System 2017-04-24 19:35:09 UTC
ninja-build-1.7.2-4.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-f876248d3f

Comment 30 Zbigniew Jędrzejewski-Szmek 2017-04-24 19:38:07 UTC
I think we should keep the compat symlink, until F27 at least. If it is removed it'll needlessly break scripts and various documentation that we might have. I don't think the symlink causes any confusion or interferes with anything.

Comment 31 Fedora Update System 2017-04-25 03:55:05 UTC
ninja-build-1.7.2-4.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-f876248d3f

Comment 32 Fedora Update System 2017-04-25 19:26:14 UTC
ninja-build-1.7.2-4.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-04178f09e6

Comment 33 Fedora Update System 2017-04-25 21:28:04 UTC
ninja-build-1.7.2-4.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-82adf9f65f

Comment 34 Fedora Update System 2017-05-01 18:15:14 UTC
ninja-build-1.7.2-4.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 35 Fedora Update System 2017-05-04 18:24:16 UTC
ninja-build-1.7.2-4.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 36 Fedora Update System 2017-05-05 04:05:22 UTC
ninja-build-1.7.2-4.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.