xulrunner 1.9.1.6-2 diff stats

Mike Hommey mh at glandium.org
Thu Feb 4 11:55:49 UTC 2010


(This was also posted on http://glandium.org/blog/?p=863)

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(-)):
  * https://bugzilla.mozilla.org/show_bug.cgi?id=458631
  * https://bugzilla.mozilla.org/show_bug.cgi?id=519468
  * https://bugzilla.mozilla.org/show_bug.cgi?id=525047

Many others were sent:
  * Test suite issues (2 files changed, 3 insertions(+), 4
    deletions(-)):
       + https://bugzilla.mozilla.org/show_bug.cgi?id=543441
       + https://bugzilla.mozilla.org/show_bug.cgi?id=543438
  * make clean/distclean issues (10 files changed, 28 insertions(+), 15
    deletions(-)):
       + https://bugzilla.mozilla.org/show_bug.cgi?id=541767
       + https://bugzilla.mozilla.org/show_bug.cgi?id=541768
       + https://bugzilla.mozilla.org/show_bug.cgi?id=541769
       + https://bugzilla.mozilla.org/show_bug.cgi?id=541770
       + https://bugzilla.mozilla.org/show_bug.cgi?id=541774
       + https://bugzilla.mozilla.org/show_bug.cgi?id=543464
       + https://bugzilla.mozilla.org/show_bug.cgi?id=543469
  * Other issues (8 files changed, 112 insertions(+), 49 deletions(-)):
       + https://bugzilla.mozilla.org/show_bug.cgi?id=535990
       + https://bugzilla.mozilla.org/show_bug.cgi?id=538933
       + https://bugzilla.mozilla.org/show_bug.cgi?id=542468
       + https://bugzilla.mozilla.org/show_bug.cgi?id=542789
       + https://bugzilla.mozilla.org/show_bug.cgi?id=542999

A few others were filed without a patch, as I felt a proper
upstreamable patch needed discussion (3 files changed, 16
insertions(+), 3 deletions(-)):
  * https://bugzilla.mozilla.org/show_bug.cgi?id=538929
  * https://bugzilla.mozilla.org/show_bug.cgi?id=542749

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(-)):
  * https://bugzilla.mozilla.org/show_bug.cgi?id=331779 (this one was
    applied on Fennec)
  * https://bugzilla.mozilla.org/show_bug.cgi?id=442196
  * https://bugzilla.mozilla.org/show_bug.cgi?id=444918
  * https://bugzilla.mozilla.org/show_bug.cgi?id=481350
  * https://bugzilla.mozilla.org/show_bug.cgi?id=491617
  * https://bugzilla.mozilla.org/show_bug.cgi?id=491646
  * https://bugzilla.mozilla.org/show_bug.cgi?id=501241
  * https://bugzilla.mozilla.org/show_bug.cgi?id=502369
  * https://bugzilla.mozilla.org/show_bug.cgi?id=510040
  * https://bugzilla.mozilla.org/show_bug.cgi?id=514151

Those that were picked from bugzilla or sent there, but are not applied
upstream for various reasons (29 files changed, 138 insertions(+), 209
deletions(-)):
  * https://bugzilla.mozilla.org/show_bug.cgi?id=331776 (the part that
    remains in Debian needs to be sent in a new bug as this one is
    closed)
  * https://bugzilla.mozilla.org/show_bug.cgi?id=349985
  * https://bugzilla.mozilla.org/show_bug.cgi?id=356011
  * https://bugzilla.mozilla.org/show_bug.cgi?id=428765
  * https://bugzilla.mozilla.org/show_bug.cgi?id=434190 (we actually
    don’t have a patch for this one, but a workaround is in bz#486681
    below)
  * https://bugzilla.mozilla.org/show_bug.cgi?id=435683
  * https://bugzilla.mozilla.org/show_bug.cgi?id=440908
  * https://bugzilla.mozilla.org/show_bug.cgi?id=444440
  * https://bugzilla.mozilla.org/show_bug.cgi?id=444477
  * https://bugzilla.mozilla.org/show_bug.cgi?id=486681
  * https://bugzilla.mozilla.org/show_bug.cgi?id=501300
  * https://bugzilla.mozilla.org/show_bug.cgi?id=506224
  * https://bugzilla.mozilla.org/show_bug.cgi?id=530534

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(-)):
  * https://bugzilla.mozilla.org/show_bug.cgi?id=445128
  * https://bugzilla.mozilla.org/show_bug.cgi?id=501434
  * https://bugzilla.mozilla.org/show_bug.cgi?id=528687

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.



More information about the pkg-mozilla-maintainers mailing list