Archive for the 'mozilla' Category

When will Iceweasel 3.6 come ?

That is a question I hear more and more, and I felt it had to be answered publicly. Short answer: when it's ready.

The current target for Squeeze is 3.5, for various reasons, but the main is that it shares the same Gecko version as Iceape (SeaMonkey) and Icedove (Thunderbird), which means that while the security team (or myself) will have to update these three for security updates, they will share patches. So 3.6 is less a priority than having 3.5 in shape for the release.

Last week, I wrote on a mailing list post that I was expecting 3.6 to come this week. Well, that was before I discovered the sad reality about the state of the current version.

But 3.6 is still on the radar. I already went through all the patches we apply on 1.9.1, and rebasing should now be straightforward.

Most of the 3.5 failures have now also been addressed: sparc and powerpc were fixed first, and I am now (re-re-re...-re)building on arm for, I hope, the last time. Unfortunately, mips is still missing, and without a porterbox, I can't do much. I tried, some time ago, in qemu, but there is no way I'm going to wait 50 hours for a build again ; it was already painful on a real arm box (where it takes 90 minutes just to link libxul.so). Anyways, 2 patches stolen from upstream and 5 patches sent (or almost sent for the one currently under validation) later, we should be down to one release architecture failing instead of four. Which is already good.

On the other hand, a new 3.5 upstream release, with security fixes, is planned for next tuesday, which means some time will have to be spent for stable updates, too. So, in the next few days, expect that I'll be working on stable security updates, then unstable updates, including the three architectures fix, and then work on 3.6 will continue.

Which means we can hope for a 3.6 release in experimental by the end of next week, or the following one, in the worst case.

