On Sun, Nov 11, 2012 at 12:54 AM, Brian Smith <
bsm...@mozilla.com> wrote:
> IMO, we should only let a distro call their build of Firefox "Firefox" if it is as good as our builds of Firefox. Why not just put explicit requirements for spellchecking and other functionality that tends to be degraded (including ECC support) into the Firefox trademark policy?
It’s worth keeping in mind that the next option that distros are
likely to consider if Mozilla becomes too annoying with trademarks is
no longer unbranded Firefox but Chromium.
I think it would be more fruitful to have two-way communication with
distros in order to move to a situation where Mozilla tests what
distros will ship and not only by the means of Mozilla dictating to
distros what to ship but listening to distros what sort of config
needs testing.
> Similarly, I am not sure why we can't just say that the GStreamer v.Whatever+ system library is a requirement for Firefox the same way glibc v.Whatever+ is.
With glibc, “Whatever+” works because future glibc will provide an ABI
that works with programs compiled against a past glibc. The
observation that started this thread was that GStreamer’s ABI does not
have that compatibility characteristic. Neither has the ABI of the
library for interfacing with Unity’s global menu.
This thread is about two things:
1) From the perspective of an ISV seeking to ship binaries, “Desktop
Linux” is full of fail and facepalm, because ABIs may not be
forward-compatible within a given distro and may not be
sideways-compatible between distros. As such an ISV, Mozilla is shy to
use APIs that it should use in order to properly integrate with the
platform.
2) As a consequence of #1, many open-source apps born in the Linux
world don’t even try to ship Linux binaries, only ship Windows and Mac
binaries (again, full of fail and facepalm) and tell users to get
their binaries from the distro. In accordance with this pattern, most
Firefox users on “Desktop Linux” get their Firefox from their distro
(in the case of e.g. Ubuntu with Ubuntu-specific platform integration
features). Yet, Mozilla pretends that it's shipping a “Desktop Linux”
product as a binary the way it is shipping Windows and Mac products.
This leads to Mozilla testing a different “Desktop Linux” product than
what most “Desktop Linux” users end up using.
(The situation with binary compatibility is quite twisted. For
example, when a new release of GIMP comes out, you can download
binaries for Windows and Mac by following links from the official site
but for various Linux distributions you either need to wait for a new
release of the distribution or use some random build from somewhere
and hope that it is legitimate. See
http://www.gimp.org/downloads/
The major open source projects that still ship binaries seem to be the
ones that have their own GUI toolkit that uses Gtk mainly for theming:
Firefox, Eclipse and LibreOffice.
If you want ABI compatibility across Linux distributions and versions,
the best bet is probably writing to Win32 and using Wine!)
>> To me, point #8 looks the strongest. Is it feasible to automatically
>> rearrange the contents of a .deb or an .rpm into tarball whose
>> contents run on the same distro that the .deb or .rpm package would
>> run on? That is, if .deb and .rpm nightlies were the solution for
>> getting builds that auto-update and reflect the configuration of the
>> builds that most of our Linux users end up using when they obtain
>> release builds from their distro, would it be feasible to produce
>> tarballs for regression bisection by munging the .deb and .rpm
>> packages into tarballs without having to spend infrastructure
>> resources to recompile?
>
> I thought that RPM was the standard, as far as the Linux Standard Base is a standard for Linux.
What's written down in the Linux Standard Base doesn't really matter.
What matters is what systems our end-users use are like. (Where “our”
includes users of distro-provided Firefox builds.)
> My understanding is that Debian and Ubuntu can install RPMs without too much hassle using alien.
Do you have an example of a non-trivial app for which this method
actually works? For starters, alien is not installed by default on
Ubuntu and there does not seem to be any GUI facilities for installing
downloaded .rpm packages.
I managed to locate Maxima as an example of a non-trivial app that is
distributed as a set of supposedly distro-independent .rpm files and
not distributed as a .deb, but the .rpm files were only available as
32-bit and alien on 64-bit Ubuntu can't deal with 32-bit .rpm files,
so I couldn’t test further.
> I also understand that it is possible to create RPMs that are relocatable so that users can install them in their home directories, or wherever, without being root; see rpm --relocate. It seems alien also understands relocatable packages. So, it seems to me like we should be able to build a single RPM that has a dependency on the GStreamer package and whatever, and call it a day. Would that solve the problems you're trying to solve?
It would not solve the problem of users being on different sides of an
ABI discontinuity. Also, having a single RPM build would not solve the
problem of Mozilla testing a different config than what Linux users
end up using.
> It might be nice for marketing reasons if we could create a .deb too, if it is not a lot of work.
It would probably work as anti-marketing to have .rpm without having
.deb at the same time.