{"id":863,"date":"2010-02-04T12:52:14","date_gmt":"2010-02-04T11:52:14","guid":{"rendered":"http:\/\/glandium.org\/blog\/?p=863"},"modified":"2010-02-04T12:52:14","modified_gmt":"2010-02-04T11:52:14","slug":"xulrunner-1-9-1-6-2-diff-stats","status":"publish","type":"post","link":"https:\/\/glandium.org\/blog\/?p=863","title":{"rendered":"xulrunner 1.9.1.6-2 diff stats"},"content":{"rendered":"<p>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.<\/p>\n<p>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.<\/p>\n<p>First, a few reference numbers (excluding changes to generated <code>configure<\/code> files):<\/p>\n<ul>\n<li>Changes between upstream 1.9.0.1 and Debian release 1.9.0.1-1: 85 files changed, 1163 insertions(+), 644 deletions(-)<\/li>\n<li>Changes between upstream 1.9.0.16 and Debian release 1.9.0.16-1: 86 files changed, 1177 insertions(+), 634 deletions(-)<\/li>\n<li>Changes between upstream 1.9.1 and Debian release 1.9.1-1: 70 files changed, 770 insertions(+), 363 deletions(-)<\/li>\n<li>Changes between upstream 1.9.1.6 and Debian release 1.9.1.6-1: 76 files changed, 796 insertions(+), 380 deletions(-)<\/li>\n<li>Changes between upstream 1.9.1.5 and upstream 1.9.1.6: 165 files changed, 3094 insertions(+), 1387 deletions(-)<\/li>\n<li>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)<\/li>\n<\/ul>\n<p>A few observations on the above data:<\/p>\n<ul>\n<li>There are less changes between upstream and Debian than between two consecutive upstream versions.<\/li>\n<li>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.<\/li>\n<li>The number of changes applied decreases when switching to a new upstream branch. This is mostly due to patches getting applied upstream.<\/li>\n<li>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.<\/li>\n<\/ul>\n<p>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(-).<\/p>\n<p>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 <code>make clean\/distclean<\/code> doesn't leave stuff around and that xulrunner can be properly built twice in a row.<\/p>\n<p>Differences between 1.9.1.6-1 and 1.9.1.6-2 look like this: 31 files changed, 341 insertions(+), 167 deletions(-).<\/p>\n<p>Some were stolen from bugzilla (13 files changed, 162 insertions(+), 70 deletions(-)):<\/p>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=458631\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=458631<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=519468\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=519468<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=525047\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=525047<\/a><\/li>\n<\/ul>\n<p>Many others were sent:<\/p>\n<ul>\n<li>Test suite issues (2 files changed, 3 insertions(+), 4 deletions(-)):\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543441\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543441<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543438\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543438<\/a><\/li>\n<\/ul>\n<\/li>\n<li><code>make clean\/distclean<\/code> issues (10 files changed, 28 insertions(+), 15 deletions(-)):\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541767\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541767<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541768\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541768<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541769\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541769<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541770\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541770<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541774\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541774<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543464\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543464<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543469\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=543469<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Other issues (8 files changed, 112 insertions(+), 49 deletions(-)):\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=535990\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=535990<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=538933\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=538933<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542468\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542468<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542789\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542789<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542999\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542999<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>A few others were filed without a patch, as I felt a proper upstreamable patch needed discussion (3 files changed, 16 insertions(+), 3 deletions(-)):<\/p>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=538929\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=538929<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542749\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=542749<\/a><\/li>\n<\/ul>\n<p>A few changes are related to the way we build and how we run the test suite (5 files changed, 35 insertions(+), 18 deletions(-)):<\/p>\n<ul>\n<li>Disable python-xpcom tests for now.<\/li>\n<li>Disable javaxpcom tests at build time when DEB_NO_JAR is unset.<\/li>\n<li>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 <core>make check they need to be synchronized)<\/core><\/li>\n<li>Workaround for <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=455238\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=455238<br \/>\n<\/a><\/li>\n<\/ul>\n<p>Finally, a few were related to the Debian changes history (2 files changed, 1 insertions(+), 26 deletions(-)):<\/p>\n<ul>\n<li>Remove --enable-system-lcms check, which somehow resisted merges with upstream<\/li>\n<li>Properly clean xulrunner\/installer\/*.system.conf<\/li>\n<\/ul>\n<p>Going through the rest of the changes between upstream and the latest Debian release, we can split in 5 categories of changes:<br \/>\nThose that were picked from upstream, or sent and eventually applied in 1.9.2 or trunk (12 files changed, 68 insertions(+), 41 deletions(-)):<\/p>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=331779\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=331779<\/a> (this one was applied on Fennec)<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=442196\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=442196<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=444918\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=444918<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=481350\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=481350<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=491617\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=491617<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=491646\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=491646<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=501241\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=501241<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=502369\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=502369<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=510040\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=510040<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=514151\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=514151<\/a><\/li>\n<\/ul>\n<p>Those that were picked from bugzilla or sent there, but are not applied upstream for various reasons (29 files changed, 138 insertions(+), 209 deletions(-)):<\/p>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=331776\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=331776<\/a> (the part that remains in Debian needs to be sent in a new bug as this one is closed)<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=349985\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=349985<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=356011\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=356011<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=428765\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=428765<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=434190\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=434190<\/a> (we actually don't have a patch for this one, but a workaround is in bz#486681 below)<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=435683\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=435683<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=440908\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=440908<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=444440\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=444440<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=444477\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=444477<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=486681\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=486681<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=501300\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=501300<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=506224\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=506224<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=530534\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=530534<\/a><\/li>\n<\/ul>\n<p>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(-)):<\/p>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=445128\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=445128<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=501434\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=501434<\/a><\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=528687\">https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=528687<\/a><\/li>\n<\/ul>\n<p>Those that are yet to be sent to bugzilla (15 files changed, 111 insertions(+), 54 deletions(-)):<\/p>\n<ul>\n<li>xulrunner-config: Give more appropriate cflags and libs<\/li>\n<li>Install applications in \/usr\/local\/lib instead of \/usr\/lib<\/li>\n<li>Unhide release notes link in about: but only if app.releaseNotesURL is defined<\/li>\n<li>In about:, Don't put an about:blank link when there is no vendorURL defined<\/li>\n<li>Don't use static strings when setting environment variables<\/li>\n<li>Exec instead of uselessly forking in xulrunner launcher script<\/li>\n<li>Disable optimization on alpha for the url-classifier component (this will probably wait for the <a href=\"\/blog\/?p=859\">test suite failures on various architectures<\/a> to be fixed)<\/li>\n<li>Build js shell and xpcshell against system libreadline<\/li>\n<li>Don't export js_SetTraceableNativeFailed, which is only used internally<\/li>\n<li>Increase stability and performance on mips and mipsel<\/li>\n<\/ul>\n<p>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):<\/p>\n<ul>\n<li>Feature changes:\n<ul>\n<li>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)<\/li>\n<li>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)<\/li>\n<li>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)<\/li>\n<li>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)<\/li>\n<\/ul>\n<\/li>\n<li>Preferences changes:\n<ul>\n<li>Set javascript.options.showInConsole (1 files changed, 1 insertions(+), 0 deletions(-))<\/li>\n<li>Set DPI to system settings (1 files changed, 1 insertions(+), 1 deletions(-))<\/li>\n<\/ul>\n<\/li>\n<li>Cosmetic changes:\n<ul>\n<li>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)<\/li>\n<li>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)<\/li>\n<\/ul>\n<\/li>\n<li>Integration changes:\n<ul>\n<li>Add another preferences directory for applications: defaults\/syspref (1 files changed, 2 insertions(+), 0 deletions(-))<\/li>\n<li>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)<\/li>\n<li>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)<\/li>\n<\/ul>\n<\/li>\n<li>Build-related changes:\n<ul>\n<li>Allow to override the PYTHON_SO variable (1 files changed, 1 insertions(+), 1 deletions(-))<\/li>\n<li>Put the crmf library before the NSS libraries (1 files changed, 1 insertions(+), 1 deletions(-))<\/li>\n<li>Allow to build java jar files in 2 pass (2 files changed, 8 insertions(+), 2 deletions(-))<\/li>\n<li>Avoid libxpcom being excluded from linked libraries by -Wl,--as-needed (1 files changed, 2 insertions(+), 0 deletions(-))<\/li>\n<li>Ignore system libjpeg, libpng and zlib version checking (1 files changed, 3 insertions(+), 3 deletions(-))<\/li>\n<li>Force to not use -fshort-wchar (1 files changed, 1 insertions(+), 1 deletions(-))<\/li>\n<li>Add soversion to libmozjs (2 files changed, 19 insertions(+), 2 deletions(-) ; useful for couchdb, libjavascript-perl and others)<\/li>\n<li>Don't build example component (1 files changed, 0 insertions(+), 1 deletions(-))<\/li>\n<li>Don't install system profile (1 files changed, 0 insertions(+), 2 deletions(-))<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Note, the numbers in the various diff stats obviously don't add up, since some changes overlap.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[23],"class_list":["post-863","post","type-post","status-publish","format-standard","hentry","category-xulrunner","tag-en"],"_links":{"self":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=863"}],"version-history":[{"count":12,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/863\/revisions"}],"predecessor-version":[{"id":875,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/863\/revisions\/875"}],"wp:attachment":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}