Update: *sigh* 4 patches on arm is not enough :(. At least this time I think I'm done with xptcinvoke and xptcstubs.

Update:In the end, 2 patches and disabling the JIT compiler did the trick on arm. The 2 other patches were actually addressing bugs that only existed because the JIT is doing something wrong with the stack alignment.

2010-02-13 09:34:00+0900

firefox | 15 Comments »

Iceweasel upgrade homepage, a week later

When users upgrade Firefox, they are shown a special web page after restart. As this was obviously very Firefox oriented, this was disabled in Iceweasel. Until a week ago.

A week ago, I created a (quite raw) web page that users of Iceweasel 3.5.6-2 would see after they install or upgrade. The idea behind this page was suggested by Moritz Muehlenhoff during my BoF at DebConf 9, and consisted of displaying a call for help message in a splash screen. What most looked like this in Iceweasel is the Firefox feature mentioned above. I unfortunately wasn't able to implement it until now.

So, a week after these pages were put online and Iceweasel 3.5.6-2 was uploaded, even though I can't say it's a huge success, it at least led to some movement: More than 12000 users (still growing) saw the pages, out of which almost 1800 (roughly 15%) followed the link for a new logo. While there was no contribution for a new logo yet, there has already been several translations contributions for the web pages, in german, spanish and italian. Next iceweasel upload will consequently send users to a localized version of the web page when it exists.

The server logs also allow to have some figures on the usage of localized versions of Iceweasel, but as this is based on user agent strings, it is not totally accurate, though somehow interesting:

  1. english: 58.3%
  2. german: 15.2%
  3. french: 7.9%
  4. spanish: 3.8%
  5. italian: 2.7%
  6. polish: 2.5%
  7. japanese: 2.2%
  8. russian: 2.1%
  9. portuguese: 1%
  10. czech: 0.6%

Another interesting figure is that apparently 2.4% of users haven't upgraded xulrunner-1.9.1 and are not using version 1.9.1.6 with their Iceweasel 3.5.6. I'm afraid of what this can mean for stable security updates, although, as being security updates, they may be followed better.

Somewhere around 7% of users have, at some point, changed their user agent string to include Firefox in it, because web sites suck. This is a very interesting figure because despite that being quite significant, we haven't got that many complaints (I'm not saying there weren't, but I would have expected more, considering the amount of users involved). Fortunately, this was changed recently, so all these users could reset their user agent string.

And last but not least, except amd64 and x86 users, we saw 14 powerpc users and 7 arm users.

2010-02-10 13:00:44+0900

firefox | 5 Comments »

broken_arch -= 2

The xulrunner test suite now passes on sparc, involving a fix for an existing bug, and a new bug report.

Next target is powerpc, where, interestingly, the test suite only failed 3 tests on the porterbox, where the buildd failed 58... And contrary to sparc, the failures don't involve crashes.

Update: powerpc is now fixed, too, with a little help from luck and good timing: the 3 failing tests had all the same origin, and it was fixed a few months ago in upstream trunk.

2010-02-05 19:40:25+0900

xulrunner | No Comments »

xulrunner 1.9.1.6-2 diff stats

As part of preparing xulrunner 1.9.2 (which would lead to Iceweasel 3.6), I have gone through all the patches currently applied to the latest xulrunner release, to keep track of what should be upstreamed, what needed feedback, what patches I needed to update in upstream bugzilla, etc.

As I have talked about our differences with upstream on a few occasions already, and as I was doing this grunt work anyway, I thought it would be nice to make the results public.

First, a few reference numbers (excluding changes to generated configure files):

  • Changes between upstream 1.9.0.1 and Debian release 1.9.0.1-1: 85 files changed, 1163 insertions(+), 644 deletions(-)
  • Changes between upstream 1.9.0.16 and Debian release 1.9.0.16-1: 86 files changed, 1177 insertions(+), 634 deletions(-)
  • Changes between upstream 1.9.1 and Debian release 1.9.1-1: 70 files changed, 770 insertions(+), 363 deletions(-)
  • Changes between upstream 1.9.1.6 and Debian release 1.9.1.6-1: 76 files changed, 796 insertions(+), 380 deletions(-)
  • Changes between upstream 1.9.1.5 and upstream 1.9.1.6: 165 files changed, 3094 insertions(+), 1387 deletions(-)
  • Changes between upstream 1.9.1 and upstream 1.9.1.6: 1263 files changed, 64322 insertions(+), 67376 deletions(-) (though more than half of that relates to upstream bump of sqlite3 and the vorbis stack)

A few observations on the above data:

  • There are less changes between upstream and Debian than between two consecutive upstream versions.
  • Debian changes only account for changes to the xulrunner package, i.e. it excludes changes to Iceweasel itself, or to nspr or nss, but these are far less important in number.
  • The number of changes applied decreases when switching to a new upstream branch. This is mostly due to patches getting applied upstream.
  • Debian patches on a given branch are pretty stable. In other words, most of the work is done on the first release of the branch.

The latter used to be true, but is not anymore: xulrunner 1.9.1.6-2 added a lot of changes and is now up to: 98 files changed, 1107 insertions(+), 517 deletions(-).

What happened ? will you ask me. A lot happened: the test suite, attempts at correctly installing C++ headers and IDL files, bug fixes. Work has also been done such that make clean/distclean doesn't leave stuff around and that xulrunner can be properly built twice in a row.

Differences between 1.9.1.6-1 and 1.9.1.6-2 look like this: 31 files changed, 341 insertions(+), 167 deletions(-).

Some were stolen from bugzilla (13 files changed, 162 insertions(+), 70 deletions(-)):

Many others were sent:

A few others were filed without a patch, as I felt a proper upstreamable patch needed discussion (3 files changed, 16 insertions(+), 3 deletions(-)):

A few changes are related to the way we build and how we run the test suite (5 files changed, 35 insertions(+), 18 deletions(-)):

  • Disable python-xpcom tests for now.
  • Disable javaxpcom tests at build time when DEB_NO_JAR is unset.
  • Synchronize config/rules.mk and js/src/config/rules.mk for check-sync-dirs.py (we used to localize the changes required in each config/rules.mk, but as we now run make check they need to be synchronized)
  • Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=455238

Finally, a few were related to the Debian changes history (2 files changed, 1 insertions(+), 26 deletions(-)):

  • Remove --enable-system-lcms check, which somehow resisted merges with upstream
  • Properly clean xulrunner/installer/*.system.conf

Going through the rest of the changes between upstream and the latest Debian release, we can split in 5 categories of changes:
Those that were picked from upstream, or sent and eventually applied in 1.9.2 or trunk (12 files changed, 68 insertions(+), 41 deletions(-)):

Those that were picked from bugzilla or sent there, but are not applied upstream for various reasons (29 files changed, 138 insertions(+), 209 deletions(-)):

Those that were reported but for which I wanted feedback for a proper fix, yet a patch was applied in Debian because this was necessary (6 files changed, 22 insertions(+), 13 deletions(-)):

Those that are yet to be sent to bugzilla (15 files changed, 111 insertions(+), 54 deletions(-)):

  • xulrunner-config: Give more appropriate cflags and libs
  • Install applications in /usr/local/lib instead of /usr/lib
  • Unhide release notes link in about: but only if app.releaseNotesURL is defined
  • In about:, Don't put an about:blank link when there is no vendorURL defined
  • Don't use static strings when setting environment variables
  • Exec instead of uselessly forking in xulrunner launcher script
  • Disable optimization on alpha for the url-classifier component (this will probably wait for the test suite failures on various architectures to be fixed)
  • Build js shell and xpcshell against system libreadline
  • Don't export js_SetTraceableNativeFailed, which is only used internally
  • Increase stability and performance on mips and mipsel

And finally, the changes that are either Debian specific or not deemed upstreamable (30 files changed, 460 insertions(+), 77 deletions(-) ; this can sound huge, but see the details below):

  • Feature changes:
    • Disable APNG support when system libpng doesn't support it (6 files changed, 71 insertions(+), 10 deletions(-) ; mostly #ifdef'ing parts of the code related to animation)
    • Use application.ini from where the xulrunner-stub lies (1 files changed, 14 insertions(+), 3 deletions(-) ; This one may be dropped and replaced by something totally different, possibly upstreamed)
    • Don't register plugins if the MOZILLA_DISABLE_PLUGINS environment variable is set (1 files changed, 25 insertions(+), 0 deletions(-) ; very useful to isolate plugin-related crashes ; I don't think it's worth upstreaming considering the upcoming plugin-in-separate-process work)
    • Remove (un|)registering system (1 files changed, 0 insertions(+), 43 deletions(-) ; xulrunner versions that are installed by a package manager don't need to be registered, since the package does it already ; a variant that conditionally removes it may be upstreamable)
  • Preferences changes:
    • Set javascript.options.showInConsole (1 files changed, 1 insertions(+), 0 deletions(-))
    • Set DPI to system settings (1 files changed, 1 insertions(+), 1 deletions(-))
  • Cosmetic changes:
    • Install loading_16_grey.gif in classic.jar, and add an override for loading16.png (1 files changed, 2 insertions(+), 0 deletions(-) ; Since we don't support APNG, we replace the most used one by its (ugly) GIF equivalent)
    • Add links for about:bugs and about:README.Debian in about: (3 files changed, 19 insertions(+), 0 deletions(-) ; I'd like to make that something living in debian/extra-stuff)
  • Integration changes:
    • Add another preferences directory for applications: defaults/syspref (1 files changed, 2 insertions(+), 0 deletions(-))
    • Add an rpath to libpyloader.so and _xpcom.so (2 files changed, 2 insertions(+), 0 deletions(-) ; allows python xpcom to work out of the box)
    • Forward-port nsIBadCertListener from 1.8 (4 files changed, 266 insertions(+), 1 deletions(-) ; This is necessary for at least galeon and kazehakase, because the new interface is useless for embedding applications)
  • Build-related changes:
    • Allow to override the PYTHON_SO variable (1 files changed, 1 insertions(+), 1 deletions(-))
    • Put the crmf library before the NSS libraries (1 files changed, 1 insertions(+), 1 deletions(-))
    • Allow to build java jar files in 2 pass (2 files changed, 8 insertions(+), 2 deletions(-))
    • Avoid libxpcom being excluded from linked libraries by -Wl,--as-needed (1 files changed, 2 insertions(+), 0 deletions(-))
    • Ignore system libjpeg, libpng and zlib version checking (1 files changed, 3 insertions(+), 3 deletions(-))
    • Force to not use -fshort-wchar (1 files changed, 1 insertions(+), 1 deletions(-))
    • Add soversion to libmozjs (2 files changed, 19 insertions(+), 2 deletions(-) ; useful for couchdb, libjavascript-perl and others)
    • Don't build example component (1 files changed, 0 insertions(+), 1 deletions(-))
    • Don't install system profile (1 files changed, 0 insertions(+), 2 deletions(-))

Note, the numbers in the various diff stats obviously don't add up, since some changes overlap.

All that information doesn't account the few additional components added in debian/filemonitor and debian/extra-stuff, that account for nearly 600 lines (excluding licensing boilerplate), but I'll talk about these in another post.

This analysis also helped spotting another harmless merge error (the first one was spotted a few weeks ago and just left the --enable-system-lcms around, without any effect): a variable replacement in a Makefile that doesn't have any effect, since the 2 variables have the same value. Only a pointless 1 line change.

2010-02-04 12:52:14+0900

xulrunner | No Comments »

Sad reality

One of the major changes in the latest xulrunner upload was to enable a great part of the test suite.

The result is stunning: crashes on alpha, armel, powerpc and sparc.

Update: Also failed on mips. (though interestingly, it worked on mipsel)

2010-02-03 08:05:09+0900

xulrunner | 3 Comments »

Feeling alone

The EFF is running an experiment to see how you can be identified with your web browser, without the use of cookies nor your IP address.

I'm apparently currently the only Iceweasel 3.5.6-1 amd64 (with an english locale) user who participated.

I feel alone. One in 268977 so far. That's more than 18 bits of entropy.

2010-01-30 10:21:43+0900

firefox | 8 Comments »

Ubuntu switches default search engine. Will Google react ?

Many have commented on the event.

As I noted in a reply to Romain Beauxis's post, the only reason Google was the default search engine in Ubuntu, and is still in other distros is because Mozilla has a revenue deal with Google. Which means that actually, Mozilla might be getting money from Debian, Ubuntu and other distros' users actions on the Google search engine. (maybe not from Debian, though, because of the search url including iceweasel instead of firefox). Now, at least, Ubuntu will be the one getting the money.

One has to know that these revenue deals probably don't cost a dime to Google and Microsoft (through Yahoo), because they may be "transferring" revenue they get from the extra advertising revenue they can get from these users being using their search engine as default.

Anyways, much more interesting to know is how Google is going to react on other services: some core functionalities of Firefox (geolocation, safe browsing) are based on Google services. These are actually a possible problem for Debian, depending on the agreement between Mozilla and Google, and I have yet to address the RC bug I filed on my own package about these.

Now, since Google is going to get less advertising revenue from Ubuntu users in favour of one of its competitor, why should they provide the geolocation and safe browsing to these users ?

2010-01-27 17:02:41+0900

firefox | 9 Comments »

Iceweasel bug triaging

I've spent a few hours going through all the unclassified important bugs assigned to iceweasel. This resulted in

  • 6 confirmed bugs,
  • 16 where the reporter is asked for something,
  • a few merged,
  • another few reassigned to other packages,
  • and around 50 bugs closed.

In the closed bugs, there were several kind of bugs:

  • the bug log shows that the bug eventually disappeared or was not a bug, but the bug was still opened,
  • the bug has been known to be fixed for a while,
  • the reporter is unreachable and the bug is unreproducible,
  • the bug has been spammed by several different and unrelated "me too"s, leading the bug to being a huge mess where you don't know what was the problem to begin with (there were 2 such bugs, if I recall correctly), in which case I closed the bug, copying everybody and inviting to file individual bugs after confirming with newer versions.
  • not a bug at all.

It will feel good when it will be visible on the bug graph.

Still 500+ to go... *sigh*

Who wants to jump on the bandwagon ? ;)

2009-12-19 21:34:30+0900

firefox | 5 Comments »

Iceweasel 3.5.3 in unstable, and fixing RC bugs as a side-effect

I finally started the xulrunner 1.9.1 transition in unstable, and uploaded Iceweasel 3.5.3 there.

One of the nice additions to the latest xulrunner (which has actually been in experimental for a couple weeks) is a dh_xulrunner script that adds the proper xulrunner package to shlibs:Depends, which means we are getting nearer to being able to handle xulrunner transitions with binNMUs only. We are still far from it, but it is a step closer. At least, transitions should get a bit easier. The way it works is very hackish, but it apparently works well enough for the packages that currently depend on xulrunner-dev. I also added a "xulrunner" dh sequence, for the dh users.

Anyways, as a side effect of the starting transition, I ended up fixing 4 RC bugs on a single package:

Another package with 3 RC bugs is impacted by this transition, but it looks like a good candidate for removal. That's 7 RC bugs adressed by this transition, while not directly related to xulrunner.

2009-10-10 23:09:18+0900

firefox, xulrunner | 4 Comments »

Would you like iceweasel 3.0 and 3.5 to be co-installable ?

Hi lazyweb,

I'm wondering if there a lot of demand for such a feature, being to be able to install 2 (or more) major releases of iceweasel on the same computer. If there is a strong demand, I may consider allowing it. Please reply in the comments on this blog with your feelings, for or against the implementation of this co-installability.

Thanks.

PS: you may also forward this query to other sites and send people back here to leave their opinion.

2009-09-15 18:41:03+0900

firefox | 31 Comments »