Hacker News new | ask | show | jobs
by steveklabnik 3779 days ago
Debian user and Mozilla employee who uses Iceweasel here. I work on Rust, not Firefox though.

  > Why does the operating system have any say on what applications get released
  > and how often?
This has to do with the interaction between the original authors and the distribution itself. Let's go through an example:

1. I, Steve, write some bit of software, libfoo, and host it on my GitHub page.

2. Debian users would like to use libfoo. They have two options at this point: download and build libfoo from me, or get it from Debian's package repository.

3. In order to be put into Debian's repository, a suitable package needs to be created. What exactly that means depends on the package itself, but sometimes it's about things like "which paths are searched by default". Anything that integrates with the overall system. So someone, probably not even me, would need to say "I'm going to maintain a package for libfoo in Debian." They are responsible for taking from "upstream", my GitHub page, and producing a .deb for inclusion in Debian's repositories. This may involve modifying libfoo in some ways. It depends.

At any time, a user of Debian can choose: Do I get libfoo from Steve's GitHub, or do I get libfoo from apt? The reason that you might choose the latter is because Debian knows Debian better than I do. (Well, I said I use Debian above, but this works across distros, basically. I have no clue what Fedora's norms are, for example.) The package from Debian's repositories will be better integrated into the system, and will be tested for compatibility with other packages. Part of this is due to the release cycle of Debian itself; and this is what's being discussed here. It's not about when Firefox is released, it's about when the Debian package for Firefox is released. And what version of that package corresponds to which upstream version?

So! Back to this bug. Due to some... history between Mozilla and Debian, Debian's package for Firefox couldn't be called "Firefox." So it was rebranded to "Iceweasel." This bug is about re-synching the names, and having the Debian-provided package produce "Firefox" again.

Does that make sense?

2 comments

Yep. Thanks for this. Painted a great pic in my mind about the issue/process here.
Great, glad to help.
I understand what you are saying, but it doesn't make sense. It sounds like a really bad way to do software development.
It's fundamentally about decoupling. As the author of libfoo, I cannot keep up with all of the different Linux distros and how they do their thing. So you decouple the process by having two layers of maintainer; the upstream maintainer and the package maintainer. And I can't then also test my package with every other package on every other distro.

It has problems like anything else does, but it's pretty effective overall.

What specifically do you find bad about it?

What's the alternative? If you will try installing random stuff you'll get dependencies hell. Another extreme is self contained software, when each application bundles its own dependencies. Android does that more or less. But such approach causes major bloat and also increases security risks because you need to patch each application and its dependencies (which are duplicated in the multiple variants) once vulnerabilities are discovered.

Any better ideas than these two?

The bloat from self-contained software really isn't that much. It doesn't cause a space problem even on the small amount of space on an Android device.
It depends on how many dependencies we are talking about. And more than bloat, security issues are critical.