Open Bug 658850 Opened 12 years ago Updated 4 months ago

Avoid duplicating "firefox" as "firefox-bin"

Categories

(Firefox Build System :: General, task, P3)

13 Branch
All
Linux
task

Tracking

(Not tracked)

People

(Reporter: glandium, Unassigned)

References

(Blocks 2 open bugs)

Details

Since the updater can't currently deal with symbolic links, bug 552864 made it so that firefox and firefox-bin are really the same binary, duplicated.

We can either go the symbolic link way, which means a lot of problems: updating mar, updating the mar creation scripts, maybe updating the updater... and even then, I'm not even sure this would work: if updates are applied with the old updater, then we can't rely on that (and if it's the case, we may want the updater to actually first update the updater and restart itself for futureproofness)

Or, a possible simple solution could be a little shell script:
#!/bin/sh
exec ${0%-bin} "$@"

(though it wouldn't work as well as a symbolic link)
How about just biting the bullet, and shipping only a "firefox" (binary)?
At least on Linux, that could be a problem. I remember some time ago, some desktop environments would store "firefox-bin" as the application to run. People might still have that kind of setup. Do we want to break them?
When I tried to drop the "firefox" shell script on OS X, it broke some software that was trying to call that instead of firefox-bin, so I'm sure there are some things doing the opposite.
Assignee: nobody → mh+mozilla
Depends on: 670016
#!/bin/sh
exec `which ${0%-bin}` "$@"

may work better.
Blocks: 697218
this bug is not fixed even in firefox 8. wasn't the point of new release strategy, to push fixes and features faster to the community?

this issue is know since May, now we are in November. Over half a year for a script.
Release strategies don't mean that we're prioritizing resources on this specific bug.

Please see Bugzilla Etiquette:
https://bugzilla.mozilla.org/page.cgi?id=etiquette.html

While we do care about fixing bug like these, other more important bugs get handled first and are pushed faster with the new release strategy.
/usr/lib/firefox/firefox-bin is a symlink now. I don't think it's even in use anymore.
This started between Milestone=12.0 and Milestone=13.0 due to my tests for SeaMonkey in Bug 1288966 comment #2
Version: Trunk → 13 Branch
Blocks: 1288966
Blocks: 1303184
We're still doing this on OSX. In addition, firefox and firefox-bin differ very slightly from each other for some reason.
I had some success with two try pushes:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=dc6298facb8c9e7c87055863363c77aa1448c950

https://treeherder.mozilla.org/#/jobs?repo=try&revision=e57e633cd938631975878df94aa10b13be380715

In the latter, I broke building geckodriver because I wanted to change references from 'firefox-bin' to 'firefox', and broke some magic checksumming logic.
Product: Core → Firefox Build System

In summary, both firefox and firefox-bin are executables. Both open your browser the same. firefox starts firefox-bin.

The reason there are two executables and not one, is because there was a problem updating Firefox across a wide variety of operating systems, where linking wasn't working the same on all of them. The decision was made to simply have firefox start firefox-bin rather than have a logical or soft, filesystem link between the two historical names, where both needed to be kept working to avoid breaking installations in the field.

You can partially verify this if you look at your process tree, which might look something like this. No matter if you run firefox or firefox-bin, the process tree ends up looking identical:

--- Process Name; User

  • systemd; root
  • ...
    • systemd; mike
      • ...
      • gnome-terminal-server; mike
        • ...
          • bash; mike
            • firefox-bin; mike
              • RDD Process; mike
              • Web Conent; mike
              • ...
              • WebExtensions; mike

(Note: I'm on Debian 10.3 Buster, and 'mike' is a fictitious user name to hide my real user name.)


[Someone please correct me if this is summary is fundamentally wrong. There are lots of old threads on this issue, but none that I found really answers this any better than this thread above. I've looked at this issue several times over several years, as I slowly came up to speed on Linux, and each time I left with my head shaking, till now. :-|, Thank you.]

Assignee: mh+mozilla → nobody
Severity: normal → N/A
Type: defect → task
Priority: -- → P3

Locking this bug as it is used for spam

Restrict Comments: true
You need to log in before you can comment on or make changes to this bug.