--- firefox-6.0+build1+nobinonly.orig/mozilla-release-6.0+build1-source.tar.bz2.cdbs-config_list +++ firefox-6.0+build1+nobinonly/mozilla-release-6.0+build1-source.tar.bz2.cdbs-config_list @@ -0,0 +1,267 @@ +mozilla/config/config.mk +mozilla/mobile/themes/core/config.css +mozilla/mobile/chrome/content/config.xul +mozilla/mobile/chrome/content/config.js +mozilla/mobile/locales/en-US/chrome/config.dtd +mozilla/modules/freetype2/builds/unix/config.guess +mozilla/modules/freetype2/builds/unix/config.sub +mozilla/nsprpub/config/config.mk +mozilla/nsprpub/build/autoconf/config.guess +mozilla/nsprpub/build/autoconf/config.sub +mozilla/l10n/kn/toolkit/chrome/global/config.dtd +mozilla/l10n/kn/toolkit/chrome/global/config.properties +mozilla/l10n/uk/toolkit/chrome/global/config.dtd +mozilla/l10n/uk/toolkit/chrome/global/config.properties +mozilla/l10n/ar/toolkit/chrome/global/config.dtd +mozilla/l10n/ar/toolkit/chrome/global/config.properties +mozilla/l10n/hr/toolkit/chrome/global/config.dtd +mozilla/l10n/hr/toolkit/chrome/global/config.properties +mozilla/l10n/vi/toolkit/chrome/global/config.dtd +mozilla/l10n/vi/toolkit/chrome/global/config.properties +mozilla/l10n/sv-SE/toolkit/chrome/global/config.dtd +mozilla/l10n/sv-SE/toolkit/chrome/global/config.properties +mozilla/l10n/lt/toolkit/chrome/global/config.dtd +mozilla/l10n/lt/toolkit/chrome/global/config.properties +mozilla/l10n/cy/toolkit/chrome/global/config.dtd +mozilla/l10n/cy/toolkit/chrome/global/config.properties +mozilla/l10n/is/toolkit/chrome/global/config.dtd +mozilla/l10n/is/toolkit/chrome/global/config.properties +mozilla/l10n/as/toolkit/chrome/global/config.dtd +mozilla/l10n/as/toolkit/chrome/global/config.properties +mozilla/l10n/br/toolkit/chrome/global/config.dtd +mozilla/l10n/br/toolkit/chrome/global/config.properties +mozilla/l10n/bs/toolkit/chrome/global/config.dtd +mozilla/l10n/bs/toolkit/chrome/global/config.properties +mozilla/l10n/hu/toolkit/chrome/global/config.dtd +mozilla/l10n/hu/toolkit/chrome/global/config.properties +mozilla/l10n/bn-IN/toolkit/chrome/global/config.dtd +mozilla/l10n/bn-IN/toolkit/chrome/global/config.properties +mozilla/l10n/es-MX/toolkit/chrome/global/config.dtd +mozilla/l10n/es-MX/toolkit/chrome/global/config.properties +mozilla/l10n/it/toolkit/chrome/global/config.dtd +mozilla/l10n/it/toolkit/chrome/global/config.properties +mozilla/l10n/da/toolkit/chrome/global/config.dtd +mozilla/l10n/da/toolkit/chrome/global/config.properties +mozilla/l10n/en-ZA/toolkit/chrome/global/config.dtd +mozilla/l10n/en-ZA/toolkit/chrome/global/config.properties +mozilla/l10n/he/toolkit/chrome/global/config.dtd +mozilla/l10n/he/toolkit/chrome/global/config.properties +mozilla/l10n/fy-NL/toolkit/chrome/global/config.dtd +mozilla/l10n/fy-NL/toolkit/chrome/global/config.properties +mozilla/l10n/ru/toolkit/chrome/global/config.dtd +mozilla/l10n/ru/toolkit/chrome/global/config.properties +mozilla/l10n/el/toolkit/chrome/global/config.dtd +mozilla/l10n/el/toolkit/chrome/global/config.properties +mozilla/l10n/zu/toolkit/chrome/global/config.dtd +mozilla/l10n/zu/toolkit/chrome/global/config.properties +mozilla/l10n/pt-BR/toolkit/chrome/global/config.dtd +mozilla/l10n/pt-BR/toolkit/chrome/global/config.properties +mozilla/l10n/nn-NO/toolkit/chrome/global/config.dtd +mozilla/l10n/nn-NO/toolkit/chrome/global/config.properties +mozilla/l10n/zh-CN/toolkit/chrome/global/config.dtd +mozilla/l10n/zh-CN/toolkit/chrome/global/config.properties +mozilla/l10n/es-CL/toolkit/chrome/global/config.dtd +mozilla/l10n/es-CL/toolkit/chrome/global/config.properties +mozilla/l10n/fr/toolkit/chrome/global/config.dtd +mozilla/l10n/fr/toolkit/chrome/global/config.properties +mozilla/l10n/ta-LK/toolkit/chrome/global/config.dtd +mozilla/l10n/ta-LK/toolkit/chrome/global/config.properties +mozilla/l10n/sk/toolkit/chrome/global/config.dtd +mozilla/l10n/sk/toolkit/chrome/global/config.properties +mozilla/l10n/ta/toolkit/chrome/global/config.dtd +mozilla/l10n/ta/toolkit/chrome/global/config.properties +mozilla/l10n/ka/toolkit/chrome/global/config.dtd +mozilla/l10n/ka/toolkit/chrome/global/config.properties +mozilla/l10n/lg/toolkit/chrome/global/config.dtd +mozilla/l10n/lg/toolkit/chrome/global/config.properties +mozilla/l10n/rm/toolkit/chrome/global/config.dtd +mozilla/l10n/rm/toolkit/chrome/global/config.properties +mozilla/l10n/en-GB/toolkit/chrome/global/config.dtd +mozilla/l10n/en-GB/toolkit/chrome/global/config.properties +mozilla/l10n/pa-IN/toolkit/chrome/global/config.dtd +mozilla/l10n/pa-IN/toolkit/chrome/global/config.properties +mozilla/l10n/hy-AM/toolkit/chrome/global/config.dtd +mozilla/l10n/hy-AM/toolkit/chrome/global/config.properties +mozilla/l10n/mk/toolkit/chrome/global/config.dtd +mozilla/l10n/mk/toolkit/chrome/global/config.properties +mozilla/l10n/ja/toolkit/chrome/global/config.dtd +mozilla/l10n/ja/toolkit/chrome/global/config.properties +mozilla/l10n/gu-IN/toolkit/chrome/global/config.dtd +mozilla/l10n/gu-IN/toolkit/chrome/global/config.properties +mozilla/l10n/cs/toolkit/chrome/global/config.dtd +mozilla/l10n/cs/toolkit/chrome/global/config.properties +mozilla/l10n/eo/toolkit/chrome/global/config.dtd +mozilla/l10n/eo/toolkit/chrome/global/config.properties +mozilla/l10n/nb-NO/toolkit/chrome/global/config.dtd +mozilla/l10n/nb-NO/toolkit/chrome/global/config.properties +mozilla/l10n/tr/toolkit/chrome/global/config.dtd +mozilla/l10n/tr/toolkit/chrome/global/config.properties +mozilla/l10n/de/toolkit/chrome/global/config.dtd +mozilla/l10n/de/toolkit/chrome/global/config.properties +mozilla/l10n/fi/toolkit/chrome/global/config.dtd +mozilla/l10n/fi/toolkit/chrome/global/config.properties +mozilla/l10n/lv/toolkit/chrome/global/config.dtd +mozilla/l10n/lv/toolkit/chrome/global/config.properties +mozilla/l10n/ko/toolkit/chrome/global/config.dtd +mozilla/l10n/ko/toolkit/chrome/global/config.properties +mozilla/l10n/te/toolkit/chrome/global/config.dtd +mozilla/l10n/te/toolkit/chrome/global/config.properties +mozilla/l10n/mn/toolkit/chrome/global/config.dtd +mozilla/l10n/mn/toolkit/chrome/global/config.properties +mozilla/l10n/km/toolkit/chrome/global/config.dtd +mozilla/l10n/km/toolkit/chrome/global/config.properties +mozilla/l10n/sr/toolkit/chrome/global/config.dtd +mozilla/l10n/sr/toolkit/chrome/global/config.properties +mozilla/l10n/si/toolkit/chrome/global/config.dtd +mozilla/l10n/si/toolkit/chrome/global/config.properties +mozilla/l10n/ku/toolkit/chrome/global/config.dtd +mozilla/l10n/ku/toolkit/chrome/global/config.properties +mozilla/l10n/ml/toolkit/chrome/global/config.dtd +mozilla/l10n/ml/toolkit/chrome/global/config.properties +mozilla/l10n/eu/toolkit/chrome/global/config.dtd +mozilla/l10n/eu/toolkit/chrome/global/config.properties +mozilla/l10n/ja-JP-mac/toolkit/chrome/global/config.dtd +mozilla/l10n/ja-JP-mac/toolkit/chrome/global/config.properties +mozilla/l10n/ast/toolkit/chrome/global/config.dtd +mozilla/l10n/ast/toolkit/chrome/global/config.properties +mozilla/l10n/mr/toolkit/chrome/global/config.dtd +mozilla/l10n/mr/toolkit/chrome/global/config.properties +mozilla/l10n/nso/toolkit/chrome/global/config.dtd +mozilla/l10n/nso/toolkit/chrome/global/config.properties +mozilla/l10n/mai/toolkit/chrome/global/config.dtd +mozilla/l10n/mai/toolkit/chrome/global/config.properties +mozilla/l10n/config.~1~ +mozilla/l10n/fa/toolkit/chrome/global/config.dtd +mozilla/l10n/fa/toolkit/chrome/global/config.properties +mozilla/l10n/zh-TW/toolkit/chrome/global/config.dtd +mozilla/l10n/zh-TW/toolkit/chrome/global/config.properties +mozilla/l10n/kk/toolkit/chrome/global/config.dtd +mozilla/l10n/kk/toolkit/chrome/global/config.properties +mozilla/l10n/es-AR/toolkit/chrome/global/config.dtd +mozilla/l10n/es-AR/toolkit/chrome/global/config.properties +mozilla/l10n/sl/toolkit/chrome/global/config.dtd +mozilla/l10n/sl/toolkit/chrome/global/config.properties +mozilla/l10n/gd/toolkit/chrome/global/config.dtd +mozilla/l10n/gd/toolkit/chrome/global/config.properties +mozilla/l10n/nl/toolkit/chrome/global/config.dtd +mozilla/l10n/nl/toolkit/chrome/global/config.properties +mozilla/l10n/son/toolkit/chrome/global/config.dtd +mozilla/l10n/son/toolkit/chrome/global/config.properties +mozilla/l10n/sq/toolkit/chrome/global/config.dtd +mozilla/l10n/sq/toolkit/chrome/global/config.properties +mozilla/l10n/th/toolkit/chrome/global/config.dtd +mozilla/l10n/th/toolkit/chrome/global/config.properties +mozilla/l10n/ca/toolkit/chrome/global/config.dtd +mozilla/l10n/ca/toolkit/chrome/global/config.properties +mozilla/l10n/pt-PT/toolkit/chrome/global/config.dtd +mozilla/l10n/pt-PT/toolkit/chrome/global/config.properties +mozilla/l10n/af/toolkit/chrome/global/config.dtd +mozilla/l10n/af/toolkit/chrome/global/config.properties +mozilla/l10n/gl/toolkit/chrome/global/config.dtd +mozilla/l10n/gl/toolkit/chrome/global/config.properties +mozilla/l10n/oc/toolkit/chrome/global/config.dtd +mozilla/l10n/oc/toolkit/chrome/global/config.properties +mozilla/l10n/pl/toolkit/chrome/global/config.dtd +mozilla/l10n/pl/toolkit/chrome/global/config.properties +mozilla/l10n/bn-BD/toolkit/chrome/global/config.dtd +mozilla/l10n/bn-BD/toolkit/chrome/global/config.properties +mozilla/l10n/hi-IN/toolkit/chrome/global/config.dtd +mozilla/l10n/hi-IN/toolkit/chrome/global/config.properties +mozilla/l10n/bg/toolkit/chrome/global/config.dtd +mozilla/l10n/bg/toolkit/chrome/global/config.properties +mozilla/l10n/ga-IE/toolkit/chrome/global/config.dtd +mozilla/l10n/ga-IE/toolkit/chrome/global/config.properties +mozilla/l10n/ak/toolkit/chrome/global/config.dtd +mozilla/l10n/ak/toolkit/chrome/global/config.properties +mozilla/l10n/et/toolkit/chrome/global/config.dtd +mozilla/l10n/et/toolkit/chrome/global/config.properties +mozilla/l10n/or/toolkit/chrome/global/config.dtd +mozilla/l10n/or/toolkit/chrome/global/config.properties +mozilla/l10n/id/toolkit/chrome/global/config.dtd +mozilla/l10n/id/toolkit/chrome/global/config.properties +mozilla/l10n/ro/toolkit/chrome/global/config.dtd +mozilla/l10n/ro/toolkit/chrome/global/config.properties +mozilla/l10n/be/toolkit/chrome/global/config.dtd +mozilla/l10n/be/toolkit/chrome/global/config.properties +mozilla/l10n/es-ES/toolkit/chrome/global/config.dtd +mozilla/l10n/es-ES/toolkit/chrome/global/config.properties +mozilla/toolkit/crashreporter/google-breakpad/autotools/config.guess +mozilla/toolkit/crashreporter/google-breakpad/autotools/config.sub +mozilla/toolkit/crashreporter/google-breakpad/src/config.h.in +mozilla/toolkit/themes/winstripe/global/config.css +mozilla/toolkit/themes/pinstripe/global/config.css +mozilla/toolkit/components/viewconfig/content/config.xul +mozilla/toolkit/components/viewconfig/content/config.js +mozilla/toolkit/locales/en-US/chrome/global/config.dtd +mozilla/toolkit/locales/en-US/chrome/global/config.properties +mozilla/tools/leaky/config.h +mozilla/tools/jprof/stub/config.h +mozilla/ipc/chromium/src/third_party/libevent/config.h.in +mozilla/ipc/chromium/src/third_party/libevent/config.guess +mozilla/ipc/chromium/src/third_party/libevent/linux/config.h +mozilla/ipc/chromium/src/third_party/libevent/mac/config.h +mozilla/ipc/chromium/src/third_party/libevent/config.sub +mozilla/security/nss/tests/pkcs11/netscape/trivial/config.h.in +mozilla/security/nss/tests/pkcs11/netscape/suites/config.mk +mozilla/security/nss/tests/pkcs11/netscape/suites/security/pkcs11/config.mk +mozilla/security/nss/tests/pkcs11/netscape/suites/security/config.mk +mozilla/security/nss/tests/pkcs11/netscape/suites/security/ssl/config.mk +mozilla/security/nss/lib/sqlite/config.mk +mozilla/security/nss/lib/jar/config.mk +mozilla/security/nss/lib/pki/config.mk +mozilla/security/nss/lib/pkcs7/config.mk +mozilla/security/nss/lib/nss/config.mk +mozilla/security/nss/lib/pk11wrap/config.mk +mozilla/security/nss/lib/util/config.mk +mozilla/security/nss/lib/pkcs12/config.mk +mozilla/security/nss/lib/freebl/config.mk +mozilla/security/nss/lib/zlib/config.mk +mozilla/security/nss/lib/crmf/config.mk +mozilla/security/nss/lib/cryptohi/config.mk +mozilla/security/nss/lib/ckfw/capi/config.mk +mozilla/security/nss/lib/ckfw/builtins/config.mk +mozilla/security/nss/lib/ckfw/dbm/config.mk +mozilla/security/nss/lib/ckfw/config.mk +mozilla/security/nss/lib/ckfw/nssmkey/config.mk +mozilla/security/nss/lib/certhigh/config.mk +mozilla/security/nss/lib/dev/config.mk +mozilla/security/nss/lib/base/config.mk +mozilla/security/nss/lib/softoken/config.mk +mozilla/security/nss/lib/softoken/legacydb/config.mk +mozilla/security/nss/lib/ssl/config.mk +mozilla/security/nss/lib/smime/config.mk +mozilla/security/nss/lib/libpkix/pkix_pl_nss/pki/config.mk +mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/config.mk +mozilla/security/nss/lib/libpkix/pkix_pl_nss/config.mk +mozilla/security/nss/lib/libpkix/pkix_pl_nss/system/config.mk +mozilla/security/nss/lib/libpkix/pkix/checker/config.mk +mozilla/security/nss/lib/libpkix/pkix/certsel/config.mk +mozilla/security/nss/lib/libpkix/pkix/results/config.mk +mozilla/security/nss/lib/libpkix/pkix/util/config.mk +mozilla/security/nss/lib/libpkix/pkix/store/config.mk +mozilla/security/nss/lib/libpkix/pkix/crlsel/config.mk +mozilla/security/nss/lib/libpkix/pkix/config.mk +mozilla/security/nss/lib/libpkix/pkix/params/config.mk +mozilla/security/nss/lib/libpkix/pkix/top/config.mk +mozilla/security/nss/lib/libpkix/include/config.mk +mozilla/security/nss/lib/libpkix/config.mk +mozilla/security/nss/lib/sysinit/config.mk +mozilla/security/nss/lib/certdb/config.mk +mozilla/security/nss/cmd/crmf-cgi/config.mk +mozilla/security/nss/cmd/crmftest/config.mk +mozilla/security/nss/cmd/lib/config.mk +mozilla/security/nss/cmd/libpkix/testutil/config.mk +mozilla/security/nss/cmd/libpkix/config.mk +mozilla/security/dbm/config/config.mk +mozilla/security/dbm/src/config.mk +mozilla/security/coreconf/config.mk +mozilla/media/libvpx/vpx_ports/config.h +mozilla/media/libtheora/lib/config.h +mozilla/js/src/tracevis/config.py +mozilla/js/src/config/config.mk +mozilla/js/src/ctypes/libffi/config.guess +mozilla/js/src/ctypes/libffi/config.sub +mozilla/js/src/build/autoconf/config.guess +mozilla/js/src/build/autoconf/config.sub +mozilla/build/autoconf/config.guess +mozilla/build/autoconf/config.sub --- firefox-6.0+build1+nobinonly.orig/debian/get-xpi-id.py +++ firefox-6.0+build1+nobinonly/debian/get-xpi-id.py @@ -0,0 +1,25 @@ +#!/usr/bin/python + +import sys +import xml.dom.minidom +import os +import zipfile + +if __name__ == '__main__': + if not len(sys.argv) == 2: + print "Must specify an xpi" + exit(1) + + try: + dom_doc = xml.dom.minidom.parseString(zipfile.ZipFile(sys.argv[1]).open('install.rdf').read()) + except ExpatError as e: + exit(1) + + try: + attr = dom_doc.getElementsByTagName('RDF:Description')[0].attributes['em:id'] + except IndexError: + attr = dom_doc.getElementsByTagName('Description')[0].attributes['em:id'] + + assert attr.value + print "%s" % attr.value + exit(0) --- firefox-6.0+build1+nobinonly.orig/debian/refresh-supported-locales.pl +++ firefox-6.0+build1+nobinonly/debian/refresh-supported-locales.pl @@ -0,0 +1,166 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Cwd; + +my $moz_supported_file; +my $lpom_dir; + +my %blacklist; +my %locale2pkgname; +my %languages; + +my %oldsupported; + +my $dir=getcwd; +chomp($dir); + +my $file; + +while (@ARGV) { + my $arg = shift(@ARGV); + if ($arg eq '-s') { + $moz_supported_file = shift(@ARGV); + } elsif ($arg eq '-l') { + $lpom_dir = shift(@ARGV); + } else { + die "Unknown argument '$arg'"; + } +} + +(defined($moz_supported_file)) || die "Need to specify a supported language list"; + +if (defined($lpom_dir)) { + my $lang_file = "$lpom_dir/maps/languages"; + my $map_file = "$lpom_dir/maps/locale2pkgname"; + my $variant_file = "$lpom_dir/maps/variants"; + + open($file, $lang_file); + while (<$file>) { + my $line = $_; + chomp($line); + my $langcode = $line; + my $lang = $line; + $langcode =~ s/([^:]*):*([^:]*)/$1/; + $lang =~ s/([^:]*):*([^:]*)/$2/; + if ($lang ne "") { $languages{$langcode} = $lang; } + } + close($file); + + open($file, $map_file); + while (<$file>) { + my $line = $_; + chomp($line); + my $langcode = $line; + my $pkgname = $line; + $langcode =~ s/([^:]*):*([^:]*)/$1/; + $pkgname =~ s/([^:]*):*([^:]*)/$2/; + if ($pkgname ne "") { $locale2pkgname{$langcode} = $pkgname; } + } + close($file); + + open($file, $variant_file); + while (<$file>) { + my $line = $_; + chomp($line); + my $langcode = $line; + my $lang = $line; + $langcode =~ s/([^:]*):*([^:]*)/$1/; + $lang =~ s/([^:]*):*([^:]*)/$2/; + if ($lang ne "") { $languages{$langcode} = $lang; } + } + close($file); +} + +if (-e "$dir/debian/locales.shipped") { + open($file, "$dir/debian/locales.shipped"); + while (<$file>) { + if ((not $_ =~ /^$/) && (not $_ =~ /^#.*/)) { + my $line = $_; + chomp($line); + my $langcode = $line; + my $pkgname = $line; + my $lang = $line; + $langcode =~ s/([^:]*):*([^:]*):*([^:]*)/$1/; + $pkgname =~ s/([^:]*):*([^:]*):*([^:]*)/$2/; + $lang =~ s/([^:]*):*([^:]*):*([^:]*)/$3/; + if (($pkgname eq "") || ($lang eq "")) { die "Malformed locales.shipped file"; } + $languages{$pkgname} = $lang; + $oldsupported{$pkgname} = 1; + $locale2pkgname{lc($langcode)} = $pkgname; + } + } + close($file); +} + +if (-e "$dir/debian/locales.unavailable") { + open($file, "$dir/debian/locales.unavailable"); + while (<$file>) { + if ((not $_ =~ /^$/) && (not $_ =~ /^#.*/)) { + my $line = $_; + chomp($line); + my $pkgname = $line; + my $desc = $line; + $pkgname =~ s/([^:]*):*([^:]*)/$1/; + $desc =~ s/([^:]*):*([^:]*)/$2/; + $oldsupported{$pkgname} = 1; + if ($desc ne "") { $languages{$pkgname} = $desc; } + } + } + close($file); +} + +if (-e "$dir/debian/locales.blacklist") { + open($file, "$dir/debian/locales.blacklist"); + while (<$file>) { + if ((not $_ =~ /^$/) && (not $_ =~ /^#.*/)) { + my $line = $_; + chomp($line); + $blacklist{$line} = 1; + } + } + close($file); +} + +my $have_language = 0; + +open($file, $moz_supported_file); +open(my $outfile, ">$dir/debian/locales.shipped"); +while (<$file>) { + my $line = $_; + chomp($line); + my $langcode = $line; + my $platforms = $line; + $langcode =~ s/^([[:alnum:]\-]*)[[:space:]]*(.*)/$1/; + $platforms =~ s/^([[:alnum:]\-]*)[[:space:]]*(.*)/$2/; + if (($langcode eq "en-US") || (($platforms ne "") && (rindex($platforms, "linux") eq -1)) || (exists $blacklist{$langcode})) { next; } + my $llangcode = lc($langcode); + my $pkgname = $llangcode; + if (exists $locale2pkgname{$llangcode}) { $pkgname = $locale2pkgname{$llangcode}; } + if (not exists $languages{$pkgname}) { + if ($pkgname eq $llangcode) { $pkgname =~ s/\-.*//; } + if (not exists $languages{$pkgname}) { die "No description for $pkgname"; } + } + $have_language = 1; + my $description = $languages{$pkgname}; + print $outfile "$langcode:$pkgname:$description\n"; + delete $oldsupported{$pkgname}; +} + +if ($have_language eq 0) { print $outfile "# Placeholder file for the list of shipped languages. Do not delete"; } +close($file); +close($outfile); + +open($outfile, ">$dir/debian/locales.unavailable"); +my @unavailable = keys(%oldsupported); +if (scalar(@unavailable) gt 0) { + @unavailable = sort(@unavailable); + foreach my $lang (@unavailable) { + if (exists $languages{$lang}) { + my $desc = $languages{$lang}; + print $outfile "$lang:$desc\n"; + } else { print $outfile "$lang\n"; } + } +} else { print $outfile "# Placeholder file for the list of unavailable languages. Do not delete"; } +close($outfile); --- firefox-6.0+build1+nobinonly.orig/debian/mozconfig.in +++ firefox-6.0+build1+nobinonly/debian/mozconfig.in @@ -0,0 +1,116 @@ +ac_add_options --build=@DEB_BUILD_GNU_TYPE@ +%%ifdef DEB_HOST_GNU_TYPE +ac_add_options --host=@DEB_HOST_GNU_TYPE@ +%%endif +ac_add_options --prefix=@MOZ_PREFIX@ +ac_add_options --localstatedir=/var +ac_add_options --libexecdir=@MOZ_LIBDIR@ +ac_add_options --with-l10n-base=@TOPSRCDIR@/@DEB_BUILDDIR@/l10n +ac_add_options --disable-maintainer-mode +ac_add_options --disable-dependency-tracking +ac_add_options --disable-silent-rules +ac_add_options --srcdir=@TOPSRCDIR@/@DEB_BUILDDIR@ +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/@MOZ_OBJDIR@ +ac_add_options --disable-elf-dynstr-gc +ac_add_options --disable-install-strip +ac_add_options --disable-strip +ac_add_options --disable-updater +ac_add_options --enable-application=browser +ac_add_options --enable-default-toolkit=cairo-gtk2 +ac_add_options --enable-startup-notification +ac_add_options --enable-pango +ac_add_options --enable-svg +ac_add_options --enable-mathml +ac_add_options --enable-safe-browsing +ac_add_options --with-distribution-id=com.ubuntu +%%ifdef DEB_ENABLE_THUMB2 +ac_add_options --enable-thumb2 +%%endif +%%ifndef MOZ_MIN_SYSDEPS +ac_add_options --with-system-jpeg=/usr +ac_add_options --with-system-png=/usr +ac_add_options --with-system-zlib=/usr +%%else +ac_add_options --without-system-jpeg +ac_add_options --without-system-png +ac_add_options --without-system-zlib +%%endif +%%ifdef MOZ_NO_OPTIMIZE +ac_add_options --disable-optimize +%%else +%%ifndef MOZ_VALGRIND +ac_add_options --enable-optimize +%%else +ac_add_options --enable-optimize="-g -O -freorder-blocks" +%%endif +%%endif +%%ifdef MOZ_VALGRIND +ac_add_options --disable-jemalloc +ac_add_options --enable-valgrind +mk_add_options MOZ_MAKE_FLAGS=-j4 +%%endif +%%ifdef MOZ_WANT_UNIT_TESTS +ac_add_options --enable-tests +ac_add_options --enable-mochitest +ac_add_options --enable-ipdl-tests +%%else +ac_add_options --disable-tests +ac_add_options --disable-mochitest +ac_add_options --disable-ipdl-tests +%%endif +%%ifdef MOZ_USE_SYSTEM_CAIRO +ac_add_options --enable-system-cairo +%%else +ac_add_options --disable-system-cairo +%%endif +%%ifdef MOZ_USE_SYSTEM_NSPR +ac_add_options --with-system-nspr +%%else +ac_add_options --without-system-nspr +%%endif +%%ifdef MOZ_USE_SYSTEM_NSS +ac_add_options --with-system-nss +%%else +ac_add_options --without-system-nss +%%endif +%%ifdef MOZ_USE_SYSTEM_SQLITE +ac_add_options --enable-system-sqlite +%%else +ac_add_options --disable-system-sqlite +%%endif +%%ifdef MOZ_USE_SYSTEM_HUNSPELL +ac_add_options --enable-system-hunspell +%%else +ac_add_options --disable-system-hunspell +%%endif +%%ifdef MOZ_ENABLE_BREAKPAD +ac_add_options --enable-crashreporter +%%else +ac_add_options --disable-crashreporter +%%endif +ac_add_options @MOZ_BRANDING_OPTION@ +%%ifdef MOZ_BUILD_PGO +mk_add_options PROFILE_GEN_SCRIPT='xvfb-run -a @MOZ_PYTHON@ @TOPSRCDIR@/@MOZ_OBJDIR@/_profile/pgo/profileserver.py' +%%endif +%%ifdef MOZ_DISABLE_GNOMEVFS +ac_add_options --disable-gnomevfs +ac_add_options --enable-gio +%%else +ac_add_options --enable-gnomevfs +ac_add_options --disable-gio +%%endif +%%ifdef MOZ_UPDATE_CHANNEL +ac_add_options --enable-update-channel=@MOZ_UPDATE_CHANNEL@ +%%endif +%%ifdef MOZ_DEBUG +ac_add_options --enable-debug +%%else +ac_add_options --disable-debug +%%endif +ac_add_options --disable-elf-hack +%%ifdef MOZ_ENABLE_GLOBALMENU +ac_add_options --enable-extensions=default,globalmenu +%%endif +%%ifdef MOZ_APP_RENAME +ac_add_options --with-app-name=@MOZ_APP_NAME@ +%%endif --- firefox-6.0+build1+nobinonly.orig/debian/control.langpacks.unavail +++ firefox-6.0+build1+nobinonly/debian/control.langpacks.unavail @@ -0,0 +1,7 @@ + +Package: @MOZ_APP_NAME@-locale-@LANGCODE@ +Architecture: all +Depends: ${misc:Depends} +Description: Transitional package for unavailable language + This is an empty transitional package to ensure a clean upgrade + process. You can safely remove this package after installation. --- firefox-6.0+build1+nobinonly.orig/debian/locales.blacklist +++ firefox-6.0+build1+nobinonly/debian/locales.blacklist @@ -0,0 +1,4 @@ +ak +rm +son +ta-LK --- firefox-6.0+build1+nobinonly.orig/debian/syspref.js +++ firefox-6.0+build1+nobinonly/debian/syspref.js @@ -0,0 +1,4 @@ +// This file can be used to configure global preferences for Firefox +// Example: Homepage +//pref("browser.startup.homepage", "http://www.weebls-stuff.com/wab/"); + --- firefox-6.0+build1+nobinonly.orig/debian/firefox.preinst.in +++ firefox-6.0+build1+nobinonly/debian/firefox.preinst.in @@ -0,0 +1,114 @@ +#!/bin/sh + +set -e + +APP_DIR="/etc/apparmor.d" +APP_PROFILE="usr.bin.@MOZ_APP_NAME@" +APP_CONFFILE="$APP_DIR/$APP_PROFILE" +APP_DISABLE="$APP_DIR/disable/$APP_PROFILE" +APP_NAME=@MOZ_APP_NAME@ + +# Prepare to move a conffile without triggering a dpkg question +prep_mv_conffile() { + local PKGNAME="$1" + local CONFFILE="$2" + + [ -e "$CONFFILE" ] || return 0 + + local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" + local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \ + sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" + #' + if [ "$md5sum" = "$old_md5sum" ]; then + rm -f "$CONFFILE" + fi +} + +# Remove a no-longer used conffile +rm_conffile() { + local PKGNAME="$1" + local CONFFILE="$2" + + [ -e "$CONFFILE" ] || return 0 + + local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" + local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \ + sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" + # The quotes above confuse gedit, which considers the rest of the script to be inside quotes, so balance that out' + if [ "$md5sum" != "$old_md5sum" ]; then + echo "Obsolete conffile $CONFFILE has been modified by you." + echo "Saving as $CONFFILE.dpkg-bak ..." + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak + else + echo "Removing obsolete conffile $CONFFILE ..." + rm -f "$CONFFILE" + fi +} + +disable_profile() { + # Create a symlink to the yet-to-be-unpacked profile + if [ ! -e "$APP_CONFFILE" ]; then + mkdir -p `dirname $APP_DISABLE` 2>/dev/null || true + ln -sf $APP_CONFFILE $APP_DISABLE + fi +} + +# Unconditionally disable AppArmor profile for Ubuntu 9.04 and under, since +# it requires abstractions found only in 9.10 and higher. +major=`lsb_release -r | awk '{print $2}' | cut -d '.' -f 1` +version=`lsb_release -r | awk '{print $2}'` +if [ "$major" -lt 10 ] && [ "$version" != "9.10" ]; then + disable_profile +else + if [ "$1" = "install" ]; then + # Disable AppArmor profile on install, unless the last profile they + # modified is enabled. + base=`echo $APP_PROFILE | cut -d '-' -f 1` + last_modified=`ls -rt $APP_DIR/$base* 2>/dev/null | grep -v '\.dpkg' | tail -n1` + if [ -s "$last_modified" ]; then + if [ -e "$APP_DIR/disable/`basename $last_modified`" ]; then + disable_profile + fi + else + # Fresh install and no other firefox profiles exist, so disable. + disable_profile + fi + elif [ "$1" = "upgrade" ]; then + # Disable AppArmor on upgrade from earlier than when we first shipped + # the profile if the user does not already have a profile defined. + if dpkg --compare-versions "$2" lt "3.7~a1~hg20091203" ; then + disable_profile + fi + fi +fi + +# These conffiles used to belong to the package we replaced. However, that +# package may no longer exist on the system anymore if the user was previously using abrowser, +# so we deal with cleaning up the conffiles here. I'm not totally sure what order everything +# happens in. I think if we conflict and replace the old package, it will get removed (or the new +# version unpacked) first, before we arrive here. This means that dpkg-query will still show +# these conffiles as existing on the system (but obsolete), until we upgrade once more. +case "$1" in +install|upgrade) + if dpkg --compare-versions "$2" le "4.0~b7"; then + rm_conffile "${APP_NAME}" "/etc/${APP_NAME}/profile/bookmarks.html" + rm_conffile "${APP_NAME}" "/etc/${APP_NAME}/profile/localstore.rdf" + rm_conffile "${APP_NAME}" "/etc/${APP_NAME}/profile/mimeTypes.rdf" + rm_conffile "${APP_NAME}" "/etc/${APP_NAME}/profile/prefs.js" + rm_conffile "${APP_NAME}" "/etc/${APP_NAME}/profile/chrome/userChrome-example.css" + rm_conffile "${APP_NAME}" "/etc/${APP_NAME}/profile/chrome/userContent-example.css" + fi + # What we want to do here is migrate this conffile when: + # 1) Upgrading from any version older than Natty. Note, as all releases will track the + # the latest Firefox version in the future, we can't just simply compare package + # versions + # 2) Upgrading from any version older than Firefox 5 in Natty + PREV_MAJOR_UBUNTU_VER=`echo "$2" | sed 's/.*ubuntu\(.*\)/\1/' | sed 's/\([[:digit:]]*\)\.*\([[:digit:]]*\)\.*\([[:digit:]]*\)\.*\(.*\)/\2/'` + if dpkg --compare-versions "$2" le "5.0~b2+build1+nobinonly-0ubuntu0.11.04.1~mfn1" || \ + ([ "x$PREV_MAJOR_UBUNTU_VER" != "x" ] && [ "$PREV_MAJOR_UBUNTU_VER" -lt "11" ]); then + prep_mv_conffile "${APP_NAME}" "/etc/${APP_NAME}/pref/firefox.js" + fi +esac + +#DEBHELPER# + --- firefox-6.0+build1+nobinonly.orig/debian/firefox-globalmenu.dirs.in +++ firefox-6.0+build1+nobinonly/debian/firefox-globalmenu.dirs.in @@ -0,0 +1,3 @@ +%%ifdef MOZ_ENABLE_GLOBALMENU +@MOZ_PREFIX@/lib/@MOZ_APP_NAME@-addons/extensions/globalmenu@ubuntu.com +%%endif --- firefox-6.0+build1+nobinonly.orig/debian/firefox-dev.links.in +++ firefox-6.0+build1+nobinonly/debian/firefox-dev.links.in @@ -0,0 +1,16 @@ +%%ifdef MOZ_USE_SYSTEM_NSPR +/usr/include/nspr @MOZ_INCDIR@/nspr +/usr/bin/nspr-config @MOZ_SDKDIR@/sdk/bin/nspr-config +%%else +@MOZ_LIBDIR@/libnspr4.so @MOZ_SDKDIR@/sdk/lib/libnspr4.so +@MOZ_LIBDIR@/libplc4.so @MOZ_SDKDIR@/sdk/lib/libplc4.so +@MOZ_LIBDIR@/libplds4.so @MOZ_SDKDIR@/sdk/lib/libplds4.so +%%endif +%%ifdef MOZ_USE_SYSTEM_CAIRO +/usr/include/cairo @MOZ_INCDIR@/cairo +%%endif +@MOZ_LIBDIR@/libmozalloc.so @MOZ_SDKDIR@/sdk/lib/libmozalloc.so +@MOZ_LIBDIR@/libxpcom.so @MOZ_SDKDIR@/sdk/lib/libxpcom.so +@MOZ_LIBDIR@/libxul.so @MOZ_SDKDIR@/sdk/lib/libxul.so +@MOZ_SDKDIR@/sdk/bin/xpidl @MOZ_LIBDIR@/xpidl +@MOZ_SDKDIR@/sdk/bin/xpt.py @MOZ_LIBDIR@/xpt.py --- firefox-6.0+build1+nobinonly.orig/debian/firefox-mozsymbols.install.in +++ firefox-6.0+build1+nobinonly/debian/firefox-mozsymbols.install.in @@ -0,0 +1,3 @@ +%%ifdef MOZ_ENABLE_BREAKPAD +@MOZ_DISTDIR@/*symbols.zip @MOZ_LIBDIR@ +%%endif --- firefox-6.0+build1+nobinonly.orig/debian/firefox.dirs.in +++ firefox-6.0+build1+nobinonly/debian/firefox.dirs.in @@ -0,0 +1,3 @@ +/usr/lib/@MOZ_APP_NAME@-addons/extensions +/usr/lib/@MOZ_APP_NAME@-addons/plugins +/etc/apparmor.d/disable --- firefox-6.0+build1+nobinonly.orig/debian/locales.shipped +++ firefox-6.0+build1+nobinonly/debian/locales.shipped @@ -0,0 +1,78 @@ +af:af:Afrikaans +ar:ar:Arabic +ast:ast:Asturian +be:be:Belarusian +bg:bg:Bulgarian +bn-BD:bn:Bengali +bn-IN:bn:Bengali +br:br:Breton +bs:bs:Bosnian +ca:ca:Catalan; Valencian +cs:cs:Czech +cy:cy:Welsh +da:da:Danish +de:de:German +el:el:Greek +en-GB:en:English +en-ZA:en:English +eo:eo:Esperanto +es-AR:es:Spanish; Castilian +es-CL:es:Spanish; Castilian +es-ES:es:Spanish; Castilian +es-MX:es:Spanish; Castilian +et:et:Estonian +eu:eu:Basque +fa:fa:Persian +fi:fi:Finnish +fr:fr:French +fy-NL:fy:Western Frisian +ga-IE:ga:Irish +gd:gd:Gaelic; Scottish Gaelic +gl:gl:Galician +gu-IN:gu:Gujarati +he:he:Hebrew +hi-IN:hi:Hindi +hr:hr:Croatian +hu:hu:Hungarian +hy-AM:hy:Armenian +id:id:Indonesian +is:is:Icelandic +it:it:Italian +ja:ja:Japanese +kk:kk:Kazakh +kn:kn:Kannada +ko:ko:Korean +ku:ku:Kurdish +lg:lg:Ganda +lt:lt:Lithuanian +lv:lv:Latvian +mai:mai:Maithili +mk:mk:Macedonian +ml:ml:Malayalam +mr:mr:Marathi +nb-NO:nb:Norwegian +nl:nl:Dutch; Flemish +nn-NO:nn:Norwegian Nynorsk; Nynorsk, Norwegian +nso:nso:Sotho, Northern +or:or:Oriya +pa-IN:pa:Panjabi; Punjabi +pl:pl:Polish +pt-BR:pt:Portuguese +pt-PT:pt:Portuguese +ro:ro:Romanian +ru:ru:Russian +si:si:Sinhala; Sinhalese +sk:sk:Slovak +sl:sl:Slovenian +sq:sq:Albanian +sr:sr:Serbian +sv-SE:sv:Swedish +ta:ta:Tamil +te:te:Telugu +th:th:Thai +tr:tr:Turkish +uk:uk:Ukrainian +vi:vi:Vietnamese +zh-CN:zh-hans:Simplified Chinese +zh-TW:zh-hant:Traditional Chinese +zu:zu:Zulu --- firefox-6.0+build1+nobinonly.orig/debian/firefox.sh.in +++ firefox-6.0+build1+nobinonly/debian/firefox.sh.in @@ -0,0 +1,113 @@ +#!/bin/sh + +set -e + +# Firefox launcher containing a Profile migration helper for +# temporary profiles used during alpha and beta phases. + +# Authors: +# Alexander Sack +# Fabien Tassin +# Steve Langasek +# Chris Coulson +# License: GPLv2 or later + +MOZ_LIBDIR=@MOZ_LIBDIR@ +MOZ_APP_LAUNCHER=`which $0` +EXE=@MOZ_APP_NAME@-bin +MOZ_APP_NAME=@MOZ_APP_NAME@ +MOZ_APP_BASENAME=@MOZ_APP_BASENAME@ +MOZ_PROFILE_PREFIX=@MOZ_PROFILE_PREFIX@ + +export MOZ_APP_LAUNCHER + +while [ ! -x $MOZ_LIBDIR/$EXE ] ; do + if [ -L "$MOZ_APP_LAUNCHER" ] ; then + MOZ_APP_LAUNCHER=`readlink -f $MOZ_APP_LAUNCHER` + MOZ_LIBDIR=`dirname $MOZ_APP_LAUNCHER` + else + echo "Can't find $MOZ_LIBDIR/$EXE" + exit 1 + fi +done + +LD_LIBRARY_PATH=${MOZ_LIBDIR}:${MOZ_LIBDIR}/plugins${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"} +export LD_LIBRARY_PATH + +usage () { + $MOZ_LIBDIR/$EXE -h | sed -e 's,/.*/,,' + echo + echo " -g or --debug Start within debugger" + echo " -d or --debugger Specify debugger to start with (eg, gdb or valgrind)" + echo " -a or --debugger-args Specify arguments for debugger" +} + +moz_debug=0 +moz_debugger_args="" +moz_debugger="gdb" + +while [ $# -gt 0 ]; do + case "$1" in + -h | --help ) + usage + exit 0 + ;; + -g | --debug ) + moz_debug=1 + shift + ;; + -d | --debugger) + moz_debugger=$2; + if [ "${moz_debugger}" != "" ]; then + shift 2 + else + echo "-d requires an argument" + exit 1 + fi + ;; + -a | --debugger-args ) + moz_debugger_args=$2; + if [ "${moz_debugger_args}" != "" ] ; then + shift 2 + else + echo "-a requires an argument" + exit 1 + fi + ;; + -- ) # Stop option processing + shift + break + ;; + * ) + break + ;; + esac +done + +if [ $MOZ_APP_NAME != $MOZ_APP_BASENAME ] && + [ ! -e ${HOME}/${MOZ_PROFILE_PREFIX}${MOZ_APP_NAME} ] && + [ -d ${HOME}/${MOZ_PROFILE_PREFIX}${MOZ_APP_BASENAME} ] ; then + cp -r ${HOME}/${MOZ_PROFILE_PREFIX}${MOZ_APP_BASENAME} ${HOME}/${MOZ_PROFILE_PREFIX}${MOZ_APP_NAME} +fi + +if [ $moz_debug -eq 1 ] ; then + debugger=`which $moz_debugger` + if [ ! -x $debugger ] ; then + echo "Invalid debugger" + exit 1 + fi + + case `basename $debugger` in + gdb) + exec $debugger $moz_debugger_args --args $MOZ_LIBDIR/$EXE "$@" + ;; + valgrind) + exec $debugger $moz_debugger_args $MOZ_LIBDIR/$EXE "$@" + ;; + *) + exec $debugger $moz_debugger_args $MOZ_LIBDIR/$EXE "$@" + ;; + esac +else + exec $MOZ_LIBDIR/$EXE "$@" +fi --- firefox-6.0+build1+nobinonly.orig/debian/firefox.postinst.in +++ firefox-6.0+build1+nobinonly/debian/firefox.postinst.in @@ -0,0 +1,137 @@ +#!/bin/sh + +set -e + +MOZ_LIBDIR=@MOZ_LIBDIR@ +MOZ_APP_NAME=@MOZ_APP_NAME@ + +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] ; then + if [ `dpkg-divert --truename /usr/bin/$MOZ_APP_NAME` != "/usr/bin/$MOZ_APP_NAME" ] ; then + # Ubuntuzilla has trashed this install. Grrrrrrrrrr! + BROKEN=1 + else + BROKEN=0 + fi + + if [ ! -x /usr/bin/$MOZ_APP_NAME ] && [ "$BROKEN" = "1" ] ; then + echo "***Your system has been left in a broken state by a third party package***" + echo "This is usually caused by installing packages from Ubuntuzilla. Fixing this now" + dpkg-divert --rename --remove /usr/bin/$MOZ_APP_NAME + # Yay! We are sane again now \o/ + BROKEN=0 + fi + + if [ "$BROKEN" = "0" ] ; then + update-alternatives --install /usr/bin/gnome-www-browser \ + gnome-www-browser /usr/bin/$MOZ_APP_NAME 40 + + update-alternatives --install /usr/bin/x-www-browser \ + x-www-browser /usr/bin/$MOZ_APP_NAME 40 + else + PACKAGE=`dpkg-divert --listpackage /usr/bin/$MOZ_APP_NAME` + if [ "$PACKAGE" = "LOCAL" ] ; then + echo "/usr/bin/$MOZ_APP_NAME has been diverted by a third party package which didn't specify" + echo "a package name to dpkg-divert. This is usually as a result of installing unsupported" + echo "packages from Ubuntuzilla." + echo "***This is a BUG. Please report this bug to the vendor of the third party package you installed***" + else + echo "/usr/bin/$MOZ_APP_NAME has been diverted by $PACKAGE" + fi + fi + + # + # AppArmor + # + APP_PROFILE="/etc/apparmor.d/usr.bin.$MOZ_APP_NAME" + if [ -f "$APP_PROFILE" ]; then + if [ -e /etc/lsb-release ] ; then + ubuntu_version=`grep ^DISTRIB_RELEASE /etc/lsb-release | cut -d= -f2 | cut -d '.' -f-2 | tr -d '.'` + else + ubuntu_version=`lsb_release -rs | cut -d '.' -f-2 | tr -d '.'` + fi + + # Setup the extra include files for Ubuntu 10.10 and higher + if [ "$ubuntu_version" -ge '1010' ]; then + # Add the local/ include + LOCAL_APP_PROFILE="/etc/apparmor.d/local/usr.bin.$MOZ_APP_NAME" + test -e "$LOCAL_APP_PROFILE" || { + tmp=`mktemp` + cat < "$tmp" +# Site-specific additions and overrides for usr.bin.firefox. +# For more details, please see /etc/apparmor.d/local/README. +EOM + mkdir `dirname $LOCAL_APP_PROFILE` 2>/dev/null || true + mv -f "$tmp" "$LOCAL_APP_PROFILE" + chmod 644 "$LOCAL_APP_PROFILE" + } + + # Add the addons include + ADDONS_APP_PROFILE="/etc/apparmor.d/abstractions/ubuntu-browsers.d/$MOZ_APP_NAME" + test -e "$ADDONS_APP_PROFILE" || { + tmp=`mktemp` + cat < "$tmp" +# This file is updated by 'aa-update-browser' and may be overwritten on +# upgrades. +# +# For site-specific adjustments, please see /etc/apparmor.d/local/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +EOM + mkdir -p `dirname $ADDONS_APP_PROFILE` 2>/dev/null || true + mv -f "$tmp" "$ADDONS_APP_PROFILE" + chmod 644 "$ADDONS_APP_PROFILE" + } + fi + + # Reload AppArmor profile + DISABLE_APP_PROFILE="/etc/apparmor.d/disable/usr.bin.$MOZ_APP_NAME" + if [ ! -f "$DISABLE_APP_PROFILE" ] && aa-status --enabled 2>/dev/null; then + apparmor_parser -r -T -W "$APP_PROFILE" || true + fi + fi + # + # End AppArmor + # +fi + +# Move a conffile without triggering a dpkg question +mv_conffile() { + local OLDCONFFILE="$1" + local NEWCONFFILE="$2" + + [ -e "$OLDCONFFILE" ] || return 0 + + echo "Preserving user changes to $NEWCONFFILE ..." + mv -f "$NEWCONFFILE" "$NEWCONFFILE".dpkg-new + mv -f "$OLDCONFFILE" "$NEWCONFFILE" +} + +case "$1" in +configure) + # What we want to do here is migrate this conffile when: + # 1) Upgrading from any version older than Natty. Note, as all releases will track the + # the latest Firefox version in the future, we can't just simply compare package + # versions + # 2) Upgrading from any version older than Firefox 5 in Natty + PREV_MAJOR_UBUNTU_VER=`echo "$2" | sed 's/.*ubuntu\(.*\)/\1/' | sed 's/\([[:digit:]]*\)\.*\([[:digit:]]*\)\.*\([[:digit:]]*\)\.*\(.*\)/\2/'` + if dpkg --compare-versions "$2" le "5.0~b2+build1+nobinonly-0ubuntu0.11.04.1~mfn1" || \ + ([ "x$PREV_MAJOR_UBUNTU_VER" != "x" ] && [ "$PREV_MAJOR_UBUNTU_VER" -lt "11" ]); then + mv_conffile "/etc/${MOZ_APP_NAME}/pref/firefox.js" "/etc/${MOZ_APP_NAME}/syspref.js" + fi +esac + +echo "Please restart all running instances of $MOZ_APP_NAME, or you will experience problems." + +if [ -d /var/run ] ; then + touch /var/run/$MOZ_APP_NAME-restart-required +fi + +#DEBHELPER# --- firefox-6.0+build1+nobinonly.orig/debian/moz-rev.sh +++ firefox-6.0+build1+nobinonly/debian/moz-rev.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +# Copyright (c) 2009 Fabien Tassin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +URL=$1 +BRANCH=$2 + +set -e + +if [ Z$1 = Z ] ; then + echo "Usage: $0 MOZ_URL [BRANCH]" + echo + echo "Ex: $0 http://hg.mozilla.org/releases/mozilla-1.9.2 default" + exit 1 +fi + +if [ Z$BRANCH = Z ] ; then + BRANCH="default" +fi + +# Get the tip of $BRANCH +URL_BASE=`echo $URL | sed -e 's,^\(http://[^/]*\)/.*,\1,'` +TIP=`wget -qO- $URL/summary | sed -e '1,/>branches$BRANCH<" | \ + sed -e 's,.*'$BRANCH'changeset.*,\1,'` + +# Get the rev-id and hash of this top +REVS=`wget -qO- $URL_BASE$TIP | grep '^' | sed -e 's/.* changeset \([^<]*\).*/\1/'` +REV=`echo $REVS | cut -d: -f1` +HASH=`echo $REVS | cut -d: -f2` + +# Get the date of this tip +DATE=`wget -qO- "$URL/pushlog?changeset=$HASH" | grep '^ <updated>' | tr '<>' '"' | cut -d'"' -f3 | cut -dT -f1 | tr -d '-'` + +echo "${DATE}r${REV}" --- firefox-6.0+build1+nobinonly.orig/debian/usr.bin.firefox.apparmor.10.10 +++ firefox-6.0+build1+nobinonly/debian/usr.bin.firefox.apparmor.10.10 @@ -0,0 +1,142 @@ +# vim:syntax=apparmor +# Author: Jamie Strandboge <jamie@canonical.com> + +#include <tunables/global> + +# We want to confine the binaries that match: +# @MOZ_LIBDIR@/@MOZ_APP_NAME@ +# @MOZ_LIBDIR@/firefox +# but not: +# @MOZ_LIBDIR@/firefox.sh +@MOZ_LIBDIR@/firefox{,*[^s][^h]} { + #include <abstractions/audio> + #include <abstractions/base> + #include <abstractions/cups-client> + #include <abstractions/dbus-session> + #include <abstractions/fonts> + #include <abstractions/freedesktop.org> + #include <abstractions/gnome> + #include <abstractions/nameservice> + #include <abstractions/user-tmp> + + # Addons + #include <abstractions/ubuntu-browsers.d/firefox> + + # for networking + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + + # should maybe be in abstractions + /etc/ r, + /etc/mime.types r, + /etc/mailcap r, + /etc/xdg/{,xdg-}xubuntu/applications/defaults.list r, + owner @{HOME}/.local/share/applications/defaults.list r, + owner @{HOME}/.local/share/applications/mimeapps.list r, + owner @{HOME}/.local/share/applications/mimeinfo.cache r, + owner /tmp/** m, + owner /var/tmp/** m, + /tmp/.X[0-9]*-lock r, + + /etc/timezone r, + /etc/wildmidi/wildmidi.cfg r, + + # firefox specific + /etc/firefox*/ r, + /etc/firefox*/** r, + /etc/xul-ext/** r, + /etc/xulrunner-2.0*/ r, + /etc/xulrunner-2.0*/** r, + /etc/gre.d/ r, + /etc/gre.d/* r, + + # noisy + deny @MOZ_LIBDIR@/** w, + deny /usr/lib/@MOZ_APP_NAME@-addons/** w, + deny /usr/lib/xulrunner-addons/** w, + deny /usr/lib/xulrunner-*/components/*.tmp w, + deny /.suspended r, + deny /boot/initrd.img* r, + deny /boot/vmlinuz* r, + deny /var/cache/fontconfig/ w, + deny @{HOME}/.local/share/recently-used.xbel r, + + # TODO: investigate + deny /usr/bin/gconftool-2 x, + + # These are needed when a new user starts firefox and firefox.sh is used + @MOZ_LIBDIR@/** ixr, + /usr/bin/basename ixr, + /usr/bin/dirname ixr, + /usr/bin/pwd ixr, + /sbin/killall5 ixr, + /bin/which ixr, + /usr/bin/tr ixr, + @{PROC}/ r, + @{PROC}/[0-9]*/cmdline r, + @{PROC}/[0-9]*/mountinfo r, + @{PROC}/[0-9]*/stat r, + owner @{PROC}/[0-9]*/task/[0-9]*/stat r, + @{PROC}/[0-9]*/status r, + @{PROC}/filesystems r, + owner @{HOME}/.thumbnails/*/*.png r, + + /etc/mtab r, + /etc/fstab r, + + # Needed for the crash reporter + owner @{PROC}/[0-9]*/environ r, + owner @{PROC}/[0-9]*/auxv r, + /etc/lsb-release r, + /usr/bin/expr ix, + + # Needed for container to work in xul builds + /usr/lib/xulrunner-*/plugin-container ixr, + + # allow access to documentation and other files the user may want to look + # at in /usr + /usr/ r, + /usr/** r, + + # so browsing directories works + / r, + /**/ r, + + # Default profile allows downloads to ~/Downloads and uploads from ~/Public + owner @{HOME}/ r, + owner @{HOME}/Public/ r, + owner @{HOME}/Public/* r, + owner @{HOME}/Downloads/ r, + owner @{HOME}/Downloads/* rw, + + # per-user firefox configuration + owner @{HOME}/.{firefox,mozilla}/ rw, + owner @{HOME}/.{firefox,mozilla}/** rw, + owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k, + owner @{HOME}/.{firefox,mozilla}/plugins/** rm, + owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm, + owner @{HOME}/.config/ibus/bus/ w, + owner @{HOME}/.gnome2/firefox*-bin-* rw, + + # + # Extensions + # /usr/share/.../extensions/... is already covered by '/usr/** r', above. + # Allow 'x' for downloaded extensions, but inherit policy for safety + owner @{HOME}/.mozilla/**/extensions/** mixr, + + deny @MOZ_LIBDIR@/update.test w, + deny /usr/lib/mozilla/extensions/**/ w, + deny /usr/lib/xulrunner-addons/extensions/**/ w, + deny /usr/share/mozilla/extensions/**/ w, + deny /usr/share/mozilla/ w, + + # Miscellaneous (to be abstracted) + /usr/bin/mkfifo Uxr, # TODO: investigate + /bin/ps Uxr, # TODO: child profile + /bin/uname Uxr, # TODO: child profile + + # Site-specific additions and overrides. See local/README for details. + #include <local/usr.bin.firefox> +} --- firefox-6.0+build1+nobinonly.orig/debian/compat +++ firefox-6.0+build1+nobinonly/debian/compat @@ -0,0 +1 @@ +5 --- firefox-6.0+build1+nobinonly.orig/debian/control +++ firefox-6.0+build1+nobinonly/debian/control @@ -0,0 +1,774 @@ +Source: firefox +Section: web +Priority: optional +Maintainer: Ubuntu Mozilla Team <ubuntu-mozillateam@lists.ubuntu.com> +Vcs-Bzr: https://code.launchpad.net/~mozillateam/firefox/firefox.natty +Build-Depends: cdbs, + debhelper (>= 5), + m4, + autotools-dev, + autoconf2.13, + quilt, + patchutils (>= 0.2.25), + bzip2, + zip, + libx11-dev, + libxt-dev, + libgtk2.0-dev (>= 2.10), + liborbit2-dev, + libidl-dev (>= 0.8.0), + libxft-dev, + libfreetype6-dev, + libxrender-dev, + libxinerama-dev, + libgnome2-dev, + libgconf2-dev, + libgnomeui-dev, + libstartup-notification0-dev, + libasound2-dev, + libcurl4-openssl-dev, + libdbus-glib-1-dev (>= 0.60), + mozilla-devscripts (>= 0.10~), + hardening-wrapper, + lsb-release, + libiw-dev, + mesa-common-dev, + libnotify-dev (>= 0.4), + libgnomevfs2-dev, + yasm, + xvfb, + imagemagick, + libdbusmenu-gtk-dev +Standards-Version: 3.9.1 + +Package: firefox +Architecture: any +Depends: fontconfig, + psmisc, + lsb-release, + debianutils (>= 1.16), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: ubufox, + firefox-globalmenu +Provides: www-browser, + iceweasel, + gnome-www-browser +Suggests: firefox-gnome-support | firefox-kde-support, + latex-xft-fonts, + libthai0 +Replaces: abrowser, + abrowser-branding, + firefox-branding, + kubuntu-firefox-installer +Breaks: abrowser (<= 4.0~b11+build3+nobinonly-0ubuntu1), + abrowser-branding (<= 4.0~b11+build3+nobinonly-0ubuntu1), + firefox-branding (<= 4.0~b11+build3+nobinonly-0ubuntu1) +XB-Xul-AppId: {ec8030f7-c20a-464f-9b0e-13a3a9e97384} +Description: Safe and easy web browser from Mozilla + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + +Package: firefox-gnome-support +Architecture: any +Section: gnome +Depends: ${shlibs:Depends}, + ${misc:Depends}, + firefox +Description: Safe and easy web browser from Mozilla - GNOME support + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package depends on the GNOME libraries which allow Firefox to take + advantage of technologies such as GConf, GIO libnotify + +Package: firefox-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, + ${misc:Depends}, + firefox (= ${binary:Version}) +Description: Safe and easy web browser from Mozilla - debug symbols + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package contains the debugging symbols for the Firefox web + browser + +Package: firefox-dev +Architecture: any +Section: devel +Priority: extra +Depends: ${shlibs:Depends}, + ${misc:Depends}, + firefox (= ${binary:Version}), + ${nspr:Depends}, + ${nss:Depends}, + ${cairo:Depends} +Conflicts: xulrunner-2.0-dev, + xulrunner-1.9.2-dev +Description: Safe and easy web browser from Mozilla - development files + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package contains the headers and SDK for building plugins with Firefox + +Package: firefox-mozsymbols +Architecture: amd64 i386 armel +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: Safe and easy web browser from Mozilla - Breakpad symbols + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package contains the Firefox symbols in a format expected by Mozilla's + Breakpad. Eventually this package should go away and the symbol upload be + implemented in soyuz (or other builders that build this package) + +Package: firefox-globalmenu +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + firefox (= ${binary:Version}) +Description: Unity appmenu integration for Firefox + This package provides an extension which adds support for the Unity + appmenu to Firefox + +# Transitional packages below here + +Package: abrowser +Architecture: any +Depends: ${misc:Depends}, firefox +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +Package: firefox-branding +Architecture: any +Depends: ${misc:Depends}, firefox +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +Package: abrowser-branding +Architecture: any +Depends: ${misc:Depends}, firefox +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +Package: firefox-gnome-support-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${misc:Depends}, firefox-gnome-support, firefox-dbg (= ${binary:Version}) +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +# Language packs below here + +Package: firefox-locale-af +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-af-base +Description: Afrikaans language pack for Firefox + This package contains Afrikaans translations and search plugins + for Firefox + +Package: firefox-locale-ar +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ar-base +Description: Arabic language pack for Firefox + This package contains Arabic translations and search plugins + for Firefox + +Package: firefox-locale-ast +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ast-base +Description: Asturian language pack for Firefox + This package contains Asturian translations and search plugins + for Firefox + +Package: firefox-locale-be +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-be-base +Description: Belarusian language pack for Firefox + This package contains Belarusian translations and search plugins + for Firefox + +Package: firefox-locale-bg +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-bg-base +Description: Bulgarian language pack for Firefox + This package contains Bulgarian translations and search plugins + for Firefox + +Package: firefox-locale-bn +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-bn-base +Description: Bengali language pack for Firefox + This package contains Bengali translations and search plugins + for Firefox + +Package: firefox-locale-br +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-br-base +Description: Breton language pack for Firefox + This package contains Breton translations and search plugins + for Firefox + +Package: firefox-locale-bs +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-bs-base +Description: Bosnian language pack for Firefox + This package contains Bosnian translations and search plugins + for Firefox + +Package: firefox-locale-ca +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ca-base +Description: Catalan; Valencian language pack for Firefox + This package contains Catalan; Valencian translations and search plugins + for Firefox + +Package: firefox-locale-cs +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-cs-base +Description: Czech language pack for Firefox + This package contains Czech translations and search plugins + for Firefox + +Package: firefox-locale-cy +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-cy-base +Description: Welsh language pack for Firefox + This package contains Welsh translations and search plugins + for Firefox + +Package: firefox-locale-da +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-da-base +Description: Danish language pack for Firefox + This package contains Danish translations and search plugins + for Firefox + +Package: firefox-locale-de +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-de-base +Description: German language pack for Firefox + This package contains German translations and search plugins + for Firefox + +Package: firefox-locale-el +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-el-base +Description: Greek language pack for Firefox + This package contains Greek translations and search plugins + for Firefox + +Package: firefox-locale-en +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-en-base +Description: English language pack for Firefox + This package contains English translations and search plugins + for Firefox + +Package: firefox-locale-eo +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-eo-base +Description: Esperanto language pack for Firefox + This package contains Esperanto translations and search plugins + for Firefox + +Package: firefox-locale-es +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-es-base +Description: Spanish; Castilian language pack for Firefox + This package contains Spanish; Castilian translations and search plugins + for Firefox + +Package: firefox-locale-et +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-et-base +Description: Estonian language pack for Firefox + This package contains Estonian translations and search plugins + for Firefox + +Package: firefox-locale-eu +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-eu-base +Description: Basque language pack for Firefox + This package contains Basque translations and search plugins + for Firefox + +Package: firefox-locale-fa +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-fa-base +Description: Persian language pack for Firefox + This package contains Persian translations and search plugins + for Firefox + +Package: firefox-locale-fi +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-fi-base +Description: Finnish language pack for Firefox + This package contains Finnish translations and search plugins + for Firefox + +Package: firefox-locale-fr +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-fr-base +Description: French language pack for Firefox + This package contains French translations and search plugins + for Firefox + +Package: firefox-locale-fy +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-fy-base +Description: Western Frisian language pack for Firefox + This package contains Western Frisian translations and search plugins + for Firefox + +Package: firefox-locale-ga +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ga-base +Description: Irish language pack for Firefox + This package contains Irish translations and search plugins + for Firefox + +Package: firefox-locale-gd +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-gd-base +Description: Gaelic; Scottish Gaelic language pack for Firefox + This package contains Gaelic; Scottish Gaelic translations and search plugins + for Firefox + +Package: firefox-locale-gl +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-gl-base +Description: Galician language pack for Firefox + This package contains Galician translations and search plugins + for Firefox + +Package: firefox-locale-gu +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-gu-base +Description: Gujarati language pack for Firefox + This package contains Gujarati translations and search plugins + for Firefox + +Package: firefox-locale-he +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-he-base +Description: Hebrew language pack for Firefox + This package contains Hebrew translations and search plugins + for Firefox + +Package: firefox-locale-hi +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-hi-base +Description: Hindi language pack for Firefox + This package contains Hindi translations and search plugins + for Firefox + +Package: firefox-locale-hr +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-hr-base +Description: Croatian language pack for Firefox + This package contains Croatian translations and search plugins + for Firefox + +Package: firefox-locale-hu +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-hu-base +Description: Hungarian language pack for Firefox + This package contains Hungarian translations and search plugins + for Firefox + +Package: firefox-locale-hy +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-hy-base +Description: Armenian language pack for Firefox + This package contains Armenian translations and search plugins + for Firefox + +Package: firefox-locale-id +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-id-base +Description: Indonesian language pack for Firefox + This package contains Indonesian translations and search plugins + for Firefox + +Package: firefox-locale-is +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-is-base +Description: Icelandic language pack for Firefox + This package contains Icelandic translations and search plugins + for Firefox + +Package: firefox-locale-it +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-it-base +Description: Italian language pack for Firefox + This package contains Italian translations and search plugins + for Firefox + +Package: firefox-locale-ja +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ja-base +Description: Japanese language pack for Firefox + This package contains Japanese translations and search plugins + for Firefox + +Package: firefox-locale-kk +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-kk-base +Description: Kazakh language pack for Firefox + This package contains Kazakh translations and search plugins + for Firefox + +Package: firefox-locale-kn +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-kn-base +Description: Kannada language pack for Firefox + This package contains Kannada translations and search plugins + for Firefox + +Package: firefox-locale-ko +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ko-base +Description: Korean language pack for Firefox + This package contains Korean translations and search plugins + for Firefox + +Package: firefox-locale-ku +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ku-base +Description: Kurdish language pack for Firefox + This package contains Kurdish translations and search plugins + for Firefox + +Package: firefox-locale-lg +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-lg-base +Description: Ganda language pack for Firefox + This package contains Ganda translations and search plugins + for Firefox + +Package: firefox-locale-lt +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-lt-base +Description: Lithuanian language pack for Firefox + This package contains Lithuanian translations and search plugins + for Firefox + +Package: firefox-locale-lv +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-lv-base +Description: Latvian language pack for Firefox + This package contains Latvian translations and search plugins + for Firefox + +Package: firefox-locale-mai +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-mai-base +Description: Maithili language pack for Firefox + This package contains Maithili translations and search plugins + for Firefox + +Package: firefox-locale-mk +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-mk-base +Description: Macedonian language pack for Firefox + This package contains Macedonian translations and search plugins + for Firefox + +Package: firefox-locale-ml +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ml-base +Description: Malayalam language pack for Firefox + This package contains Malayalam translations and search plugins + for Firefox + +Package: firefox-locale-mr +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-mr-base +Description: Marathi language pack for Firefox + This package contains Marathi translations and search plugins + for Firefox + +Package: firefox-locale-nb +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-nb-base +Description: Norwegian language pack for Firefox + This package contains Norwegian translations and search plugins + for Firefox + +Package: firefox-locale-nl +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-nl-base +Description: Dutch; Flemish language pack for Firefox + This package contains Dutch; Flemish translations and search plugins + for Firefox + +Package: firefox-locale-nn +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-nn-base +Description: Norwegian Nynorsk; Nynorsk, Norwegian language pack for Firefox + This package contains Norwegian Nynorsk; Nynorsk, Norwegian translations and search plugins + for Firefox + +Package: firefox-locale-nso +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-nso-base +Description: Sotho, Northern language pack for Firefox + This package contains Sotho, Northern translations and search plugins + for Firefox + +Package: firefox-locale-or +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-or-base +Description: Oriya language pack for Firefox + This package contains Oriya translations and search plugins + for Firefox + +Package: firefox-locale-pa +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-pa-base +Description: Panjabi; Punjabi language pack for Firefox + This package contains Panjabi; Punjabi translations and search plugins + for Firefox + +Package: firefox-locale-pl +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-pl-base +Description: Polish language pack for Firefox + This package contains Polish translations and search plugins + for Firefox + +Package: firefox-locale-pt +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-pt-base +Description: Portuguese language pack for Firefox + This package contains Portuguese translations and search plugins + for Firefox + +Package: firefox-locale-ro +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ro-base +Description: Romanian language pack for Firefox + This package contains Romanian translations and search plugins + for Firefox + +Package: firefox-locale-ru +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ru-base +Description: Russian language pack for Firefox + This package contains Russian translations and search plugins + for Firefox + +Package: firefox-locale-si +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-si-base +Description: Sinhala; Sinhalese language pack for Firefox + This package contains Sinhala; Sinhalese translations and search plugins + for Firefox + +Package: firefox-locale-sk +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-sk-base +Description: Slovak language pack for Firefox + This package contains Slovak translations and search plugins + for Firefox + +Package: firefox-locale-sl +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-sl-base +Description: Slovenian language pack for Firefox + This package contains Slovenian translations and search plugins + for Firefox + +Package: firefox-locale-sq +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-sq-base +Description: Albanian language pack for Firefox + This package contains Albanian translations and search plugins + for Firefox + +Package: firefox-locale-sr +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-sr-base +Description: Serbian language pack for Firefox + This package contains Serbian translations and search plugins + for Firefox + +Package: firefox-locale-sv +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-sv-base +Description: Swedish language pack for Firefox + This package contains Swedish translations and search plugins + for Firefox + +Package: firefox-locale-ta +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-ta-base +Description: Tamil language pack for Firefox + This package contains Tamil translations and search plugins + for Firefox + +Package: firefox-locale-te +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-te-base +Description: Telugu language pack for Firefox + This package contains Telugu translations and search plugins + for Firefox + +Package: firefox-locale-th +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-th-base +Description: Thai language pack for Firefox + This package contains Thai translations and search plugins + for Firefox + +Package: firefox-locale-tr +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-tr-base +Description: Turkish language pack for Firefox + This package contains Turkish translations and search plugins + for Firefox + +Package: firefox-locale-uk +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-uk-base +Description: Ukrainian language pack for Firefox + This package contains Ukrainian translations and search plugins + for Firefox + +Package: firefox-locale-vi +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-vi-base +Description: Vietnamese language pack for Firefox + This package contains Vietnamese translations and search plugins + for Firefox + +Package: firefox-locale-zh-hans +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-zh-hans-base +Description: Simplified Chinese language pack for Firefox + This package contains Simplified Chinese translations and search plugins + for Firefox + +Package: firefox-locale-zh-hant +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-zh-hant-base +Description: Traditional Chinese language pack for Firefox + This package contains Traditional Chinese translations and search plugins + for Firefox + +Package: firefox-locale-zu +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-zu-base +Description: Zulu language pack for Firefox + This package contains Zulu translations and search plugins + for Firefox + +Package: firefox-locale-as +Architecture: all +Depends: ${misc:Depends} +Description: Transitional package for unavailable language + This is an empty transitional package to ensure a clean upgrade + process. You can safely remove this package after installation. + +Package: firefox-locale-ka +Architecture: all +Depends: ${misc:Depends} +Description: Transitional package for unavailable language + This is an empty transitional package to ensure a clean upgrade + process. You can safely remove this package after installation. + +Package: firefox-locale-oc +Architecture: all +Depends: ${misc:Depends} +Description: Transitional package for unavailable language + This is an empty transitional package to ensure a clean upgrade + process. You can safely remove this package after installation. --- firefox-6.0+build1+nobinonly.orig/debian/testsuite.mk +++ firefox-6.0+build1+nobinonly/debian/testsuite.mk @@ -0,0 +1,57 @@ +#!/usr/bin/make -f + +LOCALE := en_US.UTF-8 +LOCDIR = $(CURDIR)/$(MOZ_DISTDIR)/.locales + +TESTS := $(NULL) +ifeq (1,$(MOZ_WANT_UNIT_TESTS)) + TESTS += check xpcshell-tests jstestbrowser reftest crashtest mochitest +endif + +debian/stamp-testsuite: $(addprefix debian/stamp-,$(TESTS)) + +$(addprefix debian/stamp-,$(TESTS)): debian/stamp-makefile-build + +# Required for js/src/trace-tests/sunspider/check-date-format-tofte.js +$(addprefix debian/stamp-,check): export TZ = :/usr/share/zoneinfo/posix/US/Pacific + +$(LOCDIR)/%: + mkdir -p $(LOCDIR) + localedef -f $(shell echo $(notdir $@) | cut -d '.' -f 2) -i $(shell echo $(notdir $@) | cut -d '.' -f 1) $@ + +# Setup locales for tests which need it +$(addprefix debian/stamp-,xpcshell-tests reftest): $(LOCDIR)/$(LOCALE) +$(addprefix debian/stamp-,xpcshell-tests reftest): export LOCPATH=$(LOCDIR) +$(addprefix debian/stamp-,xpcshell-tests reftest): export LC_ALL=$(LOCALE) + +# Disable tests that are known to fail +$(addprefix debian/stamp-,xpcshell-tests): debian/stamp-xpcshell-tests-disable + +# Tests that need a X server +$(addprefix debian/stamp-,jstestbrowser reftest crashtest mochitest): WRAPPER = xvfb-run -s "-screen 0 1024x768x24" + +# Run the test! +$(addprefix debian/stamp-,$(TESTS)): + HOME="$(CURDIR)/$(MOZ_DISTDIR)" \ + $(WRAPPER) $(MAKE) -C $(CURDIR)/$(MOZ_OBJDIR) $(subst debian/stamp-,,$@) || true + touch $@ + +debian/stamp-xpcshell-tests-disable: debian/stamp-makefile-build + # Hangs without network access + rm -f $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/toolkit/components/places/tests/unit/test_404630.js + + # FIXME: IPC tests seem to hang in the buildd's + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/chrome/test/unit_ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/ipc/testshell/tests + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/toolkit/components/contentprefs/tests/unit_ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/netwerk/cookie/test/unit_ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/netwerk/test/unit_ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/modules/libpref/test/unit_ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/extensions/cookie/test/unit_ipc + rm -rf $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/uriloader/exthandler/tests/unit_ipc + + # Needs GConf to be running. I guess we need to start with dbus-launch to fix this + rm -f $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/browser/components/shell/test/unit/test_421977.js + rm -f $(CURDIR)/$(MOZ_OBJDIR)$(MOZ_MOZDIR)/_tests/xpcshell/uriloader/exthandler/tests/unit/test_handlerService.js + touch $@ --- firefox-6.0+build1+nobinonly.orig/debian/control.langpacks +++ firefox-6.0+build1+nobinonly/debian/control.langpacks @@ -0,0 +1,8 @@ + +Package: @MOZ_APP_NAME@-locale-@LANGCODE@ +Architecture: all +Depends: ${misc:Depends} +Replaces: language-pack-@LANGCODE@-base +Description: @LANG@ language pack for Firefox + This package contains @LANG@ translations and search plugins + for Firefox --- firefox-6.0+build1+nobinonly.orig/debian/firefox.1.in +++ firefox-6.0+build1+nobinonly/debian/firefox.1.in @@ -0,0 +1,71 @@ +.TH FIREFOX 1 2011-02-09 @MOZ_APP_NAME@ +.SH NAME +@MOZ_APP_NAME@ \- a free and open source web browser from Mozilla + +.SH SYNOPSIS +.B @MOZ_APP_NAME@ +[\fIOPTIONS\fR] [\fIurl\fR] + +.SH DESCRIPTION +See http://support.mozilla.com/ for help using the browser. +This manpage only describes how to run it. + +.SH OPTIONS +.TP +\fB\-h, \-\-help\fR +Prints the command line options. +.TP +\fB\-g, \-\-debug\fR +Starts \fB@MOZ_APP_NAME@\fR in a debugger. +.TP +\fB\-d, \-\-debugger\fR +Specify the debugger in which to start \fB@MOZ_APP_NAME@\fR. The default is gdb. Used in conjunction with \fB-g\fR. +.TP +\fB\-a, \-\-debugger\-args\fR +Specify arguments to pass to the debugger. Used in conjunction with \fB-g\fR. +.TP +\fB\-no\-remote\fR +Don't connect to any other running instances of \fB@MOZ_APP_NAME@\fR. Use this if you want to run \fB@MOZ_APP_NAME@\fR +in an entirely new process. By default, \fB@MOZ_APP_NAME@\fR will delegate a command to an already running instance. +.TP +\fB\-ProfileManager\fR +Start the profilemanager. Use this to choose the profile you would like to run \fB@MOZ_APP_NAME@\fR with. You +will need to also use \fB\-no\-remote\fR if there is already a running \fB@MOZ_APP_NAME@\fR instance. +.TP +\fB\-P\fR \fIprofile\fR +Start \fB@MOZ_APP_NAME@\fR with the profile named \fIprofile\fR. Will start the profile manager if a valid profile +name is not specified. You will need to also use \fB\-no\-remote\fR if there is already a running \fB@MOZ_APP_NAME@\fR instance. +.TP +\fB\-safe\-mode\fR +Start \fB@MOZ_APP_NAME@\fR in safe-mode. This disables all third-party extensions, and may be necessary if +you are having problems with an extension you installed. +.TP +\fB\-new\-tab\fR \fIurl\fR +Open \fIurl\fR in a new tab. +.TP +\fB\-new\-window\fR \fIurl\fR +Open \fIurl\fR in a new window. +.TP +\fB\-v, \-version\fR +Print the current version of \fB@MOZ_APP_NAME@\fR. +.TP +\fB\-UILocale\fR \fIlocale\fR +Start \fB@MOZ_APP_NAME@\fR with the specified locale \fIlocale\fR. Use this to override your environment +.TP +\fB\-preferences\fR +Open the preferences dialog. +.TP +\fB\-private\fR +Start \fB@MOZ_APP_NAME@\fR in private browsing mode +.TP +\fB\-private\-toggle\fR +Toggle private browsing mode +.TP +\fB\-setDefaultBrowser\fR +Set \fB@MOZ_APP_NAME@\fR as the default web browser +.TP +\fB\-search\fR \fIterm\fR +Search for \fIterm\fR with your default search engine +.TP +\fB\-jsconsole\fR +Open the Error console. If \fB@MOZ_APP_NAME@\fR is not already running, this will open a new browser window too --- firefox-6.0+build1+nobinonly.orig/debian/firefox.lintian-overrides.in +++ firefox-6.0+build1+nobinonly/debian/firefox.lintian-overrides.in @@ -0,0 +1,9 @@ +@MOZ_APP_NAME@ binary: embedded-libjpeg .@MOZ_LIBDIR@/libxul.so +@MOZ_APP_NAME@ binary: embedded-zlib .@MOZ_LIBDIR@/libxul.so +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-@MOZ_VERSION@/icons/document.png +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-@MOZ_VERSION@/icons/mozicon128.png +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-@MOZ_VERSION@/chrome/icons/default/default16.png +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-@MOZ_VERSION@/chrome/icons/default/default32.png +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-@MOZ_VERSION@/chrome/icons/default/default48.png +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-addons/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png +@MOZ_APP_NAME@ binary: image-file-in-usr-lib usr/lib/@MOZ_APP_NAME@-addons/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/preview.png --- firefox-6.0+build1+nobinonly.orig/debian/usr.bin.firefox.apparmor.10.04 +++ firefox-6.0+build1+nobinonly/debian/usr.bin.firefox.apparmor.10.04 @@ -0,0 +1,348 @@ +# vim:syntax=apparmor +# Author: Jamie Strandboge <jamie@canonical.com> + +#include <tunables/global> + +# We want to confine the binaries that match: +# @MOZ_LIBDIR@/@MOZ_APP_NAME@ +# @MOZ_LIBDIR@/firefox +# but not: +# @MOZ_LIBDIR@/firefox.sh +@MOZ_LIBDIR@/firefox{,*[^s][^h]} { + #include <abstractions/audio> + #include <abstractions/base> + #include <abstractions/cups-client> + #include <abstractions/dbus> + #include <abstractions/fonts> + #include <abstractions/freedesktop.org> + #include <abstractions/gnome> + #include <abstractions/kde> + #include <abstractions/nameservice> + #include <abstractions/user-tmp> + #include <abstractions/X> + + # for networking + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + + # should maybe be in abstractions + /etc/ r, + /etc/mime.types r, + /etc/mailcap r, + /etc/timezone r, + /etc/wildmidi/wildmidi.cfg r, + /etc/xdg/xubuntu/applications/defaults.list r, + /usr/bin/dbus-launch ixr, + /usr/bin/scim Ux, + /usr/bin/scim-bridge Ux, + /usr/bin/apport-bug Ux, + /usr/local/lib{,32,64}/*.so* mr, + /usr/lib/gstreamer0.10/gstreamer-0.10/gst-plugin-scanner ix, + /usr/bin/apturl Uxr, + /tmp/.X[0-9]*-lock r, + + # firefox specific + /etc/firefox*/ r, + /etc/firefox*/** r, + /etc/xul-ext/** r, + /etc/xulrunner-2.0*/ r, + /etc/xulrunner-2.0*/** r, + /etc/gre.d/ r, + /etc/gre.d/* r, + + # noisy + deny @MOZ_LIBDIR@/** w, + deny /usr/lib/@MOZ_APP_NAME@-addons/** w, + deny /usr/lib/xulrunner-addons/** w, + deny /usr/lib/xulrunner-*/components/*.tmp w, + deny /.suspended r, + deny /boot/initrd.img* r, + deny /boot/vmlinuz* r, + deny /var/cache/fontconfig/ w, + + # What is firefox doing with this? + deny /usr/bin/gconftool-2 x, + + # These are needed when a new user starts firefox and firefox.sh is used + @MOZ_LIBDIR@/** ixr, + /usr/bin/basename ixr, + /usr/bin/dirname ixr, + /usr/bin/pwd ixr, + /sbin/killall5 ixr, + /bin/which ixr, + /usr/bin/tr ixr, + @{PROC}/ r, + @{PROC}/[0-9]*/cmdline r, + @{PROC}/[0-9]*/mountinfo r, + @{PROC}/[0-9]*/stat r, + owner @{PROC}/[0-9]*/task/[0-9]*/stat r, + @{PROC}/[0-9]*/status r, + @{PROC}/filesystems r, + + /etc/mtab r, + /etc/fstab r, + + # Needed for the crash reporter + owner @{PROC}/[0-9]*/environ r, + owner @{PROC}/[0-9]*/auxv r, + /etc/lsb-release r, + /usr/bin/expr ix, + + # allow access to documentation and other files the user may want to look + # at in /usr + /usr/ r, + /usr/** r, + + # so browsing directories works + / r, + /**/ r, + + # allow read and write to all user's files, except explicitly denied ones + @{HOME}/ r, + @{HOME}/** r, + owner @{HOME}/** w, + owner @{HOME}/Desktop/** r, + + # removable media and filesystems + /media/** r, + /mnt/** r, + /srv/** r, + owner /media/** w, + owner /mnt/** w, + owner /srv/** w, + + #include <abstractions/private-files> + audit deny @{HOME}/.ssh/** mrwkl, + audit deny @{HOME}/.gnome2_private/** mrwkl, + + # comment this out if using gpg plugin/addons + audit deny @{HOME}/.gnupg/** mrwkl, + + # per-user firefox configuration + owner @{HOME}/.{firefox,mozilla}/ rw, + owner @{HOME}/.{firefox,mozilla}/** rw, + owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k, + owner @{HOME}/.{firefox,mozilla}/plugins/** rm, + owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm, + + # + # Extensions + # /usr/share/.../extensions/... is already covered by '/usr/** r', above. + # Allow 'x' for downloaded extensions, but inherit policy for safety + owner @{HOME}/.mozilla/**/extensions/** mixr, + + deny @MOZ_LIBDIR@/update.test w, + deny /usr/lib/mozilla/extensions/**/ w, + deny /usr/lib/xulrunner-addons/extensions/**/ w, + deny /usr/share/mozilla/extensions/**/ w, + deny /usr/share/mozilla/ w, + + # + # Plugins/helpers + # + @{PROC}/[0-9]*/fd/ r, + /usr/lib/** rm, + /bin/bash ixr, + /bin/dash ixr, + /bin/grep ixr, + /bin/sed ixr, + /bin/ps Uxr, + /bin/uname Uxr, + /usr/bin/gnome-codec-install Uxr, + /usr/bin/m4 ixr, + /usr/bin/mkfifo Uxr, + /usr/lib/nspluginwrapper/i386/linux/npviewer Uxr, + /usr/bin/pulseaudio ixr, + /var/lib/ r, + /var/lib/** mr, + + # Needed for container to work in xul builds + /usr/lib/xulrunner-*/plugin-container ixr, + + # for maximum plugin/helper compatibility + #/usr/bin/* Uxr, + #/usr/lib/*/** ixr, + + # + # For stricter access, comment out the 'maximum plugin/helper compatibility' + # lines above and uncomment these + # + + # for PDFs + owner @{HOME}/.adobe/** rw, + /opt/Adobe/Reader9/bin/acroread Uxr, + /opt/Adobe/Reader9/** r, + /usr/bin/evince PUxr, + /usr/bin/okular Uxr, + + # Image viewers + /usr/bin/eog Uxr, + /usr/bin/gimp* Uxr, + + # Openoffice.org + /usr/bin/ooffice Uxr, + /usr/bin/oocalc Uxr, + /usr/bin/oodraw Uxr, + /usr/bin/ooimpress Uxr, + /usr/bin/oowriter Uxr, + /usr/lib/openoffice/program/soffice Uxr, + + # Multimedia + #include <abstractions/ubuntu-media-players> + owner @{HOME}/.macromedia/** rw, + /opt/real/RealPlayer/mozilla/nphelix.so rm, + + # Bittorrent clients + #include <abstractions/ubuntu-bittorrent-clients> + + # Archivers + /usr/bin/ark Uxr, + /usr/bin/file-roller Uxr, + /usr/bin/xarchiver Uxr, + + # Text editors (It's All Text [https://addons.mozilla.org/en-US/firefox/addon/4125]) + /usr/bin/emacsclient.emacs-snapshot Uxr, + /usr/bin/emacsclient.emacs22 Uxr, + /usr/bin/gedit Uxr, + /usr/bin/vim.gnome Uxr, + /usr/bin/leafpad Uxr, + /usr/bin/mousepad Uxr, + + # Mozplugger + /etc/mozpluggerrc r, + /usr/bin/mozplugger-helper Uxr, + + # Java + @{HOME}/.java/deployment/deployment.properties k, + /etc/java-*/ r, + /etc/java-*/** r, + /usr/lib/jvm/java-6-openjdk/jre/bin/java cx -> firefox_openjdk, + /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} cx -> firefox_java, + /usr/lib/jvm/java-*-sun-1.*/jre/lib/*/libnp*.so cx -> firefox_java, + /usr/lib/j2*-ibm/jre/bin/java cx -> firefox_java, + + # for mailto: + #include <abstractions/ubuntu-email> + #include <abstractions/ubuntu-console-email> + + # Terminals for using console applications. These abstractions should ideally + # have 'ix' to restrct access to what only firefox is allowed to do + #include <abstractions/ubuntu-gnome-terminal> + + # By default, we won't support launching a terminal program in Xterm or + # KDE's konsole. It opens up too many unnecessary files for most users. + # People who need this functionality can uncomment the following: + ##include <abstractions/ubuntu-xterm> + ##include <abstractions/ubuntu-konsole> + + # Miscellaneous (to be abstracted) + /usr/bin/nautilus Uxr, + /usr/bin/thunar Uxr, + /usr/bin/liferea-add-feed Uxr, + + + # + # Child profiles + # + + # Profile for the supported OpenJDK in Ubuntu. This doesn't require the + # unfortunate workarounds of the proprietary Javas, so have a separate + # profile. + profile firefox_openjdk { + #include <abstractions/base> + #include <abstractions/fonts> + #include <abstractions/gnome> + #include <abstractions/kde> + #include <abstractions/nameservice> + #include <abstractions/ssl_certs> + #include <abstractions/user-tmp> + #include <abstractions/private-files-strict> + + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + + /etc/java-*/ r, + /etc/java-*/** r, + /etc/lsb-release r, + /etc/ssl/certs/java/* r, + /etc/timezone r, + + @{PROC}/[0-9]*/ r, + @{PROC}/[0-9]*/fd/ r, + @{PROC}/filesystems r, + /sys/devices/system/cpu/ r, + /sys/devices/system/cpu/** r, + /usr/share/** r, + /var/lib/dbus/machine-id r, + + /usr/bin/env ix, + /usr/lib/jvm/java-6-openjdk/jre/bin/java ix, + /usr/lib/jvm/java-6-openjdk/jre/lib/i386/client/classes.jsa m, + + # Why would java need this? + deny /usr/bin/gconftool-2 x, + + owner @{HOME}/ r, + owner @{HOME}/** rwk, + } + + # Profile for commercial Javas. These need workarounds to work right (eg + # Sun's forcing of an executable stack (LP: #535247)). + profile firefox_java { + #include <abstractions/base> + #include <abstractions/fonts> + #include <abstractions/gnome> + #include <abstractions/kde> + #include <abstractions/nameservice> + #include <abstractions/ssl_certs> + #include <abstractions/user-tmp> + #include <abstractions/private-files-strict> + + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + @{PROC}/loadavg r, + + /etc/debian_version r, + /etc/java-*/ r, + /etc/java-*/** r, + /etc/lsb-release r, + /etc/ssl/certs/java/* r, + /etc/timezone r, + + @{PROC}/[0-9]*/ r, + @{PROC}/[0-9]*/fd/ r, + @{PROC}/filesystems r, + /sys/devices/system/cpu/ r, + /sys/devices/system/cpu/** r, + /usr/share/** r, + /var/lib/dbus/machine-id r, + + /usr/bin/env ix, + /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} ix, + /usr/lib/jvm/java-*-sun-1.*/jre/lib/i386/client/classes.jsa m, + /usr/lib/j2*-ibm/jre/bin/java ix, + + # noisy, can't write here anyway + deny /etc/.java/ w, + deny /etc/.java/** w, + + deny /usr/bin/gconftool-2 x, + + owner @{HOME}/ r, + owner @{HOME}/** rwk, + owner @{HOME}/.fontconfig/*.cache* m, + + # These are seriously unfortunate, but required due to LP: #535247 + /etc/passwd m, + owner @{HOME}/.java/**/cache/** m, + owner /tmp/** m, + /usr/lib{,32,64}/jvm/**/*.jar mr, + /usr/share/fonts/** m, + } +} --- firefox-6.0+build1+nobinonly.orig/debian/firefox.xml.in +++ firefox-6.0+build1+nobinonly/debian/firefox.xml.in @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd"> +<default-apps> + <web-browsers> + <web-browser> + <name>@MOZ_DISPLAY_NAME@</name> + <executable>@MOZ_APP_NAME@</executable> + <command>@MOZ_APP_NAME@ %s</command> + <icon-name>@MOZ_APP_NAME@</icon-name> + <run-in-terminal>false</run-in-terminal> + <netscape-remote>true</netscape-remote> + <tab-command>@MOZ_APP_NAME@ -new-tab "%s"</tab-command> + <win-command>@MOZ_APP_NAME@ -new-window "%s"</win-command> + </web-browser> + </web-browsers> +</default-apps> + --- firefox-6.0+build1+nobinonly.orig/debian/changelog +++ firefox-6.0+build1+nobinonly/debian/changelog @@ -0,0 +1,6708 @@ +firefox (6.0+build1+nobinonly-0ubuntu0.11.04.1) natty-security; urgency=low + + * New upstream stable release (FIREFOX_6_0_BUILD1) + - see LP: #825459 for USN information + + * Unconditionally build with --disable-elf-hack. It's basically a noop + on Ubuntu, as we don't get any of the nice space saving and startup + time improvements that upstream builds get with it. Enabling it is + problematic (it fails to build on all architectures in Ubuntu from + Firefox 7 onwards, and is already problematic on armel when building on + older Ubuntu versions) + - update debian/rules + - update debian/mozconfig.in + * Don't unconditionally set -fshort-wchar in the libxul.pc pkgconfig file. + It's no longer needed with newer toolchains which support gnu++0x, and + defining it breaks the mozvoikko build + - update debian/pkgconfig/libxul.pc.in + - update debian/rules + * Update globalmenu-extension to 1.0.7 release, which adds support for + Firefox 6 + * Drop the profile migrator, as it doesn't really make any sense with the new + release cycle, and seems to cause more trouble than it's worth. In Firefox 7, + we want to drop the shell wrapper script anyway + - remove debian/migrator/xulapp-profilemigrator + - update debian/firefox.sh.in + - update debian/firefox.install.in + - update debian/rules + - update debian/control.in + * xpt_link and xpt_dump have been replaced by xpt.py + - update debian/firefox-dev.install.in + - update debian/firefox-dev.links.in + * Add support for the system provided hyphenation patterns now that Firefox + support this, by linking @MOZ_LIBDIR@/hyphenation to /usr/share/hyphen + - update debian/firefox.links.in + * Refreshed patches: + - update debian/patches/firefox-kde.patch + - update debian/patches/mozilla-kde.patch + - update debian/patches/plugin-for-mimetype-pref.patch + - update debian/patches/reload-new-plugins.patch + * The official branding moved from other-licenses to browser. Handle this + - update debian/rules + * Dropped patches fixed upstream: + - remove debian/patches/use-MOZ_APP_LAUNCHER-for-launcher-exec.patch + - remove debian/patches/fix-nsGIOService.patch + - remove debian/patches/default-browser-check-use-gio.patch + - remove debian/patches/update-assembler-excl-arch-list.patch + - remove debian/patches/default-uri-handler-check-use-gio.patch + - remove debian/patches/powerpc-build-fix.patch + - update debian/patches/series + * Drop the special "kde.js" file handling from the pref service. It hasn't + had the desired effect since Firefox 4, as the specialfile handling + doesn't apply to pref files inside the omni.jar. Moving kde.js back in to + defaults/pref isn't an option, as these are always read after the prefs + in the omni.jar, which would mean that all users would get the KDE + specific prefs. Note, we only override one pref in kde.js anyway, it can + go elsewhere if really required + - update debian/patches/mozilla-kde.patch + - update debian/patches/firefox-kde.patch + - note, this doesn't change any behaviour from Firefox 4 and 5, but the + code this patch touched was rewritten in Firefox 6, so it makes more + sense to just remove it now rather than refactor it and it stil not work + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 12 Aug 2011 15:17:09 -0500 + +firefox (5.0+build1+nobinonly-0ubuntu0.11.04.3) natty-security; urgency=low + + * No change rebuild to pick up LP: #800857 on armel and powerpc + + -- Micah Gersten <micahg@ubuntu.com> Tue, 28 Jun 2011 23:45:24 +0100 + +firefox (5.0+build1+nobinonly-0ubuntu0.11.04.2) natty-security; urgency=low + + * fix LP: #800857 - language packs pull in Firefox on upgrade + - update debian/control.langpacks + - update debian/control + + -- Micah Gersten <micahg@ubuntu.com> Wed, 22 Jun 2011 18:08:55 -0500 + +firefox (5.0+build1+nobinonly-0ubuntu0.11.04.1) natty-security; urgency=low + + * New upstream release from the stable channel (FIREFOX_5_0_BUILD1) + - see LP: #798484 for USN information + + * Update globalmenu-extension to 1.0.6 + * Switch to mozilla-beta + - update debian/mozclient/firefox.conf + * Drop the ability to build with an external xulrunner, and all the packaging + complexity which went with it + - update debian/apport/firefox.in + - update debian/firefox.install.in + - update debian/firefox.lintian-overrides.in + - update debian/firefox.sh.in + - update debian/mozconfig.in + - update debian/rules + * Build language packs directly from the firefox source + + Fixes LP: #294187 - Firefox Locales should install locale specific + search plugins + + Rip out the bits to create a en-US.xpi + - update debian/rules + - remove debian/translation-support/install.rdf.in + + Include compare-locales FIREFOX_5_0b1_BUILD1 from + http://hg.mozilla.org/build/compare-locales. It's needed for merging + en-US strings with incomplete locales + + Pull l10n data in to tarball from bzr + - update debian/mozclient/firefox.conf + + Configure build for creating language packs by configuring with + "--with-l10n-base=" + - update debian/mozconfig.in + + Store the list of locales to ship, and provide a way of automatically + generating that list and the control file entries from the upstream + source. Also provide a way to blacklist languages. We map languages + to package names using langpack-o-matic (and also get descriptions + from there too) + - update debian/rules + - add debian/locales-supported + - add debian/control.langpacks + - update debian/control + - add debian/locale-blacklist + - add debian/refresh-supported-locales.pl + + Add common-build-indep hook to build the translation xpi's + - update debian/rules + + Add common-binary-post-install-indep to install the xpi's and + searchplugins in to the correct debian packages + - update debian/rules + - add debian/get-xpi-id.py + + When rebuilding debian/control in the clean target, fail the build + if the control file was out-of-date. This ensures that we don't + accidentally drop language packs, and forces me to maintain an + up-to-date control file in bzr + - update debian/rules + + Apply vendor patches to localized searchplugins too + - update debian/patches/ubuntu-codes-amazon.patch + - add debian/patches/ubuntu-codes-baidu.patch + - update debian/patches/ubuntu-codes-google.patch + * Ditch all the version-number based branding selection. Do this all + purely on the channel name now + - remove debian/firefox-beta.desktop.in + - remove debian/firefox-nightly.desktop.in + - remove debian/firefox-unofficial.desktop.in + - rename debian/firefox-final.desktop.in => debian/firefox.desktop.in + - update debian/firefox.desktop.in + - update debian/rules + - update debian/firefox.sh.in + * Drop the DEB_ENABLE_IPC option, now that IPC is mandatory + - update debian/rules + - update debian/apport/firefox.in + - update debian/firefox.install.in + - update debian/mozconfig.in + * Add some missing options to the manpage + - update debian/firefox.1.in + * Ensure we set LD_LIBRARY_PATH before running "firefox -h" + - update debian/firefox.sh.in + * Drop patches merged upstream: + - 64-bit-be-fix.patch + * Refresh patches: + - mozilla-kde.patch + * Ship channel-prefs.js. We used to ship this in Firefox 3.6, and it's + required by Test Pilot now + - update debian/firefox.install.in + * Backport patch from mozilla-central to fix powerpc build failure + - add debian/patches/powerpc-build-fix.patch + - update debian/patches/series + * Support storing language descriptions in locales.unavailable. This + will be useful for translations which disappear temporarily + - update debian/rules + - update debian/refresh-supported-locales.pl + * Add languages that are currently dropped in FF5 (compared with FF4) to + locales.unavailable. Having transitional packages now will make + transitioning easier later on if they come back + - update debian/locales.unavailable + * Refresh debian/control to pick up transitional packages + * Don't bundle our vendor preferences in the omni.jar. This needs a distro + patch and it turns out that Firefox does still read prefs from + $LIBDIR/defaults/pref, so just install it there instead + - update debian/rules + - update debian/firefox.install.in + - remove debian/patches/install-vendor-prefs.patch + - update debian/patches/series + * Add a global pref file again (/etc/firefox/syspref.js) and add the + necessary preinst/postinst magic to move the old file there if it + was previously customized + - add debian/syspref.js + - update debian/firefox.install.in + - update debian/firefox.links.in + - update debian/firefox.postinst.in + - update debian/firefox.preinst.in + * Ensure "Depends: ${misc:Depends}" is added to all transitional + language packs + - update debian/control.langpacks.unavail + - refresh debian/control + * Ship testpilot on aurora too + - update debian/firefox.install.in + * Set the right Vcs-Bzr URL + - update debian/control.in + - refresh debian/control + * Update list of language packs to include new ones added upstream + - refresh debian/locales.shipped and debian/locals.unavailable + - refresh debian/control + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 17 Jun 2011 03:27:24 -0500 + +firefox (4.0.1+build1+nobinonly-0ubuntu0.11.04.3) natty-proposed; urgency=low + + * Update globalmenu-extension to 1.0.5: + * Fix LP: #783790 - Firefox 4 crashes when opening Selenium IDE window. + Ignore signals for menus without popups + * Fix LP: #783856 - Firefox 4.0.1 Crash Report + [@ uGlobalMenuBar::~uGlobalMenuBar ]. Don't bail out of building a menu + when encountering a non-XUL element. Also toughen up destructors to not + crash if the menuitem never initialized properly + * Fix LP: #783997 - Firefox 4.0.1 Crash Report + [@ uGlobalMenuBar::ShouldParentStayVisible ]. Don't crash if the window + gets destroyed before the panel responds to RegisterWindow + + -- Chris Coulson <chris.coulson@canonical.com> Tue, 17 May 2011 18:28:28 +0100 + +firefox (4.0.1+build1+nobinonly-0ubuntu0.11.04.2) natty-proposed; urgency=low + + * Fix LP: #770719 - Dutch localization doesn't include spell-checker. + Look in /usr/share/hunspell for the system dictionaries on maverick + and later, rather than /usr/share/myspell/dicts. This got dropped + somehow in natty + - update debian/rules + - update debian/firefox.links/in + * Hopefully fix LP: #643899 - Firefox sending header "Accept-Language: + chrome://global/locale/intl.properties" because the intl.accept_languages + preference is messed up. Drop a patch which causes the preferences + system to save a user preference when changing a preference value to equal + the system default value (and revert to the original behaviour where the + preference is just discarded). This should hopefully stop Firefox Sync + from breaking localized preferences where they haven't been modified by + the user, but does regress LP: #548866 + - update debian/patches/series + + -- Chris Coulson <chris.coulson@canonical.com> Tue, 03 May 2011 20:43:30 +0100 + +firefox (4.0.1+build1+nobinonly-0ubuntu0.11.04.1) natty-security; urgency=low + + * New upstream release v4.0.1 (FIREFOX_4_0_1_BUILD1) + - see USN-1121-1 + + * Fix LP: #767966 - globalmenu extension pollutes main window javascript + scope + - update globalmenu-extension to 1.0.3 + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 22 Apr 2011 15:12:46 -0500 + +firefox (4.0+nobinonly-0ubuntu3) natty; urgency=low + + [ Felix Geyer <debfx@ubuntu.com> ] + * Fix LP: #572772 - can't save files in KDE + - update debian/patches/mozilla-kde.patch + + [ Chris Coulson ] + * Fix LP: #766151 - popuphiding and popuphidden events aren't dispatched + when a menu is closed, leading to exceptions being thrown in + browserPlacesViews.js (visible from the error console) + - update globalmenu-extension to 1.0.2 + * Fix LP: #744580 - Firefox doesn't autoscroll when selecting content + downwards + - add debian/patches/fix-selection-drag-autoscroll.patch + - update debian/patches/series + + -- Chris Coulson <chris.coulson@canonical.com> Tue, 19 Apr 2011 17:10:50 +0100 + +firefox (4.0+nobinonly-0ubuntu2) natty; urgency=low + + * Update globalmenu-extension to 1.0.1 + - Fixes LP: #749450 - bookmarks editor doesn't work properly + + * Added Spanish and Japanese translations for static quicklist entry + - update debian/firefox-*.desktop.in + * Fix LP: #727372 - URI handling is broken. Use GIO for checking if + a particular URI scheme has a handler, rather than probing GConf + - add debian/patches/default-uri-handler-check-use-gio.patch + - update debian/patches/series + + -- Chris Coulson <chris.coulson@canonical.com> Sat, 16 Apr 2011 23:21:03 +0100 + +firefox (4.0+nobinonly-0ubuntu1) natty; urgency=low + + * Bump the version number to 4.0 final. This is just so we stop confusing + people with rc2 in the version number, but the tarball is identical + + * Update globalmenu-extension code to 1.0 + - Drop the hacks we had to workaround the lack of menu closed signals from + Unity. We no longer synthesize our own menu closed events, but use the + proper event from dbusmenu. + - In addition to this, we split the work done during menu opening in to + 2 phases - the first phase triggered off "about-to-show" and the second + phase triggered off "opened". In the future, we should be able to delay + the menu opening with the about-to-show handler, which is where we + do all the work to update the menu + - Fix LP: #755701 - When iterating over each label, check if the current + character equals the access key (to set a flag indicating we've already + seen it) *before* we mangle the label, rather than after it. + This fixes an issue where we never set the flag, and subsequently see + the mnemonics repeated multiple times in labels + - Also remove the hack we had to add placeholder entries to empty menus + so that we could get an about-to-show signal (now that LP: #619811 + is fixed) + + * Fix typo in German translation of static quicklist item (LP: #750220) + - update debian/firefox-*.desktop.in + * Re-enable -pie (LP: #663294) + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Mon, 11 Apr 2011 01:07:23 +0100 + +firefox (4.0~rc2+build3+nobinonly-0ubuntu2) natty; urgency=low + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Ship a mozilla-plugin.pc and libxul.pc rather than our custom + firefox-plugin.pc. No other source packages are aware of firefox-plugin + and this way avoids patching a whole bunch of apps. We now conflict + with the xulrunner SDK though + - rename debian/pkgconfig/firefox-plugin.pc.in => + debian/pkgconfig/mozilla-plugin.pc.in + - update debian/pkgconfig/mozilla-plugin.pc.in + - add debian/pkgconfig/libxul.pc.in + - add debian/pkgconfig/mozilla-nspr.pc.in + - update debian/rules + - update debian/control.pp + * Add some missing symlinks in the SDK + - update debian/firefox-dev.links.in + * Add Asturian, Bengali, Croatian, Danish, Galician, Hebrew, Kurdish, + Lithuanian, Romanian, Slovene, Uyghur and Ukrainian, and updated + Catalan and French translations, plus add static quicklist translations + for Chinese, Dutch, French, Hungarian, Italian and Russian + - update debian/firefox-*.desktop.in + * Update globalmenu-extension code to 0.6.1. Pressing Alt shows the menu + now + + [ Bilal Akhtar <bilalakhtar@ubuntu.com> ] + * debian/firefox-*.desktop.in: Add static quicklist item 'Open a New + Window'. (LP: #741046) + + -- Chris Coulson <chris.coulson@canonical.com> Thu, 31 Mar 2011 17:54:51 +0100 + +firefox (4.0~rc2+build3+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 RC2 build3 (FIREFOX_4_0rc2_BUILD3). + D'oh! Should have spotted that before uploading build2 + + -- Chris Coulson <chris.coulson@canonical.com> Mon, 21 Mar 2011 11:02:11 +0000 + +firefox (4.0~rc2+build2+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 RC2 (FIREFOX_4_0rc2_BUILD2) + + -- Chris Coulson <chris.coulson@canonical.com> Mon, 21 Mar 2011 09:08:27 +0000 + +firefox (4.0~rc1+build1+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 RC1 (FIREFOX_4_0rc1_BUILD1) + + * Switch to mozilla-2.0 + - update debian/mozclient/firefox.conf + * Only build the globalmenu extension on Natty and newer + - update debian/rules + - update debian/firefox-globalmenu.dirs.in + - update debian/mozconfig.in + * Define MOZ_DISTDIR throughout the build + - update debian/rules + - update debian/testsuite.mk + - update debian/firefox-mozsymbols.install.in + * Don't disable the crashreporter for DEB_BUILD_UNOFFICIAL builds. + - update debian/rules + * Automatically set DEB_BUILD_UNOFFICIAL for builds where we change + MOZ_APP_NAME + - update debian/rules + * Disable the crashreporter for nightlies + - update debian/rules + * Revert a previous change to add vendor preferences to distribution.ini. + The preferences there aren't read by the pref service, but loaded + and set later on, after profile-initial-state, which is too late to + have any effect on the selected locale + - add debian/vendor.js + - update debian/distribution.ini + - update debian/rules + - add debian/patches/install-vendor-prefs.patch + - update debian/patches/series + * Refresh patches + - update debian/patches/mozilla-kde.patch + * Fix build on PPC64 + - add debian/patches/64-bit-be-fix.patch + - add debian/patches/update-assembler-excl-arch-list.patch + - update debian/patches/series + + -- Chris Coulson <chris.coulson@canonical.com> Thu, 10 Mar 2011 02:25:21 +0000 + +firefox (4.0~b12+build1+nobinonly-0ubuntu3) natty; urgency=low + + * Land the Unity appmenu extension work. It's shipped in its own package, + although we build it from the Firefox source tree (LP: #637827) + * Fix build with system NSPR + - update debian/firefox-dev.install.in + * Don't trample on existing alternatives in the postinst script if + we detect Ubuntuzilla breakage + - update debian/firefox.postinst.in + + -- Chris Coulson <chris.coulson@canonical.com> Thu, 03 Mar 2011 16:18:56 +0000 + +firefox (4.0~b12+build1+nobinonly-0ubuntu2) natty; urgency=low + + * Fix some typos in the manpage + - update debian/firefox.1.in + * Fix up the mess left by Ubuntuzilla rather than leaving our official + package in a broken and inconsistent state, which ends up with users + reporting bugs to Launchpad and giving us a bad reputation. If + /usr/bin/firefox has been diverted and there is no /usr/bin/firefox + provided on the system, just do the job of whatever package it was that + broke the users install and remove the diversion for them. This should + hopefully stop the frequently reported bugs we get from Ubuntuzilla users + about /usr/bin/firefox being missing + - update debian/firefox.postinst.in + - Fixes LP: #512937, LP: #529136, LP: #552919, LP: #572733, LP: #574111, + LP: #599978, LP: #600271, LP: #610522, LP: #610756, LP: #610907, + LP: #612162, LP: #620400, LP: #623980, LP: #625014, LP: #630643, + LP: #635166, LP: #638342, LP: #641838, LP: #658828, LP: #668809, + LP: #672282, LP: #676239, LP: #707704, LP: #724090 + * Don't allow users to report bugs with apport-bug when /usr/bin/firefox + has been diverted + - update debian/firefox.py.in + * Don't build with --disable-elfhack on armel. It's been fixed now + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 25 Feb 2011 13:54:59 +0000 + +firefox (4.0~b12+build1+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 B12 (FIREFOX_4_0b12_BUILD1) + + * Add support for unpacked xpi's in the apport hook when reporting + the extensions installed + - update debian/apport/firefox.py.in + * Ensure the Apport hook can be tested properly without modification + - update debian/apport/firefox.py.in + * Add DEP-3 compliant headers to all of our patches, and drop the + bug numbers we carried in filenames. Some of the filenames are so long + that we get constant lintian warnings about long lines in the changelog + * Drop libxul-sdk-nspr.patch - it doesn't seem to be needed + - remove debian/patches/libxul-sdk-nspr.patch + - update debian/patches/series + * Move default-apps/firefox.xml to firefox-gnome-support when it is installed + - update debian/firefox.install.in + - update debian/firefox-gnome-support.install.in + * Fix menu-icon-not-in-xpm-format lintian error - generate the xpm at + build time + - update debian/rules + - update debian/control + * Quieten embedded-zlib and embedded-libjpeg lintian errors. These aren't + really errors, as we're intentionally embedding copies here + - update debian/rules + - add debian/firefox.lintian-overrides.in + * Fix some extended-description-is-empty lintian errors + - update debian/control + * Add a manpage to fix a lintian warning + - add debian/firefox.1.in + - add debian/firefox.manpages.in + * Fix build on armel, make sure we install $(INCDIR)/tremor + - update debian/firefox-dev.install.in + * Fix description of firefox-dev + - update debian/control + * Ship a pkgconfig file to enable browser plugins to build against + Firefox rather than xulrunner + - add debian/pkgconfig/firefox-plugin.pc.in + - update debian/firefox-dev.install.in + - update debian/rules + * Check for tee surface support when deciding whether to use tree or + system cairo + - update debian/rules + * Check the hunspell version is new enough in DEB_MIN_SYSDEPS=0 mode + - update debian/rules + - update debian/mozconfig.in + * Fix the permissions of some files once they are installed, rather than + directly in debian/. We weren't restoring them in clean anyway + - update debian/rules + * Quiten some image-in-usr-lib lintian warnings by adding them to + lintian-overrides. There's not much point in moving them to /usr/share + unless we split them out in to an arch-all firefox-common package + - update debian/firefox.lintian-overrides.in + * Don't call update-menus in postinst, and add #DEBHELPER# tokens where + those are missing + - update debian/firefox.postinst.in + - update debian/firefox.postrm.in + - update debian/firefox.preinst.in + * Fix desktop-entry-invalid-category lintian warnings - remove Internet + and Application categories, add GTK and GNOME + - update debian/firefox-beta.desktop.in + - update debian/firefox-final.desktop.in + - update debian/firefox-nightly.desktop.in + - update debian/firefox-unofficial.desktop.in + * Fix menu-icon-too-big lintian error, by downscaling the icon + - update debian/rules + * Fix package-contains-hardlink lintian warning in SDK. Replace it + with symbolic link + - update debian/rules + * Don't ship a vendor.js with our preferences in, as it requires a patch + in order to get it in to the distributed omni.jar. Instead, move our + vendor prefs in to distribution.ini + - remove debian/vendor.js + - update debian/distribution.ini + - update debian/rules + - remove debian/patches/install-ubuntu-prefs.patch + - update debian/patches/series + * Add "set -e" to launcher script as per Debian policy 10.4 + - update debian/firefox.sh.in + * Bump Standards-Version to 3.9.1 + - update debian/control + * Fix dbg-package-missing-depends lintian warning - add firefox-gnome-support + dependency to firefox-gnome-support-dbg transitional package + - update debian/control + * Fix LP: #717666 - firefox needs to replace kubuntu-firefox-installer + again. This got dropped accidentally during the package reorg after + dropping abrowser + - update debian/control + * Add some missing files to the SDK + - update debian/firefox-dev.install.in + * Refresh patches + - update debian/patches/mozilla-kde.patch + - update debian/patches/reload-new-plugins.patch + * Don't hardcode the browser executable to /usr/bin/firefox for the + default browser. Instead, apply a patch reviewed upstream to set + this to MOZ_APP_LAUNCHER + - drop debian/patches/system-path-default-browser.patch + - add debian/patches/use-MOZ_APP_LAUNCHER-for-launcher-exec.patch + - update debian/patches + * Fix the default browser check to use the new x-scheme-handler + mechanism via GIO, rather than the old GConf way + - add debian/patches/fix-nsGIOService.patch + - add debian/patches/default-browser-check-use-gio.patch + - update debian/patches/series + * Don't install $(INCDIR)/md + - update debian/firefox-dev.install.in + * The toolkit.networkmanager.disable preference has been removed. There is + now only a single pref for managing network link status, and this is off + by default. Re-enable that to restore the previous behaviour + - update debian/distribution.ini + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 25 Feb 2011 02:53:55 +0000 + +firefox (4.0~b11+build3+nobinonly-0ubuntu2) natty; urgency=low + + * Drop abrowser: + - remove debian/abrowser-branding.install.in + - remove debian/abrowser-branding.links.in + - remove debian/abrowser.desktop.in + - remove debian/abrowser.xml.in + - update debian/control + - remove debian/firefox-branding.install.in + - remove debian/firefox-branding.links.in + - update debian/firefox.install.in + - update debian/firefox.links.in + - rename debian/firefox-branding.menu.in => debian/firefox.menu.in + - update debian/firefox.sh.in + - update debian/mozclient/firefox.conf + - remove debian/patches/awesome_branding_updates.patch + - remove debian/patches/browser_branding.patch + - update debian/patches/series + - update debian/rules + - remove debian/vendor-abrowser.js.in + - rename debian/vendor-firefox.js.in => debian/vendor.js.in + * Don't install the example config file (firefox.cfg) - it's redundant + at the moment as there is no way to configure system preferences + - remove debian/firefox.cfg + - remove debian/firefox.docs.in + - update debian/rules + * Don't install presubj, this is for the Debian BTS + - remove debian/presubj + - update debian/firefox.install.in + * Don't install the default-apps xml file for gnome-control-center in + Natty. It's not needed any more + - update debian/rules + - update debian/firefox.install.in + * Ship an SDK again + - update debian/control + - add debian/firefox-dev.install.in + - add debian/firefox-dev.links.in + - add debian/patches/bzXXX_fix_sdk_bin_install.patch + - update debian/patches/series + - update debian/rules + * Build with --disable-elf-hack on armel and powerpc + - update debian/rules + - update debian/mozconfig.in + * Drop the general.useragent.vendor* preferences. These are obsolete + in Firefox 4 + - rename debian/vendor.js.in => debian/vendor.js + - update debian/vendor.js + - update debian/rules + * Update the apport hook to not choke on unpacked extensions, and install + it again. We still need to add support for unpacked xpi's though + - update debian/apport/firefox.py.in + - update debian/firefox.install.in + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 09 Feb 2011 13:57:51 +0000 + +firefox (4.0~b11+build3+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 B11 (FIREFOX_4_0b11_BUILD3) + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: + - update to allow owner read access to @{PROC}/[0-9]*/task/[0-9]*/stat + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Add support to the launcher for specifying a debugger + - update debian/firefox.sh.in + + -- Chris Coulson <chris.coulson@canonical.com> Mon, 07 Feb 2011 15:58:53 +0000 + +firefox (4.0~b10+build1+nobinonly-0ubuntu2) natty; urgency=low + + * Fix FTBFS - testpilot moved to distribution/extensions + - update debian/firefox.install.in + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 26 Jan 2011 11:28:03 +0000 + +firefox (4.0~b10+build1+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 B10 (FIREFOX_4_0b10_BUILD1) + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: + - allow access to defaults.list for all derivatives (LP: #664093) + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Refresh patches after landing of bmo: #624267 aka Crash on Ubuntu + [@ nsGNOMEShellService::SetDefaultBrowser ] + - update debian/patches/lp185622_system_path_default_browser.patch + * Refresh patches after landing of bmo: #624625 aka change home page of + Google search plugin to google.com + - update debian/patches/ubuntu_codes_google.patch + * Remove debian/remove.binonly.sh from package, it's not used anyway + (the one from mozilla-devscripts is used instead) + - remove debian/remove.binonly.sh + * Don't make DEB_ENABLE_THUMB2 configurable, this should just be totally + automatic + - update debian/rules + * Bump NSS and NSPR minimum versions to 3.12.9 and 4.8.7 respectively + - update debian/rules + * Clean unused variable from debian/rules + - update debian/rules + * Use the smaller crashreporter-symbols.zip after landing of bmo: #588129 aka + symbols.txt file missing from *.crashreporter-symbols.zip + - update debian/firefox-mozsymbols.install.in + * Run jstestbrowser and mochitest test suites + - update debian/testsuite.mk + * Fix LP: #690009 - GTK applications launched by firefox don't appear in + global menu. Don't unset UBUNTU_MENUPROXY + - update debian/firefox.sh.in + + -- Chris Coulson <chris.coulson@canonical.com> Tue, 25 Jan 2011 21:50:54 +0000 + +firefox (4.0~b9+build1+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0b9 (FIREFOX_4_0b9_BUILD1) + + [ Micah Gersten <micahg@ubuntu.com> ] + * Fix typo in rules file comment + - update debian/rules + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Refresh patches + - update debian/patches/mozilla-kde.patch + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 12 Jan 2011 09:00:16 -0600 + +firefox (4.0~b8+nobinonly-0ubuntu3) natty; urgency=low + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Fix LP: #694391 - firefox-branding (rather than firefox) should + replace kubuntu-firefox-installer + - update debian/control.pp + + [ Micah Gersten <micahg@ubuntu.com> ] + * Really fix LP: #696895 - FTBFS on armel; Add DEB_ENABLE_THUMB2 to + DEB_DEFINES so thumb2 is actually enabled; Thanks to Jani Monoses for the + fix + - update debian/rules + * Define the default for DEB_ENABLE_THUMB2 with the rest of the defaults + - update debian/rules + + -- Micah Gersten <micahg@ubuntu.com> Wed, 05 Jan 2011 13:50:56 -0600 + +firefox (4.0~b8+nobinonly-0ubuntu2) natty; urgency=low + + * fix LP: #696895 - FTBFS on armel; Add --enable-thumb2 to build for armv7; + Thanks to Jani Monoses for the fix + - update debian/mozconfig.in + - update debian/rules + + -- Micah Gersten <micahg@ubuntu.com> Mon, 03 Jan 2011 22:44:12 -0600 + +firefox (4.0~b8+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0b8 (FIREFOX_4_0b8_RELEASE) + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Add a hack to the launcher to handle being launched from an alternative, + which is a symlink to the launcher script, and breaks the current launch + mechanism. Also remove a useless stat() from the current script + - update debian/firefox.sh.in + * Re-add patch that got dropped to not remove and re-add search plugins + during upgrade + - add debian/patches/bz534663_attXXX_normalize_distribution_searchplugins.patch + - update debian/patches/series + * Move libmozgnome.so to the main package in common-binary-predeb-arch. + The previous method of deleting it from -gnome-support and copying it to + the main package from debian/tmp in each of the binary-predeb targets + meant that we were shipping an unstripped copy, which caused a lintian + error. This new method ensures we retain the stripped SO and we still + only move it after dh_shlibdeps has run + - update debian/rules + * Support debug builds. By setting "debug" in DEB_BUILD_OPTIONS, firefox + will build with --enable-debug and --disable-optimize + - update debian/rules + - update debian/mozconfig.in + * Really build with --disable-gnomevfs this time + - update debian/mozconfig.in + * Refresh patches after landing of bmo: 588410 aka Fix make install to + work with omnijar + - remove debian/patches/bz588410_fix_make_install_with_omnijar.patch + - update debian/patches/series + * Generate the en-US xpi at build time again for importing in to Launchpad + - update debian/rules + - update debian/translation-support/install.rdf.in + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * update debian/usr.bin.firefox.apparmor.10.10: + - deny write to /var/cache/fontconfig + - allow read to @{HOME}/.local/share/applications/mimeapps.list + - allow read to @{PROC}/[0-9]*/mountinfo (LP: #659450) + - allow read to /tmp/.X[0-9]*-lock + - deny read to @{HOME}/.local/share/recently-used.xbel + - deny execute of /usr/bin/gconftool-2 + - allow read to @{HOME}/.thumbnails/*/*.png + - allow read/write to @{HOME}/.gnome2/firefox*-bin-* + * update debian/usr.bin.firefox.apparmor.{9.04,10.04}: + - deny write to /var/cache/fontconfig + - allow read to @{PROC}/[0-9]*/mountinfo (LP: #659450) + - allow read to /tmp/.X[0-9]*-lock + - deny execute of /usr/bin/gconftool-2 + - remove extraneous @{HOME}/.config/ibus/bus/ + * add debian/usr.bin.firefox.apparmor.11.04: + - based on 10.10 + - remove redundant abstractions included by the gnome abstraction + (LP: #692406) + * debian/rules: updated for usr.bin.firefox.apparmor.11.04 + + [ Micah Gersten <micahg@ubuntu.com> ] + * Change xubuntu applications defaults list in natty apparmor profile; Path + changed in xubuntu-default-settings (11.04.0) + - update usr.bin.firefox.apparmor.11.04 + * fix LP: #694391 - Kubuntu Firefox Installer Fails; Add Replaces on + kubuntu-firefox-installer again in firefox-branding + - update debian/control + + [ Felix Geyer <debfx-pkg@fobos.de> ] + * Re-add KDE integration (LP: #684482) + - update debian/patches/mozilla-kde.patch + - update debian/patches/firefox-kde.patch + - update debian/patches/series + - update debian/rules + * Make firefox-4.0 suggest firefox-kde-support + - update debian/control + - update debian/control.pp + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 31 Dec 2010 15:27:46 +0000 + +firefox (4.0~b7+nobinonly-0ubuntu3) natty; urgency=low + + * Build with --enable-startup-notification again, this got dropped + in the 3.6 => 4.0 update + - update debian/mozconfig.in + * Ship the testpilot extension for beta as per the official builds, based + on the discussion on #developers. We achieve this by building with + --enable-update-channel=beta for the beta milestones only. The update + channel isn't used anywhere at runtime because we disable the updater. + This means that Ubuntu users can participate in testpilot user studies + in Natty + - update debian/rules + - update debian/firefox.install.in + - update debian/mozconfig.in + + -- Chris Coulson <chris.coulson@canonical.com> Mon, 22 Nov 2010 19:52:28 +0000 + +firefox (4.0~b7+nobinonly-0ubuntu2) natty; urgency=low + + * Fix the profile migrator to not hang when ~/.mozilla doesn't exist, and + other improvements + - update debian/migrator/xulapp-profilemigrator + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 19 Nov 2010 01:31:17 +0000 + +firefox (4.0~b7+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v4.0 B7 (FIREFOX_4_0b7_RELEASE) + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Don't build with -pie on Natty (LP: #663294) + - update debian/rules + * Update mozclient for mozilla-central + - update debian/mozclient/firefox.conf + - update debian/mozclient/firefox.mk + * Auto-generate Debhelper files at build time, using the Mozilla + text preprocessor. This makes it easier to maintain branches for + different versions (because we'll avoid having different filenames for + each version, which makes merging really difficult). We can also use + standard preprocessor directives for our different build options, + which means we drop a lot of logic from debian/rules + - rename debian/abrowser.desktop => debian/abrowser.desktop.in + - add debian/abrowser-branding.install.in + - add debian/abrowser-branding.links.in + - add debian/firefox-branding.install.in + - add debian/firefox-branding.links.in + - rename debian/apport/firefox.py => debian/apport/firefox.py.in + - rename debian/firefox-final.desktop => debian/firefox-final.desktop.in + - rename debian/firefox-gnome-support.install => + debian/firefox-gnome-support.install.in + - rename debian/firefox.dirs => debian/firefox.dirs.in + - rename debian/firefox.install => debian/firefox.install.in + - rename debian/firefox.links => debian/firefox.links.in + - rename debian/firefox.menu => debian/firefox.menu.in + - rename debian/firefox.postinst.in => debian/firefox.postinst.in + - rename debian/firefox.postrm.in => debian/firefox.postrm.in + - rename debian/firefox.preinst.in => debian/firefox.preinst.in + - rename debian/firefox.prerm.in => debian/firefox.prerm.in + - rename debian/firefox.xml => debian/firefox.xml.in + - updated debian/abrowser.desktop.in + - updated debian/firefox-final.desktop.in + - updated debian/firefox-gnome-support.install.in + - updated debian/firefox.dirs.in + - updated debian/firefox.install.in + - updated debian/firefox.links.in + - updated debian/firefox.menu.in + - updated debian/firefox.postinst.in + - updated debian/firefox.postrm.in + - updated debian/firefox.preinst.in + - updated debian/firefox.prerm.in + - updated deibna/firefox.xml.in + - updated debian/rules + - add debian/firefox-mozsymbols.install.in + * Simplify generating the Apport blacklist file to remove a superfluous + debian/rules target + - rename debian/apport/blacklist => debian/apport/firefox.in + - update debian/rules + * Auto-generate debian/control in the clean target + - add debian/control.pp + - update debian/rules + * Drop the ability to disable patches on a per-release basis. This adds + additional complexity, and we're not really using it at the moment. + We can always add it back again if we need it + - remove debian/disable-patches.sh + - update debian/rules + - remove debian/patches/series-disable-patches.8.04 + * Rework the branding selection logic so that we automatically use + the nightly branding for nightly builds, unofficial branding for + alpha milestones, and official branding for beta, RC's and final. + Auto-populate the branding names in the desktop files rather than + hard-coding them, and add a special beta desktop file + - add debian/firefox-beta.desktop.in + - rename debian/firefox-minefield.desktop => + debian/firefox-nightly.desktop.in + - rename debian/firefox-namaroka.desktop => + debian/firefox-unofficial.desktop.in + - update debian/rules + * Drop the update-notifier restart required hook. Instead, we rely on + the ubufox restart required banner inside the browser, rather than having + 2 notification mechanisms + - remove debian/firefox-restart-required.update-notifier + - update debian/firefox.postinst.in + - update debian/firefox.prerm.in + * Rewrite the launcher script to not wrap around the upstream start + scripts, but start the Firefox binary directly. The upstream start scripts + contain a lot of complexity for dealing with things that we don't need to + worry about, and are quite slow. Also, add in the hooks for the new + profile migrator + - update debian/firefox.sh.in + * Replace the old profile migrator. The previous one relied on hard-coded + values and fragile shell script that isn't really scalable enough + now that stable Ubuntu releases see new major Firefox versions. The + new profile migrator doesn't require any hard-coded values, and should + be lower maintenance + - add debian/migrator/xulapp-profilemigrator + - remove debian/migrator/main.c + - update debian/rules + - update debian/firefox.sh.in + - update debian/control.pp + * Build with "make -f client.mk" and using a mozconfig, rather than the + autoconf/configure/make steps used previously. The client.mk contains the + sequencing for doing PGO builds + - update debian/firefox-mozsymbols.install.in + - add debian/mozconfig.in + - update debian/rules + * Add support for building with PGO. Add a build option (DEB_BUILD_PGO) + which will run the build with make -f client.mk profiledbuild. This is + off by default. + - update debian/rules + - update debian/mozconfig.in + * Run the Mozilla test suite at build time. Currently, we run the following + targets: check, xpcshell-tests, reftest and crashtest. Test-suite failures won't + break the build just yet + - add debian/testsuite.mk + - update debian/rules + - update debian/control.pp + * Tidy up the vendor preferences + - remove debian/ubuntu-useragent.js.tmpl + - rename debian/firefox.js => debian/vendor-firefox.js.in + - rename debian/ubuntu-abrowser.js.tmpl => debian/vendor-abrowser.js.in + - update debian/vendor-firefox.js.in + - update debian/vendor-abrowser.js.in + - update debian/rules + * Don't touch .autoreg on upgrade. This isn't necessary with the XPCOM changes + in Gecko 2.0 + - update debian/firefox.postinst.in + - remote debian/firefox-gnome-support.postinst.in + * Disable gnomevfs support on >= 11.04 (LP: #661287) + - update debian/rules + - update debian/mozconfig.in + - update debian/firefox-gnome-support.install.in + * Add x-scheme-handler magic to desktop files + - update debian/firefox.desktop.in + - update debian/firefox-beta.desktop.in + - update debian/firefox-nightly.desktop.in + - update debian/firefox-unofficial.desktop.in + * Dropped obsolete / not-needed patches + - remove debian/patches/add_syspref_dir.patch + - remove debian/patches/bz386904_config_rules_install_dist_files.patch + - remove bz534663_attXXX_normalize_distribution_searchplugins.patch + - remove debian/patches/bz591331_att469858_breakpad_allow_ptrace.patch + - remove debian/patches/ubuntu_no_app_updates.patch + - update debian/patches/series + * Update build-depends for Firefox 4.0 + - update debian/control.pp + * Rebased patches for Firefox 4.0 + - update browser_branding.patch + - update bz460917_att350845_reload_new_plugins.patch + - update bz467738_att351145_lockPref_everywhere.patch + - update bz515232_att399338_distro_locale_searchplugins.patch + - update bzXXX_libxul_sdk_nspr.patch + - udpate bzXXX_plugin_for_mimetype_pref.patch + - update lp185622_system_path_default_browser.patch + - update lp512615_cairo_lcd_filter.patch + - update lp548866_bz467766_att351173-dont-reset-user-prefs-on-upgrade.patch + - update ubuntu_bookmarks.patch + * Disable KDE integration temporarily until I've reviewed the updated patches + - update debian/patches/series + * Install top-level chrome.manifest after landing of (bmo: 579178) aka + single-chrome-manifest + - update debian/firefox.install.in + * Add trademarkInfo key to the brand.dtd file in the awesome-branding + to fix an issue with Help->About not working. Also drop the unneeded + overrides from the manifest file and rename the patch to reflect it's + extended scope. Eventually, this patch should be merged in to the + awesome-branding bzr branch + - rename debian/patches/awesome_branding_chrome_rename.patch => + debian/patches/awesome_branding_updates.patch + - update debian/patches/awesome_branding_updates.patch + - update debian/patches/series + * Install our vendor preferences in to dist/bin before running stage-package. + This seems to be the only way to ensure that they are included in the + omni.jar. This means we need to patch the upstream package-manifest to + include the extra file + - add debian/patches/install_ubuntu_prefs.patch + - update debian/rules + * Clean up the files in /etc/firefox on upgrade + - update debian/firefox.preinst.in + * Support builds suitable for valgrind, by building with + DEB_MOZ_VALGRIND=1. This will automatically pick the right optimisations + and build flags + - update debian/rules + - update debian/mozconfig.in + * Fix make install with --enable-chrome-format=omni. Add patch to create + the omni.jar file after running stage-package. This has already + landed on mozilla-central, so we can drop again at beta 8 + - add debian/patches/bz588410_fix_make_install_with_omnijar.patch + - update debian/patches/series + * Drop other unused cruft from the package + - remove debian/debsearch.src + - remove debian/firefox.png.uu + - remove debian/debsearch.gif.uu + - update debian/rules + * Build-depend on yasm + - update debian/control + * Fix the profile migrator to not crash on profiles where + 'LastVersion=Safe Mode' (LP: #674607) + - update debian/migrator/xulapp-profilemigrator + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * debian/usr.bin.firefox*: + - allow .{firefox,mozilla} instead of just .mozilla (LP: #624435) + - allow owner write to ~/.config/ibus/bus/ + - adjust apparmor profile for latest sun-java6 plugin (LP: #633369) + + [ Micah Gersten <micahg@ubuntu.com> ] + * Drop patch after upstream landing of (bmo: 551152) aka Symlinked components + break everything + - drop debian/patches/lp518422.patch + - update debian/patches/series + * Add mesa-common-dev to build-depends after landing of configure test aka + (bmo: 517566) which is for WebGL aka (bmo: 516213) + - update debian/control + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 17 Nov 2010 21:35:57 +0000 + +firefox (3.6.12+build1+nobinonly-0ubuntu0.10.10.1) maverick-security; urgency=low + + * New upstream release v3.6.12 (FIREFOX_3_6_12_BUILD1) + - see USN-1011-1 + + [ Jamie Strandboge ] + * AppArmor: + - allow mmap for temporary files that we own (LP: #662918) + - add owner read to environ and auxv in @{PROC} as well as + /etc/lsb-release read and expr ix for the crash reporter + - update path for Xubuntu default settings (LP: #664093) + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 27 Oct 2010 08:31:06 -0400 + +firefox (3.6.11+build3+nobinonly-0ubuntu0.10.10.1) maverick-security; urgency=low + + * New upstream release v3.6.11 (FIREFOX_3_6_11_BUILD3) + - see USN-997-1 + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: + - fix for Google Gears (LP: #644976) + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Refresh patches after landing of (bmo: 327323) aka Can't "Open with" files + that are send as application/octet-stream (or other "unknown to firefox" + mime types) + - update debian/patches/mozilla-kde.patch + - update debian/patches/series + - remove debian/patches/bz327323_att471859_lp239952_launch_from_extension.patch + * Bump minimum system NSS to 3.12.8 after landing of (bmo: 600104) aka + Bump minimum required version for system NSS to 3.12.8 + - update debian/rules + * Bump minimum system NSPR to 4.8.6 after landing of (bmo: 567620) aka + Bump minimum required version for system NSPR to 4.8.6 + - update debian/rules + * Bump minimum version of sqlite to 3.7.1 after landing of (bmo: 583611) aka + Upgrade to SQLite 3.7.1 + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 13 Oct 2010 12:23:34 +0100 + +firefox (3.6.10+build1+nobinonly-0ubuntu3) maverick; urgency=low + + * Fix LP: #239952 - the associated helper application does not exist. + Where a launcher doesn't exist for a particular mimetype, use the file + extension instead + - add debian/patches/bz327323_att471859_lp239952_launch_from_extension.patch + - update debian/patches/series + + -- Chris Coulson <chris.coulson@canonical.com> Tue, 21 Sep 2010 23:09:29 +0100 + +firefox (3.6.10+build1+nobinonly-0ubuntu2) maverick; urgency=low + + * Add the following .desktop translations; Thanks to David Planella for + organizing the translations and to those who contributed the translations + - update debian/firefox-final.desktop + + Asturian + + Croatian + + Galician + + German + + Hebrew + + Uyghur + * Update the Italian Name for Firefox + - update debian/firefox-final.desktop + + -- Micah Gersten <micahg@ubuntu.com> Wed, 15 Sep 2010 22:51:30 -0500 + +firefox (3.6.10+build1+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.10 (FIREFOX_3_6_10_BUILD1) + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Fix "ISO C++ forbids braced-groups within expressions" error on + GCC < 4.4 (which is also a warning on GCC >= 4.4) + - update debian/patches/bz591331_att469858_breakpad_allow_ptrace.patch + * Blacklist plugin-container in Apport + - update debian/apport/blacklist + * Fix LP: #637434 - components.list is not installed + - update debian/firefox.install + * De-fuzz patches + - update debian/patches/mozilla-kde.patch + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * adjust apparmor profile for non-maverick dailies for latest sun-java6 + plugin (LP: #633369) + * ignore writes to /var/cache/fontconfig for 10.10 + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 15 Sep 2010 17:50:08 +0100 + +firefox (3.6.9+build1+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.9 build1 (FIREFOX_3_6_9_BUILD1) + + * Drop patch after landing of (bmo: 569836) aka Build fails on + Fedora Core 13 + - remove debian/patches/ftbfs_crashreporter.patch + - update debian/patches/series + * Don't suggest the transitional kmozillahelper now we've branched + for Maverick. This stops it from being displayed as an addon + for Firefox in software-center + - update debian/control + * Don't suggest the transitional latex-xft-fonts. Use ttf-lyx + instead + - update debian/control + * Fix LP: #623509 - Firefox is creating empty crash reports due to + kernel ptrace hardening + - add debian/patches/bz591331_att469858_breakpad_allow_ptrace.patch + - update debian/patches/series + * Build with MOZILLA_OFFICIAL=1 again and in turn, enable the crashreporter + - update debian/rules + * Really fix LP: #605336 - "Report Broken Web Site" option missing - make + sure that we install the reporter chrome + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 27 Aug 2010 20:14:45 +0100 + +firefox (3.6.8+build1+nobinonly-0ubuntu3) maverick; urgency=low + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Fix LP: #605336 - "Report Broken Web Site" option missing - don't + disable the reporter extension when building with DEB_MIN_SYSDEPS=1 + - update debian/rules + * Add DEB_HOST_GNU_CPU to MOZ_SYMBOLS_EXTRA_BUILDID to avoid the + possibility of filename collisions on the server if our builds + happen to run at the same time + - update debian/rules + * Build without MOZILLA_OFFICIAL=1 for beta until LP #623509 is fixed, + so we're not sending empty crash reports + - update debian/rules + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * add debian/usr.bin.firefox.apparmor.10.10 (LP: #565756, LP: #592121) + * debian/rules: updated for usr.bin.firefox.apparmor.10.10 + * debian/firefox.postinst.in: + - remove old code for the dailies + - update for local include file + - update for addons include file + - use '-T -W' with apparmor_parser to pull in abstraction updates + * debian/firefox.postrm.in: + - update for local include file + - update for addons include file + + [ Micah Gersten <micahg@ubuntu.com> ] + * fix LP: #559154 - KDE users installing Firefox from archive don't know + about kmozillahelper; kmozillahelper was renamed to firefox-kde-support + so update Suggests + - update debian/control + + -- Chris Coulson <chris.coulson@canonical.com> Thu, 26 Aug 2010 00:09:49 +0100 + +firefox (3.6.8+build1+nobinonly-0ubuntu2) maverick; urgency=low + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Provide iceweasel + - update debian/control + * Really build with MOZILLA_OFFICIAL=1 this time, so that the crash + reporter is actually enabled + - update debian/rules + * Only enable the crashreporter and build the Breakpad symbols on i386, + amd64 and armel + - update debian/control + - update debian/rules + * Blacklist Firefox in Apport on architectures where we use the Mozilla + crash reporter + - add debian/apport/blacklist + - update debian/rules + * Drop the DEBIAN_META_NAME stuff - we don't need this now we are always + using unversioned sources for the official in-archive version. This + simplifies the wrapper script a little + - update debian/rules + - update debian/firefox.sh.in + * Rework how abrowser is launched a little. Drop an unnecessary patch + and ship both abrowser and abrowser-bin files in LIBDIR. With the + DEBIAN_META_NAME bits gone, the wrapper script will always search for + $LIBDIR/abrowser if you launch /usr/bin/abrowser. From there, the Mozilla + scripts already handle this properly + - update debian/firefox.sh.in + - update debian/rules + - remove debian/patches/abrowser_run_mozilla.patch + - update debian/patches/series + * Don't handle launching GDB in our wrapper script, run-mozilla.sh + already does all this. Just make sure that we pass the right arguments + - update debian/firefox.sh.in + * Fix LP: #613049 - Default website link in Maverick firefox is invalid + - update debian/patches/ubuntu_bookmarks.patch + * Refresh favicon's in the default bookmark collection, so they display + the latest Ubuntu branding on a fresh profile + - update debian/patches/ubuntu_bookmarks.patch + * Drop the mips-specific binutils build-depend - we don't even build + on this arch + - update debian/control + * Only try to install the crashreporter binary when building with the + bundled xulrunner library + - update debian/firefox.install + - update debian/rules + * Fix LP: #615889 - Add Ubuntu One bookmark to Firefox fresh install + - update debian/patches/ubuntu_bookmarks.patch + * Fix LP: #612185 - Apport leaks the secret name of the Firefox + profile directory + - update debian/apport/firefox.py + * Fix LP: #614190 - Chinese update for firefox.desktop. Thanks to + Cheng-Chia Tseng and Aron Xu + - update debian/firefox-final.desktop + * Fix LP: #559083 - Incomplete Vietnamese translation for items listed + in desktop main menu. Thanks to Vu Do Quynh for the translations + - update debian/firefox-final.desktop + + [ Igor Zubarev <igor.zubarev@gmail.com> ] + * Fix LP: #569762 - Add Russian translations to desktop files + - update debian/abrowser.desktop + - update debian/firefox-final.desktop + + -- Chris Coulson <chris.coulson@canonical.com> Thu, 12 Aug 2010 21:52:18 +0100 + +firefox (3.6.8+build1+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.8build1 (FIREFOX_3_6_8_BUILD1) + + [ Alexander Sack <asac@linaro.org> ] + * add support for mozilla breakpad symbols and in turn enable + crashreporter + - add debian/patches/ftbfs_crashreporter.patch + - update debian/patches/series + - update debian/control + - update debian/rules + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Drop all the transitional packages and conflicts/replaces cruft built + up from the pre-LTS releases + - update debian/control + * Install the crash reporter + - update debian/firefox.install + * Build with MOZILLA_OFFICIAL=1. This is required to enable the crash + reporter in application.ini + - update debian/rules + + [ Micah Gersten <micahg@ubuntu.com> ] + * Add build depends on libcurl4-openssl-dev for building the crash reporter + - update debian/control + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 23 Jul 2010 16:40:54 +0200 + +firefox (3.6.7+build2+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.7build2 (FIREFOX_3_6_7_BUILD2) + + * Make it possible to disable patches on a per-release basis. This + makes it easier to share packaging branches across releases, and makes + it possible to disable the patches which make the Hardy daily builds fail + - update debian/rules + - add debian/disable-patches.sh + - add debian/patches/series-disable-patches.8.04 + * Make the debian/usr.bin.firefox.apparmor.in target a dependency of + pre-build rather than makebuilddir. Whilst this doesn't really change + much, it is technically slightly more correct (makebuilddir is just for + creating the build directory, whilst pre-build is for doing all the + preparation work) + - update debian/rules + * Merge the debian/firefox.sh target in to the match-all target, this + just de-clutters things a little + - update debian/rules + * Remove debian/stamp-autotools-files-moz in the clean target + - update debian/rules + * Drop the empty firefox-dev and firefox-*-dev transitional packages. We + didn't install anything in to firefox-dev, and we can reintroduce it in + the future if anything in the archive depends on the browser specific + interfaces + - update debian/control + - remove debian/firefox-dev.install + - remove debian/firefox-dev.links + * Fix some Lintian warnings + - add debian/README.source + - update debian/control + * Make debian/migrator/ffox-beta-profile-migration-dialog a dependency of + post-patches rather than pre-build. This avoids the need for having to + build the profile migrator when unpacking the source tarball + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Thu, 15 Jul 2010 23:51:25 +0200 + +firefox (3.6.7+build1+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.7 (FIREFOX_3_6_7_BUILD1) + * Set the StartupWMClass to the same value as the WM_CLASS property on the + browser window. This makes startup notification work for all branding + and also makes it work properly with Docky + - update debian/firefox-minefield.desktop + - update debian/firefox-namoroka.desktop + - update debian/abrowser.desktop + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 09 Jul 2010 12:16:23 +0100 + +firefox (3.6.6+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.6 (FIREFOX_3_6_6_RELEASE) + + * fix LP: #590450 - Firefox should use the hunspell directory for dictionaries + - update debian/rules + + -- Micah Gersten <micahg@ubuntu.com> Sun, 27 Jun 2010 01:30:09 -0500 + +firefox (3.6.4+build7+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.6.4 (FIREFOX_3_6_4_BUILD7) + + [ Micah Gersten <micahg@ubuntu.com> ] + * Rebase patch after upstream landing of Lorentz branch + - update debian/patches/bz460917_att350845_reload_new_plugins.patch + * Drop patch after upstream landing of (bmo: 544481) aka + Build fails on Ubuntu Lucid Lynx using 'dash' shell + - drop debian/patches/fix-build-glitch.patch + - update debian/patches/series + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: + - allow ixr access to /usr/lib/xulrunner-*/plugin-container for xul builds + - finetune Adobe Reader access (LP: #570337) + - silence noisy denial on /boot/vmlinuz* and /boot/initrd.img* caused by + readlinking symlinks in / (LP: #571761) + - allow 'm' for java's 'classes.jsa' file (LP: #574459) + - transition to firefox_java on Sun's jre/bin/java_vm too (LP: #570128) + - allow Uxr for gnome-codec-install (LP: #577097) + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Rebase patches for 3.6.4 release + - update debian/patches/firefox-kde.patch + - update debian/patches/mozilla-kde.patch + - update debian/patches/add_syspref_dir.patch + * Build with --enable-ipc on amd64, i386 and armel. These are the only + architectures where OOPP is supported. Build with --disable-ipc on all + other architectures + - update debian/rules + * Fix LP: #513887 - Install the plugin-container binary for OOPP support + when building with --enable-ipc + - update debian/rules + * Fix build failure with fontconfig 2.5 + - update debian/patches/lp512615_cairo_lcd_filter.patch + * Fix LP: #469752 - KDE/Gnome startup notification not disappearing + when app window is up - build with --enable-startup-notification + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Wed, 23 Jun 2010 15:31:44 +0100 + +firefox (3.6.3+nobinonly-0ubuntu4) lucid; urgency=low + + * fix LP: #443147 - Firefox on ARM inappropriately adds scroll bars to many + frames and images; this is a workaround that forces -O2 for the whole + mozilla tree build on armel; the scroll bar only manifests on lucid toolchain + when using the upstream optimization flag mix + - update debian/rules + + -- Alexander Sack <asac@ubuntu.com> Wed, 21 Apr 2010 17:14:28 +0200 + +firefox (3.6.3+nobinonly-0ubuntu3) lucid; urgency=low + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: add read access to /etc/xul-ext/**, now needed by adblock + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Create checksums for NSS libraries to make FIPS mode work (LP: #559881) + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Tue, 13 Apr 2010 22:20:28 +0100 + +firefox (3.6.3+nobinonly-0ubuntu2) lucid; urgency=low + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Fix LP: #526291 - abrowser menu entry has Firefox icon. After changing the + branding in common-post-build-arch, ensure that the firefox icons in + dist/bin/icons are replaced with the abrowser icons + - update debian/rules + * Fix LP: #408238 - does not provide gnome-www-browser + - update debian/firefox-gnome-support.postinst.in + - add debian/firefox-gnome-support.prerm.in + - update debian/rules + * Update Google and Yahoo! search URL's + - add debian/patches/ubuntu_codes_google.patch + - update debian/patches/series + - update debian/firefox.js + * Fix LP: #520166 - Restore ability to set a preferred plugin for a given + mime-type, which regressed since we are not using the system xulrunner + - add debian/patches/bzXXX_plugin_for_mimetype_pref.patch + - update debian/patches/series + * Fix LP: #557640 - nrf-003 testcase failed Default "Welcome to Ubuntu" page + doesn't appear without connectivity - re-enable the NetworkManager + integration + - update debian/firefox.js + * Fix LP: #541951 - Firefox 3.6 does not honour lockPref - resurrect the + patch used in xulrunner to reimplement this + - add debian/patches/bz467738_att351145_lockPref_everywhere.patch + - update debian/patches/series + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: + - add apturl (LP: #558432) + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 09 Apr 2010 12:29:53 +0100 + +firefox (3.6.3+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.6.3 (FIREFOX_3_6_3_RELEASE) + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor: + - add leafpad and mousepad text editors for XFCE users (LP: #543587) + + [ Micah Gersten <micahg@ubuntu.com> ] + * fix LP: #548866 - forgets middlemouse.contentLoadURL on upgrade; add patch + from xulrunner-1.9.1 + - update debian/patches/series + - add debian/patches/lp548866_bz467766_att351173-dont-reset-user-prefs-on-upgrade.patch + + [ Chris Coulson <chris.coulson@canonical.com> ] + * Add a cairo LCD filter to use Freetype LCD colour filtering features, + based on the same patch applied to our system cairo package. Thanks to + Marc Deslauriers for helping to make this work. (LP: #512615) + - add debian/patches/lp512615_cairo_lcd_filter.patch + - update debian/patches/series + * Fix LP: #546490 - "Firefox will not start in debug mode" + - update debian/firefox.sh.in + * Fix a build issue installing ubuntu-abrowser.js when building with + DEB_MIN_SYSDEPS=0 + - update debian/rules + + -- Chris Coulson <chris.coulson@canonical.com> Fri, 02 Apr 2010 16:44:02 +0100 + +firefox (3.6.2+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.6.2 (FIREFOX_3_6_2_RELEASE) + + [ Felix Geyer <debfx-pkg@fobos.de> ] + * Rebase mozilla-kde.patch for 3.6.2 + - update debian/patches/mozilla-kde.patch + + [ Jamie Strandboge <jamie@ubuntu.com > ] + * AppArmor profile cleanup for Lucid users: + - remove sys_ptrace now that the kernel DTRT (LP: #498317) + - don't use @{PROC}/[0-9]*/mounts or /etc/gnome/defaults.list (part of + gnome abstraction now) + - don't use @{PROC}/[0-9]*/maps (part of base abstraction) + - don't use /etc/sound (part of audio abstraction) + - use 'owner' for Desktop and all dot files and directories in @{HOME} + - use ubuntu-bittorrent-clients abstraction + - use ubuntu-media-players abstraction + - allow access to xubuntu default app list (LP: #500231) + - add ark and xarchiver for KDE and XFCE archive managers + - add thunar for XFCE + - add editors supported by It's All Text, thanks to James Troup + (LP: #507711) + - allow RealPlayer plugin and access to /usr/local/lib (LP: #501822) + - allow Ux for scim and scim-bridge + - allow ix for gst-plugin-scanner + * ship different AppArmor profiles for different releases: + - move usr.bin.firefox.apparmor.in to usr.bin.firefox.apparmor.9.10 + - add usr.bin.firefox.apparmor.10.04 + - debian/rules: ship AppArmor profile based on release: + + add DISTRIB, DISTRIB_VERSION_MAJOR and DISTRIB_VERSION_MINOR + + ship 9.10 profile for Karmic and under and 10.04 profile for Lucid + and later + * update AppArmor profile to transition to a java child profile rather + than Ux. This has the added benefit of restricting java a bit more than + before. This is needed since the java plugins are expecting certain + environment variables to be present, which get scrubbed with Ux. 'cx' + doesn't remove these from the environment but allows for better profiling + over 'ux'. Thanks to John Johansen for discussion and idea. (LP: #484148) + + [ Alexander Sack <asac@ubuntu.com> ] + * fix LP: #518422 - Firefox does not start with certain addons installed; + don't normalize paths for xpti.dat + - add debian/patches/lp518422.patch + - update debian/series + + [ Micah Gersten <micahg@ubuntu.com> ] + * Bump minimum system NSS to 3.12.6 after upstream landing of (bmo: 545755) + aka Update Mozilla stable branches to NSS 3.12.6 and minimal support for + RFC 5746 + - update debian/rules + * Really fix FTBFS for sparc; Add configure flag to correct variable + - update debian/rules + + -- Micah Gersten <micahg@ubuntu.com> Wed, 24 Mar 2010 01:17:46 -0500 + +firefox (3.6+nobinonly-0ubuntu6) lucid; urgency=low + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * adjust AppArmor profile to allow scim + + [ Felix Geyer <debfx-pkg@fobos.de>] + * Apply KDE integration from openSUSE (LP: #494067) + - add debian/patches/mozilla-kde.patch + - add debian/patches/firefox-kde.patch + - update debian/patches/series + - update debian/rules + * Add kmozillahelper to suggests of firefox + - update debian/control + + [ Kees Cook <kees@ubuntu.com> ] + * fix LP: #531581 - cannot report bugs or crashes when profile names contains + spaces; concatenate non alnum characters in profile name for apport use + - update debian/apport/firefox.py + + [ Micah Gersten <micahg@ubuntu.com> ] + * fix LP: #531895 - Firefox isn't in Ubuntu Software Center's "Internet" or + "Web Browsers" sections; Add Internet and WebBrowser Categories to .desktop + - update debian/abrowser.desktop + - update debian/firefox-final.desktop + - update debian/firefox-namoroka.desktop + * fix FTBFS on sparc; disable jit on sparc until bmo 502369 is fixable + - update debian/rules + + -- Micah Gersten <micahg@ubuntu.com> Sat, 06 Mar 2010 23:47:38 -0600 + +firefox (3.6+nobinonly-0ubuntu5) lucid; urgency=low + + [ Micah Gersten <micahg@ubuntu.com> ] + * fix LP: #514108 - Cookie Accept Dialog Not Shown on Firefox 3.6; install chrome/comm.* libraries + - update debian/rules + * fix LP: #525181 - "Make a Support Request to the Ubuntu Community" bookmark + woefully out of date; update bookmark + - update debian/patches/ubuntu_bookmarks.patch + + [ Felix Geyer <debfx-pkg@fobos.de> ] + * fix LP: #396786 - Default theme missing in Firefox 3.6 + - update debian/firefox.install + + [ Alexander Sack <asac@ubuntu.com> ] + * use preference way to set yahoo search code 'chr-ubuntu-os' rather + than patching source + - update debian/firefox.js + - delete debian/patches/ubuntu_codes_yahoo.patch + - update debian/patches/series + + -- Alexander Sack <asac@ubuntu.com> Mon, 22 Feb 2010 12:53:08 +0100 + +firefox (3.6+nobinonly-0ubuntu4) lucid; urgency=low + + * fix LP: #523569 - No search providers or default search provider + in 3.6+nobinonly-0ubuntu3; fix syntax issue in bugfix for bmo 534663 + - update debian/patches/bz534663_attXXX_normalize_distribution_searchplugins.patch + + -- Alexander Sack <asac@ubuntu.com> Thu, 18 Feb 2010 03:16:19 +0100 + +firefox (3.6+nobinonly-0ubuntu3) lucid; urgency=low + + [ Alexander Sack <asac@ubuntu.com> ] + * fix LP: #520963 - sysprefs not honoured since firefox is built without + system xulrunner; resurrect the patch we ship in xulrunner + - add debian/patches/add_syspref_dir.patch + - update debian/patches/series + * fix LP: #520682 - Only search provider is Ask.com; set en-US as + distribution.searchplugins.defaultLocale in syspref firefox.js + - update debian/firefox.js + * fix LP: #428306 - default search engines are removed and readded (keywords + wiped) with upgrade + - add debian/patches/bz534663_attXXX_normalize_distribution_searchplugins.patch + - update debian/patches/series + * add ubuntu fr code for yahoo (en-US) searchplugin + - add debian/patches/ubuntu_codes_yahoo.patch + - update debian/patches/series + + [ Micah Gersten <micahg@ubuntu.com> ] + * Rename apport hook to firefox.py (unversioned) + - rename debian/apport/firefox-3.6.py => debian/apport/firefox.py + * Update apport hook to pull from unversioned profile directory + * Update apport hook to report on non-distro package and tag PPA + * Collect version info for firefox/abrowser packages + - update debian/apport/firefox.py + * Install apport hook again + - update debian/firefox.install + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * debian/firefox.postinst.in: move aside the old firefox-3.5 AppArmor + profile + + -- Alexander Sack <asac@ubuntu.com> Wed, 17 Feb 2010 21:48:12 +0100 + +firefox (3.6+nobinonly-0ubuntu2) lucid; urgency=low + + [ Alexander Sack <asac@ubuntu.com> ] + * fix firefox-3.5-gnome-support transitional package typo; depend + on firefox-gnome-support instead of firefox-3.5-gnome-support + - update debian/control + + [ Michael Vogt <mvo@ubuntu.com> ] + * add missing Replace: firefox-3.0 for the firefox-branding package + (LP: #518747). This fixes a upgrade issues from hardy to lucid. + - update debian/control + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * debian/firefox.postinst.in: + - remove AppArmor profile from dailies on upgrades (LP: #512470) + - remove extraneous -T -W from apparmor_parser + - check for disabled profile ourselves, since apparmor_parser on Ubuntu + 9.04 and earlier didn't honor the disable/ directory + * debian/firefox.preinst.in: unconditionally disable the AppArmor profile + on Ubuntu 9.04 and earlier, since it requires abstractions found only + in 9.10 + * debian/control: have firefox Depends on lsb-release (needed in preinst) + * debian/usr.bin.firefox.apparmor.in: + - adjustments in rules for name change (LP: #513160) + - allow /usr/bin/tr + + [ Micah Gersten <micahg@ubuntu.com> ] + * Add replaces to firefox-branding on kubuntu-firefox-installer (LP: #439431) + - update debian/control + * Add firefox 3 transitional packages and Replaces/Provides/Conflicts + (LP: #513074) + - update debian/control + * Don't install firefox.xml for adding entries to + gnome-default-applications-properties (LP: #519606) + - update debian/control + * Update rosetta template name to firefox-3.6 + - update debian/translation-support/install.rdf.in + * Update EM_TRANSLATION variables for firefox 3.6 + - update debian/rules + + -- Micah Gersten <micahg@ubuntu.com> Wed, 10 Feb 2010 14:52:12 -0600 + +firefox (3.6+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.6 (FIREFOX_3_6_RELEASE) + + fix LP: #449744 - Firefox crashes when attempting to load Firebug 1.5 + + fix LP: #66015 - Duplicate spell checking dictionaries for every entry + + fix LP: #132938 - tooltips dont work in sidebar + + fix LP: #195698 - Password asked separately for each tab that requires it + (proxy) + + fix LP: #239462 - tooltips disappear too fast + + fix LP: #385816 - Resize corner grab stays visible after maximize + + fix LP: #429476 - firefox crash on javascript page + + fix LP: #432876 - Icons missing in Firefox searchbox drop down list + + fix LP: #486284 - maxlength on input box can be overriden by autocomplete + + fix LP: #501393 - Integrate Firefox notifications with notify-osd bling + + [ H. Montoliu <hmontoliu@ubuntu.com> ] + * fix LP: #361052 - firefox apport hook fails to retrieve pluginreg.dat file + * update debian/apport/firefox-3.6.py - removed unused code and minor refactoring. + + [ Fabien Tassin <fta@ubuntu.com> ] + * Update the location of the upsteam branch now that 3.6/Namoroka has its own + branch, and trunk moved on to 3.7 + - update debian/mozclient/firefox-3.6.conf + * Use Namoroka instead of Shiretoko as brand name and use it for snapshots. + Name it Namoroka in the Preferred Application UI too + - update debian/firefox-3.6-shiretoko.desktop => debian/firefox-3.6-namoroka.desktop + - update debian/firefox-3.6.xml + - update debian/rules + * Target the 'default' branch instead of tip + - add debian/moz-rev.sh + - update debian/mozclient/firefox-3.6.conf + * Add firefox 3.6 to the list of Preferred Applications in Gnome + - add debian/firefox-3.6.xml + - update debian/firefox-3.6-gnome-support.install + * Add ${misc:Depends} to all non-transitional packages, make firefox-3.6-dbg + depend on firefox-3.6 with the exact same version, move -dbg packges to + priority extra and add firefox-3.6-gnome-support-dbg + - update debian/control + * Update diverged patches: + - update debian/patches/browser_branding.patch + - update debian/patches/firefox-profilename + - update debian/patches/ubuntu_bookmarks.patch + - update debian/patches/lp185622_system_path_default_browser.patch + - update debian/patches/dont_depend_on_nspr_sources.patch + + [ Alexander Sack <asac@ubuntu.com> ] + * add libnotify-dev to build-depends + - update debian/control + * add libiw-dev to build-depends to fix build failure + - update debian/control + * until we move searchplugins to a separate package provided only by the current default + firefox, we need to make firefox-3.6 replace all the older firefox binary packages: + firefox-3.5, firefox-3.2, firefox-3.1, firefox-3.0 + - update debian/control + * implement MIN_SYS_DEPS approach that does not use system xulrunner + and only a minimal set of system dependencies. + + drop patches not required anymore: + - delete debian/patches/dont_depend_on_nspr_sources.patch + - update debian/patches/series + + update browser directory provider patch + - update debian/patches/bz515232_att399338_distro_locale_searchplugins.patch + + move .install lines that depend on whether MIN_SYS_DEPS is used or not + to debian/rules in ifneq (,$(MIN_SYS_DEPS)) blocks + - update debian/rules + - update debian/firefox-3.5.install + + ship gnome support .so's inside of the main package, but keep dependencies in + the (now empty) gnome-support package; to achieve this, we first install + the gnome support files in the -gnome-support package and move them to the + main package _after_ shlib depends where generated + - update debian/rules + + do not build-depend on xulrunner dev package anymore; local xulrunner builds + with MIN_SYS_DEPS=0 should still work though + - update debian/control + + make firefox-3.5 conflict firefox-3.5-gnome-support as it shipps the gnome + files directly now + - update debian/control + * add patch for armv7 support + - add debian/patches/bz532198_lp488354_ns_invokebyindex_not_thumb2_safe.patch + - update debian/patches/series + * move to unversioned binary and source package name for "archive" firefox + + generalize final version dependent pieces in debian/rules + - update debian/rules + + update mozclient/ files to create unversioned sources/tarballs + - rename debian/mozclient/firefox-3.6.conf => debian/mozclient/firefox.conf + - update debian/mozclient/firefox.conf + - rename debian/mozclient/firefox-3.6.mk => debian/mozclient/firefox.mk + + rename and update previously versioned debhelper files + - rename debian/firefox-3.6-dev.install => debian/firefox-dev.install + - rename debian/firefox-3.6-dev.links => debian/firefox-dev.links + - rename debian/firefox-3.6-gnome-support.install => debian/firefox-gnome-support.install + - rename debian/firefox-3.6-gnome-support.postinst.in => debian/firefox-gnome-support.postinst.in + - rename debian/firefox-3.6.dirs => debian/firefox.dirs + - rename debian/firefox-3.6.install => debian/firefox.install + - update debian/firefox.install + - rename debian/firefox-3.6.links => debian/firefox.links + - update debian/firefox.links + + rename versioned maintainer scripts + - rename debian/firefox-3.6.postinst.in => debian/firefox.postinst.in + - rename debian/firefox-3.6.postrm.in => debian/firefox.postrm.in + - rename debian/firefox-3.6.preinst.in => debian/firefox.preinst.in + - rename debian/firefox-3.6.prerm.in => debian/firefox.prerm.in + + rename and update previously versioned .desktop, gnome helper and other debian + integration files + - rename debian/abrowser-3.6.desktop => debian/abrowser.desktop + - rename debian/firefox-3.6-final.desktop => debian/firefox-final.desktop + - update debian/firefox-final.desktop + - rename debian/firefox-3.6-minefield.desktop => debian/firefox-minefield.desktop + - update debian/firefox-minefield.desktop + - rename debian/firefox-3.6-namoroka.desktop => debian/firefox-namoroka.desktop + - update debian/firefox-namoroka.desktop + - rename debian/firefox-3.6.menu => debian/firefox.menu + - update debian/firefox.menu + - rename debian/firefox-3.6.xml => debian/firefox.xml + - update debian/firefox.xml + - rename debian/firefox-3.6-restart-required.update-notifier => debian/firefox-restart-required.update-notifier + - update debian/firefox-restart-required.update-notifier + - update debian/control + + disable patches for versioned directories and binaries + - update debian/patches/series + + add fix issues in libpr0n for make syntax issues after lucid dash/bash update; + patch by Kees Cook <kees@ubuntu.com> + - add debian/patches/fix-build-glitch.patch + - update debian/patches/series + * ease transition for daily firefox-3.6 users by adding conflicts/replaces on firefox-3.6-gnome-support + to firefox binary package which now ships bits previously in there. + - update debian/control + * update to firefox.sh.in start script from firefox-3.5 branch and add firefox-3.6 transition + accordingly; also adjust a bunch of wrongly worded debug messages + - update debian/firefox.sh.in + * fix version number used in profile migration dialog + - update debian/migrator/main.c + * fix wrapper startscript to properly handle all-static firefox build + - update debian/firefox.sh.in + * fix DEBIAN_NAME_OTHER to work for non-versioned abrowser main packages + - update debian/rules + * fix startscript for abrowser; set CMDNAME_USER=firefox for run-mozilla.sh; + and also use META_NAME to guess the -bin binary + - update debian/firefox.sh.in + * add CMDNAME_USER feature to overwrite cmdname for abrowser in run-mozilla.sh + - add debian/patches/abrowser_run_mozilla.patch + - update debian/patches/series + * fix abrowser.desktop; use unversioned icon and exec name + - update debian/abrowser.desktop + * copy abrowser.desktop translations from firefox-3.5.head branch + - update debian/abrowser.desktop + * add firefox-2* transitional packages for hardy users + - update debian/control + + [ Micah Gersten <micahg@ubuntu.com> ] + * Rebase/minor code change after upstream landing of unified manifest (bmo: 511642) + - update debian/patches/awesome_browser_branding_install.patch + - update debian/patches/browser_branding.patch + - update debian/patches/bzXXX_moz_app_name_inconsistencies.patch + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * add AppArmor profile (disabled by default) + - debian/firefox-3.6.dirs: add etc/apparmor.d/disable + - add debian/firefox-3.6.preinst.in: disable the profile on new installs, + installs where the last modified profile is disabled and upgrades to + this version + - debian/firefox-3.6.postinst.in: reload profile + - add debian/firefox-3.5.postrm.in: cleanup force-complain and disable + directories + - add debian/usr.bin.firefox.apparmor.in + - add debian/README.Debian.in with note about AppArmor + - debian/apport/firefox-3.6.py: add AppArmor information if the profile is + not disabled + - debian/rules: install profile and update subst_files + - allow dirname and pwd. Thanks to Thomas Templin. (LP: #510644) + - allow the IBM jre + - debian/usr.bin.firefox.apparmor.in: use @LIBDIR@/firefox-*bin as binary + confined by AppArmor + + [ Kees Cook <kees@ubuntu.com> ] + * enable PIE build for stronger security (LP: #507744) + - update debian/rules + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Sat, 23 Jan 2010 16:46:32 +0100 + +firefox-3.5 (3.5.7+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.5.7 (FIREFOX_3_5_7_RELEASE) + - see USN-878-1 + + [ Benjamin Drung <bdrung@ubuntu.com> ] + * Add metadata for mozilla-devscripts + - update debian/control + + -- Micah Gersten <micahg@ubuntu.com> Tue, 05 Jan 2010 18:02:04 -0600 + +firefox-3.5 (3.5.6+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.5.6 (FIREFOX_3_5_6_RELEASE) + - see USN-874-1 + + [ Micah Gersten <launchpad@micahscomputing.com> ] + * Bump minimum system cairo to 1.8.8 + - update debian/rules + * Fix .desktop Name field for Slovak translation (LP: 448683) + - update debian/firefox-3.5-final.desktop + * Fix .desktop Name field for Estonian and Arabic translations + (LP: 419507, LP: 321239) + - update debian/firefox-3.5-final.desktop + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * AppArmor fixes: + - allow access to nautilus, to allow "Open containing folder" to work + (LP: #452591) + - allow access for deluge (LP: #455792) + - work better with KDE by adding kde abstraction, allow access to soffice, + allow access to okular and read access to /etc/fstab (for print dialog) + (LP: #447006) + - allow access to acroread (LP: #473268) + - allow access to eog (LP: #464016) + - allow access to transmission (LP: #476299) + - deny noisy write attempts to deny /usr/lib/xulrunner-*/components/*.tmp + as seen with 'firefox --help') + - deny noisy read to /.suspended (when navigating directories) + - allow access to /usr/bin/liferea-add-feed (LP: #488851) + - allow access to azureus (LP: #482677) + - don't require 'owner' for /media (LP: #479580) + - adjust AppArmor profile binary globbing to match other branches + - allow ixr access to sed (for first runs) + + [ Alexander Sack <asac@ubuntu.com> ] + * bump lower bound for system sqlite3 to >= 3.6.16.1 + - update debian/rules + + -- Alexander Sack <asac@ubuntu.com> Wed, 16 Dec 2009 00:43:08 +0100 + +firefox-3.5 (3.5.5+nobinonly-0ubuntu2) lucid; urgency=low + + * New upstream release v3.5.5 (FIREFOX_3_5_5_RELEASE) + * fixes regressions/crashes + + -- Alexander Sack <asac@ubuntu.com> Mon, 09 Nov 2009 11:40:35 +0100 + +firefox-3.5 (3.5.4+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v1.9.1.4 (FIREFOX_3_5_4_RELEASE) + - see USN-853-1 + + [ Alexander Sack <asac@ubuntu.com> ] + * use awesome-browser-branch-3.5 during tarball creation + - update debian/mozclient/firefox-3.5.conf + * drop branding patch for lp:396156 as new upstream tarballs + automatically contain this fix now. + - delete debian/patches/lp396156_prepatch_abrowser_branding.patch + - update debian/patches/series + + [ Fabien Tassin <fta@ubuntu.com> ] + * Don't enable the AppArmor profile by default for backports coming + from the Mozilla daily PPA. It's still possible for users to + enable that themselves though + - update debian/firefox-3.5.preinst.in + + -- Alexander Sack <asac@ubuntu.com> Mon, 09 Nov 2009 11:21:28 +0100 + +firefox-3.5 (3.5.3+build1+nobinonly-0ubuntu6) karmic; urgency=low + + [ Fabien Tassin <fta@ubuntu.com> ] + * fix LP: #454166 - target the 'default' branch instead of tip + - add debian/moz-rev.sh + - update debian/mozclient/firefox-3.5.conf + + [ Alexander Sack <asac@ubuntu.com> ] + * fix LP: #455504 - abrowser does not run from Applications Menu; + create the unversioned link in debian/rules like we do for the + firefox name + - update debian/rules + * fix LP: #455517 - supersede firefox 3.0 and xulrunner-1.9 in karmic; + add transitional packages and add Conflicts/Replaces/Provides + accordingly. + - update debian/control + * fix LP: #396156 - Help→About does not function (abrowser-3.5, + jaunty-proposed); we prepatch the required changes to + browser/branding/awesome-browser/ tree taken from the 3.5 branding + branch: lp:~mozillateam/firefox/awesome-browser-branding-3.5 + - add debian/patches/lp396156_prepatch_abrowser_branding.patch + - update debian/patches/series + + -- Alexander Sack <asac@ubuntu.com> Tue, 20 Oct 2009 10:42:56 +0200 + +firefox-3.5 (3.5.3+build1+nobinonly-0ubuntu5) karmic; urgency=low + + * fix LP: #411691 - many Exception... "update.locale file doesn't exist" in + console"; patch by Micah Gersten <launchpad@micahscomputing.com> + - update debian/rules + + -- Alexander Sack <asac@ubuntu.com> Thu, 15 Oct 2009 02:49:12 +0200 + +firefox-3.5 (3.5.3+build1+nobinonly-0ubuntu4) karmic; urgency=low + + [ Fabien Tassin <fta@ubuntu.com> ] + * Bump requirement for system sqlite to >= 3.6.16 (bmo 508104) + - update debian/rules + + [ Alexander Sack <asac@ubuntu.com> ] + * fix LP: #423610 - daily build failures after landing of mozilla-nss.pc droppage + (bug 422829); we drop our previously used nspr pkgconfig patch and fix + configure.in to not require in-source nspr if libxul-sdk is used + - delete debian/patches/nspr_flags_by_pkg_config_hack.patch + - add debian/patches/bzXXX_libxul_sdk_nspr.patch + - update debian/patches/series + * now that we always use libxul-sdk for getting the nspr flags we + can use --without-system-nspr and --without-system-nss all the time + - update debian/rules + * rework localized search engine patch to use ChromeRegistry locale + information rather than a char pref; also change plugin dir order to allow + locale specific searchplugins to overlay the ones shipped in + "searchplugins/common" + - add debian/patches/bz515232_att399338_distro_locale_searchplugins.patch + - update debian/patches/series + * adjust packaging to support localized searchplugins + + ship default searchplugins in /usr/lib/firefox-addons/searchplugins/en-US/ + and link that directory to $(DEBIAN_FF3_DIR)/distribution/searchplugins instead + of the main firefox APP_DIR + - update debian/rules + + set default searchplugin locale pref to en-US - which is used as a + fallback if no matching searchplugins/LOCALE directory exists for the + current locale directory + - update debian/firefox.js + + do not install upstream searchplugins through debhelper file and + install "debsearch" to the new distribution/.../en-US location + - update debian/firefox-3.0.install + + ship "common" searchplugins link that points to the old default + searchplugins location '/usr/lib/firefox-addons/searchplugins/ + - update debian/rules + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * fix bugs surrounding apparmor profile + + allow ixr access to gnash (LP: #429061) + + allow ixr access to pulseaudio (LP: #432702) + + allow access to plugins directory (LP: #428071) + + allow access to mounted media (LP: #433362) + + allow access to abstractions/ubuntu-console-email, + abstractions/ubuntu-email and abstractions/ubuntu-gnome-terminal + for mailto:. Add commented section for using xterm and konsole + - update debian/usr.bin.firefox-3.5 + + allow access to extensions directory (LP: #433128) + + allow 'k' access to @{HOME}/.mozilla/**/*.sqlite* (LP: #449286) + + allow Ux access to apport-bug (LP: #449423) + + allow access to /etc/mplayerplug-in.conf (LP: #439484) + + -- Alexander Sack <asac@ubuntu.com> Thu, 15 Oct 2009 02:30:48 +0200 + +firefox-3.5 (3.5.3+build1+nobinonly-0ubuntu3) karmic; urgency=low + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * disable profile on upgrades from earlier Ubuntu releases (LP: #436221) + - update debian/firefox-3.5.preinst.in + + -- Alexander Sack <asac@ubuntu.com> Mon, 28 Sep 2009 10:35:46 +0200 + +firefox-3.5 (3.5.3+build1+nobinonly-0ubuntu2) karmic; urgency=low + + * security/stability update v3.5.3 build1 (FIREFOX_3_5_3_BUILD1) + - see USN-821-1 + - fix LP: #333127 - Firefox 3.5 and above crash on full screen flash video + - fix LP: #236853 - firefox crashed with SIGSEGV in NSSRWLock_LockRead_Util() + + [ Alexander Sack <asac@ubuntu.com> ] + * fix LP: #422365 - apport hook fails because profiles_d is not initialized + in add_info if no profiles.ini exist; we ensure that profiles_d gets instantiated + as an empty map even if no profiles.ini exist. + - update debian/apport/firefox-3.5.py + * hook firefox-addons/searchplugins as the distribution/searchplugins + directory to support localized distro search engines. + - update debian/rules + * in case localized search engines are available the main searchplugins + directory is not scanned anymore; to fix this we provide a compatibility + link /usr/lib/firefox-addons/searchplugins/common => /usr/lib/firefox-addons/searchplugins + - update debian/firefox-3.5.links + * fix localized search engine upstream code to properly deal with general.useragent.locale + being a complex pref; also change plugin dir order to allow locale specific searchplugins + to overlay the ones shipped in "searchplugins/common" + - add debian/patches/fix_complex_locale_distro_searchplugins.patch + - update debian/patches/series + + [ Jamie Strandboge <jamie@ubuntu.com> ] + * add AppArmor profile (disabled by default) (LP: #382917) + - debian/firefox-3.5.dirs: add etc/apparmor.d/disable + - add debian/firefox-3.5.preinst.in: disable the profile on new installs + and upgrades to this version + - debian/firefox-3.5.postinst.in: reload profile + - add debian/firefox-3.5.postrm.in: cleanup force-complain and disable + directories + - add debian/usr.bin.firefox.apparmor.in + - debian/rules: install profile + - add debian/README.Debian.in with note about AppArmor + - debian/apport/firefox-3.5.py: add AppArmor information if the profile is + not disabled + - debian/firefox-3.5.preinst.in: allow for when apparmor is not installed + + -- Alexander Sack <asac@ubuntu.com> Thu, 03 Sep 2009 10:03:08 +0200 + +firefox-3.5 (3.5.2+nobinonly-0ubuntu2) karmic; urgency=low + + Firefox 3.5 by default upload + + see: https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-firefox-3.5 + + [ Fabien Tassin <fta@ubuntu.com> ] + * Make firefox-3.5 the default firefox. Use the official branding only + for releases (the -daily PPA remains branded as Shiretoko, like the + upstream nightlies). Activate the profile migrator and the apport hooks. + Add the meta packages to make the transition smoother. + - update debian/control + - drop debian/patches/firefox-fsh + - drop debian/patches/firefox-profilename + - update debian/patches/series + - update debian/firefox-3.5.install + - update debian/firefox.sh.in + - update debian/migrator/main.c + - update debian/mozclient/firefox-3.5.mk + - update debian/rules + - update debian/firefox-3.5-final.desktop + - update debian/firefox-3.5-shiretoko.desktop + - update debian/abrowser-3.5.desktop + - update debian/apport/firefox-3.5.py + + [ Alexander Sack <asac@ubuntu.com> ] + * make -final and -shiretoko .desktop file refer to unversioned "firefox" + Binary and Icon + - update debian/firefox-3.5-shiretoko.desktop + - update debian/firefox-3.5-final.desktop + - update debian/firefox-3.5-minefield.desktop + - update debian/abrowser-3.5.desktop + * add translations for .desktop file from firefox-3.0.head branch + - update debian/firefox-3.5-final.desktop + - update debian/abrowser-3.5.desktop + * set BUILD_OFFICIAL = 1 to enable all official build features + - update debian/rules + * fix LP: #404827 - Firefox doesn't warn about Attack Sites!?; add + --enable-safe-browsing to configure flags + - update debian/rules + * fix LP: #383484 - search engine plugins missing in firefox-3.5 packages; + installing searchplugins and default theme as now firefox-3.5 + Replaces: firefox-3.0 + - update debian/firefox-3.5.install + * fix restart issues by installing proper versioned binary (without a + firefox-fsh patch); in turn drop unversioned firefox link from .install + - update debian/rules + - update debian/firefox-3.0.install + + -- Alexander Sack <asac@ubuntu.com> Mon, 10 Aug 2009 17:05:37 +0200 + +firefox-3.5 (3.5.2+nobinonly-0ubuntu1) karmic; urgency=low + + * security/stability update v3.5.2 (FIREFOX_3_5_2_RELEASE) + + [ Fabien Tassin <fta@ubuntu.com> ] + * Fix postinst to also consider firefox-3.5 for the update-notifier + restart notification + - update debian/firefox-3.5.postinst.in + * Fix bogus prerm rule removing the wrong alternative + - update renamed debian/firefox-3.5.prerm + * Refresh diverged patch + - update debian/patches/nspr_flags_by_pkg_config_hack.patch + + -- Alexander Sack <asac@ubuntu.com> Mon, 03 Aug 2009 16:52:25 +0200 + +firefox-3.5 (3.5.1+build1+nobinonly-0ubuntu1) karmic; urgency=low + + * security/stability update v3.5.1 build1 (FIREFOX_3_5_1_BUILD1) + * fix LP: #396460 - Firefox 3.5 'final' version is in repos but tooltip + in menu says 'beta'; we update the shiretoko desktop file to not + say "beta" anymore + - update debian/firefox-3.5-shiretoko.desktop + * fix LP: #398121 - firefox-3.5-gnome-support failed to install/upgrade; we + make the postinst script more failsafe + - update debian/firefox-3.5-gnome-support.postinst.in + + -- Alexander Sack <asac@ubuntu.com> Thu, 16 Jul 2009 18:27:57 +0200 + +firefox-3.5 (3.5+nobinonly-0ubuntu1) karmic; urgency=low + + * New upstream release taken from tag FIREFOX_3_5_RELEASE + * Bump Depends/Build-Depends for xulrunner-1.9.1(-dev) to >= 1.9.1 + - update debian/control + * Bump EM_TRANSLATION_{MIN,MAX}_VERSION and MaxVersion/MinVersion + (from application.ini) + - update debian/rules + + -- Fabien Tassin <fta@ubuntu.com> Tue, 30 Jun 2009 20:01:33 +0200 + +firefox-3.5 (3.5~rc2+nobinonly-0ubuntu1) karmic; urgency=low + + * New upstream release taken from tag FIREFOX_3_5rc2_RELEASE + * Fix startup page, release notes and first run bogus URLs when + using non official brandings. Also fix bogus addons URLs due + to our change of appname (LP: #388880) + - update debian/patches/firefox-profilename + * Fix profile migrator broken when using abrowser-3.5 (LP: #331654) + - update debian/firefox.sh.in + * Bump Standards-Version to 3.8.1 + - update debian/control + * Call update-menus + - update debian/firefox-3.5.postinst.in + * Make firefox-3.5-dbg depend on firefox-3.5 with the exact same version + - update debian/control + * Bump Depends and Build-depends to xulrunner* >= 1.9.1~rc2 + - update debian/control + * Refresh diverged patch: + - update debian/patches/firefox-profilename + + -- Fabien Tassin <fta@ubuntu.com> Fri, 19 Jun 2009 18:55:00 +0200 + +firefox-3.5 (3.5~b4+nobinonly-0ubuntu2) karmic; urgency=low + + * bump (build-)depends version on xulrunner-1.9.1 to >= 1.9.1~b4 + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Wed, 06 May 2009 22:27:21 +0200 + +firefox-3.5 (3.5~b4+nobinonly-0ubuntu1) karmic; urgency=low + + * New upstream release 3.5 b4 + + [ H. Montoliu ] + * fix LP: #361052 - firefox apport hook fails to retrieve pluginreg.dat file + - update debian/apport/firefox-3.5.py - removed unused code and minor refactoring + + -- Alexander Sack <asac@ubuntu.com> Wed, 29 Apr 2009 15:19:59 +0200 + +firefox-3.5 (3.5~b4~hg20090330r24021+nobinonly-0ubuntu1) jaunty; urgency=low + + * New upstream snapshot, needed to initiate the firefox 3.1->3.5 transition (LP: #352995) + * Add libstartup-notification0-dev to build-deps as it now seems to be + mandatory on lpia + - update debian/control + * Fix the mozclient include to really use the local configuration + - update debian/rules + * Update MOZCLIENT_GETDATE to make it use pushlog so it is not confused by merges with + dates in the past + - update debian/mozclient/firefox-3.5.conf + + -- Fabien Tassin <fta@ubuntu.com> Mon, 30 Mar 2009 19:00:40 +0200 + +firefox-3.1 (3.1~b3+build2+nobinonly-0ubuntu1) jaunty; urgency=low + + * New upstream release taken from tag FIREFOX_3_1b3_BUILD2 (LP: #339181) + + -- Fabien Tassin <fta@ubuntu.com> Sat, 07 Mar 2009 15:27:58 +0100 + +firefox-3.1 (3.1~b3~hg20090205r23182+nobinonly-0ubuntu1) jaunty; urgency=low + + [ Fabien Tassin <fta@ubuntu.com> ] + * Drop upstreamed patch now that it has landed and add --with-system-libxul + to configure. + - update debian/rules + - drop debian/patches/installer_shouldnt_copy_xulrunner.patch + - update debian/patches/series + + [ Alexander Sack <asac@ubuntu.com> ] + * add lower bound for xulrunner-1.9.1-dev build-depends to >= + 1.9.1~b3~ + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Sat, 07 Feb 2009 15:18:30 +0100 + +firefox-3.1 (3.1~b3~hg20090122r22900+nobinonly-0ubuntu1) jaunty; urgency=low + + [ Alexander Sack ] + * improve reload plugins patch; dont rename function + - update debian/patches/bzXXX_reload_new_plugins.patch + * forward reload plugins patch upstream + - debian/patches/bzXXX_reload_new_plugins.patch => + bz460917_att350845_reload_new_plugins.patch + * fix reload new plugins patch - use variables that actually exist on 3.1 + - update debian/patches/bz460917_att350845_reload_new_plugins.patch + + [ Fabien Tassin ] + * Move mozclient project files from mozilla-descripts to this package + and update the upstream branch now that it has moved to 3.2 + - add debian/mozclient/firefox-3.1.conf + - add debian/mozclient/firefox-3.1.mk + - update debian/rules + * Fix menu still mentionning firefox 4 + - update debian/firefox-3.1.menu + * Fix WM class for minefield + - update debian/firefox-3.1-minefield.desktop + * Fix the update-notifier script to really look for firefox-3.1 + - update debian/firefox-3.1-restart-required.update-notifier + * Fix patch series after the rename of patch bz460917_* + - update debian/patches/series + * Revert to codename branding for betas + - update debian/rules + * Fix typo in control file + - update debian/control + * Drop useless patch: + - drop debian/patches/ftbfs-with-branding-dir + - update debian/patches/series + * Update diverged patches: + - update debian/patches/ubuntu_no_app_updates.patch + - update debian/patches/dont_depend_on_nspr_sources.patch + - update and rename debian/patches/ubuntu_bookmarks.html => + debian/patches/ubuntu_bookmarks.patch & d/p/series + + -- Fabien Tassin <fta@ubuntu.com> Fri, 23 Jan 2009 00:33:43 +0100 + +firefox-3.1 (3.1~b2+build1+nobinonly-0ubuntu1) jaunty; urgency=low + + New upstream release: 3.1 beta 2 from FIREFOX_3_1b2_BUILD1 (LP: #274187) + + [ Fabien Tassin <fta@ubuntu.com> ] + * Change appname and use a dedicated profile so 3.1 could run along with + 3.0 without locking/corrupting the profile. Initial 3.1 profile is + cloned from 3.0 whenever possible. + - update debian/firefox.sh.in + - add debian/patches/firefox-profilename + - add debian/patches/firefox-fsh + * Use Shiretoko, codename for 3.1 instead of Granparadiso + - rename debian/firefox-3.1-granparadiso.desktop => firefox-3.1-shiretoko.desktop + - update debian/rules + * Unset FORCE_OFFICIAL_BRANDING to return to minefield branding for + intermediate snapshots and to Shiretoko branding for milestones + - update debian/rules + * Set MALLOC_OPTIONS=O before calling xulrunner during build. This is needed + to avoid a dead-lock in jemalloc when running under fakeroot + - update debian/rules + * Drop system nspr/nss (until the soname work is stable) + - update debian/rules + * Update requirement for system sqlite3 to >= 3.6.0 + - update debian/rules + * Add libasound2-dev to Build-Depends for the new HTML5 <video> tag + - update debian/control + * Drop dom-inspector, venkman and legacy firefox-{,trunk,granparadiso} + packages + - update debian/control + * Resurrect the -dbg package, at least until bug 156575 is fixed + - update debian/control + * Update diverged patches: + - update debian/patches/nspr_flags_by_pkg_config_hack.patch + - update debian/patches/bzXXX_reload_new_plugins.patch + - update debian/patches/firefox-fsh + - update debian/patches/firefox-profilename + - update debian/patches/lp185622_system_path_default_browser.patch + - update debian/patches/browser_branding.patch + * Drop patches applied upstream + - drop debian/patches/lp269656_know_your_rights.patch + (See https://bugzilla.mozilla.org/show_bug.cgi?id=456439) + - drop debian/patches/installer_use_stdout_for_missing_files.patch + - drop debian/patches/bz412610_att335369_realpath_overflow.patch + - drop debian/patches/bz436133_att322801.patch + - drop debian/patches/bz421977_att334578.patch + - update debian/patches/series + + [ Alexander Sack <asac@ubuntu.com> ] + * ship $MOZ_APP_DIR/distribution/distribution.ini + - add debian/distribution.ini + - update debian/rules + + -- Fabien Tassin <fta@ubuntu.com> Fri, 28 Nov 2008 16:02:43 +0100 + +firefox-3.0 (3.0.4+nobinonly-0ubuntu3) UNRELEASED; urgency=low + + [ Nick Ellery <nick.ellery@ubuntu.com> ] + * fix LP: #270477 - firefox-3.0-branding has errors in it's package description + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Wed, 26 Nov 2008 21:56:44 +0100 + +firefox-3.0 (3.0.4+nobinonly-0ubuntu2) jaunty; urgency=low + + * ship $MOZ_APP_DIR/distribution/distribution.ini + - add debian/distribution.ini + - update debian/rules + + -- Alexander Sack <asac@ubuntu.com> Mon, 24 Nov 2008 12:40:07 +0100 + +firefox-3.0 (3.0.4+nobinonly-0ubuntu1) jaunty; urgency=low + + * new security/stability update FIREFOX_3_0_4_RELEASE (v3.0.4) + - see USN-667-1 + + [ Fabien Tassin <fta@ubuntu.com> ] + * Fix missing comma in Build-Depends breaking older dpkg-dev + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Sun, 16 Nov 2008 17:12:57 +0100 + +firefox-3.0 (3.0.3+nobinonly-0ubuntu2) intrepid; urgency=low + + * fix LP: #282875: about:rights does not display; the latest update + of the know your right page contained illegal xml. + - update debian/patches/lp269656_know_your_rights.patch + + -- Alexander Sack <asac@ubuntu.com> Mon, 20 Oct 2008 17:37:05 +0200 + +firefox-3.0 (3.0.3+nobinonly-0ubuntu1) intrepid; urgency=low + + [ Steve Langasek <steve.langasek@ubuntu.com> ] + * Fix the wrapper script to handle all possible invocations. + LP: #275410. + + [ Fabien Tassin <fta@ubuntu.com> ] + * Remove some hardcoded 3.0 to make the merge in the 3.1 branch smoother + - update debian/rules + - update debian/firefox.sh.in + * Fix abrowser symlink in libdir which must be versioned unless control + ships a meta package. Add versioned symlinks in libdir for firefox and + abrowser now that the launcher script uses $0 + - update debian/rules + * Fix the desktop file for abrowser to call it abrowser-3.0 instead + of firefox-3.0, and move the desktop icons to the branding packages + - update debian/rules + * Add a ubuntu-abrowser.js file dedicated to abrowser and set useragent + to Firefox/version + - add debian/ubuntu-abrowser.js.tmpl + - update debian/rules + * Fix typo in branding patch for unofficial branding + - update debian/patches/browser_branding.patch + + [ Alexander Sack <asac@ubuntu.com> ] + * add ubuntu code to preferences for yahoo searchplugin + - update debian/firefox.js + * fix gnome integration systempath patch in such a way that it properly + refers to "abrowser" and not awesome-browser + - update debian/patches/lp185622_system_path_default_browser.patch + * update aboutRights.xhtml to v1 + - update debian/patches/lp269656_know_your_rights.patch + * resurrecting ubuntu default bookmarks + - update debian/patches/browser_branding.patch + - update debian/patches/series + * add explicit minimum version to firefox-3.0 depend on firefox-3.0-branding + and abrowser-3.0-branding (>= 3.0.3+nobinonly-0ubuntu1), to reflect + that the desktop launcher icon has been moved from firefox-3.0 to + -branding + - update debian/control + + -- Fabien Tassin <fta@ubuntu.com> Mon, 13 Oct 2008 16:05:14 +0200 + +firefox-3.0 (3.0.3+build1+nobinonly-0ubuntu1) intrepid; urgency=low + + new regression fix release (v3.0.3 build1) + - see USN-645-3 + * fixes LP: #270429: [MASTER] passwords lost from 3.0.1 to 3.0.2 + * improve about:rights wording slightly to read "... offers optional + web site ..." while previously it read "... uses web sitweb sitee ..."; + thanks to PJ for the initial suggestion + - update debian/patches/lp269656_know_your_rights.patch + + -- Alexander Sack <asac@ubuntu.com> Thu, 25 Sep 2008 12:01:59 +0200 + +firefox-3.0 (3.0.2+build6+nobinonly-0ubuntu2) intrepid; urgency=low + + * fix LP: #273907 - abrowser does not start: :$pkglibdir/abrowser link + missing; we introduce the proper link in the firefox-3.0 package + - update debian/rules + * fix LP: #269795 - abrowser shouldn't display the EULA; we fix this by + using brand.properties to determine whether we have official branding or + not. In turn the about:rights notification only gets displayed when + official build is running. + - update debian/patches/lp269656_know_your_rights.patch + * fix LP: #206191 - Firefox 3 "set as Desktop background" does not work + properly; we cherry-pick latest upstream patch from bugzilla + - add debian/patches/bz421977_att334578.patch + - update debian/patches/series + + -- Alexander Sack <asac@ubuntu.com> Wed, 24 Sep 2008 18:48:23 +0200 + +firefox-3.0 (3.0.2+build6+nobinonly-0ubuntu1) intrepid; urgency=low + + Security/Stability update (v3.0.2 build6) + - see USN-645-1 + + [ Fabien Tassin <fta@ubuntu.com> ] + * Add a -g/--debug switch to the launcher script to start firefox inside gdb. + Note that it must be specified first on the command line. + - update debian/firefox.sh.in + * Make the branding patch also work for non official branding. + - update debian/patches/browser_branding.patch + + [ Alexander Sack <asac@ubuntu.com> ] + * Fix branding code in debian/rules: a) fix .desktop target filename + to be unversioned if and only if control ships a meta package name + - update debian/rules + * Don't cp debian/$(DESKTOP) debian/$(DEBIAN_APP_NAME).desktop in + pre-build:: which is a left over from previous branding split + approaches and unused now. + - update debian/rules + * Use APPNAME=`basename $0` in firefox start script; fix bug that would + trick abrowser into restarting itself through the "firefox" command. + - debian/firefox.sh.in + * Fix LP: #269656 - AN IRRELEVANT LICENSE IS PRESENTED TO + YOU FREE-OF-CHARGE ON STARTUP; we implement the "Know Your Rights..." + approach based on the mocked-up's published by mozilla + http://blog.lizardwrangler.com/2008/09/17/mock-ups-available-for-notices-previously-was-eula/ + - add debian/patches/lp269656_know_your_rights.patch + - update debian/patches/series + * abrowser Provides: firefox to ease transition of rdepends + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Tue, 23 Sep 2008 17:44:47 +0200 + +firefox-3.0 (3.0.2+build3+nobinonly-0ubuntu2) intrepid; urgency=low + + [ Alexander Sack ] + * new patch that adds canonical affiliate code to en-US amazon searchplugin + - add debian/patches/ubuntu_codes_amazon.patch + - update debian/patches/series + * rename the webbrowser and webbrowser-3.0-branding package to abrowser and + abrowser-3.0-branding; in turn we rename the desktop file and the links + to the binaries + - rename debian/webbrowser-3.0.desktop + - update debian/control + - update debian/rules + - update debian/firefox-3.0.links + + -- Alexander Sack <asac@ubuntu.com> Thu, 11 Sep 2008 17:25:42 +0200 + +firefox-3.0 (3.0.2+build3+nobinonly-0ubuntu1) intrepid; urgency=low + + [ Alexander Sack <asac@ubuntu.com> ] + * Fix: LP #246775 - "wrong user-agent string in hardy build" by adding proper + build-depends + - update debian/control + * Fix: LP #240880 - Remove "previously known as" paragraph + - update debian/control + * webbrowser-3.0-branding split using the awesome branding (LP: #263938) + + we add a new .desktop file to the source and teach the debian/rules + code about it + - add debian/webbrowser-3.0.desktop + - update debian/rules + + we magically run config.status on just the Makefiles of our branding + in the binary-install/webbrowser-3.0-branding target + - update debian/rules + + we introduce a firefox-3.0-branding package as well as an + webbrowser-3.0-branding package in control; webbrowser-3.0-branding + conflicts firefox-3.0-branding, while firefox-3.0 depends on + firefox-3.0-branding | webbrowser-3.0-branding; we update the firefox + meta package to depend on the firefox-3.0-branding; we add a new + metapackage "webbrowser" that tracks the stable webbrowser branch, just + like firefox, but with the difference that it depends on + webbrower-3.0-branding package + - update debian/control + + higher mozilla-devscripts bar to 0.10 to reflect that we need that + version to properly produce awesome-browser branded original tarballs + - update debian/control + + patch browser/installer packages-static file to install awesome-browser + content and locale bits + - add debian/patches/awesome_browser_branding_install.patch + - update debian/patches/series + + patch firefox to ship branding chrome bits in separate jar files. + - debian/patches/browser_branding.patch + - debian/patches/series + + install firefox branding bits to the firefox-3.0-branding package + and remove them from the firefox-3.0 package so that we ship the awesome + browser chrome by default; in turn we fix that not all awesome branding + bits were available by doing a full make install + DESTDIR=debian/tmp-awesome. + - update debian/rules + - update debian/firefox-3.0.install + + dpkg-divert non-chrome branding bits; add firefox-3.0-branding.preinst.in + and firefox-3.0-branding.postrm.in maintainer script templates and + register them for substitution in debian/rules; for chrome the trick is + to not divert the whole branding, but just disable the + awesome-browser.manifest when the firefox-3.0-branding package gets + installed; doing so disables the locales override and unhooks the + awesome branding in a way that the offcial branding will take over. We + also try to cleanup diverts that have disappeared during upgrade in + old-postrm of the branding package; this is required to properly cleanup + during major firefox version upgrades - where pkglibdir changes. + - add debian/firefox-3.0-branding.postrm.in + - add debian/firefox-3.0-branding.preinst.in + - update debian/rules + + introduce rules variable APP_NAME_OTHER, which is used as a placeholder + for awesome-browser + - update debian/rules + + special case when \"Web Browser\" is found + to be shortBrandName. In that case we use /usr/bin/webbrowser as + exePath in nsGNOMEShellService (for settin default browser) + - update debian/patches/lp185622_system_path_default_browser.patch + + ship /usr/bin/webbrowser and /usr/bin/webbrowser-3.0 links in + firefox-3.0 package + - update debian/firefox-3.0.links + + ship awesome branding in webbrowser-3.0-branding package + - update debian/rules + + [ Fabien Tassin ] + * Drop more firefox-3.0 references to ease merge with the 3.1 branch + - update debian/rules + * Fix buffer overflow in realpath() at runtime and drop -U_FORTIFY_SOURCE + from CPPFLAGS (LP: #263014) + - add debian/patches/bz412610_att335369_realpath_overflow.patch + - update debian/patches/series + + -- Alexander Sack <asac@ubuntu.com> Tue, 02 Sep 2008 11:59:53 +0200 + +firefox-3.0 (3.0.1+build1+nobinonly-0ubuntu2) intrepid; urgency=low + + RELEASE 3.0.1+build1+nobinonly-0ubuntu2 to ubuntu/intrepid + * Fix: #246775 - "wrong user-agent string in hardy build" by adding proper + build-depends + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Sat, 26 Jul 2008 16:08:26 +0200 + +firefox-3.0 (3.0.1+build1+nobinonly-0ubuntu1) intrepid; urgency=low + + * LP: #247494 - new security/stability release (v3.0.1 build1) + - see USN-626-1 + + [ Alexander Sack <asac@ubuntu.com> ] + * bump build dependencies for xulrunner 1.9 dev to >= 1.9+nobinonly-0ubuntu3~ + in order to force jemalloc build; bump binary depends accordingly + - update debian/control + * add useragent config file and install it in $pkglibdir/defaults/preferences; + replace @VENDOR@, @VENDOR_SUB@ and @VENDOR_COMMENT@ tokens with lsb_release + id, release, codename + - add debian/ubuntu-useragent.js.tmpl + - update debian/rules + * bump maxVersion to 1.9.0.* to ease future upgrades of firefox-3.0/xulrunner-1.9 + tandem and lower minVersion to 1.9.0.1 in post-install; in turn adjust binary + and build depends accordingly. + - update debian/rules + - update debian/control + + [ Fabien Tassin <fta@sofaraway.org> ] + * Add an empty chrome.manifest in all extensions missing that + file so it prevents the "failure in Chrome Registration" popup + - update debian/rules + * Don't use wildcards to detect xulrunner paths, it fails when + more that one xulrunner is installed + - update debian/rules + * Get DEBIAN_NAME and DEBIAN_APP_NAME from changelog and make more use + of variables to make the merge with the 3.1 branch easier + - update debian/rules + - update debian/firefox-3.0.postinst.in + - update debian/firefox-3.0.prerm + + -- Alexander Sack <asac@ubuntu.com> Fri, 18 Jul 2008 17:39:57 +0200 + +firefox-3.0 (3.0+nobinonly-0ubuntu2) intrepid; urgency=low + + * New upstream release: 3.0 RC2 (LP: #237690) + + [ Alexander Sack <asac@ubuntu.com> ] + * Fix LP: #236266 - "Build Failure on HPPA architecture" by applying patch + from bugzilla https://bugzilla.mozilla.org/show_bug.cgi?id=436133 + - add debian/patches/bz436133_att322801.patch + - update debian/patches/series + * drop left-over patch that disabled parts of safe-browsing by default. + - delete debian/patches/force_safebrowsing_off.patch + - update debian/firefox.js + - update debian/patches/series + + -- Alexander Sack <asac@ubuntu.com> Tue, 10 Jun 2008 12:51:01 +0200 + +firefox-3.0 (3.0~rc1+nobinonly-0ubuntu1) intrepid; urgency=low + + * new upstream release 3.0 RC1 (LP: #233922) + + [ Fabien Tassin <fta@sofaraway.org> ] + * Bump xulrunner-1.9 dependencies to ~rc + - update debian/control + * Bump EM_TRANSLATION_VERSION and EM_TRANSLATION_{MIN,MAX}_VERSION to 3.0 + and clean-up the code to avoid unnecessary complexity + - update debian/rules + * Refresh diverged patches + - update debian/patches/bzXXX_reload_new_plugins.patch + * Fix 'Categories' field in desktop file by changing GTK into Application + to make KDE happy (LP: #220325) + - update debian/firefox-3.0-final.desktop + * Build with default gcc (hardy: 4.2, intrepid: 4.3) + - update debian/rules + - update debian/control + * Prevent EULA dialog to popup on first run by setting the browser.EULA.override + key to true + - update debian/firefox.js + * Drop LDFLAGS workaround now that jemalloc is no longer a static lib + - udate debian/rules + * Workaround multiple crashes in Intrepid caused by Intrepid shipping gcc 4.3 + with -D_FORTIFY_SOURCE=2 by default + - udate debian/rules + + [ Alexander Sack <asac@ubuntu.com> ] + * Fix LP: #218865 - "ubufox is not suggested or recommended by firefox-3.0"; + we add ubufox to recommends of firefox-3.0 package. + - update debian/control + * Fix apport hook to properly detect global gre extensions + - update debian/apport/firefox-3.0.py + * disable app.update feature in code so the auto app update feature will + never be enabled (independent from the pref setting) + - add debian/patches/ubuntu_no_app_updates.patch + - update debian/patches/series + * install firefox.cfg as an example using dh_installdocs rather than + dh_install as it wasn't used at all + - update debian/rules + + -- Fabien Tassin <fta@sofaraway.org> Wed, 21 May 2008 16:25:00 +0200 + +firefox-3.0 (3.0~b5+nobinonly-0ubuntu3) hardy; urgency=low + + * improve translation support by shipping a crafted install.rdf. We ship a + template install.rdf.in in debian/translation-support and replace the + em:{version,maxVersion,minVersion} during build. For now those versions + are maintained manually because we need maintainer attention on upgrades + considering the upstream string freeze. To increase failsafeness, we fail + the build if the version appears to be out of sync with the upstream + version in the post-install target. The install.rdf is finally added to + the zip file in the binary-post-install rule used to produce the + en-US.xpi. + - add debian/translation-support/install.rdf.in + - update debian/rules + + * remove unused debian/firefoxrc (aka /etc/firefox-3.0/firefoxrc) file from + files shipped. Its not considered by firefox startscript anymore and just + causes confusion. + - remove debian/firefoxrc + - update debian/firefox-3.0.install + + -- Alexander Sack <asac@ubuntu.com> Sun, 20 Apr 2008 15:47:10 +0200 + +firefox-3.0 (3.0~b5+nobinonly-0ubuntu2) hardy; urgency=low + + * fix "firefox-3.0 gets removed on dist-upgrade when firefox-3.0 build is + not available on mirror". We deal with this situation by dropping the + Break: field from xulrunner-1.9 and adding upper bounds on xulrunner-1.9 + to firefox-3.0 binary. + - update debian/control + + * fix extension and theme reporting in apport hook. we now list gre, + app and local extensions/themes separately + - update debian/apport/firefox-3.0.py + + * fix "update-notifier hint gets installed in postinst even when firefox is + not running" - LP: #214620. The fix now uses pgrep -x to test more + accurately for the firefox itsself. Thanks to Colin Watson for the idea. + We use the same pgrep test in the notifiers DisplayIf: expression as well. + - update debian/firefox-3.0-restart-required.update-notifier + - update debian/firefox-3.0.postinst.in + + -- Alexander Sack <asac@ubuntu.com> Tue, 15 Apr 2008 12:12:13 +0200 + +firefox-3.0 (3.0~b5+nobinonly-0ubuntu1) hardy; urgency=low + + * Firefox 3.0 Beta 5 package - "ready for prime-time"! + + * Multiple fixes and improvements to debian/rules: "rewrite substitution + rules", "bad .autoreg install path makes package ftbfs", "Firefox must not + ship reporter extension; its shipped in xulrunner-1.9", "enable + mozilla-devscript's in binary-post-install", "--disable-debug passed twice + in configure" + - update debian/rules + + * Alexander Sack <asac@ubuntu.com> + * Fabien Tassin <fta@sofaraway.org> + + * Multiple fixes to the apport hook: "remove .pyc file garbage during prerm", + "bad install path", "bad extension directories used to gather data" + - update debian/apport/firefox-3.0.py + - update debian/firefox-3.0.prerm + - update debian/firefox-3.0.install + + * Alexander Sack <asac@ubuntu.com> + * Fabien Tassin <fta@sofaraway.org> + + * Multiple fixes required by libxul linkage with jemalloc: "libjemalloc.so + cannot be installed - doesn't exist", "-Wl,-Bsymbolic-functions in LDFLAGS + cause crashes at startup" + - update debian/firefox-3.0.install + - update debian/rules + + * Fabien Tassin <fta@sofaraway.org> + + * Fix multiple misc bugs: "migration creates double dots for abandoned + profiles", "Wikipedia search plugin shipped upstream", "blocklist.xml not + installed", "use LIBDIR when touching .autoreg in postinst", "Fix restart + notification misbehaviour", "Improve package description (LP: #207199)" + - update debian/firefox.sh.in + - drop debian/wikipedia.* + - update debian/firefox-3.0.install + - update debian/rules + - update debian/firefox-3.0.postinst.in + - update debian/firefox-3.0-restart-required.update-notifier + + * Alexander Sack <asac@ubuntu.com> + * Fabien Tassin <fta@sofaraway.org> + + * Misc package housekeeping changes: "Bump xulrunner-1.9 + dependencies to b5", "Adjust patches", "desktop files not valid + (LP: #194970)", "relax dependencies on xulrunner. no upper bounds": + - update debian/control + - update debian/patches/dont_depend_on_nspr_sources.patch + - update debian/patches/nspr_flags_by_pkg_config_hack.patch + + * Fabien Tassin <fta@sofaraway.org> + + * Multiple Translation related fixes and improvements: "Reuse translations + from firefox 2 .desktop file", "include lp-export-xpi.mk from + mozilla-devscripts and export en-US.xpi to debian/lp-export-xpis/ + directory" + - update debian/firefox-final.desktop + - update debian/rules + - update debian/control + + * Alexander Sack <asac@ubuntu.com> + * Fabien Tassin <fta@sofaraway.org> + + * Fixing chrome registration issues by properly shipping + $(DEBIAN_FF3_DIR)/.autoreg and touching it in postinst maintainer scripts + - update debian/rules + - update debian/firefox-3.0.postinst.in + - add debian/firefox-3.0-gnome-support.postinst + + * Alexander Sack <asac@ubuntu.com> + * Fabien Tassin <fta@sofaraway.org> + + * fix LP: #185622 - "Firefox 3 doesn't act as the default browser"; we + always check for and use /usr/bin/firefox now. Don't use " to delimit + the parameters of the preferred browser command used to update gconf + protocol-handler. + - add debian/patches/lp185622_system_path_default_browser.patch + - update debian/patches/series + + * Alexander Sack <asac@ubuntu.com> + + * fix "New plugins only recognized _after_ restarting firefox"; the gecko + 1.9 plugin host doesn't scan plugin directories automatically for + previously not available mime-types and extensions anymore. This fix + assures that the browser receives a NewPluginInstalled through the + tabbrowser.selectedBrowser by registering a special listener before + starting the plugin installer wizard. After plugins are properly installed + we remove that listener again. + - add debian/patches/bzXXX_reload_new_plugins.patch + - update debian/patches/series + + * Alexander Sack <asac@ubuntu.com> + + -- Fabien Tassin <fta@sofaraway.org> Fri, 04 Apr 2008 21:26:23 +0200 + +firefox-3.0 (3.0~b4+nobinonly-0ubuntu1) hardy; urgency=low + + [ Fabien Tassin <fta@sofaraway.org> ] + * Bump xulrunner-1.9 dependencies to b4 + - update debian/control + * Refresh diverged patches: + - update debian/patches/dont_depend_on_nspr_sources.patch + - update debian/patches/force_safebrowsing_off.patch + * Drop extension from desktop launchers icons (LP: #190688) + - update debian/firefox-3.0-*.desktop + * Install new libjemalloc.so + - update debian/firefox-3.0.install + * Add optional support for system sqlite3 (we need >= 3.5 not in hardy) + - update debian/rules + * Fix debsearch.src to work with new packages.ubuntu.com codebase (LP: #194681) + Contributed by David Futcher <bobbocanfly@gmail.com> + - update debian/debsearch.src + * Bump gtk+ requirement to 2.10 because of the new Print Dialog + - update debian/control + * Add Polish translation to deskstop launcher (LP: #196953) + Contributed by Tomasz Dominikowski <dominikowski@gmail.com> + - update debian/firefox-3.0-final.desktop + * Change $(shell) into $(wildcard) for XUL SDK detection + - update debian/rules + * Drop DEB_AUTO_UPDATE_DEBIAN_CONTROL cdbs variable completely. It was + wrongly set to zero + - update debian/rules + * Stop build-tree/mozilla/README to be shipped as a doc by setting + cdbs DEB_INSTALL_DOCS_ALL to $(NULL) + - update debian/rules + + [ Alexander Sack <asac@ubuntu.com> ] + * reuse apport hook from firefox 2 package initially developed by Hilario J. + Montoliu <hmontoliu@gmail.com> (LP: #199666) + - add debian/apport/firefox-3.0.py + - update debian/firefox-3.0.install + + -- Alexander Sack <asac@ubuntu.com> Thu, 13 Mar 2008 16:52:36 +0100 + +firefox-3.0 (3.0~b3+nobinonly-0ubuntu4) hardy; urgency=low + + * fix firefox.desktop install (ftbfs) + - update debian/firefox-3.0.install + * fix StartupWMClass in desktop file + - update debian/firefox-3.0-final.desktop + * fix Name and Description and Exec in desktop file + - update debian/firefox-3.0-final.desktop + + -- Alexander Sack <asac@ubuntu.com> Mon, 25 Feb 2008 14:37:43 +0100 + +firefox-3.0 (3.0~b3+nobinonly-0ubuntu3) hardy; urgency=low + + * introduce transitional dummy package for firefox-libthai => firefox-3.0 + (thai line break is now done by pango) (LP: #193542) + - update debian/control + * ship firefox.desktop again to not break existing launchers (LP: #193902) + - update debian/rules + + -- Alexander Sack <asac@ubuntu.com> Mon, 25 Feb 2008 11:46:11 +0100 + +firefox-3.0 (3.0~b3+nobinonly-0ubuntu2) hardy; urgency=low + + * make aptitude happy by using versioned Replaces on firefox* + - update debian/control + * make firefox-{dom-inspector,gnome-support} meta packages depend on + firefox-3.0-* instead of xulrunner-1.9-* to improve transition behaviour. + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Thu, 14 Feb 2008 13:40:37 +0100 + +firefox-3.0 (3.0~b3+nobinonly-0ubuntu1) hardy; urgency=low + + * Firefox 3 Beta 3 release (FIREFOX_3_0b3_RELEASE) + + [ Alexander Sack ] + * use default upstream gcc tweaks for improved performance - especially of + the javascript engine + - update debian/rules + * add gtk based profile migrator dialog, build it during |pre-build| and clean + it in |clean| target of debian/rules; finally, install the binary in firefox + pkglibdir. + - add debian/migrator/main.c + - update debian/rules + * drop version suffix from MOZ_APP and application.ini (going back to + upstreams plain |firefox|) and drop patches accordingly + - drop debian/patches/firefox-fsh + - drop debian/patches/firefox-profilename + - update debian/patches/series + * install firefox binary instead of firefox-3.0 (after MOZ_APP_NAME + tweakage was dropped in on of the previous commits + - update debian/firefox-3.0.install + * reuse firefox.sh.in script to determine on whether the user was a beta + user and if thats the case ask the user (by running the profile migrator + added above) which profile to use in future + - update debian/firefox.sh.in + * fix DEBIAN_FF3_DIR, which diverged from install dir after dropping + special application name and profile dir tweaks + - update debian/rules + * drop development version disclaimer from package description and improve + the package description by stripping technical details and referrals to + other browser applications that are less known than firefox and thus don't + provide any valuable info to normal users. + - update debian/control + * bump build dependency for xulrunner-1.9-dev to >= 1.9~b3 + - update debian/control + * bump bin dependency on xulrunner-1.9 and on xulrunner-1.9-gnome-support + to >= 1.9~b3 + - update debian/control + * introduce (empty) firefox meta package that automatically upgrades users + to latest major releases of firefox; firefox 2 will be reuploaded as + firefox-2 and then be demoted to universe + - update debian/control + * make firefox-3.0 conflict/replace old firefox 2 package to force upgrade + - update debian/control + * remove "Development Version" disclaimer from package short descriptions + - update debian/control + * introduce empty meta packages for firefox, firefox-dom-inspector, + firefox-gnome-support and firefox-dev to provide a seamingless upgrade path + from previous firefox versions. Add Conficts/Replaces accordingly and make + firefox-3.0 Conflicts/Replaces/Provides firefox-libthai which is now fully + integrated in the core as pango line breaking feature is used. + - update debian/control + * provide link /usr/bin/firefox => /usr/bin/firefox-4.0 + - add debian/firefox-3.0.links + + [ Fabien Tassin ] + * Add support for mozilla-devscripts and clean-up rules file accordingly + - update debian/rules + * Clean-up rules file to make more use of $(EXTRA_SYSTEM_CONFIGURE_FLAGS) + - update debian/rules + * Update diverged patch: + - update debian/patches/ftbfs-with-branding-dir + * Add #DEBHELPER# token to prerm script + - update debian/firefox-3.0.prerm + * Replace deprecated ${Source-Version} by ${binary:Version} + - update debian/control + * Bump requirement for system cairo to >= 1.5.8 as we now need + the newly added cairo_path_extents() + - update debian/rules + * Add a menu file + - add debian/firefox-3.0.menu + * Include mozilla-devscripts file using -include so ifneq could be omitted + - update debian/rules + * Improve migration script to take care of all previously used profile + directories (during alpha and beta phases) + - update debian/firefox.sh.in + + -- Alexander Sack <asac@ubuntu.com> Wed, 13 Feb 2008 16:55:10 +0100 + +firefox-3.0 (3.0~b3~cvs20080101t1000+nobinonly-0ubuntu1) hardy; urgency=low + + * new years upstream snapshot (3.0b3 pre, CVS 20080101t1000) features: + - new firefox 3 version (LP: #178066) + - file upload dialog has preview for images (LP: #89381) + - gnome/gtk theme icons for main navigation and mime-type icons work + properly now (LP: #160942) + - honours proper plugin/extension locations now (LP: #123118) + (see https://wiki.ubuntu.com/XulrunnerGecko) + - import bookmarks from ffox 2 properly (LP: #163746) + - proper implementation for adding security exceptions (LP: #179706) + + [ Alexander Sack ] + * new upstream snapshot (3.0b3 pre, CVS 20080101t1000) + * update firefox-profile patch because of changed upstream codebase + - update debian/patches/firefox-profilename + * firefox-3.0 now has its own extensions directory because latest + xulrunner-1.9 supports extensions (and plugins) in three directories: + PROFILE, APP (ffox), GRE (xul) + - update debian/firefox-3.0.dirs + - update debian/rules + * exceptional official branding release for cvs version to hardy: add easy to + use FORCE_OFFICIAL_BRANDING switch in rules and enable it for this release + - update debian/rules + + [ Fabien Tassin ] + * Move xulrunner-1.9 dependencies to b3 + - update debian/control + + -- Alexander Sack <asac@ubuntu.com> Wed, 02 Jan 2008 15:43:50 +0100 + +firefox-3.0 (3.0~b2+nobinonly-0ubuntu1) hardy; urgency=low + + [ Fabien Tassin ] + * new upstream snapshot (3.0b2 from FIREFOX_3_0b2_RELEASE) + - update debian/changelog + * Drop debian/patches/no-have-stdint-h-ftbfs.patch integrated + upstream and bump xulrunner requirements to 1.9~b2~cvs20071119 + - update debian/control + - drop debian/patches/no-have-stdint-h-ftbfs.patch + - update debian/patches/series + * Add libdbus-glib-1-dev >= 0.60 to build-deps. See MozBug #388743. + - update debian/control + * Update rules to use system cairo if cairo >= 1.5.4 is found + - update debian/rules + * Add libpixman-1-dev to build-deps, needed by system cairo + - update debian/control + * Update Standards-Version to 3.7.3 + - update debian/control + * Drop -1.9 suffix of expected xulrunner-1.9 pkg-config files + - update debian/patches/nspr_flags_by_pkg_config_hack.patch + * Fold Build-Depends line making changes easier to track in diffs + - update debian/control + + [ Alexander Sack ] + * use system nspr and system nss; add build-depends accordingly + - update debian/control + - update debian/rules + * add versioned depends on xulrunner-1.9 >= 1.9~b2+nobinonly which is the + first xulrunner-1.9 that officially uses system nspr/nss. + * tighten dependency on xulrunner-1.9 << 1.9~b3~ + - update debian/control + * drop DEV_PACKAGE_INDICATION business because xulrunner pkg-config files + properly reference system-nss/nspr since 1.9+b2+nobinonly + - update debian/rules + + -- Fabien Tassin <fta@sofaraway.org> Wed, 19 Dec 2007 20:23:23 +0100 + +firefox-3.0 (3.0~b1+nobinonly-0ubuntu1) hardy; urgency=low + + * new upstream snapshot (3.0b1 from FIREFOX_3_0b1_RELEASE) + - update debian/changelog + * Rename desktop file firefox-3.0-final.desktop so it doesn't + get cleaned out + - update debian/rules + - rename debian/firefox-3.0.desktop to firefox-3.0-final.desktop + * Install extensions in /usr/lib/xulrunner-addons/extensions + - update debian/firefox-3.0.install + - update debian/rules + * Use official branding for beta too as homepage/releasenotes URLs + are maintained that way. Disable crash reporter. + - update debian/patches/firefox-profilename + - update debian/rules + - update debian/firefox-3.0-final.desktop + * Fix URLs for addons/themes/plugins + - update debian/patches/firefox-profilename + * Revert hardcoded lib path to the upstream path, move searchplugins to + /usr/lib/firefox-addons/searchplugins and plugins to + /usr/lib/firefox-addons/plugins. + - update debian/patches/firefox-fsh + - update debian/rules + - divert debian/firefox-3.0.postinst => debian/firefox-3.0.postinst.in + - divert debian/firefox.sh => debian/firefox.sh.in + - add debian/firefox-3.0.dirs + - drop debian/firefox-3.0.links + - update debian/firefox-3.0{,-gnome-support}.install + * Drop --with-default-mozilla-five-home, prefer default value + - update debian/rules + + -- Fabien Tassin <fta@sofaraway.org> Tue, 27 Nov 2007 02:27:42 +0100 + +firefox-3.0 (3.0~b1~rc3+nobinonly-0ubuntu1) hardy; urgency=low + + RELEASE: 3.0~b1~rc3+nobinonly-0ubuntu1 to ubuntu/hardy + + [ Fabien Tassin ] + * new upstream snapshot: 3.0a9pre cvs20071105t0828 + * Add a dependency on firefox-3.0-gnome-support to xulrunner-1.9-gnome-support + - update debian/control + * Fix a typo in rules file (non ascii char) + - update debian/rules + * new upstream snapshot (1.9b1 rc3 from FIREFOX_3_0b1_RC3) + - update debian/changelogs + * Update depends/build-depends for xulrunner-1.9 to >= 1.9~b1~rc + - update debian/control + + [ Alexander Sack ] + * Use granparadiso branding for alpha and beta builds and official branding + for final builds: + - update debian/rules + * Use --enable-official-branding for final builds + - update debian/rules + - add debian/firefox-3.0.desktop + * fix places regression by shipping usr/lib/firefox-3.0/modules + - update debian/firefox-3.0.install + + -- Fabien Tassin <fta@sofaraway.org> Tue, 14 Nov 2007 14:34:50 +0100 + +firefox-3.0 (3.0~alpha9~cvs20071003t0648-0ubuntu1~mt1) gutsy; urgency=low + + RELEASE: 3.0~alpha9~cvs20071003t0648-0ubuntu1~mt1 to gutsy/ppa + + [ Fabien Tassin ] + * update diverged debian/patches/firefox-fsh + * build with or without nss/nspr depending on version like xulrunner-1.9 + - update debian/rules + + -- Fabien Tassin <fta@sofaraway.org> Mon, 08 Oct 2007 16:28:50 +0200 + +firefox-3.0 (3.0~alpha8+nobinonly-0ubuntu1) gutsy; urgency=low + + RELEASE: 3.0~alpha8+nobinonly-0ubuntu1 to gutsy/universe. + + * new orig.tar.gz without binary only files (LP: #121734). + * debian/firefox.sh: fix typo in firefox.sh profile migration code + (LP: #150529). + + -- Alexander Sack <asac@ubuntu.com> Tue, 09 Oct 2007 10:48:36 +0200 + +firefox-3.0 (3.0~alpha8-0ubuntu2) gutsy; urgency=low + + * debian/control: add missing Depends: on xulrunner-1.9 (LP: #149916). + + -- Alexander Sack <asac@ubuntu.com> Mon, 08 Oct 2007 10:45:06 +0200 + +firefox-3.0 (3.0~alpha8-0ubuntu1) gutsy; urgency=low + + RELEASE: 3.0~alpha8-0ubuntu1 to gutsy/universe. + + [ Alexander Sack ] + * drop libnspr4-dev and libnss3-dev build-depends for gutsy upload. + * don't build with system-nspr/-nss for gutsy universe upload. + * add nspr_flags_by_pkg_config_hack.patch to use pkg-config to get + nspr libs and cflags from xulrunner-1.9-dev package. + + -- Alexander Sack <asac@ubuntu.com> Fri, 05 Oct 2007 02:38:08 +0200 + +firefox-3.0 (3.0~alpha8-0ubuntu1~mt3) gutsy; urgency=low + + RELEASE: 3.0~alpha8-0ubuntu1~mt3 to gutsy/PPA. + + [ Fabien Tassin ] + * Unset browser.safebrowsing.enabled by default + Update debian/firefox.js + * Compile with gcc/g++ 4.2 for all archs. + * Add debian/patches/force_safebrowsing_off.patch forcing + the default to off so users could decide to turn it if they + want to. + * Fix a typo in debian/control (Fixes LP #146694) + * Fix a FTBFS introduced by gcc-4.2 that fixed a visibility bug + [GCC bug 26905] triggering WRAP_SYSTEM_INCLUDES in firefox. + This WRAP_SYSTEM_INCLUDES triggered code depending on nspr + sources that are no longer accessible because of the stripped + tarball. + - add debian/patches/dont_depend_on_nspr_sources.patch + - update debian/patches/series + - update debian/changelog + * Clean a possible left over from trunk in update-notifier user + directory + - update debian/firefox-3.0.postinst + + -- Alexander Sack <asac@ubuntu.com> Wed, 03 Oct 2007 21:46:15 +0200 + +firefox-3.0 (3.0~alpha8-0ubuntu1~mt2) gutsy; urgency=low + + [ Fabien Tassin ] + * dummify firefox-3.0-dom-inspector and firefox-3.0-venkman + now that we ship those two extensions with xulrunner + + [ Alexander Sack ] + * make debian/firefox.sh executable in pre-build:: target. + + -- Alexander Sack <asac@ubuntu.com> Thu, 27 Sep 2007 20:05:10 +0200 + +firefox-3.0 (3.0~alpha8-0ubuntu1~mt1) gutsy; urgency=low + + Upstream Release: 3.0~a8 aka MOZILLA_1_9a8_RELEASE + + [ Fabien Tassin ] + * new release: GranParadiso 3.0 alpha 8 + * Fix debian/rules to detect which xul-dev package is installed + * Change branding based on Version (use MineField if version + matches cvs, otherwise use GranParadiso) + * Move gnome component into firefox-3.0-gnome-support + + -- Alexander Sack <asac@ubuntu.com> Tue, 25 Sep 2007 02:30:07 +0200 + +firefox-3.0 (3.0~a8~cvs20070914t1713-0ubuntu1~mt2) gutsy; urgency=low + + RELEASE: 3.0~a8~cvs20070914t1713-0ubuntu1~mt2 to gutsy/PPA. + + [ Fabien Tassin ] + * Massive app-name change from firefox-trunk to firefox-3.0 + * Add a migration profile script: + add debian/firefox.sh, update debian/firefox-3.0.install + debian/firefox-3.0.links + + -- Alexander Sack <asac@ubuntu.com> Fri, 21 Sep 2007 20:47:20 +0200 + +firefox-trunk (3.0~a8~cvs20070914t1713-0ubuntu1~mt1) gutsy; urgency=low + + RELEASE: 3.0~a8~cvs20070914t1713-0ubuntu1~mt1 to gutsy/PPA. + + [ Fabien Tassin ] + * new cvs snapshot: 3.0a8pre cvs20070914t1713 using a stripped tarball + produced my mozclient + * update debian/control to fix xulrunner version (1.9a8pre vs 1.9~a8) + * drop patches no longer useful: + bz386844_java_plugin_crash_in_xsync.patch + bz392722_fix_nsinstall_on_double_slash.patch + bz386866_ftbfs_toolkit_xre_Makefile_in.patch + * Link venkman from xulrunner-1.9 + * Update firefox-dom-inspector package to just link the + extension from xulrunner-1.9 + * Update debian/firefox-trunk.install to install browserconfig.properties + * Make the installer complain about missing files on stdout + instead of stderr so logs are easier to read. + Add debian/patches/installer_use_stdout_for_missing_files.patch + and update debian/patches/series + + [ Alexander Sack ] + * Use --disable-install-strip to prevent packager from stripping symbols: + - debian/rules: add --disable-install-strip as configure option. + - debian/patches/installer_shouldnt_skip_strip_if_disable_strip_configured, + series: drop patch to disable stripping symbols during |make install| in + favour of generic upstream solution provided by --disable-install-strip. + + -- Alexander Sack <asac@ubuntu.com> Tue, 18 Sep 2007 00:14:51 +0200 + +firefox-trunk (3.0~a8~cvs20070829-0ubuntu1) gutsy; urgency=low + + RELEASE: 3.0~a8~cvs20070829-0ubuntu1 to gutsy/PPA. + + [ Fabien Tassin ] + * new cvs snapshot: 3.0a8pre cvs20070829 + * update debian/rules to use system xulrunner by adding: + --with-libxul-sdk=/usr/lib/xulrunner-devel-1.9a8pre + * update debian/patches/trunk-fsh to use $(MOZ_APP_NAME) while copying + xulrunner-stub + * add debian/patches/installer_shouldnt_copy_xulrunner.patch to prevent + the installer to dump xulrunner files into firefox install dir, + update debian/patches/series + * fix debian/firefox-trunk-dev.install and debian/firefox-trunk-dev.links + to reflect new install scheme + * temporary disable debian/firefox-trunk-dev.* as 'make install' is not + properly installing those files upstream. + * update debian/changelog + + -- Alexander Sack <asac@ubuntu.com> Wed, 29 Aug 2007 20:53:27 +0200 + +firefox-trunk (3.0~a8~cvs20070825-0ubuntu1) gutsy; urgency=low + + RELEASE: 3.0~a8~cvs20070825-0ubuntu1 to gutsy/PPA. + + [ Fabien Tassin ] + * new cvs snapshot: 3.0a8pre cvs20070825 + * Add debian/patches/installer_shouldnt_skip_strip_if_disable_strip_configured + contributed by asac, fixing --disable-strip (was being ignored) + * Drop debian/patches/bz390451_master_password_lost.patch now fully integrated + upstream. Update debian/patches/series + * Update debian/patches/bz392722_fix_nsinstall_on_double_slash.patch to + also fix security/coreconf/nsinstall/nsinstall.c + + -- Alexander Sack <asac@ubuntu.com> Sat, 25 Aug 2007 16:56:07 +0000 + +firefox-trunk (3.0~a8~cvs20070818-0ubuntu1) gutsy; urgency=low + + RELEASE: 3.0~a8~cvs20070818-0ubuntu1 to gutsy/PPA. + + [ Fabien Tassin ] + * new cvs snapshot: 3.0a8pre cvs20070818 + (bump version from 2.99 to 3.0a8pre, as that's what it really is + in mozilla/browser/config/version.txt) + * Update debian/patches/trunk-profilename to patch firefox-branding.js + in the right place now that we no longer specify a branding. + * Update to cvs20070818 and patch clean-up + - debian/rules: drop --disable-airbag, add --disable-crashreporter + - debian/patches/config_rules_install_dist_files => + debian/patches/bz386904_config_rules_install_dist_files.patch + - debian/patches/fix_nsinstall_on_double_slash.patch => + debian/patches/bz392722_fix_nsinstall_on_double_slash.patch + - debian/patches/ftbfs_toolkit_xre_Makefile_in => + debian/patches/bz386866_ftbfs_toolkit_xre_Makefile_in.patch + - update debian/patches/bz390451_master_password_lost.patch: + Fix committed but work-around still in place upstream + - remove unused debian/patches/fix_make_install + - refresh diverging debian/patches/no-have-stdint-h-ftbfs.patch + - update debian/patches/series + + -- Alexander Sack <asac@ubuntu.com> Sat, 18 Aug 2007 14:27:09 +0000 + +firefox-trunk (2.99+2cvs20070813-0ubuntu1) gutsy; urgency=low + + RELEASE: 2.99+2cvs20070813-0ubuntu1 to gutsy/PPA. + + [ Fabien Tassin ] New cvs snapshot: 2.99+2cvs20070813 + * Fix crash in java plugin in XSync(). See Mozilla Bug #386844. + Closes LP Bug #132235 + * Minefield. Update debian/rules to remove forced unofficial branding + that produced Granparadiso branding. Update debian/firefox-trunk.desktop + to use the name Minefield. + * Really disable system cairo. Commit #47 was broken. + Update debian/rules. + * Fix update-notifier + - rename debian/firefox-restart-required.update-notifier into + debian/firefox-trunk-restart-required.update-notifier + - update debian/firefox-trunk-restart-required.update-notifier to + use Firefox-Trunk as application name + - update debian/firefox-trunk.install to reflect rename + - update debian/firefox-trunk.{postinst,prerm} to install/remove + that update-notifier file. + * Re-enable master password previously hidden as preventive measure. + Add debian/patches/bz390451_master_password_lost.patch and update + debian/patches/series. Fixes Mozilla Bug #390451 (not committed + in trunk yet). + * Add debian/firefox-trunk.{postinst,prerm} scripts to add a + x-www-browser alternative for /usr/bin/firefox-trunk. + Priority set to 40, lower than firefox-granparadiso (50) and + plain firefox (70). + * update debian/rules to force --disable-system-cairo until we figure out + what's causing the assert/crash on shutdown. See LP Bug #122735. + * Fix cdbs install scripts + - update debian/firefox-trunk.install and debian/firefox-trunk.links + - Fix a typo in firefox-trunk.links (LP Bug #122737) + - update debian/firefox-trunk-dev.install and add + debian/firefox-trunk-dev.links + * drop debian/control.in and set DEB_AUTO_UPDATE_DEBIAN_CONTROL=0 + in debian/rules (below the includes as the value is overwritten + otherwise) + * update Build-Depends and fix Suggests in debian/control + * Redo debian/patches/trunk-fsh like for GranParadiso: + - remove version from $installdir so that we do the right thing. + It is useless anyway and it broke the profile migration when -dev + was not installed. + * Add debian/patches/trunk-profilename: + - change application name from Firefox to Firefox-Trunk + - update startup script changing profile name + from ~/.mozilla/firefox to ~/.mozilla/firefox-trunk. + The startup script will try to initialize that new profile by + using existing firefox profile, keeping the later untouched. + - update URLs in upstream branding as changing application name + produces invalid URLs. + - update debian/patches/series + * debian/rules: --disable-airbag as we don't want it and configure + fails because we need libcurl + * update debian/patches/fix_nsinstall_on_double_slash.patch to preserve + the initial (upstream) multiple trailling slashes pruning used + for mkdir() + * new cvs snapshot: 2.99+2cvs20070805. Update debian/changelog + + -- Alexander Sack <asac@ubuntu.com> Mon, 13 Aug 2007 23:25:32 +0200 + +firefox-trunk (2.99+2cvs20070805-0ubuntu1) gutsy; urgency=low + + * new cvs snapshot: 2.99+2cvs20070805 + + -- Alexander Sack <asac@ubuntu.com> Mon, 23 Jul 2007 09:43:55 +0000 + +firefox-trunk (2.99+2cvs20070703-0ubuntu0) feisty; urgency=low + + * debian/patches/trunk-fsh: applied manually to build-tree/mozilla + /browser/app/makefile.in, due to failure to apply during build + * debian/patches/ftbfs_toolkit_xre_Makefile_in: Made and applied to fix + toolkit/xre/Makefile.in to fix failure to build to fix Mozilla bug + #386866 + * debian/patches/config_rules_install_dist_files: Made patch due to + failure to find application.ini when launched to fix Mozilla bug + #386904 (Thanks to Alexander Sack <asac@ubuntu.com>) + * debian/patches: Removed old patches that are no longer needed + - removed submakefiles-fix + - removed test + * debian/patches/series: updated as needed + * debian/firefox-trunk.install: Added lines to generate application.ini + and platform.ini + * debian/rules: Removed --with-system-png=/usr \ due to failure to + build during configure, stating system's libpng doesn't have APNG + support + * Reminder to see if we can patch libpng (asac) + + -- John Vivirito <gnomefreak@ubuntu.com> Wed, 04 Jul 2007 20:37:00 -0400 + +firefox-trunk (2.99+2cvs20070628-0ubuntu0) feisty; urgency=low + + * merging copyright file fix from granparadiso branch + * debian/copyright, debian/MPL, debian/docs: added previously missed + copyright files. + + -- Alexander Sack <asac@ubuntu.com> Fri, 15 Jun 2007 13:52:16 +0200 + +firefox-trunk (2.99+2cvs20070601-0ubuntu0) feisty; urgency=low + + * update upstream cvs + * debian/rules: don't use system-nspr and system-nss anymore + * debian/control*: drop build-depends accordingly + * debian/firefox-trunk.links: don't create link + usr/lib/firefox/libnssckbi.so ... which was the wrong place + anyway + * debian/patches/series, debian/patches/nspr_macro_backport_for_gfx_thebes: + drop nspr hack as we don't build against system nss/nspr for the time being + + -- Alexander Sack <asac@ubuntu.com> Fri, 25 May 2007 10:10:00 +0200 + +firefox-trunk (2.99+2cvs20070417-0ubuntu0) feisty; urgency=low + + * update upstream cvs + * debian/rules, debian/control[.in]: build against system-nspr and + system-nss for gutsy; drop explicity depends on libnspr and libnss + as those are now properly detected + + -- Alexander Sack <asac@ubuntu.com> Wed, 18 Apr 2007 13:00:00 +0200 + +firefox-trunk (2.99+1-3.0a.20070201-0ubuntu0) feisty; urgency=low + + * package firefox 3 preview + * rewrite packaging, make use of cdbs with quilt patch + system. + + imported initial patches + + -- Alexander Sack <asac@ubuntu.com> Thu, 22 Feb 2007 09:00:00 +0200 + +firefox (2.0.0.1+1-0ubuntu2) feisty; urgency=low + + * browser/app/Makefile.in: link firefox-bin with + --no-as-needed again. (regression from + 2.0.0.1+1-0ubuntu1) + * browser/components/feeds/src/FeedWriter.js: fix + RSS preview/subscription for flat chrome + (Closes lp#61182) + * debian/rules: set BUILD_OFFICIAL and MOZILLA_OFFICIAL environment + so build gets a proper BUILD_ID (Closes LP#). + + -- Alexander Sack <asac@ubuntu.com> Mon, 19 Feb 2007 12:45:00 +0100 + +firefox (2.0.0.1+1-0ubuntu1) feisty; urgency=low + + * repackage with new upstream mozilla.org and split up patches + into distinct feature patches available at + http://people.ubuntu.com/~asac/firefox-patches/ + * make use of original source tarball as distributed from + ftp.mozilla.org + * debian/rules: use --enable-official-branding to produce + official firefox branding; remove icons in debian/ dir; + add more garbage cleanup + * debian/firefox.links: /usr/share/pixmaps/firefox.png and + usr/share/pixmaps/mozilla-firefox.png now link to + usr/share/firefox/icons/mozicon128.png + * drop FeedWriter.js patch, no rational available. + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp, + xpcom/reflect/xptcall/src/md/unix/Makefile.in, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_m68k.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s, + configure.in, config/rules.mk, security/coreconf/Linux.mk: + drop debian architecture patches for + not ubuntu platforms + * debian/control: taking over maintainership + * configure.in: update hidden visibility patch from bugzilla + * configure.in: drop + * Makefile.in: drop explicit export of nss as build system is not + broken anymore + * browser/app/Makefile.in: drop linker tweaks for now. + * browser/app/profile/firefox.js: drop override for homepage + * browser/locales/en-US/chrome/branding/brand.properties: drop further + branding hacks not needed anymore + * browser/components/search/nsSearchService.js: drop not needed + official browser hacks + * prefs-size.diff: removed garbage file from source + + -- Alexander Sack <asac@ubuntu.com> Wed, 15 Feb 2007 23:15:00 +0100 + +firefox (2.0.0.1+0dfsg-0ubuntu2) feisty; urgency=low + + * Build using hunspell instead of myspell. + - debian/control: Build-depend on libhunspell-dev instead of libmyspell-dev. + - config/autoconf.mk.in: Add MOZ_MYSPELL_CFLAGS. + - extensions/spellcheck/myspell/src/Makefile.in: Use MOZ_MYSPELL_CFLAGS. + - extensions/spellcheck/myspell/src/mozMySpell.h: Include hunspell.cxx + instead of myspell.cxx. + - configure.in, configure: Overwrite myspell detection with hunspell. + + -- Matthias Klose <doko@ubuntu.com> Thu, 18 Jan 2007 11:57:14 +0000 + +firefox (2.0.0.1+0dfsg-0ubuntu1) feisty; urgency=low + + * New upstream security update: + - CVE-2006-6507, MFSA 2006-76: XSS using outer window's Function object. + - CVE-2006-6506, MFSA 2006-75: RSS Feed-preview referrer leak. + - CVE-2006-6504, MFSA 2006-73: SVG Processing Remote Code Execution. + - CVE-2006-6503, MFSA 2006-72: XSS by setting img.src to javascript: URI. + - CVE-2006-6502, MFSA 2006-71: LiveConnect crash finalizing JS objects. + - CVE-2006-6501, MFSA 2006-70: Privilege escallation using watch point. + - CVE-2006-6497, CVE-2006-6498, CVE-2006-6499, MFSA 2006-68: Crashes + with evidence of memory corruption. + * debian/rules: use original upstream icons (Closes LP#68180). + * debian/debsearch.src: make feisty the default debsearch target. + * browser/base/content/utilityOverlay.js: change Launchpad translation/help + pages for Feisty. + + -- Kees Cook <kees@ubuntu.com> Thu, 21 Dec 2006 09:51:22 -0800 + +firefox (2.0+0dfsg-0ubuntu3) edgy; urgency=low + + * Patch from upstream CVS to fix RSS preview/subscription, thanks to Mike + Connor and Martin Jürgens (Closes: LP#61182) + + -- Matt Zimmerman <mdz@ubuntu.com> Mon, 23 Oct 2006 10:20:25 +0100 + +firefox (2.0+0dfsg-0ubuntu2) edgy; urgency=low + + * uudecode debsearch.gif too. Fixes FTBFS + * Make edgy the default debsearch target. Closes: Malone: #61687 + + -- Tollef Fog Heen <tfheen@ubuntu.com> Mon, 23 Oct 2006 08:52:11 +0200 + +firefox (2.0+0dfsg-0ubuntu1) edgy; urgency=low + + * Bump version to 2.0 (no upstream changes from rc3) + * browser/components/search/nsSearchService.js + - Set MOZ_OFFICIAL to "official", distributionID to "com.ubuntu" + * debian/branding: new subdirectory with images + * debian/rules: + - build: uudecode and substitute images in source tree, use debian/branding/icon64.png + instead of debian/firefox.png + - clean: restore images in source tree, remove uudecoded versions + + -- Matt Zimmerman <mdz@ubuntu.com> Fri, 20 Oct 2006 15:56:42 -0700 + +firefox (1.99+2.0rc3+dfsg-0ubuntu1) edgy; urgency=low + + * New upstream version 2.0rc3, UVF exception approved by Matt Zimmerman. + * configure: Fix bashism to let the gcc visibility=hidden bug detection + work. + * configure{,.in}: Change MOZ_APP_DISPLAYNAME from 'BonEcho' to 'Firefox' to + make UserAgent string work with web sites which evaluate it. + * browser/base/content/utilityOverlay.js: Open the Launchpad + translation/help pages for Edgy, not Dapper. + * For the sake of automatic vulnerability tracking: All 1.5.0.x and earlier + vulnerabilities were fixed in the 2.0 branch as well: + CVE-2005-0752 CVE-2005-1531 CVE-2005-1532 CVE-2005-2114 CVE-2006-0749 + CVE-2006-1731 CVE-2006-1732 CVE-2006-1733 CVE-2006-1734 CVE-2006-1735 + CVE-2006-1736 CVE-2006-1737 CVE-2006-1738 CVE-2006-1739 CVE-2006-1740 + CVE-2006-1741 CVE-2006-1742 CVE-2006-1790 CVE-2006-2775 CVE-2006-2776 + CVE-2006-2777 CVE-2006-2778 CVE-2006-2779 CVE-2006-2780 CVE-2006-2782 + CVE-2006-2783 CVE-2006-2784 CVE-2006-2785 CVE-2006-2786 CVE-2006-2787 + CVE-2006-2788 CVE-2006-3113 CVE-2006-3677 CVE-2006-3801 CVE-2006-3802 + CVE-2006-3803 CVE-2006-3805 CVE-2006-3806 CVE-2006-3807 CVE-2006-3808 + CVE-2006-3809 CVE-2006-3810 CVE-2006-3811 CVE-2006-3812 CVE-2006-4253 + CVE-2006-4340 CVE-2006-4565 CVE-2006-4566 CVE-2006-4567 CVE-2006-4568 + CVE-2006-4569 CVE-2006-4571 + + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Oct 2006 09:28:15 +0200 + +firefox (1.99+2.0rc2+dfsg-0ubuntu3) edgy; urgency=low + + * debian/firefox-runner: Disable Pango if a Sinhala locale is present. LP + 66270. + + -- Colin Watson <cjwatson@ubuntu.com> Sun, 15 Oct 2006 20:29:26 +0100 + +firefox (1.99+2.0rc2+dfsg-0ubuntu2) edgy; urgency=low + + * Delete /usr/lib/firefox/components/compreg.dat in the postinst. + This is a partial workaround for LP 30791. + + -- Ian Jackson <iwj@ubuntu.com> Thu, 12 Oct 2006 12:19:11 +0100 + +firefox (1.99+2.0rc2+dfsg-0ubuntu1) edgy; urgency=low + + * New upstream version 2.0rc2. + * Fix/workaround for epiphany GtkSocket lifetype crash: + apply patch id=241087 from Mozilla Bugzilla #241535 to fix LP #63814. + * Change application name to `Firefox', as requested by mdz. + Files changed: + - browser/locales/en-US/chrome/branding/brand.dtd + - browser/locales/en-US/chrome/branding/brand.properties; + New values: + - brandShortName and brandFullName: `Bon Echo' => `Firefox' + - vendorShortName: `Mozilla' => `Ubuntu' + * Make preferences dialogue fit again (bah!). + + -- Ian Jackson <iwj@ubuntu.com> Tue, 10 Oct 2006 18:49:32 +0100 + +firefox (1.99+2.0b2+dfsg-1ubuntu3) edgy; urgency=low + + * Remove /usr/lib/mozilla-thunderbird from the LD_LIBRARY_PATH + if we find it there. Workaround for LP 57923. + * Remove pocket name (eg `-security') from distribution identifier in + the browser user agent string. LP 55289. + + -- Ian Jackson <iwj@ubuntu.com> Tue, 3 Oct 2006 19:01:34 +0100 + +firefox (1.99+2.0b2+dfsg-1ubuntu2) edgy; urgency=low + + * Ship xpidl et al, in firefox-dev. Relates to Debian #362190. + Fixes Malone #61160. + + -- Ian Jackson <iwj@ubuntu.com> Thu, 21 Sep 2006 16:33:50 +0100 + +firefox (1.99+2.0b2+dfsg-1ubuntu1) edgy; urgency=low + + * Merged from Debian unstable; new upstream version. + * Remaining differences between + Debian and Ubuntu in no particular order: + - Build libnspr and libnss and corresponding -dev packages from this + source package. Plus changes to make these libs build nicely. + - Various changes to preferences, default bookmarks and search engines. + - Support for `Get Help Online' and `Translate This Application'. + - Size changes for various dialogue boxes to make the contents fit. + - Downloads go to separate `Desktop' folder by default. + - Fix some underquoted m4 arguments. + - Minor changes in directories, symlinks and debian/control + to cope with Ubuntu and Debian's different histories. + - disable File / Import (wizard is nonfunctional). + Malone #28563, Debian #350599, Mozilla Bugzilla 117844. + - Change `Latest Headlines' to `Latest BBC Headlines' to properly + disclose the source up front, and use a corresponding RSS URL. + - Default for FIREFOX_DSP is none. + - Pango support is enabled only if an installed locale seems to need + it. + - Note in README.Debian about how to run xpcshell. + - Disable xprint. + - No build dependency on libxp-dev; build-depend on zip instead. + - Various icon changes. + - Some currently-unused directory merging code in firefox.preinst. + - Less detail in the user agent string. + - Belt-and-braces removal for some cruft left over by some versions of + the Mozilla build system. + - Better firefox.menu entry (says `Firefox Web Browser'). + - Build dynamically linked, since in Ubuntu embedders use firefox. + - EbmedWindow::GetVisibility bugfix, Malone 40320, upstream 312998. + - Pass FC_ANY_METRICS to Fontconfig where appropriate. + - Extensive Thai language patch. + - Print in serif by default even though default display is sans. + - Some fixes to the (upstream-unused) nss makefiles. + - Strip PostScript/ from printer names. + - Better message about updates of read-only extension. + - Include pointer to the Gecko Runtime (GRE registration). + - Prevent websites from disabling context menus. + All of these changes are fully documented in the changelog below. + Please see those changelog entries for full details. Much historical + information about changes either taken up by Debian or upstream, or + dropped by us, is retained in this changelog. + + -- Ian Jackson <iwj@ubuntu.com> Wed, 13 Sep 2006 16:40:06 +0100 + +firefox (1.99+2.0b2+dfsg-1) experimental; urgency=low + + * New upstream beta release. + + * extensions/inspector/build/src/Makefile.in, + extensions/inspector/build/src/inspector.pkg, + extensions/inspector/build/src/nsInspectorModule.cpp: Removed, the problem + was lying in debian/rules. /me goes hiding under a rock. + * layout/inspector/public/Makefile.in: Reverted previous changes. + * debian/rules: Don't exclude inspector files when dh_installing the firefox + package. We need the inspector.xpt file from the components directory. The + files for the dom-inspector package are already excluded from the + firefox.install file anyway. + * debian/firefox-dom-inspector.install, + debian/firefox-dom-inspector.links: Simplified. + * debian/control: + + Turn firefox-dom-inspector into an arch: all package, since the binary + component has been merged into the firefox binary. + + Adjust dependencies for binNMU safety. + * xpcom/reflect/xptcall/src/md/unix/Makefile.in, configure.in, configure: + Use ${host_cpu} instead of uname -m so that firefox can safely build on + s390x with a s390 target, and on amd64 with an x86 target. + * uriloader/exthandler/unix/nsGNOMERegistry.cpp, + uriloader/exthandler/unix/nsGNOMERegistry.h, + uriloader/exthandler/unix/nsOSHelperAppService.cpp, + uriloader/exthandler/unix/nsMIMEInfoUnix.cpp, + uriloader/exthandler/unix/nsMIMEInfoUnix.h: Adapted patch from bz#273524 to + make helper applications with parameters work. (Closes: #355511) + * debian/copyright: Adjusted with updated information for firefox 2.0, which + is now properly tri-licensed \o/. (Closes: #330295) + * debian/rules: Install the MPL file taken from the upstream LICENSE file. + + -- Mike Hommey <glandium@debian.org> Fri, 1 Sep 2006 08:36:26 +0200 + +firefox (1.5.dfsg+1.5.0.6-3) unstable; urgency=low + + * browser/app/Makefile.in: Workaround to force link the xpcom library to + the firefox binary despite -Wl,--as-needed in the LDFLAGS. + (Closes: #378667) + * debian/firefox.install: Don't install xpt_link, xpt_dump, xpidl, + xpicleanup, xpcshell nor regxpcom. They are of no use to firefox users and + are provided with xulrunner anyway. (Closes: #362190) + + -- Mike Hommey <glandium@debian.org> Sun, 20 Aug 2006 19:49:25 +0200 + +firefox (1.5.dfsg+1.5.0.6-2) unstable; urgency=low + + * debian/firefox.desktop: + - Polish translation from Ian Jackson by way of an Ubuntu user. + (Closes: #382079) + - Patch from Ian Jackson to stop claiming dav:// URLs when firefox + doesn't understand them. (Closes: #382080) + * editor/libeditor/text/nsPlaintextEditor.cpp: Apply patch from + bz#271815 to fix OverTheSpot mode used by many Asian language input + modules. (Closes: #379935) + + -- Eric Dorland <eric@debian.org> Tue, 15 Aug 2006 00:09:55 -0400 + +firefox (1.5.dfsg+1.5.0.6-1) unstable; urgency=low + + * New upstream release. + + -- Eric Dorland <eric@debian.org> Thu, 3 Aug 2006 13:17:45 -0400 + +firefox (1.5.dfsg+1.5.0.5-1) unstable; urgency=high + + [ Eric Dorland ] + * New upstream release. Urgency high because it fixes MFSA 2006-44 to + MFSA 2006-56 excluiding MFSA-2006-49. (Closes: #380463) + + [ Mike Hommey ] + * debian/firefox.prerm: Remove /usr/lib/firefox/.autoreg instead of + /var/lib/firefox/.autoreg. + * browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in: + Removed very old and now useless changes. + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp: Removed + useless new line that showed up in the diff.gz. + + -- Eric Dorland <eric@debian.org> Sun, 30 Jul 2006 17:08:38 -0400 + +firefox (1.99+2.0b1+dfsg-1) experimental; urgency=low + + * New upstream beta targetted at experimental: + - Much better search plugins handling. They can be added and removed at + will, and even better, system-wise search plugins can be ignored at the + profile level. (Closes: #352195, #320957, #296425, #308005) + * browser/components/shell/src/Makefile.in: Correctly install the + setDefaultBrowser component. + * config/rules.mk: Don't install extensions in the chrome. + * debian/firefox.links: Link /usr/lib/firefox/dictionaries to + /usr/share/myspell/dicts. + * config/autoconf.mk.in, configure, configure.in: Add the + --enable-system-myspell argument to configure to use the system myspell + library. + * extensions/spellcheck/myspell/src/Makefile.in: Use the system myspell + library when asked to. + * debian/rules: + - Add --enable-system-myspell to configure call. + - Do shlibsign libfreebl's (there can be several depending on the arch). + * debian/control: Add libmyspell-dev to build dependencies. + * browser/components/microsummaries/src/Makefile.in, config/Makefile.in: + Add rules so that make clean cleans everything. + * allmakefiles.sh: Removed references to nonexisting Makefiles in + extensions/xmlextras/base. + * configure, configure.in: Apply patches from bz#334866, bz#319012 and + bz#335949 + fixups to workaround gcc visibility hidden bugs, especially + #331460 (an instance of which is actually still present in C++, + see gcc#26905). + * extensions/inspector/build/src/Makefile.in, + extensions/inspector/build/src/inspector.pkg, + extensions/inspector/build/src/nsInspectorModule.cpp: Added missing files + for the DOM Inspector component. + * extensions/inspector/build/src/Makefile.in, + layout/inspector/public/Makefile.in: Adapted so that the DOM Inspector + component would build correctly and the xpt would be installed in + the extensions directory. + * extensions/reporter/Makefile.in: Install missing reporter's preference. + + -- Mike Hommey <glandium@debian.org> Fri, 21 Jul 2006 07:05:25 +0200 + +firefox (1.5.dfsg+1.5.0.4-3) unstable; urgency=low + + [ Eric Dorland ] + * debian/control: + - Fix silly typo of binutils. (Closes: #378582) + - Standards-Version to 3.7.2.1. + + [ Mike Hommey ] + * debian/rules: + - Use a specific LD_LIBRARY_PATH at link time so that we don't need to + link against indirect dependencies. (Closes: #378378) + - Run shlibsign after the files are stripped so that it is accurate and + FIPS mode can correctly work. + - Removed old commented out OPTFLAGS that were kept in case gcc 4.0 did + no better than gcc 3.x. + - Removed old exported variables that are useless nowadays. + - Removed dh_strip call in binary-indep. Who wants to strip + arch-independant files ;) + * debian/presubj: Added notes about plugins and crash reports. + * security/manager/Makefile.in, security/nss/cmd/shlibsign/Makefile: + Don't build nor install the .chk files but still build shlibsign. + * debian/firefox.install: Don't install .chk files since we generate them + after dh_strip. + * security/nss/cmd/shlibsign/manifest.mn: Don't build in shlibsign/mangle. + It doesn't build anyway. + + -- Eric Dorland <eric@debian.org> Wed, 19 Jul 2006 23:56:22 -0400 + +firefox (1.5.dfsg+1.5.0.4-2) unstable; urgency=low + + [ Eric Dorland ] + * netwerk/base/public/security-prefs.js: Disable SSLv2 by default. I + thought the weak cipher warning took care of this. (Closes: #371153) + * debian/firefox-runner: Simplify the dsp autodetection and add aoss to + the roster. (Closes: #372848) + * firefox-restart-required.update-notifier, firefox.postinst, + firefox.install: Add update-notifier to indicate that firefox needs to + be restarted on upgrade. Based on Ian Jackson's patch, but reworked a + little. Also with a bad French translation. Translators, assemble! + (Closes: #365865) + * config/rules.mk, debian/control: Apply patch from Thiemo Seufer to + remove mips -xgot hack and build depend on the appropriate binutils on + mips and mipsel. (Closes: #374372) + * debian/presubj, debian/README.Debian: Add a bit more information about + disabling Pango, which often seems to be the source of problems. + * debian/firefox-runner: + - Print out MOZ_NO_REMOTE in verbose mode. + - Fix some unreachable logic, Thanks Daniel Jacobowitz. + + [ Mike Hommey ] + * debian/rules: + - Fix for Gecko date extraction from client.mk. + - Disabled strict aliasing from optimized builds. + - Added -Wl,--as-needed to the LDFLAGS, so that we don't get indirect + libraries linked. + * config/static-config.mk: Add MOZ_XFT_LIBS to STATIC_EXTRA_LIBS. It used to + get linked as a side effect of linking to indirect libraries, but should + be linked directly since Xft symbols are used. + * debian/firefox-restart-required.update-notifier: Fixed the french + translation. ;) + * content/html/content/src/nsGenericHTMLElement.cpp, + content/html/content/src/nsHTMLInputElement.cpp, + dom/src/base/nsGlobalWindow.cpp: Fixed crasher and potential crashers. + Reported bz#343953. + + -- Eric Dorland <eric@debian.org> Sun, 9 Jul 2006 02:37:28 -0400 + +firefox (1.5.dfsg+1.5.0.4-1) unstable; urgency=low + + * The "Post-DebConf Hangover" release. + + [ Eric Dorland ] + * New upstream release. Fixes various security issues. MFSA 2006-31 to + MFSA 2006-43, excluding MFSA 2006-40. + * debian/control: + - Standards-Version to 3.7.2.0. + - Set priority of -dbg to extra and Section to devel. + * gfx/src/gtk/nsFontMetricsPango.cpp, + intl/lwbrk/src/nsJISx4501LineBreaker.cpp, + intl/unicharutil/util/nsUnicharUtils.h, + intl/unicharutil/util/nsUnicharUtils.cpp, + layout/generic/nsTextFrame.cpp: Patch from Jurij Smakov (from + bz#161826) to fix alignment issues on sparc64. (Closes: #354725) + + [ Mike Hommey ] + * Applied distclean patch from xulrunner (in + debian/patches/01_distclean.dpatch), except for the javaxpcom stuff we + don't build anyway. + * browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}, + config/static-rules.mk: More cleaning for firefox. + * nsprpub/configure: Apply change to nsprpub/configure.in. + (Closes: #350616) + * gfx/src/gtk/nsFontMetricsPango.cpp: Some more changes so that it + actually builds without errors, and use PR_Malloc and PR_Free instead + of malloc and free. + + -- Eric Dorland <eric@debian.org> Fri, 2 Jun 2006 12:13:18 -0400 + +firefox (1.5.dfsg+1.5.0.3-2) unstable; urgency=low + + * debian/firefox.desktop: Add spanish translation, just in time for + DebConf 6! Thanks Ian Jackson. (Closes: #365870) + * debian/firefox-runner: Actually apply the patch from Morita Sho in + #364566. I'm a moron. (Closes: #365956, #365960) + * debian/control: Standards-Version to 3.7.1.0. Go policy team! + + -- Eric Dorland <eric@debian.org> Thu, 4 May 2006 01:38:18 -0400 + +firefox (1.5.dfsg+1.5.0.3-1) unstable; urgency=critical + + * The "secure enough for ya!" release. + * New upstream release. Contains security fixes, hence severity + critical. + - Fixes CVE-2006-1993 aka MFSA 2006-30. (Closes: #364810) + + [ Mike Hommey ] + * security/manager/Makefile.in, debian/firefox.install: Build and + install the .chk file again. That will make the FIPS mode work again. + * debian/control: Bumped Standards-Version to 3.7.0.0. No changes. + * debian/rules: Fix the navigator.ProductSub value for dumb scripts. + Closes: #364640, #365099. We now use the date of the client.mk file, + which is likely to be the closest value to the release date, instead of + useless build date. + Add the debian version after the firefox version string. + * debian/rules: Use dpkg-architecture to find out the host and build that + we want to pass to the configure script. (Closes: #365738) + + [ Eric Dorland ] + * debian/firefox-runner: + - Quote the APPLICATION_ID variable to handle profiles with a space + in the name. Inspired by Morita Sho's patch. (Closes: #364566) + - echo MOZ_DISABLE_PANGO on verbose. + * debian/rules: It's baaaackkk. Reenable xprint. + + -- Eric Dorland <eric@debian.org> Wed, 3 May 2006 00:32:49 -0400 + +firefox (1.5.dfsg+1.5.0.3-0ubuntu3) dapper; urgency=low + + * Thai-related crash fix (Malone 45395): + - nsCopySupport.cpp, nsCopySupport::HTMLCopy: + do not crash if htmlConverter->Convert fails. + - nsHTMLFormatConverter.cpp, nsHTMLFormatConverter::Convert: + properly report failure if dataStr.IsEmpty. + - nsJISx4501LineBreaker.cpp: fix printf(stderr -> fprintf. + * Add Polish translation for firefox.desktop (Malone 45447). + Thanks to contribution from Tomasz Dominikowski. + * Do not attempt to merge /usr/lib/mozilla-firefox and /usr/lib/firefox + and make the former a link to the latter; this is unfortunately + error-prone and makes more problems than it solves. + Fixes Malone 44487; regresses the plugins directory confusion bug. + * Include MFSA and CVE numbers in changelog entry for 1.5.dfsg-1. + + -- Ian Jackson <iwj@ubuntu.com> Tue, 23 May 2006 17:45:30 +0100 + +firefox (1.5.dfsg+1.5.0.3-0ubuntu2) dapper; urgency=low + + * Fix memory leak in large clipboard handling. Malone 41093. + Mozilla Bugzilla 289897; applied attachments 218749, 218753. + * Provide symlink /usr/lib/mozilla-firefox -> /usr/lib/firefox + (and shuffle stuff across if both directories exist). + * Remove update-notifier `restart required' on removal so that if you + remove firefox you're no longer asked to restart it. Malone 36739. + * Increase size of prefs window explicitly. Malone 43528. + * Suppress the error if /var/lib/locales/supported.d/* can't be read + (probably because it doesn't exist). If you get EIO or EACCES or some + such then having pango mysteriously disabled will be the least of your + worries. Malone 44016. + * Really use firefox_1.5.dfsg+1.5.0.3.orig.tar.gz from Debian. + + -- Ian Jackson <iwj@ubuntu.com> Fri, 12 May 2006 19:20:30 +0100 + +firefox (1.5.dfsg+1.5.0.3-0ubuntu1) dapper; urgency=low + + * New upstream version, 1.5.0.3, security/stability fix from upstream: + MFSA 2006-30, CVE-2006-1993: Deleted + object reference when designMode="on" + This package is based on Debian's firefox_1.5.dfsg+1.5.0.3.orig.tar.gz + but has none of the corresponding Debian changes. + + -- Ian Jackson <iwj@ubuntu.com> Wed, 10 May 2006 12:13:30 +0100 + +firefox (1.5.dfsg+1.5.0.2-3) unstable; urgency=low + + * debian/rules, debian/control: Build the -dbg package again. + * debian/firefox.1: Fix some incorrect references to mozilla. Thanks + Loïc Minier. (Closes: #364101) + * debian/firefox-runner: Patch from Mikhail Gusarov to be able to use + Network Audio Server's dsp wrapper. (Closes: #363124) + * debian/firefox.install: Fix screwed up path to firefox.xpm. (Closes: + #364359) + * debian/README.Debian: Document that firefox doesn't allow connections + on certain ports. Thanks W. Borgert. (Closes: #362785) + + -- Eric Dorland <eric@debian.org> Sun, 23 Apr 2006 22:41:15 -0400 + +firefox (1.5.dfsg+1.5.0.2-2) unstable; urgency=critical + + * The "ftp-master's aren't my friends today" release. + * debian/rules, debian/control: Don't build the -dbg package for now, to + get around NEW queue processing. + + -- Eric Dorland <eric@debian.org> Thu, 20 Apr 2006 22:33:18 -0400 + +firefox (1.5.dfsg+1.5.0.2-1) unstable; urgency=critical + + [ Eric Dorland ] + * New upstream release. Contains security fixes, hence severity + critical. + - Fixes the following vulnerabilites (Thanks Alexander Sack for + compiling the list): CVE-2006-1724, CVE-2006-0884, + CVE-2006-1730, CVE-2006-1729, CVE-2006-1728, CVE-2006-1727, + CVE-2006-1045, CVE-2006-0748, CVE-2006-1726, CVE-2006-1725, + CVE-2005-2353. (Closes: #362656) + * debian/firefox-runner: Patch from Paul Collins to fix some lingering + ProfileManager launch issues. (Closes: #356250) + * browser/components/preferences/privacy.xul, + browser/locales/en-US/chrome/browser/preferences/preferences.dtd: + Patch from Ian Jackson to make the preferences window bigger for + people with high rez displays. His changelog entry reads: + * Make Preferences window not chop off various elements: + - specify a width of 50em instead of 42em + - do not specify a height + - add another <separator/> to the bottom of privacy.xul's prefpane. + I have no idea why this is necessary :-(. + Malone 36985. + * configure.in, configure: Small typo in configure.in that wasn't + setting TARGET_XPCOM_ABI properly and breaking binary extensions on + some arches. (Closes: #359228) + + [ Mike Hommey ] + * debian/rules: Disable elf-dynstr-gc, which is pretty useless nowadays. + * security/coreconf/rules.mk: Fix perl code that got broken by newer make. + Taken from bz#325148. + * browser/app/Makefile.in: Apply patch from bz#314927 to install default.xpm + in the correct place. + * debian/rules, debian/firefox.dirs, debian/firefox.install: Updated to fit + this change. + * security/coreconf/rules.mk: Force use of the -g flag in the CFLAGS. + + -- Eric Dorland <eric@debian.org> Sun, 16 Apr 2006 18:40:02 -0400 + +firefox (1.5.dfsg+1.5.0.2-0ubuntu2) dapper; urgency=low + + * Increase sizes of various dialogue boxes so that all of the contents + fit. Malone 26225, 36985, and probably others. + * Set MOZ_DISABLE_PANGO=1 to disable pango, unless some locale is + selected as supported which would need pango for rendering; the + default can be overridden by setting MOZ_DISABLE_PANGO to 0 or 1. + Malone 32561 (workaround). + * Use update-notifier to request a firefox restart. Malone 36739. + * Added Spanish translation to firefox.desktop. + Malone 39972. Thanks to Rocco Stanzione for the patch. + * Add a couple of missing trailing newlines. + Malone 39972 again. Thanks Rocco Stanzione for the report. + * EbmedWindow::GetVisibility bugfix, Malone 40320, upstream 312998, + thanks to chpe for the patch and discussion. + * Add FC_ANY_METRICS set to FcTrue to all patterns that are going to be + used for finding (rather than enumerating) fonts. Malone 42559. + + -- Ian Jackson <iwj@ubuntu.com> Tue, 2 May 2006 18:59:32 +0100 + +firefox (1.5.dfsg+1.5.0.2-0ubuntu1) dapper; urgency=low + + * New upstream version, 1.5.0.2. + Described as `stability and security fixes' by upstream but many + changes are included and producing a complete list is infeasible :-(. + Fixes are known to be included for: + - MFSA 2006-29, CVE-2006-1725: Spoofing with translucent windows + - MFSA 2006-28, CVE-2006-1726: Security check of + js_ValueToFunctionObject() can be circumvented + - MFSA 2006-27, CVE-2006-0748: Table Rebuilding Code Execution + Vulnerability + - MFSA 2006-25, CVE-2006-1727: Privilege escalation through Print Preview + - MFSA 2006-24, CVE-2006-1728: Privilege escalation using + crypto.generateCRMFRequest + - MFSA 2006-23, CVE-2006-1729: File stealing by changing input type + - MFSA 2006-22, CVE-2006-1730: CSS Letter-Spacing Heap Overflow + Vulnerability + - MFSA 2006-20, CVE-2006-1529, CVE-2006-1530, CVE-2006-1531, + CVE-2006-1723, CVE-2006-1724: Crashes with evidence of memory + corruption. + This package is based on Debian's firefox_1.5.dfsg+1.5.0.2.orig.tar.gz + but has none of the corresponding Debian changes. + + -- Ian Jackson <iwj@ubuntu.com> Wed, 26 Apr 2006 16:53:22 +0100 + +firefox (1.5.dfsg+1.5.0.1-5) unstable; urgency=low + + [ Mike Hommey ] + * debian/rules: + - Add -g to the build flags when building with DEB_BUILD_OPTIONS=nostrip. + If we ask for nostrip, we want the debugging + symbols, right? ;) + - Changed the way we identificate ourselves in vendor.js. + * layout/build/Makefile.in, layout/build/nsLayoutModule.cpp: Remove useless + useragent setter at startup so that general.useragent.product and + general.useragent.productSub set in our vendor.js preference file work at + startup time. + * security/coreconf/Linux.mk: + - Patch from Martin Michlmayr for mips64 builds. + - Don't use x86 as CPU_ARCH when building on an unsupported architecture. + * security/manager/Makefile.in, security/nss/lib/ckfw/builtins/Makefile, + security/nss/lib/manifest.mn: Don't build the stuff we don't need, and + dynamically link libnssckbi to both libplc4 and libplds4 instead of + linking statically. + * debian/firefox.postinst, debian/firefox.prerm, + debian/firefox-gnome-support.postinst, debian/firefox-gnome-support.prerm: + Touch a .autoreg file at configure time, or removal of gnome-support and + remove it with the package. This will trigger autoregistration of the + components if the compreg.dat and xpti.dat files are older than the + .autoreg file. We used to remove compatibility.ini for that reason, but + stopped doing that because firefox was supposed to do that correctly, + which actually only correctly works on new upstream versions, not new + debian revisions, or installation of gnome-support. + * xpfe/components/killAll/Makefile.in: Correctly install the killAll + component. + + [ Eric Dorland ] + * debian/control: + - Set Section of firefox-gnome-support and + mozilla-firefox-gnome-support to gnome. + - Standards-Version to 3.6.2.2. + - debhelper build-dep to >= 5.0. + - Add firefox-dbg package. + * debian/compat: Set to 5. + * debian/rules: + - Remove silly CVS tarball cleanup target. + - Add arch-independant debhelper calls, and make other debhelper + calls arch-dependent. + - Add --dbg-package=firefox-dbg to dh_strip call. + - Always build with the -g flag. (Based on a change Mike made) + - Patch from Andreas Jochens to use -mminimal-toc when building on + ppc64. (Closes: #361035) + - Use --disable-strip, --disable-strip-libs in configure parameters. + Thanks Ian Jackson. + - Use .upstream instead of .orig to make it more clear and not + confuse the clean target. Thanks Ian Jackson. (Closes: #362186) + - Disable xprint support for now, while the Xorg 7 transition sorts + itself out. Should be reenabled next release. + * debian/firefox.xpm: Add more Debian compliant menu icon. + * debian/firefox.install, debian/rules: Install new Debian compliant + icon. + * debian/firefox.desktop: Add StartupNotify=true for pretty waiting + cursor. Thanks Sven Arvidsson. (Closes: #361527) + * debian/firefox-dom-inspector.preinst, + debian/firefox-dom-inspector.links, + debian/firefox-dom-inspector.install: Install non-architecture + specific bits of the inspector into /usr/share/firefox. + * debian/firefoxrc: Disable the dsp wrapper by default. esddsp is just + too buggy to allow this to continue. May reenable later if they clean + up their act. Leaving the bugs open for now. + * debian/firefox.NEWS: + - Document the dsp wrapper changes. + - Remove old mozilla-firefox entries. + * debian/firefox.1: Fix typo of firefox, thanks Andrew Rendle. (Closes: + #362413) + * debian/firefox.install: We don't get .chk files anymore for some + reason. + + -- Eric Dorland <eric@debian.org> Fri, 14 Apr 2006 15:52:41 -0400 + +firefox (1.5.dfsg+1.5.0.1-4) unstable; urgency=low + + [ Mike Hommey ] + * debian/firefox-runner, debian/firefox.1: Patch from Ian Jackson to + make -P, -CreateProfile and -ProfileManager options correctly work + again, and improve the manual page. (Closes: #356250) + * debian/firefox.desktop: + - Fix trivial syntax problems. (Closes: #356263) + - Added Japanese and Korean translations. + * debian/firefox.dirs: Removed remainings of the time when we had a file + in /usr/sbin. (Closes: #356268) + * debian/firefox-gnome-support.prerm, + debian/firefox-gnome-support.postinst: Removed bashisms. (Closes: + #349946) + * debian/README.Debian: + - Replaced the bug reporting information by an invitation to read + /usr/share/bug/firefox/presubj. (Closes: #356269) + - Changed the heading to "Firefox for Debian". + + [ Eric Dorland ] + * debian/firefox-gnome-support.postinst, + debian/firefox-gnome-support.prerm: Add forgotten #DEBHELPER# token. + + -- Eric Dorland <eric@debian.org> Sun, 12 Mar 2006 21:34:14 -0500 + +firefox (1.5.dfsg+1.5.0.1-3) unstable; urgency=low + + [ Eric Dorland ] + * debian/control: Use strict dependencies for the transition packages, + no reason a transition package should be upgraded before the real + package. + * debian/README.Debian: Fix all references to + /etc/mozilla-firefox/mozilla-firefoxrc. (Closes: #351956) + * debian/firefox.desktop: Patch from Ian Jackson to add more + translations and more inline with the GNOME HIG. (Closes: #351807) + * widget/src/gtk2/nsWindow.cpp: Apply new ignore extended mouse buttons + patch from Peter Colberg (Closes: #351972) + * debian/firefox.1: Lower case first letter of -ContentLocale. + * debian/firefox.1, debian/firefox-runner: Add -no-remote switch to turn + on MOZ_NO_REMOTE. Use it for profile related commands as + well. (Closes: #351717, #344849) + * wikipedia.gif.uu, wikipedia.src, rules, firefox.install: Patch from + Ian Jackson to add wikipedia search engine. (Closes: #354107) + + [ Mike Hommey ] + * modules/libpref/src/init/all.js: Set default fonts for all languages to + serif, sans-serif and monospace. It might solve a lot of fonts problems. + * config/config.mk, config/make-jars.pl, configure.in, + security/nss/lib/fortcrypt/swfort/pkcs11/config.mk, + extensions/inspector/Makefile.in: Allow building without zip when + building flat chrome. + * configure: Ran autoconf accordingly to changes in configure.in. + * debian/control: Removed build dependency on zip. + * debian/rules: Build flat chrome. + * debian/firefox.install: Changed wildcards accordingly. + * config/rules.mk: + + Don't build chromelist.txt files. + + Fixed "jar" build so that inspector files don't get duplicated in the + extension directory. + + -- Eric Dorland <eric@debian.org> Sun, 26 Feb 2006 11:45:15 -0500 + +firefox (1.5.dfsg+1.5.0.1-2) unstable; urgency=low + + [ Mike Hommey ] + * debian/firefox-runner: export MOZ_DISABLE_PANGO. (Closes: #351959) + * debian/README.Debian: changed reference to the rc file in /etc. + (Closes: #351956) + + [ Eric Dorland ] + * debian/firefox.preinst: Fix {}'s bashism. Thanks Jeff King. (Closes: + #351811) + * modules/libpref/src/init/all.js: Make print.postscript.print_command + space-safe. Thanks Ian Jackson. (Closes: #351809) + * debian/firefox-runner: Don't completely override + $MOZ_PLUGIN_PATH. Thanks Ian Jackson. (Closes: #351806) + + -- Eric Dorland <eric@debian.org> Thu, 9 Feb 2006 01:23:35 -0500 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu12) dapper; urgency=low + + * Sponsored upload for Theppitak Karoonboonyanan + * Updated Thai word breaking patch: + - load `libthai.so.0' instead of `libthai.so'. + - print debug message only when DEBUG is defined. + - debian/control: Suggests libthai0 + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 13 Apr 2006 13:25:14 +0200 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu11) dapper; urgency=low + + * Fix silly lack of [ ] quoting in AC_DEFUN use. + Malone 36659, Mozilla bugzilla 298457. + * Make Preferences window not chop off various elements: + - specify a width of 50em instead of 42em + - do not specify a height + - add another <separator/> to the bottom of privacy.xul's prefpane. + I have no idea why this is necessary :-(. + Malone 36985. + * Fix broken UTF-8 in .desktop file (again). Malone 37779. + * Document how to use xpcshell in README.Debian. Malone 35333. + * Clarify updateReadOnlyMessage to refer to `system package manager' + which will help the misunderstanding in Malone 31284. + + -- Ian Jackson <iwj@ubuntu.com> Wed, 12 Apr 2006 17:18:52 +0100 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu10) dapper; urgency=low + + * Generate `firefox-dbg' package with debugging symbols. + This involves changing debian/compat to 5, which should be safe. + * Fix Norwegian translation in firefox.desktop. (Malone 30603.) + * Fix trivial syntax problems in firefox.desktop. (Malone 33567.) + * Remove x-directory/webdav x-directory/webdav-prefer-directory + from MimeType list in desktop file. (Malone 35928.) + * Use `about.png.upstream' instead of `about.png.orig' is the saved + original version for the branding; *.orig tends to get clobbered. + + -- Ian Jackson <iwj@ubuntu.com> Fri, 24 Mar 2006 18:49:46 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu9) dapper; urgency=low + + * added thai linebreaking support (thanks to Theppitak Karoonboonyanan) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 14 Mar 2006 15:16:52 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu8) dapper; urgency=low + + * debian/rules: + - renamed the idl directory to match the .pc name, + replace mozilla-firefox by firefox for firefox-config too + + -- Sebastien Bacher <seb128@canonical.com> Mon, 13 Mar 2006 15:12:43 +0100 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu7) dapper; urgency=low + + * Pointing the .pc files to /usr/include/firefox is not enough, + better install the headers there too. + + -- Matthias Klose <doko@ubuntu.com> Sat, 11 Mar 2006 17:41:24 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu6) dapper; urgency=low + + * Replace Ubuntu Bugzilla bookmark with Launchpad's `Request + support with Ubuntu' ticket creation page. (Malone 28896.) + * Reinstate `Translate This Application' in Help menu, despite the fact + that Launchpad doesn't do this yet - you just get a page saying there + are no translations for Firefox. mdz assures us that this will be + done some time during dapper's service life. + * Make -P, -CreateProfile and -ProfileManager imply sensible + values for -a, and document -a in firefox(1). (Malone 31746.) + * Fix md5sum mismatch which causes spurious conffile prompt on + bookmarks.html. + * Set browser.startup.homepage_override.mstone to ignore, + to avoid the silly thing where the first time after the upgrade, + firefox looks like it has lost your home page because it is so keen to + tell you about the release notes. (Malone 33895.) + * Change `Latest Headlines' to `Latest BBC Headlines' to properly + disclose the source up front, and use a corresponding RSS URL. + * Revert the `you have chosen to open' dialogue, as discussed on + ubuntu-devel. + * Fix firefox-*.pc files to contain correct references to libs and + includes, just like the mozilla-*.pc files. (Malone 34200.) + + -- Ian Jackson <iwj@ubuntu.com> Thu, 9 Mar 2006 19:56:58 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu5) dapper; urgency=low + + * Disable `Translate This Application' and don't try to have `Get Help + Online' translated because we don't know how to translate firefox: + https://launchpad.net/products/rosetta/+spec/rosetta-firefox-support + + -- Ian Jackson <iwj@ubuntu.com> Fri, 24 Feb 2006 14:49:23 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu4) dapper; urgency=low + + * Disable (by default) the `you have chosen to open' dialogue box; + instead, we just take the default (which is to open with the + application from the Gnome MIME database). This behaviour is + controlled by browser.helperApps.defaultNoAsk.openFile. + + Bookmark, search and translation reference regression fixes: + * Restore `Translate This Application' and `Get Help Online' + * Add Ubuntu and Free Software links back to bookmarks + + Bookmark, search and translation references improvements: + * Add Wikipedia to search box. + * Remove `Quick searches' from bookmarks (these just replicate + entries from the search box, and are broken anyway). + + * Get rid of README.Ubuntu - the contents are now no longer relevant. + + -- Ian Jackson <iwj@ubuntu.com> Thu, 23 Feb 2006 14:44:42 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu3) dapper; urgency=low + + * Move /usr/lib/libxpcom*.so etc. back to /usr/lib/firefox; avoids + clashes with other packages (eg mozilla). + * Add rpath setting for /usr/lib/firefox to all .pc files in + firefox-dev. This is suboptimal, but at least it allows programs + which use firefox-dev at compile-time to find firefox's .so's. + * Take some redundant and perhaps privacy-leaking information out + of the default User-Agent (Malone 30677). + + -- Ian Jackson <iwj@ubuntu.com> Fri, 10 Feb 2006 17:42:12 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu2) dapper; urgency=low + + * Fix stupid FTBFS on default.xpm introduced in last upload. + * Retrospectively insert CVE numbers into 1ubuntu1 changelog entry. + + -- Ian Jackson <iwj@ubuntu.com> Thu, 9 Feb 2006 12:45:15 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu1) dapper; urgency=low + + Changes since 1.5.dfsg-4ubuntu6: + * New upstream version (1.5.0.1) - security and stability fixes, + allegedly. (About 7000 lines of diff, so not reviewed for Ubuntu.) + Security fixes included: + - CVE-2006-0292, CVE-2006-0293, MFSA 2006-01: JavaScript garbage-collection + hazards + - CVE-2006-0294, MFSA 2006-02: Changing position:relative to static + corrupts memory + - CVE-2005-4134, MFSA 2006-03: Long document title causes startup denial of + Service + - CVE-2006-0295, MFSA 2006-04: Memory corruption via QueryInterface on + Location, Navigator objects + - CVE-2006-0296, MFSA 2006-05: Localstore.rdf XML injection through + XULDocument.persist() + - CVE-2006-0297, MFSA 2006-06: Integer overflows in E4X, SVG and Canvas + - CVE-2006-0298, MFSA 2006-07: Read beyond buffer while parsing XML + - CVE-2006-0299, MFSA 2006-08: "AnyName" entrainment and access control + hazard + * Fix Norwegian translation in .desktop file. (Malone #30603.) + * mkdir /usr/include/mozilla in firefox-dev.preinst to avoid + maintainer script sometimes preventing installation. + * Move the shlibs needed for gtkmozembed to /usr/lib (avoids + need for rpath and nonsense in firefox-gtkmozembed.pc). + * Work around new GNU make braindamage by adding seddery to + security/coreconf/rules.mk. + + Expected-permanent differences between Ubuntu and Debian: + * Build nspr and nss for use by all other programs in the distribution + (Packages: libnspr-dev, libnss-dev, libnspr4, libnss3. Fairly main + changes to parts of the build system.) This is so that mozilla + can be in Ubuntu universe. + * Disable xprint. (xprint is not used in Ubuntu.) + * Slightly different arrangements do with with transitional arrangements + related to package renaming from mozilla-firefox-*. + * Removed transitional packages mozilla-firefox-dom-inspector and + mozilla-firefox-gnome-support (not needed in Ubuntu). + * Build firefox-dev; applications which embed a browser in Ubuntu + generally embed Firefox rather than mozilla. This also means that we + build firefox with dynamic linking so that embedders and load ff. + * Debian package search replaced by Ubuntu package search (and defaults + to searching only in dapper, not all releases). + * Changes to various icons (and their installation paths). + * Strip CUPS/ from the front of displayed printer names, since + all printing in Ubuntu is done via CUPS. + + Other differences remaining between Ubuntu and Debian: + * debian/rules clean removes various junk left over by the mozilla build + system. (Debian #350616.) + * Exclude libssl3.so from dpkg_shlibdeps as this triggers a bug in + fakeroot on amd64 in Ubuntu. + * Set FIREFOX_DSP=none by default. Will sometimes break sound from eg + Flash. See https://launchpad.net/malone/bugs/29760 for rationale. + (Debian maintainers notified but no bug filed.) + * Append our plugin path to any previous value of MOZ_PLUGIN_PATH. + (Malone 29412. Debian #351806) + * firefox.desktop file has more translations and consistently calls the + application `Firefox Web Browser' (for better UI in the menus - this + change is also in firefox.menu). Debian #351807. + * Default printing command doesn't break if printer name contains + spaces (actually a preference, in all.js). (Debian #351809, + Mozilla Bugzilla #326245). + * security/coreconf/rules.mk adjusted with awful seddery to cope with + GNU make change to POSIXly interpretation of backslash line-joining. + See http://lists.debian.org/debian-devel/2005/12/msg00988.html. + Mozilla Bugzilla #325148. + * security/coreconf/ruleset.mk has a set -e added. + * Use GNOME mime database instead of mailcap. Patch imported from Red + Hat; see debian/gnome-mime-handling.diff. + * Change various preferences: + - Ubuntu-specific default homepage + - Ubuntu-specific release notes + - default homepage can be locale-specific + - middlebutton paste disabled + - do not load a special home page on first start after an upgrade + - disable File / Import (wizard is nonfunctional). + Malone #28563, Debian #350599, Mozilla Bugzilla 117844. + - save files to Desktop by default + - README.Ubuntu file (still rather full of junk) + - Prevent websites disabling the right-button context menu. + - Default font for display is sans, but: + - Default CSS for printing uses a serif font. + + -- Ian Jackson <iwj@ubuntu.com> Tue, 7 Feb 2006 17:14:17 +0000 + +firefox (1.5.dfsg+1.5.0.1-1) unstable; urgency=low + + * The "those Ubuntu guys are great after all" release. + * New upstream release. (Closes: #351442) + + [ Mike Hommey ] + * debian/presubj: Added indications to try to reproduce without extensions + before actually filing a bug, and a hint to the safe mode. + * debian/firefox.install: added the reporter chrome files. (Closes: #344888) + * widget/src/gtk2/nsWindow.cpp: Revert additional stale patch for + extended mouse buttons support. + * debian/firefox.postinst, debian/firefox.prerm: unbashified. + (Closes: #349946) + * debian/control, debian/firefox-gnome-support.postinst, + debian/firefox-gnome-support.prerm: Let the firefox-gnome-support + package provide gnome-www-browser and handle a gnome-www-browser + alternative. Thanks Loïc Minier. (Closes: #350788) + * debian/firefox-runner: Enable Pango support by default. The + MOZ_ENABLE_PANGO environment variable is now useless. (Closes: #338716) + * debian/README.Debian: Change the paragraph about Pango to hint about + the MOZ_DISABLE_PANGO variable. + + [ Eric Dorland ] + * content/events/src/nsEventStateManager.cpp, + modules/libpref/src/init/all.js, widget/public/nsGUIEvent.h: Apply + patch from Ian Jackson to revert a stale patch for multiple mouse + button support that was fixed in a different way in 1.5 + (Closes: #348375) + * debian/firefox.preinst: Check md5sum's of old conffiles before cp'ing + them on upgrade. This won't stop all unnecessary conffile prompting in + all situations (especially from really old versions), but should + definitely should work for upgrading from testing or stable. (Closes: + #345112) + * debian/firefox.install: + - Remove run-mozilla.sh. (Closes: #348902) + - Reorganize things a bit. + - Move profile into /etc/firefox here, instead of in the rules file. + * debian/firefox.install, debian/firefox.preinst, debian/firefox.links, + debian/firefox.dirs, debian/rules: Move chrome, defaults, greprefs + into /usr/share/firefox for more FHS goodnesss. + * debian/firefox.1: Document -new-tab and -new-window options, and + remove deprecated -remote option. (Closes: #348699) + * debian/firefox-runner: Apply patch to properly URL escape local + files. Thanks Morita Sho. (Closes: #348451) + * browser/app/profile/firefox.js: + - Reallow 40-bit ciphers, since now firefox warns people who + use them. (Closes: #349624) + - Enable bidi UI elements for our bi-directional friends. + (Closes: #348069) + * debian/rules: Remove glob pattern from dh_install invocation. Thanks + Ian Jackson. (Closes: #350571) + * browser/base/content/aboutDialog.xul: Fix spurious scrollbar in the + about dialog box. Thanks Ian Jackson. (Closes: #350608) + * js/src/fdlibm/fdlibm.h: Patch to fix little endianess of + mipsel. Thanks Ian Jackson and Thiemo Seufer. (Closes: #350621) + * browser/base/content/search.xml: Patch from Ian Jackson to remove + misleading Clear option from search box context menu. (Closes: #350611) + * debian/watch: Fix regex to actually find the upstream tarballs. + * modules/libpref/src/init/all.js: Cope better with printers with spaces + in the name. Thanks Ian Jackson. + * toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Take patch + from bz#235336 as suggested by Ian Jackson to allow password manager + to work with sites that only have a password field, no username. + + -- Eric Dorland <eric@debian.org> Mon, 6 Feb 2006 23:10:29 -0500 + +firefox (1.5.dfsg-4) unstable; urgency=low + + [ Eric Dorland ] + * debian/control, debian/rules: + - Remove Kerberos options, it is now loaded dynamically. + - Use /usr/share/firefox now for finding default.xpm. + * debian/firefox.install, debian/firefox.links, debian/firefox.preinst: + Start moving some clearly non-arch specific things + (/usr/lib/firefox/searchplugins, /usr/lib/firefox/icons, + /usr/lib/firefox/res) out of /usr/lib/firefox and into + /usr/share/firefox to make things more FHS friendly. Can't believe no + one ever called me on this before. + * toolkit/components/remote/nsGTKRemoteService.cpp, + widget/src/xremoteclient/XRemoteClient.cpp: Apply patch from bz#312154 + to fix remote interface on PPC (and probably other arches). (Closes: + #343913) + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_m68k.cpp: Patch from + Zack Weinberg to fix FTBFS on m68k. (Closes: #343687) + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp: Patch from Antti + P Miettinen to fix small optimization problem with newer gcc's + (Closes: #344846) + + [ Mike Hommey ] + * debian/firefox-runner: Cleaned up now useless variables. + + -- Eric Dorland <eric@debian.org> Tue, 10 Jan 2006 10:11:34 -0500 + +firefox (1.5.dfsg-3) unstable; urgency=low + + * debian/control: + - Need explicit build dependency on gtk >= 2.8. + - Upgrade Standards-Version to 3.6.2.1. No changes. + - Add compatibility packages for mozilla-firefox-dom-inspector + and mozilla-firefox-gnome-support and make all the upgrade packages + Architecture: all. (Closes: #343879, #344379) + * debian/watch: Add watch file. + * debian/about.png.uu: Add uuencoded version of previous about box + graphic. + * debian/rules: uudecode and install the about.png into the right + location. + * debian/firefox-runner: Add MOZ_PLUGIN_PATH to include plugins at the + old location for now. (Closes: #344085, #341682) + * widget/src/gtk2/nsWindow.cpp: Patch from bz#305970 to fix broken + contextual menu on Save File As. (Closes: #344430) + + * config/mkdepend/imakemdep.h, security/nss/lib/pki1/pki1.h: Remove some + patches that are now useless (suggested by Mike Hommey). + * mailnews/extensions/palmsync/palm.html, + browser/themes/pinstripe/browser/browser.css, + gfx/src/mac/nsNativeThemeMac.h, + directory/c-sdk/ldap/docs/draft-ietf-ldapext-ldap-c-api-05.txt, + layout/html/tests/table/bugs/bug123862.html, + layout/html/tests/table/bugs/bug119786.html, + layout/html/tests/table/bugs/bug101759.html, + layout/html/tests/table/bugs/bug14489.html, + layout/html/tests/table/bugs/bug222846.html, + layout/html/tests/block/bugs/155333-1.html, + layout/html/tests/block/bugs/185411-2.html, + layout/html/tests/block/bugs/13599.html, + layout/html/tests/block/bugs/53960.html, + layout/html/tests/block/bugs/155333-2.html, + layout/html/tests/block/bugs/38157-a.html, + layout/html/tests/block/bugs/38157-b.html, + layout/html/tests/block/bugs/46918.html, + layout/html/tests/block/printing/145305-11.html, + layout/html/tests/block/printing/145305-21.html, + layout/html/tests/block/printing/145305-13.html, + layout/html/tests/block/printing/145305-17.html, + layout/html/tests/block/printing/145305-19.html, + layout/html/tests/block/printing/145305-4.html, + layout/html/tests/block/printing/127145-1.html, + layout/html/tests/block/printing/145305-3.html, + layout/html/tests/block/printing/145305-7.html, + layout/html/tests/block/printing/145305-9.html, + layout/html/tests/frameset/core/r3.html, + layout/html/tests/frameset/core/r4.html, + layout/html/tests/frameset/core/blank2.html, + xpinstall/packager/stage_mfcembed.pl, xpinstall/packager/stage_gre.pl, + embedding/qa/testembed/Tests.cpp, + embedding/qa/testembed/nsihttpchanneltests.cpp, + embedding/qa/testembed/BrowserImpl.cpp, + embedding/qa/testembed/Tests.h, embedding/qa/testembed/QaUtils.cpp, + embedding/qa/testembed/resource.h, + embedding/qa/testembed/DomWindow.cpp, + embedding/qa/testembed/QaUtils.h, build/unix/abs2rel.pl, + xpfe/bootstrap/icons/windows/readme.txt, + security/nss/cmd/ssltap/ssltap-manual.html: Fix mess my subversion + repository made of line endings. This should reduce the size of the + diff.gz dramatically. + + -- Eric Dorland <eric@debian.org> Sat, 24 Dec 2005 03:23:02 -0500 + +firefox (1.5.dfsg-2) unstable; urgency=low + + * browser/locales/en-US/chrome/branding/brand.dtd, + browser/locales/en-US/chrome/branding/brand.properties: Change brand + name from Deer Park to Firefox. About box graphic still needs to be + fixed. *grumble* *grumble* (Closes: #343704) + + -- Eric Dorland <eric@debian.org> Sat, 17 Dec 2005 13:45:14 -0500 + +firefox (1.5.dfsg-1) unstable; urgency=low + + * New upstream release. No actual code changes from RC3. Took the + opportunity to completely empty the /other-licenses directory of the + upstream tarball. + * configure, configure.in: Change MOZ_APP_DISPLAYNAME to Firefox, so we + can be called Firefox without using + --enable-official-branding. *grumble* + * config/autoconf.mk.in, gfx/src/gtk/mozilla-decoder.cpp, configure.in: + Apply patch from bz#305185 to fix problems building against gtk+ 2.8. + * debian/control: + - Build-Depend on libfreetype6-dev since we do link + against it directly. + - Add mozilla-firefox package for easy transition. + - Conflict against older mozilla-firefox packages. + * debian/firefox-runner: + - Fix typo. (Closes: #341113) + - Check /usr/lib/mozilla-firefox/plugins for plugins too for the + time being. (Closes: #341682) + * debian/firefox-dom-inspector.preinst: Remove, not needed since the + name change. + * debian/firefox.preinst: + - Remove old upgrade code. + - Move old mozilla-firefox configs into place on install. + * debian/mozilla-firefox.preinst: Move upgrade code in here. Remove + mozilla-firefox alternative. + * debian/mozilla-firefox.postrm: Remove /etc/mozilla-firefox on purge. + + * Some patches missed when merging from Mike Hommey: + * browser/locales/en-US/searchplugins/answers.src: Change updateDays to + 0. + * config/mkdepend/imakemdep.h: Define for amd64. + * configure, configure.in: Visibility patch for recent gcc's. (Closes: + #341766) + * modules/libpref/src/nsPrefService.cpp: Patch to load preferences from + defaults/syspref. + * content/events/src/nsEventStateManager.cpp: Extended mouse events + patch. + * gfx/idl/nsIFreeType2.idl, gfx/src/freetype/nsFreeType.cpp, + gfx/src/freetype/nsFreeType.h, gfx/src/ps/nsFontMetricsPS.h, + gfx/src/x11shared/nsFontFreeType.cpp, + gfx/src/x11shared/nsFontFreeType.h, + layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp: Patch to + use new freetype API. + + -- Eric Dorland <eric@debian.org> Fri, 16 Dec 2005 11:37:23 -0500 + +firefox (1.4.99+1.5rc3.dfsg-2) unstable; urgency=low + + * The "Grand Renaming" release. Thanks to Mike Hommey for sherperding + the 1.5 series through experimental. Now it's my turn to muck it up. A + transition packages will be in the next release. + * debian/mozilla-firefox*: Rename to firefox*. + * debian/firefox.install, debian/firefox-dom-inspector.install, + debian/firefox-gnome-support.install, debian/firefox-runner, + firefox-xremote-client, firefox.1, firefox.desktop, firefox.dirs, + debian/firefox.js, debian/firefox.links, debian/firefox.manpages, + debian/firefox.menu, debian/firefox.mime, debian/firefox.postinst, + debian/firefox.prerm, debian/firefox.png.uu, debian/README.Debian, + debian/control, debian/rules: Search/Replace mozilla-firefox -> + firefox where appropriate. + * debian/firefox.links: Link old icon name to new. + * debian/README.Debian: Fix path to .mozilla/firefox/rc. (Closes: + #335433) + * config/autoconf.mk.in: Set mozappdir to /usr/lib/firefox. + + -- Eric Dorland <eric@debian.org> Sun, 27 Nov 2005 20:03:02 -0500 + +mozilla-firefox (1.4.99+1.5rc3.dfsg-1) experimental; urgency=low + + * New upstream 1.5 preview release. Release Candidate 3. + * debian/mozilla-firefox-runner: Removed the ping stuff, it's now done by + firefox itself. + + -- Mike Hommey <glandium@debian.org> Fri, 18 Nov 2005 07:24:05 +0100 + +mozilla-firefox (1.4.99+1.5rc2.dfsg-1) experimental; urgency=low + + * New upstream 1.5 preview release. Release Candidate 2. + * xpcom/typelib/xpidl/xpidl.c: Fix crash when no file is given on the + command line (Closes: #323639). Also fix the error message about extra + arguments given showing before the crash. + * configure.in, configure: Work around dash's bug #337294 so that we can + build fine when sh is dash (Closes: #211010, #256384). + * debian/mozilla-firefox-runner: + - Removed the code to detect the JVM and set LD_ASSUME_KERNEL=2.2.5 for + b0rked 1.3 JVMs: it's been a long time they've not been ABI compatible. + - Removed setting of MOZILLA_FIVE_HOME. We already have a default one + built-in. + - Removed /usr/lib/mozilla/plugins from EXTENT_LD_LIB_PATH, since we never + get the plugins from there. + - Removed cleanup of the profile. It is correctly done by firefox, now. + + -- Mike Hommey <glandium@debian.org> Fri, 11 Nov 2005 08:07:05 +0100 + +mozilla-firefox (1.4.99+1.5rc1.dfsg-1) experimental; urgency=low + + * New upstream 1.5 preview release. Release Candidate 1. + * debian/mozilla-firefox.install: Don't install + /usr/lib/mozilla-firefox/extensions/reporter@mozilla.org, it got moved in + the chrome. + + -- Mike Hommey <glandium@debian.org> Tue, 1 Nov 2005 22:01:15 +0100 + +mozilla-firefox (1.4.99+1.5beta2.dfsg-1) experimental; urgency=low + + * build/unix/run-mozilla.sh, netwerk/base/src/nsStandardURL.cpp: + Reverted debian changes: they got applied upstream. + * configure: Applied configure.in changes by hand. + * debian/rules: Disabled both the installer and the updater, we don't need + them. + + -- Mike Hommey <glandium@debian.org> Fri, 7 Oct 2005 15:06:05 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-5) experimental; urgency=low + + * debian/control: Bumped Standards-Version to 3.6.2. + * nsprpub/configure.in: Reverted changed. + * configure.in: Use -fvisibility=hidden in all cases. There is another bug + in gcc that makes it generate position dependent code when using the + system wrappers. + * configure, nsprpub/configure: Applied configure.in changes with + autoconf2.13. + * debian/rules: Put back the /usr/share/pixmaps/mozilla-firefox.xpm file. + + -- Mike Hommey <glandium@debian.org> Mon, 3 Oct 2005 18:46:50 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-4) experimental; urgency=low + + * xpcom/typelib/xpt/src/Makefile.in: Reverted changes. + * configure.in, nsprpub/configure.in: Added a detection of the gcc bug about + visibility for builtins, and use -fvisibility=hidden instead of the system + wrappers in case the bug is found. + * configure, nsprpub/configure: Applied configure.in changes with + autoconf2.13. (Really closes: #329642) + + -- Mike Hommey <glandium@debian.org> Tue, 27 Sep 2005 20:16:34 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-3) experimental; urgency=low + + * Sync with unstable branch. + * xpcom/typelib/xpt/src/Makefile.in: disable visibility stuff for ppc, as a + workaround for FTBFS. (Closes: #329642) + + -- Mike Hommey <glandium@debian.org> Mon, 26 Sep 2005 18:35:11 +0200 + +mozilla-firefox (1.0.7-1) unstable; urgency=high + + * New upstream release. Contains fixes for various security issues. + * debian/mozilla-firefox-runner: Remove /usr/lib from + LD_LIBRARY_PATH. (Closes: #321789) + + -- Eric Dorland <eric@debian.org> Thu, 22 Sep 2005 01:23:10 -0400 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-2) experimental; urgency=low + + * debian/rules: enabled support for canvas. + + -- Mike Hommey <glandium@debian.org> Tue, 20 Sep 2005 07:56:01 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-1) experimental; urgency=low + + * Cleaned-up source tarball from trademarked content and CVS directories. + * debian/mozilla-firefox-small.xpm, debian/mozilla-firefox.xpm: Removed. + * debian/mozilla-firefox.dirs, debian/rules: + + Create /usr/lib/mozilla-firefox/chrome/icons/default and move + default.xpm in it. (Closes: #327828) + + Stop using our own xpm icons, upstream provide them, now. + * debian/rules: changed the build system a bit. + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s: Somewhat these + files disappeared. Put them back. (Closes: #328074) + + -- Mike Hommey <glandium@debian.org> Tue, 13 Sep 2005 18:25:48 +0200 + +mozilla-firefox (1.4.99+1.5beta1-2) experimental; urgency=critical + + * Sync with unstable branch. + * netwerk/base/src/nsStandardURL.cpp: Apply the patch for the 1.8 branch + from bz#307259 to fix CAN-2005-2871. (Closes: #327452) + * debian/mozilla-firefox-gnome-support.install, debian/rules: Move out + imgicon module in mozilla-firefox-gnome-support. (Closes: #327451) + + -- Mike Hommey <glandium@debian.org> Sun, 11 Sep 2005 10:45:34 +0200 + +mozilla-firefox (1.0.6-5) unstable; urgency=critical + + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp: Fix for previous + arm fix. Thanks Steve. (Closes: #325535) + * netwerk/base/src/nsStandardURL.cpp: Patch from bz#307259 to fix + CAN-2005-2871, a buffer overflow vulnerability in IDN + processing. (Closes: #327452) + + -- Eric Dorland <eric@debian.org> Sat, 10 Sep 2005 23:03:26 -0400 + +mozilla-firefox (1.4.99+1.5beta1-1) experimental; urgency=low + + * New upstream beta release. + + Find toolbar doesn't show up when in text fields. Closes: #280852. + + Better use of GTK2 themes. The most common case was highlighted menu + item text appearing in white on a white background. Closes: #223696, + #257430, #258181, #266334, #278559, #289326, #297320, #310098. + + Download manager correctly closes. Closes: #259015, #269975. + + Doesn't crash with the http://ln.hixie.ch/resources/style/orange + stylesheet. Closes: #277987. + + Locale extensions can properly be disabled. Closes: #279749 (to check). + + Doesn't crash on + http://einsteinmg.dyndns.org/cgi-bin/remangle.cgi?=0x27b9b660 anymore. + Closes: #294372. + + Downloads don't freeze when a modal window opens. Closes: #211332. + + Use GTK stock images. Closes: #281660. + * Sync with unstable branch changes. + * browser/app/profile/firefox.js, debian/firefox.js: + + Removed outdated extensions.update.autoUpdateEnabled and + extensions.update.autoUpdate; + + Removed general.useragent.locale. + + Allow extensions updates. It works correctly with system-wide installed + ones, now. + * netwerk/protocol/http/src/nsHttpConnectionMgr.cpp, + nsprpub/pr/include/md/_linux.cfg, widget/src/gtk2/mozdrawingarea.c, + widget/src/gtk2/nsDragService.cpp: Reversed changes, since they got + applied upstream. + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp: correctly set + __attribute__. Closes: #325535. + * debian/rules: + + set --enable-extensions=default instead of a full list. + We will get the default set of extensions provided by upstream, and + won't need to check if they changed. + + set --enable-pango. + + set --enable-system-cairo. + * debian/control: added build dependency on libgnomeui-dev and libcairo2-dev. + * debian/mozilla-firefox.install, debian/rules: don't install files in + /usr/lib/mozilla-firefox/chrome/icons/ anymore. + * debian/mozilla-firefox-runner: Force MOZ_DISABLE_PANGO to 1 if + MOZ_ENABLE_PANGO is not set. + * debian/README.Debian: + + Removed the note about IDN, it is now enabled by default, with correct + whitelist set. + + Added a note about MOZ_ENABLE_PANGO. + + Changed notes about application update, extensions, and packaged + extensions. + * modules/libpref/src/init/all.js: + + Set general.config.obscure_value to 0, we don't care about the config + file not to be "obscured". + + Set general.config.filename to firefox.cfg. + * debian/firefox.cfg: Create configuration to lock some properties. + * debian/mozilla-firefox.install: Install this firefox.cfg in + /usr/lib/mozilla-firefox + + -- Mike Hommey <glandium@debian.org> Fri, 9 Sep 2005 17:40:40 +0200 + +mozilla-firefox (1.0.6-4) unstable; urgency=low + + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp: Patch + from Steve Langasek to fix unused vs. used gcc attribute on alpha and + arm. (Closes: #325535) + * browser/app/profile/firefox.js: Revert patch to remove the "I'm + feeling lucky" search. Some like it, some hate it, so upstream + behaviour wins. If you still feel strongly about it, make your case + upstream. + * gfx/src/gtk/nsFontMetricsXft.cpp: Apply patch from bz#252033 to work + around a bug in XRender that might be causing #319349. + + -- Eric Dorland <eric@debian.org> Tue, 6 Sep 2005 02:10:07 -0400 + +mozilla-firefox (1.0.99+deerpark-alpha2-2) experimental; urgency=low + + * Sync with unstable branch changes, except the controversial "I'm feeling + lucky" change. I prefer waiting for the controversy to get to a + conclusion. + * debian/rules, debian/control: Remove build dependency on libmng-dev and + the --with-system-mng option to configure, the MNG support has been + removed upstream. + * debian/rules: Explicitely set the svg-renderer as cairo. It will use an + old cairo version bundled with firefox, but there's no other solution for + the moment. We have to wait for upstream 0.9.x and greater support + (hoped for 1.5). + + -- Mike Hommey <glandium@debian.org> Sun, 4 Sep 2005 09:01:54 +0200 + +mozilla-firefox (1.0.6-3) unstable; urgency=low + + * debian/rules, nsprpub/pr/include/md/_linux.cfg, + security/coreconf/Linux.mk: Apply patch from Andreas Jochens to allow + ppc64 builds. (Closes: #322617) + * debian/mozilla-firefox.prerm: Move -depth option to find to suppress + warnings. Thanks Mike Hommey. + * debian/presubj: Have bugzilla bug URL point to a page where you can + enter a bug. + * browser/app/profile/firefox.js: removed the "I'm feeling lucky" from + the keyword.URL, so now if you enter search terms in the address bar + you will be presented with search results and not taken to the first + result. Thanks Torok Edwin. (Closes: #321823) + + -- Eric Dorland <eric@debian.org> Mon, 22 Aug 2005 01:20:28 -0400 + +mozilla-firefox (1.0.6-2) unstable; urgency=medium + + * modules/libpr0n/src/imgLoader.cpp, modules/libpr0n/src/imgLoader.h: + Apply ported patch from Serge Belyshev from bz#293307 to fix problem + with gcc-4.0 on amd64. (Closes: #319336) + * debian/rules: Remove silly --enable-freetype configure line. Thanks + Antony Gelberg. (Closes: #319886) + + -- Eric Dorland <eric@debian.org> Sat, 30 Jul 2005 02:11:03 -0400 + +mozilla-firefox (1.0.6-1) unstable; urgency=low + + * New upstream release. (Closes: #318672) + * debian/rules: Remove hack to use gcc 3.4 on amd64, since now we're all + on gcc 4.0. (Closes: #318684) + * debian/control: + - Remove gcc 3.4 build depends on amd64 + - Explicitly build depend on libxinerama-dev. + * gfx/src/gtk/nsScreenGtk.cpp: Patch from Loic Minier to fix + gdk_property_get warnings. + * widget/src/gtk2/mozdrawingarea.c: Patch from Loic Minier to fix + crashes under GTK 2.7. (Closes: #318903) + + -- Eric Dorland <eric@debian.org> Wed, 20 Jul 2005 02:57:44 -0400 + +mozilla-firefox (1.0.99+deerpark-alpha2-1) experimental; urgency=low + + * New upstream alpha release. Be aware that you WILL have troubles with + debian packages for firefox extensions. + * Reverted patches that got incorporated upstream. + * content/events/src/nsEventStateManager.cpp: Some changes to the previous + patch to fit changes in API. + * debian/update-mozilla-firefox-chrome, + debian/update-mozilla-firefox-chrome.8, + debian/mozilla-firefox-dom-inspector.post(inst|rm), + debian/mozilla-firefox-gnome-support.post(inst|rm), + debian/theme/*, debian/inspector/*: Removed. + * debian/mozilla-firefox.postinst: Removed call to + update-mozilla-firefox-chrome. + * debian/mozilla-firefox-dom-inspector.install: Only install files from + /usr/lib/mozilla-firefox/extensions/inspector@mozilla.org + * debian/mozilla-firefox.dirs: Don't create /var/lib/mozilla-firefox/*, + /usr/lib/mozilla-firefox/extensions nor /usr/lib/mozilla-firefox/plugins. + * debian/mozilla-firefox.install: + - Don't install regxpchrome, chrome/pipnss.jar and chrome/help.jar which + don't exist anymore. + - Install manifest files in addition to jar files in chrome. + - Install classic.jar in the normal chrome directory (awaiting EM + modifications so that it can actually go back in the extensions + directory). + - Don't install debian/theme/00classic and debian/theme/Uninstall, + which got removed. + - Get the theme in the correct directory (it's not in + defaults/profile/extensions anymore). + - Install the reporter extension. + - Selectively install subdirectories of /usr/lib/mozilla-firefox/defaults, + since some of them are useless. + - Install the unixprint plugin. + * debian/mozilla-firefox.manpages: Removed manual page for + update-mozilla-firefox-chrome. + * debian/mozilla-firefox.links: Removed all links in + /var/lib/mozilla-firefox/. + * debian/rules: + - Enable freetype in the build, we'll see if deerpark is any better than + 1.0.x. + - Commented out OPTFLAGS set for some architectures. We will see if gcc + 4.0 is doing any better. + - Enabled SVG support. (Closes: #215990) + - Enabled some more extensions to fit extensions provided by upstream. + - Added needed --enable-application=browser to the ./configure call. + - Don't install update-mozilla-firefox-chrome. + - Don't create installed-chrome.txt. + - Don't remove installed-extensions.txt, it doesn't exist anyway. + - Don't move classic theme's install.rdf, it's already at the correct + place. + - Remove unneeded removals of preferences files which are not there + anymore. + * debian/mozilla-firefox.preinst: Clean-up old generated files (those in + /var/lib/mozilla-firefox and + /usr/lib/mozilla-firefox/extensions/*/uninstall/Uninstall. (Note that for + the latter, some packages do provide them, but they were overwritten by + update-mozilla-firefox-chrome. They have actually no use, and it is safe + to remove them. Extensions packages will eventually remove them anyway) + * debian/mozilla-firefox.prerm: Put -depth option of find before -type d. + + -- Mike Hommey <glandium@debian.org> Sat, 16 Jul 2005 10:18:40 +0200 + +mozilla-firefox (1.0.5-1) unstable; urgency=high + + * New upstream release, fixes security issues. (Closes: #318061) + * debian/rules: Disable freetype in the build for the time being. This + *might* break printing in some cases. + * gfx/idl/nsIFreeType2.idl, gfx/src/freetype/nsFreeType.cpp, + gfx/src/freetype/nsFreeType.h, gfx/src/ps/nsFontMetricsPS.cpp, + gfx/src/ps/nsFontMetricsPS.h, gfx/src/x11shared/nsFontFreeType.cpp, + gfx/src/x11shared/nsFontFreeType.h, + layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp: Patch + from bz#234035 to try to get building with the new freetype. (Closes: + #314243) + + -- Eric Dorland <eric@debian.org> Sat, 16 Jul 2005 00:43:54 -0400 + +mozilla-firefox (1.0.4-3) unstable; urgency=low + + * debian/mozilla-firefox.desktop: Add Czech translation from Jan + Outrata. (Closes: #311376) + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf64.cpp, + xpcom/reflect/xptcall/public/xptcstubsdecl.inc: Revert patch from + David Mosberger for 7+ args on ia64 that was added 1.0.3-2. + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf32.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf32.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf64.cpp, + xpcom/reflect/xptcall/public/genstubs.pl: Better patch from bz#291378 + which has been accepted upstream for ia64 7+ args fix. + * xpcom/reflect/xptcall/public/xptcstubsdecl.inc: Call genstubs.pl to + regenerate this file. + * dom/src/base/nsGlobalWindow.cpp, + embedding/components/windowwatcher/src/nsWindowWatcher.cpp: Fix + injection spoofing, patch from bz#296850. Fixes CAN-2004-0718. + + -- Eric Dorland <eric@debian.org> Thu, 9 Jun 2005 23:54:41 -0400 + +mozilla-firefox (1.0.4-2) unstable; urgency=critical + + * debian/control: Build-depend on libxft-dev not libxft2-dev to appease + finicky sparc buildd. + + -- Eric Dorland <eric@debian.org> Mon, 16 May 2005 21:17:57 -0400 + +mozilla-firefox (1.0.4-1) unstable; urgency=critical + + * New upstream release. Fixes CAN-2005-1477 and CAN-2005-1476. (Closes: #308620) + * debian/update-mozilla-firefox-chrome.8: Patch from A Costa to fix the + spelling of maintenace. (Closes: #305968) + * debian/mozilla-firefox.desktop: Patch from Steinar H. Gunderson to add + a Norwegian translation. (Closes: #305983) + + -- Eric Dorland <eric@debian.org> Thu, 12 May 2005 22:59:47 -0400 + +mozilla-firefox (1.0.3-2) unstable; urgency=high + + * browser/app/profile/firefox.js: Disable SSLv2 and 40-bit ciphers by + default. + * debian/mozilla-firefox.NEWS: Explain the SSL change. + * extensions/transformiix/source/base/Double.cpp: Patch from David + Mosberger-Tang (fixed up by me) to fix unaligned access on ia64 (and + perhaps other platforms). (Closes: #303518) + * xpcom/reflect/xptcall/public/xptcstubsdecl.inc, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf64.cpp: Another patch + from David Mosberger-Tang to fix extension loading on ia64. (Closes: + #303515) + + -- Eric Dorland <eric@debian.org> Thu, 21 Apr 2005 01:25:02 -0400 + +mozilla-firefox (1.0.3-1) unstable; urgency=low + + * New upstream release, fixes various security issues, so urgency high. + * js/src/fdlibm/fdlibm.h: Fix from David Mosberger to define ia64 as + little-endian arch (also added for mipsel). (Closes: #303438) + + -- Eric Dorland <eric@debian.org> Sun, 17 Apr 2005 23:13:01 -0400 + +mozilla-firefox (1.0.2-3) unstable; urgency=high + + * gfx/src/freetype/nsFreeType.cpp, + netwerk/protocol/http/src/nsHttpConnectionMgr.cpp, + security/nss/lib/pki1/oiddata.h, security/nss/lib/pki1/pki1.h, + widget/src/gtk2/nsDragService.cpp: Fixes for gcc-4.0, + bz#289238. (Closes: #301485) + * js/src/jsstr.c: Fix for JS memory access security bug, patch from + bz#288688. (Closes: #302775) + + -- Eric Dorland <eric@debian.org> Wed, 6 Apr 2005 01:36:11 -0400 + +mozilla-firefox (1.0.2-2) unstable; urgency=high + + * Last upload should of been marked urgency=high because of the security + fixes. + * debian/mozilla-firefox.postinst: Fix ridiculous typos. (Closes: + #300685) + * debian/mozilla-firefox-runner: Use pgrep to detect esd and arts + instead. Thanks Craig Small for the advice. (Closes: #302086) + + -- Eric Dorland <eric@debian.org> Fri, 1 Apr 2005 01:18:18 -0500 + +mozilla-firefox (1.0.2-1) unstable; urgency=low + + * New upstream release. Fixes CAN-2005-0399, CAN-2005-0401, + CAN-2005-0402. (Closes: #301243) + * debian/control: Update suggest for xprint rename. (Closes: #300976) + * xpcom/reflect/xptcall/src/md/unix/{Makefile.in, + xptcinvoke_asm_parisc_linux.s, xptcstubs_asm_parisc_linux.s}: Apply + patch from Ivar (Contributed by Randolph Chung) to fix Firefox on + hppa. (Closes: #286038) + + -- Eric Dorland <eric@debian.org> Fri, 25 Mar 2005 02:30:10 -0500 + +mozilla-firefox (1.0.1-3) unstable; urgency=low + + * widget/src/gtk2/nsGtkKeyUtils.cpp: Patch from bz#108170 to fix broken + keymap for Germans. (Closes: #299781) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: avoid + crashing when extension's install.rdf is broken. (Closes: #298796) + (MH) + * debian/mozilla-firefox.prerm: Remove + /usr/lib/mozilla-firefox/defaults/profile/extensions/Extensions.rdf on + uninstall. (Closes: #298636) + * debian/mozilla-firefox.postinst: Add little echo to tell people to + restart firefox after upgrades. + * debian/presubj: Add a note there about restarting firefox before + submitting bugs. + * debian/mozilla-firefox-runner: Properly quote $@ expansion. (Closes: + #300195) + * browser/locales/en-US/searchplugins/ + {yahoo.src,google.src,eBay.src,dictionary.src,creativecommons.src, + amazondotcom.src}: Set updateCheckDays to 0, which avoids duplicated + search entries in the menu. (Closes: #299006, #299813) + + -- Eric Dorland <eric@debian.org> Sun, 20 Mar 2005 17:08:12 -0500 + +mozilla-firefox (1.0.1-2) unstable; urgency=high + + * Changes by Mike Hommey: + * Urgency: high due to RC bug fix. + * debian/update-mozilla-firefox-chrome: Re-initialize Extensions.rdf + inside the script instead of relying on mozilla-firefox's default + behaviour, which just fails when defaults/profile/extensions/ \ + Extensions.rdf doesn't exist (and it seems some people like to remove + files in /etc). (Closes: #294175) + + * Changes by Eric Dorland: + * debian/mozilla-firefox.menu: Capitalize "browsers". Thanks Gerfried + Fuchs. + * debian/mozilla-firefox-runner: Fix from Marc Horowitz to fix sound + device detection. (Closes: #297088) + * toolkit/content/widgets/tabbrowser.xml: Apply patch from bz#283063, to + fix a memory leak when closing tabs. (Closes: #296749) + * xpfe/global/resources/content/bindings/browser.xml, + xpfe/global/resources/content/bindings/tabbrowser.xml, + toolkit/content/widgets/browser.xml, + toolkit/content/widgets/tabbrowser.xml: Apply patches from bz#131456 + to fix various tab related memory leaks. (Closes: #280586) + * netwerk/protocol/http/src/nsHttpHandler.cpp: Patch from bz#265536 to + differentiate between AMD64 and i386. (Closes: #282592) + + -- Eric Dorland <eric@debian.org> Sat, 5 Mar 2005 18:46:09 -0500 + +mozilla-firefox (1.0.1-1) unstable; urgency=high + + * New upstream release. (Closes: #296851) + - This release fixes the Secunia window injection bug, + CAN-2004-1156. (Closes: #293664) + + * Changes by Mike Hommey: + * debian/rules: Some clean-up. + * debian/control: Changed my maintainer address. + * debian/README.Debian: Add a note about automatic updates for + extensions. (Closes: #296761) + + * Changes by Eric Dorland: + * browser/app/profile/firefox.js: Remove disable IDN pref, it's the + default now anyway. + + -- Eric Dorland <eric@debian.org> Tue, 1 Mar 2005 02:03:48 -0500 + +mozilla-firefox (1.0+dfsg.1-6) unstable; urgency=high + + * The "And I thought IE had security bugs!" release. + * toolkit/content/widgets/tabbrowser.xml, + xpfe/global/resources/content/bindings/tabbrowser.xml: Fix + "Firetabbing" vulnerability from bugzilla#280056, fixes + CAN-2005-0231. (Closes: #294415) + * modules/plugin/base/src/nsPluginHostImpl.cpp: Fix "Fireflashing" + vulnerability from bugzilla#280664, fixes CAN-2005-0232. (Also Closes: + #294415) + * build/unix/run-mozilla.sh: Patch from Javier Fernández-Sanguino Peña + to fix insecure temp file usage in run-mozilla.sh. (Closes: #294127) + * netwerk/base/src/nsStandardURL.cpp, netwerk/base/src/nsStandardURL.h: + Patch from bugzilla#261934 to make the network.enableIDN preference + work and again. + * browser/app/profile/firefox.js: Disable IDN by default. This doesn't + close #293975, but drops its severity. + * debian/README.Debian: Add warning and describe how to enable IDN. + + -- Eric Dorland <eric@debian.org> Wed, 9 Feb 2005 22:56:17 -0500 + +mozilla-firefox (1.0+dfsg.1-5) unstable; urgency=low + + * debian/mozilla-firefox.desktop: Don't translate "Mozilla Firefox" into + French. + * browser/app/profile/firefox.js: Set mozilla.widget.raise-on-setfocus + to false to prevent unecessary window raising. (Closes: #292049) + * debian/rules: Don't compile statically on mips and mipsel, since it's + broken for now. + + -- Eric Dorland <eric@debian.org> Sun, 6 Feb 2005 15:02:36 -0500 + +mozilla-firefox (1.0+dfsg.1-4) unstable; urgency=low + + * debian/mozilla-firefox.desktop: Add French translations from Jerome + Warnier. I will accept more, but closing this bug. (Closes: #292506) + * debian/README.Debian: Update the Emacs keybindings instructions. + (Closes: #291691) + * debian/mozilla-firefox.1: + - Remove -splash from the manpage, it has never worked. (Closes: + #287088) + - Add units to -height and -width description. (Closes: #285142) + + -- Eric Dorland <eric@debian.org> Wed, 2 Feb 2005 01:42:53 -0500 + +mozilla-firefox (1.0+dfsg.1-3) experimental; urgency=low + + * debian/mozilla-firefox.desktop: Add %u to the exec line so that apps + know it can handle URLs. (Closes: #290132) + * debian/README.Debian: + - Improve button reversal instructions. Thanks Christian Mayrhuber + - Fix reference to ~/.firefox. + * debian/rules: Enable static building. This will build firefox as one + large binary (mostly) and should speed a few things up, especially + program load time. I'd like to hear about any speedup (or slow down) + you exprience. Porters, please build this for your arch to make sure + this doesn't break anything. + + -- Eric Dorland <eric@debian.org> Thu, 20 Jan 2005 01:40:34 -0500 + +mozilla-firefox (1.0+dfsg.1-2) unstable; urgency=medium + + * debian/mozilla-firefox-gnome-support.postrm, + debian/mozilla-firefox-dom-inspector.postrm: Don't die if + update-mozilla-firefox-chrome dies. (Closes: #287355) + + -- Eric Dorland <eric@debian.org> Sun, 9 Jan 2005 23:51:10 -0500 + +mozilla-firefox (1.0+dfsg.1-1) unstable; urgency=low + + * Not a new upstream release. + * other-licenses/branding/firefox, other-licenses/7zstub/firefox: Remove + these from the .orig.tar.gz, since they are not DFSG-free. We're not + using the files anyway, so out they go. (Not sure the 7zstub stuff is + non-free, but it's Windows only so no harm) + * debian/rules: + - Remove explicit low-optimization on alpha, since Falk + Hueffner claims it works. + - Move entire defaults/profile directory into /etc/mozilla-firefox, + rather than just the bookmarks.html. (Closes: #285538) + * debian/mozilla-firefox.links: Link entire defaults/profile now. + * debian/mozilla-firefox.preinst: Add upgrade code to remove old + defaults/profile to make way for new symlink. + * debian/mozilla-firefox.dirs: Just create etc/mozilla-firefox. + + -- Eric Dorland <eric@debian.org> Sun, 19 Dec 2004 01:31:44 -0500 + +mozilla-firefox (1.0-5) unstable; urgency=medium + + * Changes by Mike Hommey: + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Make the + extensions upgrade work again. (Closes: #282143) + * debian/rules: Better DEB_BUILD_OPTIONS handling, better debugging + build (DEB_BUILD_OPTIONS="nostrip debug") + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + toolkit/mozapps/extensions/content/extensions.js: Allow users to + disable globally installed extensions. + + * Changes by Eric Dorland: + * debian/rules: Remove explicit low-optimization on sparc. Apparently + there was an issue for a number of arches that required lower + optimization settings, but it is now resolved. So porters, please + check -O2 on arm, alpha, powerpc and ia64 and let me know if it's + safe. Thanks David S. Miller. (Closes: #284533) + + -- Eric Dorland <eric@debian.org> Tue, 7 Dec 2004 01:06:48 -0500 + +mozilla-firefox (1.0-4) unstable; urgency=medium + + * debian/control: Make mozilla-firefox-gnome-support and xprt-xprintorg + Suggests, no Recommends after a look at policy. (Closes: #282432) + * debian/README.Debian: + - Refer to .mozilla/firefox, not .firefox. + - Explain how to reenable emacs style keybindings. (Closes: #282321) + + -- Eric Dorland <eric@debian.org> Sat, 27 Nov 2004 20:40:10 -0500 + +mozilla-firefox (1.0-3) unstable; urgency=low + + * Changes by Mike Hommey + * The "becoming more and more an iceweasel" release. + * debian/firefox.js: + + Enable firefox's internal locale autodetection. + + Disable default browser question at startup. (Closes: #280752) + * debian/mozilla-firefox-runner: Removed our locale autodetection. + That means now locales installed in user profiles are automatically + used, and that there is no need for /var/lib/mozilla-firefox/locales.d + anymore. + * debian/mozilla-firefox.dirs: Removed creation of + /var/lib/mozilla-firefox/locales.d. + * debian/rules: Removed creation of the locale file in + /var/lib/mozilla-firefox/locales.d. + * debian/presubj: Put some more recent information. + * htmlparser/src/nsParser.cpp: Applied patch from bz#57717 so that empty + html files don't get <html><body></body></html> when viewing source. + * browser/base/content/aboutDialog.css: increase the User Agent element + height as in bz#238137 (but up to MacOSX's height) to show the full User + Agent string. + * xpcom/io/nsAppDirectoryServiceDefs.h, + xpcom/io/nsAppFileLocationProvider.cpp, + xpfe/components/search/src/nsInternetSearchService.cpp: Applied patch from + bz#123315 so that Internet search services in user profiles are supported. + (Closes: #219053) + * debian/mozilla-firefox-runner: + + Remove compatibility.ini only if it is older than + /usr/lib/mozilla-firefox/components.ini. That way, we only rebuild it + after an update-mozilla-firefox-chrome. + + Detect if we're being run through sudo without the -H option, in which + case we force setting of $HOME. (Closes: #218156) + * browser/app/profile/firefox.js: Sync'ed with debian/firefox.js. + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: + + Removed some error messages that get there because firefox is trying to + write in the /usr/lib/mozilla-firefox directory as a user. They are + useless and lead users to think something is going wrong while it's the + (stupid but) normal way firefox works. + + Avoid creation of directories when attempting to read files, that + throwed uncaught exceptions breaking some stuff in several different + ways when extensions don't follow the new scheme for extensions. + + Avoid copying stuff from + /usr/lib/mozilla-firefox/defaults/profile/extensions/ to + /usr/lib/mozilla-firefox/extensions/, that's the *very* old way of + installing extensions, which, since the old scheme has been thrown away, + won't work anyway, if any extension provides files out there. + + CheckForMismatches: Avoid to disable already disabled global extensions, + and don't propose to upgrade the locked extensions. That fixes a + never-ending loop occuring when running firefox for the first time in a + user account, while some global extensions are expired. + (Closes: #278722, #281537) + * debian/mozilla-firefox.prerm, debian/mozilla-firefox.preinst: Moved + removal of links to /usr/lib/mozilla-firefox/defaults/profile/extensions/ + sitting in /usr/lib/mozilla-firefox/extensions/, if any remaining, from + prerm to preinst. We remove them once and for all, they won't be created + by us anymore. + * debian/update-mozilla-firefox-chrome: + + Removed support for extensions in + /usr/lib/mozilla-firefox/defaults/profile/extensions/. + + Removed some clean-up that had been introduced to help the Extensions + Manager not to die, and which, actually, did not work out quite so well. + Anyways, with the changes this time, the EM is supposed to support much + more problems than ever before (as usual ;) ) so we don't need that + anymore. + + Avoid stupid mv error messages when firefox-bin -register fails (which + is not supposed to happen, but you're never too careful) + * debian/update-mozilla-firefox-chrome, debian/mozilla-firefox.preinst: + Move removal of some very old stuff to preinst, to do it once and for all + instead of doing it every time we run update-mozilla-firefox-chrome. + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Applied patch from + bz#124561 to get a prompt for username/password in case anonymous login + fails. + * debian/mozilla-firefox-runner: + + Added check for more arguments so that the url in the command line get + detected more accurately. + + When a file name is given on the command line, prepend "file://" and + change spaces into %20. (Closes: #281800) + + * Changes by Eric Dorland + * debian/mozilla-firefox.prerm: Patch from Philipp Weis to fix order of + find arguments. (Closes: #280852) + * debian/mozilla-firefox.desktop: Support new mime type handler in Gnome + 2.8. (Closes: #281274) (MH: I added some more myme-types) + * debian/mozilla-firefox.postinst: Run update-desktop-database if it + exists. + * widget/src/gtk/nsWidget.cpp: We don't use gtk anymore, might as well + revert these patches. Thanks Stephane Despret. + + -- Eric Dorland <eric@debian.org> Thu, 18 Nov 2004 22:16:28 -0500 + +mozilla-firefox (1.0-2) unstable; urgency=low + + * Changes by Mike Hommey + * The "don't do too much on the same day, it's bad for health" release. + * debian/firefox.js: Re-activated the extensions update service, and + removed the update url. + * browser/app/profile/firefox.js: Sync'ed with debian/firefox.js. + * debian/mozilla-firefox-dom-inspector.preinst: Removed old inspector.js + file. + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + toolkit/mozapps/extensions/content/extensions.js: Disabled possibility + to update locked extensions and themes. Locked extensions being the + ones installed by the packaging system, they should be updated through + that. + * toolkit/mozapps/update/src/nsUpdateService.js.in: Disabled application + update functionnality. Firefox should be updated through the packaging + system. + * browser/components/prefwindow/content/pref-advanced.xul: Removed the + preferences panel item to activate application update, since it is + totally disabled. + * debian/mozilla-firefox-runner: Remove compatibility.ini instead of + compreg.dat. (Eric: This will cause a rebuild of the compreg.dat) + + * Changes by Eric Dorland: + * debian/mozilla-firefox.NEWS: Fix typos. + * README.Debian: + - Add note about application update being completely disabled. + - Fix path to XUL.mfsal + + -- Eric Dorland <eric@debian.org> Wed, 10 Nov 2004 22:56:22 -0500 + +mozilla-firefox (1.0-1) unstable; urgency=medium + + * New upstream release (Closes: #280449) + + * Changes by Mike Hommey: + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply new patch + #164795 from bz#266835 + some tweaks as previously. This might lead to + encoding problems with the password, but it is supposed to be ASCII + anyway. + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Reworked the + previous patches so that the Extensions Manager shows extensions that + have been disabled due to version mismatch, and added a workaround so + that components registration works correctly. + * debian/update-mozilla-firefox-chrome: Removed part that is useless due + to last changes in the Extensions Manager. + * Make the inspector a real extension again: + - debian/inspector/00dom-inspector: File for + /var/lib/mozilla-firefox/extensions.d. + - debian/inspector/Uninstall: Uninstall file needed in extension + directory. + - debian/inspector/install.rdf: install.rdf taken from older versions, + and adapted to newer versions, adding registered chrome. + - debian/mozilla-firefox-dom-inspector.dirs: Removed. Everything will + be created by dh_install. + - debian/mozilla-firefox-dom-inspector.install: install + debian/inspector.rdf and most inspector files in the right place in + /usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9} + and /var/lib/mozilla-firefox + * Make the classic theme a real extension, even though it's still in + the main package: + - debian/theme/00classic: File for + /var/lib/mozilla-firefox/extensions.d. + - debian/theme/Uninstall: Uninstall file needed in extension + directory. + - debian/mozilla-firefox.install: Install all files in the right + place in + /usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} + - debian/mozilla-firefox.dirs: Removed creation of + /usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome, + it will be done by dh_install. + - browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in: + Added chrome to be registered. + * Removed support for /var/lib/mozilla-firefox/chrome.d: + - debian/mozilla-firefox.dirs: Removed creation of the directory. + - debian/rules: Removed creation of files there, and put the + installed-chrome.txt, excluding inspector and classic theme stuff, + directly in /usr/lib/mozilla-firefox/chrome. + - debian/update-mozilla-firefox-chrome: Removed all + /var/lib/mozilla-firefox/chrome.d related stuff. + - debian/mozilla-firefox.links: Removed installed-chrome.txt link. + - toolkit/mozapps/extensions/src/nsExtensionManager.js.in: disable + extensions that fail to install chrome. + * debian/mozilla-firefox-runner: Remove user profile compreg.dat at + launch time. + * Moved some files in /var/lib/mozilla-firefox: + - debian/mozilla-firefox.links: Add a symlink for Extensions.rdf + and components.ini, from /usr to /var. + - debian/mozilla-firefox.prerm: Don't remove files we don't + provide and remove files at their new locations. + - debian/mozilla-firefox.preinst: Remove + /var/lib/mozilla-firefox/installed-chrome.txt. + - debian/update-mozilla-firefox-chrome: Create links for + Extensions.rdf and components.ini after register call, and remove + components.ini before. + * Clean-up in files generated by update-mozilla-firefox-chrome: + - debian/mozilla-firefox.links: Put all the links generated by + update-mozilla-firefox-chrome into the package. + - debian/mozilla-firefox.prerm: Remove all /var files generated + in the remove target, and changed the way we clean-up + /var/lib/mozilla-firefox. + * debian/mozilla-firefox.install: Removed chromelist.txt. + * Add support for extensions preferences: + - debian/update-mozilla-firefox-chrome: Handle + /usr/lib/mozilla-firefox/defaults.ini file. + - debian/mozilla-firefox.links: Add a symlink to /var for + defaults.ini. + - toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Added + defaults registration in -register command. + - mozilla-firefox-dom-inspector.install: Move inspector.js into + the appropriate extension specific directory. + * Move preferences back into /usr: + - debian/rules: Don't move the prefs into + /etc/mozilla-firefox/pref, and put the vendor thing into /usr + as well, and remove firefox-l10.js file. + - debian/mozilla-firefox.preinst: remove old prefs in /etc and + old symlink /usr/lib/mozilla-firefox/defaults/pref. + - debian/firefox.js: new Debian default preferences file. + - debian/mozilla-firefox.install: install firefox.js in + /etc/mozilla-firefox/pref. + - debian/mozilla-firefox.links: rename + /usr/lib/mozilla-firefox/defaults/pref symlink to + /usr/lib/mozilla-firefox/defaults/syspref. + - toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Added + a hook so that defaults/syspref gets registered in defaults.ini + after all other extensions preferences. + * debian/mozilla-firefox.preinst: only clean-up stuff if we are + upgrading from a version known to still have the files. Added some + more clean-up. + * debian/mozilla-firefox.install: Removed useless init.d. + * modules/libpref/src/init/all.js: Fixed all chrome URLs which refered to + mozilla stuff. + * debian/update-mozilla-firefox-chrome: Remove some more files before running + firefox-bin -register. + + * Changes by Eric Dorland: + * debian/mozilla-firefox.NEWS: Add warning about broken extension and + locale packages with this release. + * debian/mozilla-firefox-runner: Comment out warning about xprint, + xprint isn't necessarily needed for printing since postscript was + reenabled. (Closes: #279858) + + -- Eric Dorland <eric@debian.org> Wed, 10 Nov 2004 00:33:44 -0500 + +mozilla-firefox (0.99+1.0RC1-4) unstable; urgency=low + + * debian/mozilla-firefox-runner: + - Fixed to run properly with dash. (Closes: #279549). + - Fixed indentation. + - Added a basic debugger support. + * debian/mozilla-firefox.1: Added information about debugger options. + * debian/rules: Added a debug option to DEB_BUILD_OPTIONS. If you want to + build a fully gdb'able package, use DEB_BUILD_OPTIONS="noopt nostrip + debug" + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply new patch from + bz#266835. + - Further change this patch to use Append rather than AppendLiteral, + which doesn't seem to exist. (ED) + + -- Mike Hommey <mh@glandium.org> Thu, 4 Nov 2004 22:01:51 +0900 + +mozilla-firefox (0.99+1.0RC1-3) unstable; urgency=low + + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply patch from + bz#266835 to fix anonymous user password issue. (Closes: #226784) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: (MH) + - Fully apply previous patches, which for some reason left a spurious code + line which made the extensions manager not like expired extensions + anymore. (Closes: #279140) + - Enhanced extensions manager so that the behaviour described in + https://bugzilla.mozilla.org/show_bug.cgi?id=247846#c14 *actually* + works. Extensions packagers are invited to move their chrome files + accordingly, and remove /var/lib/mozilla-firefox/chrome.d files so that + extensions chrome don't get registered when they are forced-disable due + to version mismatch or some other reason. + * debian/mozilla-firefox-runner: + - Fix some thinkos. (MH) + - Fix for loading files from the command line. (Closes: #279018) (MH) + - Removed setting --display from $DISPLAY, let it get it from the + environment, but pass --display if it is set. (Mike, + I'm worried this will screw up some session + managers, let me know what you think, we can revert it) + - Removed FIREFOX_OPEN_IN stuff, so that firefox now obeys to "open + links from other applications in" setting. (Closes: #279073) (MH) + - Enhanced command line parsing, and drop empty arguments. + (Closes: #279138) (MH) + - No need for a find to look for XUL.mfasl, we already have its + location from the path list taken from profiles.ini. (MH) + - Better detection of dsp wrapper, when FIREFOX_DSP=auto. + (Closes: #254611) (MH) + - Correctly open local files even when firefox was not previously + running. (Closes: #279018) (MH) + * debian/mozilla-firefox.1: (MH) + - Removed references to FIREFOX_OPEN_IN. + - Added the -safe-mode option. + * debian/mozilla-firefoxrc: Removed FIREFOX_OPEN_IN. (MH) + + -- Eric Dorland <eric@debian.org> Tue, 2 Nov 2004 00:46:28 -0500 + +mozilla-firefox (0.99+1.0RC1-2) unstable; urgency=medium + + * browser/app/profile/firefox.js: Disable browser update checking by + default. + * debian/mozilla-firefox-runner: Apply patch from Aurelien Jarno to fix + variable name typo. (Closes: #278844) + + -- Eric Dorland <eric@debian.org> Fri, 29 Oct 2004 23:50:59 -0400 + +mozilla-firefox (0.99+1.0RC1-1) unstable; urgency=medium + + * New upstream release. + * layout/xul/base/src/nsImageBoxFrame.{cpp,h}: Remove some conflicts + from a previous patch. + + -- Eric Dorland <eric@debian.org> Thu, 28 Oct 2004 23:33:46 -0400 + +mozilla-firefox (0.10.1+1.0PR-5) unstable; urgency=low + + * debian/rules: (MH) + - Use upstream extensions set. This will eventually get a + correct help menu and fix some yet undiscovered UI issues. + (Closes: #257946) + - Added support for DEB_BUILD_OPTIONS=noopt. + - Changed OPTFLAGS assignment. + - Remove whitespace characters in version number for UserAgent + branding. + - Install mozilla-firefox-runner into /usr/lib/mozilla-firefox/firefox + (Closes: #278477) + * debian/mozilla-firefox.links: (MH) + - Link /usr/bin/firefox and /usr/bin/mozilla-firefox to + /usr/lib/mozilla-firefox/firefox. + - Removed obsolete profile/US links. + * debian/mozilla-firefox.dirs: Create /etc/mozilla/profile instead of + /etc/mozilla/profile/US. (MH) + * toolkit/xre/nsAppRunner.cpp: Fix crash in nsCmdLineService::Initialize + when argc is changed by gtk (when treating gtk specific arguments) + (MH) + * debian/mozilla-firefox-runner (Changes by MH): + - Removed workaround for bug #122990. First, xmlterm is not an activated + extension, and secondly, if it still requires the TERM environment + variable, it is the user's duty to set it to whatever he wants, not + firefox's start script's. + - Removed the ulimit -c setting. First, it is set by default to 0 on a + newly installed debian, and secondly, it is user's choice to set it or + not if he needs to get core files. + - Removed unused shell variables. + - Removed unsetting AUDIODEV variable. If it still crashes, it does belong + to some other code than firefox. The AUDIODEV environment variable is + used nowhere in firefox code: + http://lxr.mozilla.org/aviarybranch/search?string=AUDIODEV + Note that there is a "A crash which occurred when AUDIODEV doesn't + contain "/" was fixed." log message in esound version 0.2.33 changes and + that the bug may have belonged there. + - Replaced ${HOME}/.mozilla-firefoxrc file by a ${HOME}/.mozilla/firefox/rc + file. The former is still supported, though, but will bring a warning + message. If both are present, only the latter is taken into account. + - Changed the way system and user FIREFOX_DSP and FIREFOX_OPEN_IN + variables are handled. First, use system values defined in + /etc/mozilla-firefox/mozilla-firefoxrc, then override with + ${HOME}/.mozilla/firefox/rc and then with runtime environment variables. + - Don't die when DISPLAY is not set. Display can be passed by --display + option, and if not set and needed (some options don't require it), + firefox will complain. + - Some shell code simplifications by using some coreutils. + - Added better command line parsing. + - Added verbosity mode. + - Removed setting of FONTCONFIG_PATH, /usr/lib/mozilla-firefox/res/Xft + doesn't exist + - Factorized localization detection. + * debian/mozilla-firefox.1 (MH): + - Made some clean-up between dashes and hyphens. + - Removed obsolete options and added new ones. + - Added informations about some debian specific stuff. + * debian/update-mozilla-firefox-chrome: Changed the way we move files to + /var/lib/mozilla-firefox. It will avoid creating files with a * in their + name whenever registration failed. (MH) + * debian/README.Debian: Update java instructions, tell them to just use + java-package. + + -- Eric Dorland <eric@debian.org> Thu, 28 Oct 2004 21:30:40 -0400 + +mozilla-firefox (0.10.1+1.0PR-4) unstable; urgency=medium + + * This release mostly courtesy Mike Hommey. + * layout/src/xul/base/src/nsImageBoxFrame.*: Backported patch from + bz#255372. (Closes: #278046) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Force locking + globally installed extensions, that will prevent extensions packages + files to be unexpectedly removed by firefox. + * debian/control: Add Mike Hommey as an Uploader. + * debian/mozilla-firefox.install: Removed content-packs.jar which is + mozilla-browser specific. + * debian/mozilla-firefox.dirs: + - Remove leading /'s. + - Create + /usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} + /chrome directory so that preview is shown in the Themes Manager. Yes, + this is stupid, but it is the way firefox wants it (and it's not even + created by make install, nor in the official binary tarball. It is + only created at run time, but you know what ? under *nix, a normal + user can't create that directory) (Closes: #276404) + * debian/rules: Add a /etc/mozilla-firefox/pref/vendor.js file adding + the debian package version to the UserAgent. (Closes: #268654) + * debian/README.Debian: Update java instructions. I'd love some more + definitive pointers. (Closes: #277983) + + -- Eric Dorland <eric@debian.org> Tue, 26 Oct 2004 00:11:48 -0400 + +mozilla-firefox (0.10.1+1.0PR-3) experimental; urgency=low + + * debian/control: + - Rename the mozilla-firefox-gnome-vfs package + mozilla-firefox-gnome-support since it does more than vfs. No + need for Replaces or anything, since it never actually made it to + the archive. + - Remove strict build dependencies on g++ and binutils, since the + fixed versions have hit sarge. + - Remove hppa build depends, since gcc has also been fixed there. + - Build-depend on libgnome2-dev and libgconf2-dev to build in more + gnome support. + - Have mozilla-firefox recommend it's gnome support. + * debian/rules: + - Remove hppa CC redefinitions. + - Exclude *gnome* not just *gnomevfs*. + - dh_install for gnome-support. + * debian/mozilla-firefox-gnome-vfs.*: Rename to + mozilla-firefox-gnome-support.*. + * debian/mozilla-firefox-gnome-support.install: Grab *gnome*, not just + *gnomevfs*. + + -- Eric Dorland <eric@debian.org> Thu, 21 Oct 2004 23:04:53 -0400 + +mozilla-firefox (0.10.1+1.0PR-2) experimental; urgency=low + + * debian/mozilla-firefox-runner: + - Patch from Sam Morris to handle cleanup of directories with + unusual names. + - Fix return value check, patch from rgselk. (Closes: #269690) + * debian/mozilla-firefox.1: List full path to firefox-bin. (Closes: + #275563) + * debian/rules: + - --with-gssapi=/usr, enable Negotiate extension. (Closes: + #274258) + - Enable gnomevfs support, + * debian/control: + - Build-depend on libkrb5-dev. + - Build-depend on libgnomevfs2-dev. + - New gnomevfs package, based on work by Mike Hommey. (Closes: + #262062) + * debian/mozilla-firefox-gnome-vfs.post{inst,rm}: Added, same as + corresponding files from mozilla-firefox-dom-inspector. + * debian/mozilla-firefox-gnome-vfs.install: Install gnomevfs components. + * browser/app/profile/firefox.js: Set + network.negotiate-auth.trusted-uris to https:// to enable the + negotiate extension over secure links. + * config/rules.mk: Tweak patch from Thiemo Seufer to include svg_doc in + non-optimization. (Closes: #273353) + + -- Eric Dorland <eric@debian.org> Sun, 17 Oct 2004 21:25:08 -0400 + +mozilla-firefox (0.10.1+1.0PR-1) experimental; urgency=critical + + * New upstream release, fixes security issue bz#259708. (Closes: + #274493) + + -- Eric Dorland <eric@debian.org> Sun, 3 Oct 2004 03:32:43 -0400 + +mozilla-firefox (0.10+1.0PR-1) experimental; urgency=low + + * New upstream release. (Closes: #273700, #267003) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + netwerk/dns/src/nsIDNService.cpp, + modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp, + gfx/src/windows/nsImageWin.cpp, gfx/src/shared/gfxImageFrame.cpp, + browser/app/profile/firefox.js: Resolve conflicts between my tree and + upstream. + * browser/app/Makefile.in: Fix $(DESTDIR) variable. + * accessible/src/atk/nsAccessibleWrap.cpp, + accessible/src/atk/nsAccessibleWrap.h: Apply patch from bugzilla for + alpha fix that's more likely to make it into CVS. + * debian/update-mozilla-firefox-chrome: Patch from Mike Hommey to make + update-mozilla-firefox-chrome more verbose on -v. + * debian/rules: + - Remove typeaheadfind for new find toolbar to work. (Mike Hommey) + (Closes: #267170) + - Changes to reflect new upstream files. + * debian/control: + - Remove build-depend on libcairo-dev. + - Build depend on libxt-dev, seems to be necessary now. (Closes: + #274311) + * debian/docs: Removed, as browser/README.html disappeared. (Mike Hommey) + * debian/mozilla-firefox.dirs: + - Changes to reflect new upstream files. + - Removed obsolete libnullplugin.so. + * debian/mozilla-firefox.install: + - Remove .jar's that aren't there anymore. + - Removed obsolete libnullplugin.so. + * debian/mozilla-firefox-dom-inspector.dirs, + debian/mozilla-firefox-dom-inspector.install, debian/rules: Upstream + doesn't consider DOM Inspector as a real extension, and do not provide + the appropriate files to make it appear in the extensions + manager. Removed all the extension related stuff in the package. (Mike + Hommey) + * other-licenses/libart_lgpl: Removed, was for SVG, no longer needed. + * modules/plugin/samples/default/unix/*: Reverted debian specific + changes, we don't want them in the diff since libnullplugin won't get + installed. + + -- Eric Dorland <eric@debian.org> Fri, 1 Oct 2004 18:50:46 -0400 + +mozilla-firefox (0.9.3-6) unstable; urgency=high + + * gfx/src/gtk/fontEncoding.properties: Uncomment symbol fonts. (Closes: + #272927) + * debian/control: Build-depend on binutils (>= 2.15-4) but only on mips + and mipsel. (Closes: #273353) + * configure.in, configure, rules.mk: Patch from Thiemo Seufer to + increase stability and performance on mips. (Closes: #272159) + * debian/mozilla-firefox-runner: Detect failure of ping() + better. (Closes: #267393) + * layout/html/document/src/html.css: Testing fix for xprint problems. + + -- Eric Dorland <eric@debian.org> Mon, 27 Sep 2004 17:07:37 -0400 + +mozilla-firefox (0.9.3-5) unstable; urgency=high + + * debian/update-mozilla-firefox-chrome: Apply another patch form Mike + Hommey to fix a few more issues in the script. (Closes: #271480) + * Fixes to Secunia security bugs, ported from bugzilla: + (Closes: #271888) + - browser/base/content/browser.js, + xpfe/communicator/resources/content/contentAreaDD.js: Fix for + drag and drop exploit, bz#250862. + - caps/include/nsScriptSecurityManager.h, caps/src/caps.properties, + caps/src/nsScriptSecurityManager.cpp: Fix for enablePrivilege + exploit, bz#253942. + - gfx/src/shared/gfxImageFrame.cpp, gfx/src/windows/nsImageWin.cpp, + modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp: Fix for various + overflows in the BMP code, bz#255067. + - netwerk/dns/src/nsIDNService.cpp: Fix for bug in non-ASCII + characters in domain names, bz#256316 + - content/xbl/src/nsXBLPrototypeHandler.cpp: Clipboard injection + fix, bz#257523. + + -- Eric Dorland <eric@debian.org> Thu, 16 Sep 2004 20:06:47 -0400 + +mozilla-firefox (0.9.3-4) unstable; urgency=high + + * Urgency high, go into testing dammit! + * Apply patch from Mike Hommey as -3.1, which wasn't actually + released. See below. (Closes: #271480) + * debian/rules: Patch from Matthew Mueller to fix underquoted + argument. (Closes: #271432) + * debian/control: Build depend on binutils (>= 2.15-3) with fixed mips + support. We still need a fixed gcc. + + -- Eric Dorland <eric@debian.org> Mon, 13 Sep 2004 20:41:27 -0400 + +mozilla-firefox (0.9.3-3.1) unstable; urgency=low + + * debian/rules: removed + /usr/lib/mozilla-firefox/defaults/profile/extensions/installed-extensions.txt + * debian/update-mozilla-firefox-chrome: + + Added a "verbose" mode. + + Added warning messages (only shown in verbose mode) about some + extensions specific issues. This is intended to be useful for extensions + maintainers. + + Check if the installed-extensions.txt file disappears, which tells if the + mozilla-firefox -register went ok. + * debian/update-mozilla-firefox-chrome.8: + + Fixed typos. + + Added reference to the -v option for the verbose mode. + * debian/mozilla-firefox-runner: enhanced the profile directory check. It + didn't work if the path indicated in the profiles.ini was not absolute. + + -- Mike Hommey <mh@glandium.org> Mon, 13 Sep 2004 20:31:21 +0900 + +mozilla-firefox (0.9.3-3) unstable; urgency=high + + * Acknowlege NMU from Mike Hommey. He did a fantastic job in porting a + large amount of fixes from upstream CVS. I owe him several large + beverages of his choice. (Closes: #259046, #259836) + * Port all of Mike's changes to my local CVS. + * debian/mozilla-firefox-runner: + - Pass command-line arguments to get_locale so they can actually + be used. (Closes: #240058) + - Apply patch from Mike Hommey to use the profiles.ini to find the + path to the profile to clean XUL.mfasl. (Closes: #267326) + * debian/update-mozilla-firefox-chrome: Patch from Mike Hommey to fix + some bashisms introduced by his NMU. + * xpcom/reflect/xptcall/src/md/unix/Makefile.in, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s: Patch from + Thiemo Seufer to fix mips. This requires patches to gcc and binutils + to work and fully close #270621. + + -- Eric Dorland <eric@debian.org> Wed, 8 Sep 2004 21:13:35 -0400 + +mozilla-firefox (0.9.3-2.2) unstable; urgency=high + + * The "never edit the diff file unless you're sure nothing will be + missing" release. + * debian/mozilla-firefox.prerm: restore the uncut version. + * debian/control, debian/rules: Use gcc-3.2 to build on hppa, because of + toolchain bug #254549. + + -- Mike Hommey <mh@glandium.org> Mon, 23 Aug 2004 19:45:54 +0900 + +mozilla-firefox (0.9.3-2.1) unstable; urgency=high + + * Non Maintainer Upload for RC Fixes. + * Applied changes to toolkit/mozapps/extensions/src/nsExtensionManager.js.in + and toolkit/mozapps/extensions/locale/extensions.properties to solve some + issues with extensions management. (taken from CVS) + * Applied other changes to + toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + toolkit/mozapps/extensions/public/nsIExtensionManager.idl and + mozilla/toolkit/xre/nsAppRunner.cpp to be able to use -register + instead of -list-global-items for extensions/components/chrome + registration through update-mozilla-firefox-chrome, thus not needing + Xvfb anymore (-register option doesn't require a X server). + (taken from CVS) + * Applied some more changes to + toolkit/mozapps/extensions/src/nsExtensionManager.js.in in order to + avoir overlayinfo deletion during extensions registration process. + (taken from CVS) + * Final changes to toolkit/mozapps/extensions/src/nsExtensionManager.js.in + to avoid registering out of date extensions so that firefox doesn't enter + a loop at startup when no profile was found, and to only write in the + installed-extensions-processed.txt file the list of actually installed + extensions. Note that for packaged extensions installing their files + directly into the chrome or components directories, that only means they + won't appear in the Extensions Manager. They will still be available in + the GUI. + * All these fixes improve the Extensions Manager. Closes: #259046. + * accessible/src/atk/nsAccessibleWrap.cpp, + accessible/src/atk/nsAccessibleWrap.h: fixed 32-bit abuse of gobject + (Steve Langasek). Closes: #259836. + * debian/control: Removed dependency upon xvfb. + * debian/update-mozilla-firefox-chrome: + + Removed use of Xvfb. + + Removed creation of a root default profile, but kept the fake home + hack to avoid creation of a .mozilla directory in root's home. + + Changed extensions handling so that the overall process is cleaner. + Extensions packages will have to move extensions {uid} directories + to /usr/lib/mozilla-firefox/extensions/, while the current location + is still supported for compatibility purpose (but is strongly not + recommended). + + Removed use of regxpcom and regchrome, since what they both do is + done by firefox-bin -register. + * debian/rules: force GnomeVFS support to be disabled. (Josselin Mouette) + * debian/README.Debian: + + Added a note about potential problems with packaged "old" extensions. + + Added a note about how to manually disable packaged extensions in user + profile. + + Removed some old notes that don't apply anymore. + * debian/mozilla-firefox-dom-inspector.install, debian/rules: Move + extensions files to /usr/lib/mozilla-firefox/extensions/ instead of + /usr/lib/mozilla-firefox/defaults/profile/extensions/. + * debian/mozilla-firefox.links: Move installed-extensions.txt symlink + from /usr/lib/mozilla-firefox/defaults/profile/extensions/ to + /usr/lib/mozilla-firefox/extensions/. + * debian/mozilla-firefox.prerm: More cleanup on removal of package. + + -- Mike Hommey <mh@glandium.org> Sun, 22 Aug 2004 21:43:47 +0900 + +mozilla-firefox (0.9.3-2) unstable; urgency=low + + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4: Comment out + NARGSAVE, like I did in 0.9.1-7, should fully fix #262571. + * debian/mozilla-firefox.preinst: Remove brace expansion + bashism. (Closes: #264200) + * debian/control: Depend on debianutils (>= 1.16) since we use mktemp + -d. (Closes: #263958) + * debian/mozilla-firefox-runner: Make -contentLocale COUNTRY, not + lang-COUNTRY. (Closes: #263940) + + -- Eric Dorland <eric@debian.org> Sun, 8 Aug 2004 23:41:02 -0400 + +mozilla-firefox (0.9.3-1) unstable; urgency=low + + * New upstream release. (Closes: #263193) + * debian/update-mozilla-firefox-chrome.8: Add manpage from Mark Suter + for update-mozilla-firefox-chrome.8. (Closes: #263149) + * debian/mozilla-firefox.manpages: Add update-mozilla-firefox-chrome.8. + * debian/control: Add build-deps on gcc-3.4 for amd64. (Closes: #262679) + + -- Eric Dorland <eric@debian.org> Wed, 4 Aug 2004 20:21:22 -0400 + +mozilla-firefox (0.9.1-7) unstable; urgency=low + + * debian/mozilla-firefox-runner: + - Reintroduce check for command-line arguments (I broke this last + release). (Closes: #262692, #262462, #262537, #262588, #262727) + - Allow overriding of -contentLocale and -UILocale. (Closes: + #240058) + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s: Comment out + NARGSAVE reassignment, it is defined elsewhere. (Closes: #262571) + * debian/rules: Force amd64 to build with gcc 3.4. (Closes: #262679) + + -- Eric Dorland <eric@debian.org> Mon, 2 Aug 2004 10:16:46 -0400 + +mozilla-firefox (0.9.1-6) unstable; urgency=low + + * widget/src/gtk2/keysym2ucs.c: Patch from Eugeniy Meshcheryakov to + allow mozilla firefox to enter a ghe with upturn. (Closes: #261543) + * debian/mozilla-firefox-runner: + - Remove some mail and composer cruft. + - Add warning if DISPLAY is not set. (Closes: #261465) + + -- Eric Dorland <eric@debian.org> Thu, 29 Jul 2004 22:49:59 -0400 + +mozilla-firefox (0.9.1-5) unstable; urgency=low + + * debian/control: Goodbye mozilla-firebird transition package. + * debian/mozilla-firefox-runner: Add -a firefox flag when running + firefox-bin. (Closes: #259237) + * debian/mozilla-firefox.desktop: Add GenericName field. + * debian/update-mozilla-firefox-chrome: Fix quoting problem with + {*}. (Closes: #257243) + * debian/rules: + - Re-enable postscript printing support, since the security + issues turned out to be bogus. (Closes: #257628) + - Disable SVG support, it's still too broken to be usable. + (Closes: #259544) + + -- Eric Dorland <eric@debian.org> Sun, 18 Jul 2004 20:09:14 -0400 + +mozilla-firefox (0.9.1-4) unstable; urgency=low + + * The "Let's try unstable" release. There are still issues, but there + are issues with 0.8 as well, so no more point in waiting. + * debian/update-mozilla-firefox-chrome: + - Copy over empty Extensions.rdf file on update. (Closes: #257243) + - Increase sleep to 15 seconds, hopefully this will work on most + people's machines. + * My apologies to Mike Hommey for mispelling his name in last release. + + -- Eric Dorland <eric@debian.org> Sun, 11 Jul 2004 23:51:24 -0400 + +mozilla-firefox (0.9.1-3) experimental; urgency=low + + * Ok, I was wrong, we're still in experimental. I think we need to fix a + few more issues before getting this in unstable, like #257258, and + make sure the hacky extensions mechanism is more bullet-proof. + * debian/rules: --disable-installer, since we don't use it. + * debian/update-mozilla-firefox-chrome: + - Wait 8 seconds instead of 5 for the hack, might help some + people reporting problems. + - Remove ${LIBDIR}/extensions/{*}. I may move that to + /var/lib/mozilla-firefox eventually, but let's leave it for now. + * debian/mozilla-firefox.png.uu: Make a nicer png icon, based on the + about box graphic. + * debian/mozilla-firefox.preinst: Remove old config files in + /etc/mozilla-firefox/pref. (Closes: #257711, 257557) + * browser/app/profile: firefox.js: Revert change to app.version, + apparently it breaks extensions. (Closes: #257941) + + -- Eric Dorland <eric@debian.org> Wed, 7 Jul 2004 21:26:55 -0400 + +mozilla-firefox (0.9.1-2) experimental; urgency=low + + * The "Mike Homey, lord of the bugs" release. Thanks to Mike for being a + huge help with bug triage. That's right, help with bugs and your name + could have a prestigious place in the changelog. + * I'd like my next release to be to unstable, so let me know about + profile transition bugs, etc. + * debian/control: Build-depend on libcairo1-dev. + * debian/rules: Enable svg support using cairo renderer. (Closes: + #215990) + * debian/mozilla-firefox-xremote-client: Add -a firefox switch to make + the remote client find firefox only. Thanks Jonathan Black. (Closes: + #256967) + * debian/mozilla-firefox.desktop: Make comment Gnome HIG + compliant. (Closes: #257592) + * browser/app/profile/firefox.js: + - app.version = 0.9.1. + - Disable app updates by default. We're debian, we handle updates. + * debian/update-mozilla-firefox-chrome: + - Remove installed-extensions-processed.txt before regenerating. + (Closes: #257243) + - Take some, but not all advice from Alexandru Fomin. Improve Xvfb + and extension registration hacks. + + -- Eric Dorland <eric@debian.org> Sun, 4 Jul 2004 16:58:17 -0400 + +mozilla-firefox (0.9.1-1) experimental; urgency=low + + * New upstream release. + * config/autoconf.mk.in: Alright, /usr/lib/firefox-0.9 was a bad idea, + use /usr/lib/mozilla-firefox. Change all the instances + /usr/lib/firefox-0.9 back to /usr/lib/mozilla-firefox. I feel + silly. (Closes: #256991) + * debian/mozilla-firefox-runner: Actually check for the existence of the + .mozilla/firefox directory before trying to clean it. + * debian/update-mozilla-firefox-runner: + - Call firefox-bin, not firefox you silly goose. + - Use mozilla-firefox tempfile, not mozilla-browser. + - The horrible hackiness continues: For my previous hack to work, + I need to preseed a profile directory in the home directory I + create. Now things should work. (Closes: #256812) + + -- Eric Dorland <eric@debian.org> Thu, 1 Jul 2004 17:16:29 -0400 + +mozilla-firefox (0.9-1) experimental; urgency=low + + * New upstream release. There may be regressions from 0.8. (Closes: + #254522) + * widget/src/gtk/nsGtkMozRemoteHelper.cpp, + widget/src/gtk2/nsGtkMozRemoteHelper.cpp, + widget/src/xremoteclient/XRemoteClient.cpp: Fix previously applied to + fix -remote behaviour undone. Mozilla now includes the program name in + the properties to distinguish between various Mozilla apps. + * xpcom/reflect/xptcall/src/md/unix/Makefile.in: remove extra endif. + * dom/public/idl/core/nsIDOMNSDocument.idl: Reintroduce referrer + attribute that got lost somehow. + * content/events/src/nsEventStateManager.cpp: Fix a strange broken + function call to GetContainer. + + * debian/rules: + - Follow upstream and --enable-single-profile and + --disable-profilesharing. + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - --user-app-dir=.mozilla to jive with new location. + - Remove dom-inspector extension dir from the regular package. + * debian/control: Depend on xvfb for insane hack below. + * debian/mozilla-firefox.install: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Remove ipc dir, mozipcd. + - Add init.d, greprefs dirs. + * debian/mozilla-firefox.dirs: + - Add /var/lib/mozilla-firefox/extensions{,.d} + * debian/mozilla-firefox-dom-inspector.dirs: Add + /var/lib/mozilla-firefox/extensions.d. + * debian/mozilla-firefox-dom-inspector.install: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Install dom-inspector extension dir. + * debian/mozilla-firefox.links: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Link /usr/lib/mozilla-firefox to /usr/lib/firefox-0.9. + - Link installed-extensions.txt to our place in + /var/lib/mozilla-firefox. + * debian/mozilla-firefox-runner: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Fix xprintorg typo. (Closes: #255706) + - Search .mozilla/firefox for XUL.mfasl files. + * debian/mozilla-firefox-xremote-client: Replace + /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + * debian/update-mozilla-firefox-chrome: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Capture return values from reg* commands on error, stolen + from mozilla source. + - Remove returns from check_running. + - Pull in snippets from /var/lib/mozilla-firefox/extensions.d + to generate installed-extensions.txt for new extensions mechanism. + - An insane hack, but necessary because of upstream: Launch a Xvfb + to run firefox to generate the necessary extension metadata. I've + been told this will not be necessary in the next version. + + -- Eric Dorland <eric@debian.org> Mon, 28 Jun 2004 23:40:59 -0400 + +mozilla-firefox (0.8-12) unstable; urgency=low + + * The "Last Chance Before 0.9" release. + * debian/mozilla-firefox-runner: Fix unescaped \n, thanks Olly + Betts. (Closes: #252436) + * debian/update-mozilla-firefox-chrome: Watch out for empty + LD_LIBRARY_PATH. Thanks George Cristian Birzan. (Closes: #254142) + * debian/README.Debian: Restructure and update a bit. + * debian/presubj: Add bug information from README.Debian for reportbug. + * debian/mozilla-firefox.install: Install the presubj. + + -- Eric Dorland <eric@debian.org> Mon, 14 Jun 2004 19:39:27 -0400 + +mozilla-firefox (0.8-11) unstable; urgency=low + + * Apply amd64 fix from #249211. + * debian/README.Debian: Shamelessly stole the java plugin installation + instructions from the mozilla package. (Closes: #243513) + * nsCommonWidget.cpp, nsCommonWidget.h, nsWindow.cpp: Apply patch (with + some hand massaging) from upstream bugzilla bug #209342 to fix initial + window placement. (Closes: #235209, 241519) + * nsprpub/pr/src/misc/prnetdb.c: Apply patch from Miquel van Smoorenburg + to prevent unless reverse DNS lookups. (Closes: #251978) + * debian/mozilla-firefox-runner: Apply patch from Jasper Spaans to fix + remote xprint printing. (Closes: #252072) + + -- Eric Dorland <eric@debian.org> Tue, 1 Jun 2004 23:12:36 -0400 + +mozilla-firefox (0.8-10) unstable; urgency=low + + * debian/mozilla-firefox.install: Don't install uuencoded file. (Closes: + #251441) + * debian/mozilla-firefox-runner: unset AUDIODEV which can cause + crashes. Thanks Christopher Armstrong. (Closes: #236231) + * update-mozilla-firefox-chrome: Port security fix from #249613 to + handle insecure tempfile creation. + * debian/rules: Following the advice of #247585 I'm disabling postscript + printing. Perhaps this will alleviate some of the other printing + problems. + + -- Eric Dorland <eric@debian.org> Sun, 30 May 2004 01:47:52 -0400 + +mozilla-firefox (0.8-9) unstable; urgency=low + + * debian/control: + - Suggest latex-xft-fonts for MathML fonts. Thanks Michael + JasonSmith. (Closes: #216925) + - Build depend on libx11-dev & libxp-dev instead of xlibs-dev to + reflect new X packages. + * widget/src/gtk2/nsWindow.cpp: Apply patch from Peter Colberg to ignore + unused mouse buttons. (Closes: #244305) + * debian/README.Debian: Document the fact that the loopback interface + has to be up and unfiltered for things to work right. + + -- Eric Dorland <eric@debian.org> Wed, 5 May 2004 23:30:42 -0400 + +mozilla-firefox (0.8-8) unstable; urgency=low + + * security/nss/lib/freebl/unix_rand.c: Remove code that called netstat + to gain so entropy. It's pretty useless on a Linux system. Thanks + Wichert. (Closes: #241200) + * debian/README.Debian: Add note about changing the button order in the + dialog boxes. (Closes: #240261) + * debian/control: Add dummy package for mozilla-firebird to smooth + upgrades. (Closes: #235577) + + -- Eric Dorland <eric@debian.org> Sat, 3 Apr 2004 16:19:34 -0500 + +mozilla-firefox (0.8-7) unstable; urgency=low + + * debian/mozilla-firefox-runner: + - Cleanup XUL.mfasl whenever firefox is run with no + command-line. (Closes: #238717) + - Add patch from Laurent Buffler to add config to allow + new tabs to be opened instead of new windows. (Closes: #239323) + * debian/mozilla-firefoxrc: Put the new FIREFOX_OPEN_IN variable in + there and document it's use. + + -- Eric Dorland <eric@debian.org> Sat, 27 Mar 2004 17:21:51 -0500 + +mozilla-firefox (0.8-6) unstable; urgency=low + + * debian/control: Build-depend on g++-3.3 (>= 3.3.3-4) to work around + broken 3.3.3-3 release. (Closes: #238318, #238241, #238441, #238523, + #238534) + * debian/rules: Install new small-firefox icon. + * debian/mozilla-firefox{.png, .xpm, -small.xpm}: Use the new DFSG-free + icons, the old pretty ones are trademarked and not DSFG-free. I know, + it's stupid. Complain to the Mozilla Foundation, not me. (Closes: + #234869) + + -- Eric Dorland <eric@debian.org> Sun, 21 Mar 2004 22:09:16 -0500 + +mozilla-firefox (0.8-5) unstable; urgency=low + + * Rebuild with g++-3.3 3.3.3-2 to work around broken g++. (Closes: + #238318) + + -- Eric Dorland <eric@debian.org> Wed, 17 Mar 2004 21:38:58 -0500 + +mozilla-firefox (0.8-4) unstable; urgency=low + + * debian/README.Debian: + - Tell people not to remove their ~/.firefox directory. Just move it + out of the way. (Closes: #235594) + - Add notes about the sound dsp. (Closes: #236678) + * debian/mozilla-firefox-runner: + - Don't redirect stderr. (Closes: #236160) + - Add get_locale code from Aurelien Jarno (Closes: #235521) + - Fix dsp auto-detection code. (Closes: #236678) + * debian/rules: Add default locale file. + * debian/mozilla-firefox.dirs: Add locales dir. + + * browser/app/profile/all.js, + content/events/src/nsEventStateManager.cpp, + modules/libpref/src/init/all.js, widget/public/nsGUIEvent.h, + widget/src/gtk/nsWidget.cpp: Reapply extended mouse events patch from + Derek Upham. (Closes: #235385, #230876) + * browser/base/content/browser-sets.inc: Make ESC stop animations + again. (Closes: #235474) + + -- Eric Dorland <eric@debian.org> Tue, 16 Mar 2004 00:31:19 -0500 + +mozilla-firefox (0.8-3) unstable; urgency=low + + * debian/mozilla.firefox.menu: Change the case of + mozilla-Firefox. (Closes: #234982, #234755) + * debian/NEWS.Debian: Move to debian/mozilla-firefox.NEWS so that it + actually gets installed. (Closes: #234700) + * debian/update-mozilla-firefox-chrome: Setup dummy home directory to + capture silly .firefox directory. (Closes: #234855) + * debian/mozilla-firefox.png.uu, debian/mozilla-firefox.xpm: Use the + new, pretty mozilla-firefox icons. (Closes: #234869) + * debian/rules: Install the pretty icon in the right places. + + -- Eric Dorland <eric@debian.org> Thu, 26 Feb 2004 21:10:27 -0500 + +mozilla-firefox (0.8-2) unstable; urgency=low + + * The "what he taketh, he giveth back" release. + * debian/rules: + - Disable the wallet extension, this really closes #222447. + - Remove some more cruft left over from the patch system. + - Reinstall the dom-inspector. + * debian/control: Add the dom-inspector back, now that it is supported + upstream. + * debian/mozilla-firefox-dom-inspector.{install,dirs,postinst,postrm}: + Bring these files back. + * docshell/base/nsWebShell.cpp: Only do keyword lookup on when DNS + entries don't exist. (Closes: #233916, #218033, #211524) + + -- Eric Dorland <eric@debian.org> Mon, 23 Feb 2004 21:48:03 -0500 + +mozilla-firefox (0.8-1) unstable; urgency=low + + * The "Let's Change Our Name Every Other Day" release. + * New upstream release, mozilla-firebird has been renamed to + mozilla-firefox. Let's hope it lasts. (Closes: #231903, #222447) + * debian/mozilla-firebird.*: Renamed to debian/mozilla-firefox.*. + + * debian/README.Debian: Update for firefox, remove blurb about the + inspector. + * debian/NEWS.Debian: Explain how to move your configs over. I may make + this automatic if enough people complain, but I'm loathe to muck + around in pople's home directories. + + * debian/control: + - Rename the package. + - Tweak description to list Firefox's previous aliases. + - Remove conflicts on mozilla-firebird-dom-inspector. + + * debian/rules: + - s/firebird/firefox/g, s/MozillaFirebird/firebird/g. + - Comment out some old inspector code. + - Remove unused patch subsystem. + - Disable gtktest. We don't need no stinking tests. + - Remove disable plaintext editor line, not sure why it's there. + - Disable LDAP support. We don't use it. + - Remove executable bit on *.so files. + - Remove useless preference files. + - Exclude the inspector files. + - Don't remove installed-chrome, we don't install it anymore. + - user-app-dir = .firefox. (Closes: #212301) + - export MOZILLA_OFFICIAL for the build ID. (Closes: #231133) + + * debian/mozilla-firefox-runner: + - s/firebird/firefox/g. + - Remove composer and editor functions. + - Use .firefox directory. + + * debian/mozilla-firefox.install: + - s/firebird/firefox/g, s/MozillaFirebird/firefox/g. + - Don't install timebombgen. + - Install icons directory. + - Don't install installed-chrome.txt, we just remove it anyway. + + * debian/mozilla-firefox.desktop, debian/mozilla-firefox.dirs, + debian/mozilla-firefox.manpages, debian/mozilla-firefox.links, + debian/mozilla-firefox.menu, debian/mozilla-firefox.mime, + debian/mozilla-firefoxrc, debian/mozilla-firefox.postinst, + debian/mozilla-firefox.prerm, debian/update-mozilla-firefox-chrome, + debian/mozilla-firefox.1, debian/mozilla-firefox-xremote-client: + s/firebird/firefox/g, s/MozillaFirebird/firefox/g. + + * debian/mozilla-firefox.links: Link mozilla-firefox.1 to firefox.1. + + * debian/mozilla-firefox.preinst: Remove, at least with the rename I can + erase some of my previous blunders. + + * debian/mozilla-firefox.{png.uu,xpm}: Use the package icon. + + * browser/app/nsBrowserApp.cpp: Change package name to Firefox, so now + the ~/.firefox is used. (Closes: #196550) + + * browser/app/profile/all.js: Merge in autoscroll fixes. + * browser/base/content/browser-sets.inc: Merge in upstream stop button + fix. + * modules/plugin/samples/default/unix/nullplugin.c: Merge in removal of + commented code. + * nsprpub/pr/include/md/_linux.cfg, nsprpub/pr/include/md/_linux.h, + security/coreconf/Linux.mk: Merge in hppa build fixes from upstream. + * config/autoconf.mk.in: Install into /usr/lib/mozilla-firefox now. + * content/base/src/nsDocumentViewer.cpp: Remove redundant stop patch + since it has been merged upstream. + * content/events/src/nsEventStateManager.cpp, + modules/libpref/src/init/all.js, widget/src/gtk/nsWidget.cpp: Revert + back to upstream version. There was a patch here to add support for + extended mouse buttons, but I'm removing it since I don't trust that + it works in the new version correctly. Send me another patch if you + want this functionality back. + * toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Revert this + back to upstream, I'm not sure which patches I applied to this file, + likely something to try and fix the double password prompt. + * widget/src/xremoteclient/XRemoteClient.cpp, + widget/src/xremoteclient/XRemoteClient.h: Revert to upstream version, + I believe it does the right thing now, but the patch I used does not + apppear to have been used. Restore the properties to _FIREFOX_* + though. + * widget/src/gtk/nsGtkMozRemoteHelper.cpp, + widget/src/gtk2/nsGtkMozRemoteHelper.cpp: Change the _FIREBIRD_* to + _FIREFOX_* here as well. + * content/base/src/nsDocument.cpp: Comment out nsDocument::GetDomConfig, + needed to get things to compile. + + -- Eric Dorland <eric@debian.org> Sun, 15 Feb 2004 21:28:45 -0500 + +mozilla-firebird (0.7-7) unstable; urgency=low + + * debian/mozilla-firebird-runner: Open a new window when loading a + regular file. (Closes: #228853) + + -- Eric Dorland <eric@debian.org> Thu, 29 Jan 2004 22:12:30 -0500 + +mozilla-firebird (0.7-6) unstable; urgency=medium + + * The "Indian-giver-christmas" release. + * Urgency medium since we're closing some critical bugs that need to get + in before a freeze. + * Completely remove mozilla-firebird-dom-browser. No one stepped up to + help fix it's brokeness in 0.7 and I don't use it or particularly care + about it. So it is no more. If someone steps up to take responsibility + I might put it back, but otherwise it may RIP. (Closes: #222085) + * debian/mozilla-firebird-runner: Remove XUL.mfasl uncoditionally + now. There is a corner case where this file is corrupted on upgrade + when firebird was running. This is a total hack, and not an elegant + solution, but at least it fixes the problem. (Closes: #224779, + #224323) + * debian/control: Conflict against old mozilla-firebird-dom-inspector + since it doesn't work anymore. + + -- Eric Dorland <eric@debian.org> Thu, 25 Dec 2003 15:54:21 -0500 + +mozilla-firebird (0.7-5) unstable; urgency=low + + * browser/base/content/browser-sets.inc: Patch to make ESC stop actually + work. (Closes: #223382) + * debian/rules: Turn down optimizations on sparc. (Closes: #223760) + + -- Eric Dorland <eric@debian.org> Sun, 14 Dec 2003 23:01:59 -0500 + +mozilla-firebird (0.7-4) unstable; urgency=low + + * The "All of Takuo's hard work really pays off" release. + * toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Patch from + upstream bugzilla (#220214) to fix double password prompt + problem. (Closes: #222696) + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4: Stolen + patch from mozilla package to make mozilla-firebird build on + mips. (Closes: #222743) + * content/base/src/nsDocumentViewer.cpp: Port yet another patch to allow + the ESC key to stop animated gifs. (Closes: #223382) + + -- Eric Dorland <eric@debian.org> Mon, 8 Dec 2003 23:59:16 -0500 + +mozilla-firebird (0.7-3) unstable; urgency=low + + * debian/control: Add dependency on psmisc since we use fuser. Thanks + Daniel Schröter. + * widget/src/xremoteclient/XRemoteClient.{cpp,h}: Apply patch from + bugzilla to fix -remote behaviour on modern WMs. Thanks Nikolai + Prokoschenko. (Closes: #197632) + * nsprpub/pr/src/misc/prdtoa.c: Apply fix from mozilla package (#215067) + to fix building on arm. This is a partial fix to #222743. + * debian/patches: Remove these. Put everything in CVS. + + -- Eric Dorland <eric@debian.org> Fri, 5 Dec 2003 20:03:46 -0500 + +mozilla-firebird (0.7-2) unstable; urgency=low + + * Apply excellent patch from Alexander Sack <asac@jwsdot.com> to fix the + issues with mozilla running and firebird not starting. (Closes: + #216264) + * browser/app/profile/all.js: Set the default of "general.autoScroll" to + false because it annoyes me. (Closes: #221661) + + -- Eric Dorland <eric@debian.org> Wed, 19 Nov 2003 20:59:55 -0500 + +mozilla-firebird (0.7-1) unstable; urgency=low + + * New upstream release. (Closes: #216019) + * debian/patches/dom-inspector.diff: Remove, and apply directly into my + CVS. + * debian/patches/pref.diff: Removed, doesn't seem applicable anymore. + * debian/rules: export MOZ_FIREBIRD=1. + * debian/control: + - Change Chimera to Camino. (Closes: #220821) + - Fix typos in descriptions. (Closes: #218202) + - Add build-deps on m4. (Closes: #219681) + + -- Eric Dorland <eric@debian.org> Wed, 12 Nov 2003 23:01:35 -0500 + +mozilla-firebird (0.6.1-8) unstable; urgency=low + + * Apply patch to make forward and back buttons work on mice. (Closes: + #211606) + * debian/rules: Use -O optimization on alpha, so it will build + again. (Closes: #213603) + + -- Eric Dorland <eric@debian.org> Fri, 3 Oct 2003 00:07:44 -0400 + +mozilla-firebird (0.6.1-7) unstable; urgency=low + + * Rebuild with the latest and greatest from unstable. This seems to fix + the problems with bookmarks people were having, at least for me. No + idea why. Please reopen if this doesn't fix it for you. (Closes: + #209339, #211706, #211286, #211146, #212011) + + -- Eric Dorland <eric@debian.org> Mon, 22 Sep 2003 00:00:08 -0400 + +mozilla-firebird (0.6.1-6) unstable; urgency=low + + * Patch from Eric Wong <normalperson@yhbt.net> to make plugin requests + less annoying. (Closes: #196609) + * debian/rules: Stop building libart. + * debian/mozilla-firebird.links: Fix path to bookmarks file. (Partial + fix to #211286) + + -- Eric Dorland <eric@debian.org> Wed, 17 Sep 2003 20:22:56 -0400 + +mozilla-firebird (0.6.1-5) unstable; urgency=low + + * The "sorry Chris Gray" release. + * debian/rules: disable SVG. This was causing drag and drop to lock up + X and possibly fixes #208630. (Closes: #209371) + * debian/mozilla-firebird-runner: Remove XUL.mfasl if we have upgraded, + since it can cause problems. (Closes: #200073, #202130, #207351) + + -- Eric Dorland <eric@debian.org> Sat, 13 Sep 2003 20:15:37 -0400 + +mozilla-firebird (0.6.1-4) unstable; urgency=low + + * The "pleasing Chris Gray" release. + * other-licenses/libart_gpl: Add this library for svg. + * debian/rules: + - Enable svg. + - Move bookmarks.html file into /etc. (Closes: #207398) + * debian/mozilla-firebird.links: Add links back to files moved to /etc. + * security/coreconf/Linux2.6.mk: Add this as a copy of Linux2.5.mk to + get mozilla-firebird to build on 2.6. (Closes: #207821) + + -- Eric Dorland <eric@debian.org> Sun, 31 Aug 2003 04:40:30 -0400 + +mozilla-firebird (0.6.1-3) unstable; urgency=low + + * debian/mozilla-firebird.prerm: Remove mozilla alternative on + remove. (Closes: #205310) + * debian/debsearch.{gif.uu,src}: Debian search plugin graciously + contributed by Fergus McKenzie-Kay <Linux@NerdIT.com>. + * debian/rules: + - uudecode and clean up debsearch.gif.uu. + - Steal platform specific optimization code from mozilla + package. Thanks Brian Nelson. (Closes: #206309) + * debian/mozilla-firebird.install: Install the above files. + * debian/control: Update Standards-Version to 3.6.1. + + -- Eric Dorland <eric@debian.org> Sun, 24 Aug 2003 19:09:11 -0400 + +mozilla-firebird (0.6.1-2) unstable; urgency=low + + * The "Stop Pestering Me Already!" release. + * debian/control: Only recommend xprt-xprintorg, don't require + it. (Closes: #204176) + + -- Eric Dorland <eric@debian.org> Sun, 10 Aug 2003 20:00:11 -0400 + +mozilla-firebird (0.6.1-1) unstable; urgency=low + + * New upstream release. (Closes: #203518, #201203) + * debian/control: + - Standards-Version to 3.6.0. + - Don't provide www-browser anymore. (Closes: #201035) + - Depend on xprt-xprintorg so printing will work. (Closes: #202418) + * debian/mozilla-firebird.preinst: Remove www-browser alternative. + * debian/mozilla-firebird.postinst: Don't install www-browser alternative. + * debian/mozilla-firebird.prerm: Don't remove www-browser alternative + anymore. + * debian/README.Debian: Added note about configuration breaking on + upgrade. (Closes: #202130) + * debian/patches/classic.diff: Removed. Not sure what it's point was. + * debian/rules: Add --disable-pedantic to the configure options. + + -- Eric Dorland <eric@debian.org> Sun, 3 Aug 2003 14:58:12 -0400 + +mozilla-firebird (0.6-8) unstable; urgency=low + + * debian/patches/alpha-build-fix.diff: Steal patch from mozilla to allow + building on alpha. (Closes: #198638) + * debian/patches/hppa-build-fix.diff: Steal patch from mozilla to allow + building on hppa, clean it up so it applies cleanly. (Closes: #199068) + * debian/mozilla-firebird.png.uu: Added uuencoded nice png icon. + * debian/rules: Add code to decode and clean up the new icon file. + * debian/mozilla-firebird.install: Install new icon. + * debian/mozilla-firebird.desktop: Use the new icon. + + -- Eric Dorland <eric@debian.org> Fri, 27 Jun 2003 23:21:56 -0400 + +mozilla-firebird (0.6-7) unstable; urgency=low + + * debian/mozilla-firebird.1: Stole the mozilla manpage for my own + nefarious purposes. (Closes: #196638) + * debian/mozilla-firebird.postrm: Add slave links to the + mozilla-firebird manpage. (Closes: #197145) + * debian/mozilla-firebird-xremote-client: Set up the environment + properly so it returns correct information. (Closes: #197632) + * debian/mozilla-firebird.xpm: Added icon from + http://iconpacks.mozdev.org/phoenix/iconshots/flame48true.png to have + a nice menu icon. (Closes: #197565) + * Updated the README.Debian with some helpful bug reporting tips. + * debian/rules: Replaced dh_installmanpages with dh_installman. + + -- Eric Dorland <eric@debian.org> Sun, 22 Jun 2003 15:15:37 -0400 + +mozilla-firebird (0.6-6) unstable; urgency=low + + * debian/mozilla-firebird.postinst: Add priority 0 alternative on + mozilla. (Closes: #196444) + * debian/control: Add build-depends on libxrender-dev, libmng-dev, + libpng12-dev, libjpeg62-dev. + * debian/rules: + - Build with system jpeg, mng and png libs. + - Exclude inspector files from mozilla-firebird. + (Closes: #196432, #196509) + + -- Eric Dorland <eric@debian.org> Sat, 7 Jun 2003 15:19:23 -0400 + +mozilla-firebird (0.6-5) unstable; urgency=low + + * The "Mike Hommey is my homey" release. + * Thanks to Mike Hommey <mh@glandium.org> for his excellent work on this + version (it's 99% his), which I've shamelessly stolen. + * Added a README.Debian file. + * Added a separate mozilla-firebird-dom-inspector package. + * debian/patches/dom-inspector.diff: + - add DOM Inspector to Tools menu. (note: DOM Inspector is still + not very well integrated with Firebird) + - remove modern skin references. + * debian/patches/xpinstall.diff: remove unneeded chrome registrations + from xpinstall/packager/unix/browser.jst. + * debian/patches/classic.diff: remove + themes/classic/global/win/preview.gif from jar file and modify + preview image reference in rdf file to Preview.png. + * debian/patches/pref.diff: remove preview image constraints in + browser/components/prefwindow/skin/pref.css file to avoid deformation + of preview image in classic theme. + * debian/mozilla-firebird.preinst: added #DEBHELPER#. + * debian/mozilla-firebird.install: + - Don't install the modern.jar and embed-sample.jar files. + - Remove files related to dom-inspector. + * debian/rules: + - enabling xinerama support. + - disabling build of chatzilla and venkman. + - moved /var/lib/mozilla-firebird/chrome.d/99default to + /var/lib/mozilla-firebird/chrome.d/00all + - remove references to embed-sample.jar in + /var/lib/mozilla-firebird/chrome.d/00all + - Add some comments. + - Change == to =, for more strict /bin/sh's. + * debian/control: Build-Depend on libidl-dev (>= 0.8.0) because the + configure script requires at least this version. + * debian/copyright: Make this a real debian copyright file. + + -- Eric Dorland <eric@debian.org> Thu, 5 Jun 2003 01:00:32 -0400 + +mozilla-firebird (0.6-4) unstable; urgency=low + + * debian/rules: Change -O2 to -O for building on powerpc. + * debian/mozilla-firebird.preinst: Delete + /usr/lib/mozilla-firebird/defaults/pref on upgrade to facilitate + transition to prefs in /etc. Thanks to all who reported this. + + -- Eric Dorland <eric@debian.org> Tue, 27 May 2003 21:45:06 -0400 + +mozilla-firebird (0.6-3) unstable; urgency=low + + * First attempt at a debian upload. (Closes: #163270) + * debian/rules: + + Small fix to Mike Hommey's chrome patch. + + Suggestion from Bernhard R. Link to install + /usr/lib/mozilla-firebird/defaults/pref to + /etc/mozilla-firebird/pref + + Add dh_installmime call. + * debian/mozilla-firebird.mime: Install mime type handlers for firebird. + * debian/mozilla-firebird.links: Link + /usr/lib/mozilla-firebird/defaults/pref to /etc/mozilla-firebird/pref + * debian/mozilla-firebird.install: Don't install the inspector.jar. + + -- Eric Dorland <eric@debian.org> Mon, 26 May 2003 00:28:40 -0400 + +mozilla-firebird (0.6-2) unstable; urgency=low + + * debian/rules: + + Add --with-user-appdir=.mozilla-firebird, since it still + defaults to .phoenix. + + Don't use the ${prefix} variable, use /usr, since ${prefix} + doesn't seem to work. + + Use --without-system-nspr. + * debian/mozilla-firebird.install: + + Be picky about what chrome files we install, since there's + quite a few we don't need, and a bunch of empty dirs. + * Excellent patch from Mike Hommey <mh@glandium.org> to add a + update-mozilla-firebird-chrome script. + + -- Eric Dorland <eric@debian.org> Sat, 24 May 2003 13:00:44 -0400 + +mozilla-firebird (0.6-1) unstable; urgency=low + + * New upstream release. + * Renamed to mozilla-firebird. + * Changed phoenix to mozilla-firebird where appropriate. + * debian/mozilla-firebird.links: Add link mozilla-firebird to + MozillaFirebird. + * debian/control: + + Standars-Version to 3.5.10.0. + + Build-depend on gtk2 libs now. + + Build-depend on libidl-dev. + + Add Provides x-www-browser. + * debian/rules: + + Enable building with the gtk2 libs. + + Make mozilla-firebird-xremote-client executable in install target. + * debian/mozilla-firebird.desktop: Added gnome menu entry. + * debian/mozilla-firebird.{prerm,postinst}: Add alternatives to + www-browser and x-www-browser. + + -- Eric Dorland <eric@debian.org> Mon, 19 May 2003 20:43:39 -0400 + +phoenix (0.5-4) unstable; urgency=low + + * debian/control: Depend on fontconfig. + * debian/rules: Add source-tarball-from-cvs to build a orig tarball from + a checked out cvs tree. Now I can provide source package. And there + was much rejoicing. + + -- Eric Dorland <eric@debian.org> Fri, 17 Jan 2003 21:06:47 -0500 + +phoenix (0.5-3) unstable; urgency=low + + * debian/phoenix-xremote-client: Added to send remote commands to + phoenix. Just a wrapper that calls phoenix-bin -remote. + * debian/phoenix-runner: + + Use phoenix-xremote-client. + + Replace MOZILLA_DSP with PHOENIX_DSP. + * debian/phoenixrc: phoenix-runner uses this file to determine what dsp + to start. + * debian/phoenix.install: + + Install phoenix-xremote-client, and don't install + mozilla-xremote-client. + + Install phoenixrc. + + -- Eric Dorland <eric@debian.org> Mon, 23 Dec 2002 02:52:21 -0500 + +phoenix (0.5-2) unstable; urgency=low + + * debian/control: + + Add Provides: www-browser. + + Build-depend on libxft2-dev, libnspr-dev. + * debian/rules: + + Use xft and the system nspr. + + Install phoenix-runner. + * debian/phoenix-runner: Stolen from the mozilla package to run phoenix. + + -- Eric Dorland <eric@debian.org> Sat, 21 Dec 2002 02:03:11 -0500 + +phoenix (0.5-1) unstable; urgency=low + + * New upstream release. + * debian/phoenix.install: Fix paths to phoenix libs. + * debian/control: + + Standards-Version to 3.5.8 + + Improve build-deps. + * debian/rules: + + Have configure options here, no more .mozconfig. + + Steal some patch code from Colin. + * debian/patches/mozappdir.diff: Change the mozappdir. + + -- Eric Dorland <eric@debian.org> Mon, 9 Dec 2002 02:43:13 -0500 + +phoenix (0.4-3) unstable; urgency=low + + * debian/phoenix.menu: Add menu entry. + * Rebuild to fix libstdc++ dependency. + * .mozonfig: Disable more tests. + + -- Eric Dorland <eric@debian.org> Wed, 20 Nov 2002 19:13:18 -0500 + +phoenix (0.4-2) unstable; urgency=low + + * debian/control: + + Add build-depends. + + Fix section and description. + * .mozconfig: + + Use system zlib. + + -- Eric Dorland <eric@debian.org> Wed, 13 Nov 2002 19:03:52 -0500 + +phoenix (0.4-1) unstable; urgency=low + + * Initial release. + + -- Eric Dorland <eric@debian.org> Mon, 11 Nov 2002 23:09:41 -0500 --- firefox-6.0+build1+nobinonly.orig/debian/vendor.js +++ firefox-6.0+build1+nobinonly/debian/vendor.js @@ -0,0 +1,16 @@ +// Use LANG environment variable to choose locale +pref("intl.locale.matchOS", true); + +// Disable default browser checking. +pref("browser.shell.checkDefaultBrowser", false); + +// Prevent EULA dialog to popup on first run +pref("browser.EULA.override", true); + +// identify default locale to use if no /usr/lib/firefox-addons/searchplugins/LOCALE +// exists for the current used LOCALE +pref("distribution.searchplugins.defaultLocale", "en-US"); + +// Enable the NetworkManager integration +pref("network.manage-offline-status", true); + --- firefox-6.0+build1+nobinonly.orig/debian/MPL +++ firefox-6.0+build1+nobinonly/debian/MPL @@ -0,0 +1,567 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + + ---------------------------------------------------------------------- + + AMENDMENTS + + The Netscape Public License Version 1.1 ("NPL") consists of the + Mozilla Public License Version 1.1 with the following Amendments, + including Exhibit A-Netscape Public License. Files identified with + "Exhibit A-Netscape Public License" are governed by the Netscape + Public License Version 1.1. + + Additional Terms applicable to the Netscape Public License. + I. Effect. + These additional terms described in this Netscape Public + License -- Amendments shall apply to the Mozilla Communicator + client code and to all Covered Code under this License. + + II. "Netscape's Branded Code" means Covered Code that Netscape + distributes and/or permits others to distribute under one or more + trademark(s) which are controlled by Netscape but which are not + licensed for use under this License. + + III. Netscape and logo. + This License does not grant any rights to use the trademarks + "Netscape", the "Netscape N and horizon" logo or the "Netscape + lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", + "Smart Browsing" even if such marks are included in the Original + Code or Modifications. + + IV. Inability to Comply Due to Contractual Obligation. + Prior to licensing the Original Code under this License, Netscape + has licensed third party code for use in Netscape's Branded Code. + To the extent that Netscape is limited contractually from making + such third party code available under this License, Netscape may + choose to reintegrate such code into Covered Code without being + required to distribute such code in Source Code form, even if + such code would otherwise be considered "Modifications" under + this License. + + V. Use of Modifications and Covered Code by Initial Developer. + V.1. In General. + The obligations of Section 3 apply to Netscape, except to + the extent specified in this Amendment, Section V.2 and V.3. + + V.2. Other Products. + Netscape may include Covered Code in products other than the + Netscape's Branded Code which are released by Netscape + during the two (2) years following the release date of the + Original Code, without such additional products becoming + subject to the terms of this License, and may license such + additional products on different terms from those contained + in this License. + + V.3. Alternative Licensing. + Netscape may license the Source Code of Netscape's Branded + Code, including Modifications incorporated therein, without + such Netscape Branded Code becoming subject to the terms of + this License, and may license such Netscape Branded Code on + different terms from those contained in this License. + + VI. Litigation. + Notwithstanding the limitations of Section 11 above, the + provisions regarding litigation in Section 11(a), (b) and (c) of + the License shall apply to all disputes relating to this License. + + EXHIBIT A-Netscape Public License. + + "The contents of this file are subject to the Netscape Public + License Version 1.1 (the "License"); you may not use this file + except in compliance with the License. You may obtain a copy of + the License at http://www.mozilla.org/NPL/ + + Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + + The Original Code is Mozilla Communicator client code, released + March 31, 1998. + + The Initial Developer of the Original Code is Netscape + Communications Corporation. Portions created by Netscape are + Copyright (C) 1998-1999 Netscape Communications Corporation. All + Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the + terms of the _____ license (the "[___] License"), in which case + the provisions of [______] License are applicable instead of + those above. If you wish to allow use of your version of this + file only under the terms of the [____] License and not to allow + others to use your version of this file under the NPL, indicate + your decision by deleting the provisions above and replace them + with the notice and other provisions required by the [___] + License. If you do not delete the provisions above, a recipient + may use your version of this file under either the NPL or the + [___] License." --- firefox-6.0+build1+nobinonly.orig/debian/docs +++ firefox-6.0+build1+nobinonly/debian/docs @@ -0,0 +1 @@ +debian/MPL --- firefox-6.0+build1+nobinonly.orig/debian/copyright +++ firefox-6.0+build1+nobinonly/debian/copyright @@ -0,0 +1,738 @@ +This package was debianized by Eric Dorland <eric@debian.org> on +Thu, 05 Jun 2003 01:01:22 -0400 + +It was downloaded from http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ + +The source tarball is an aggregate of several different works in which the +main one, developed by the Mozilla Project, is firefox. + +Other works include gzip, bzip2, sqlite, libjpeg, libpng, cairo, and others. +Please see the sections following the copyright statements for firefox for +these. + +=== firefox + +Overall, the firefox project is licensed under the terms of the Mozilla +Public License version 1.1 or, at your option, under the terms of the GNU +eneral Public License version 2 or subsequent, or the terms of the GNU +Lesser General Public License version 2.1 or subsequent. + +On Debian systems, the complete text of the GNU General Public +License can be found in the file `/usr/share/common-licenses/GPL' ; +the complete text of the GNU Lesser General Public License can be +found in the file `/usr/share/common-licenses/LGPL'. + +The complete text of the Mozilla Public License can be found in the MPL file +in the same directory as this file. + +Some files may still contain licensing notices claiming licensing under +other combinations of NPL, MPL, GPL and LGPL. They are files that were missed +by the upstream relicensing script, but all the permissions required for +relicensing were indeed provided. + +The file db/mork/src/morkQuickSort.cpp is licensed under the following terms: + + Copyright (c) 1992, 1993 + The Regents of the University of California. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +The embedding/qa/mozembed/public/nsIQABrowserUIGlue.idl file and the files +under the embedding/tests directory are licensed under the following terms: + + Copyright (c) 2002 Netscape Communications Corporation and + other contributors + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this Mozilla sample software and associated documentation files + (the "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +The modules/plugin/base/public/npruntime.h file is licensed under the +following terms: + + Copyright (c) 2004, Apple Computer, Inc. and The Mozilla Foundation. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the names of Apple Computer, Inc. ("Apple") or The Mozilla + Foundation ("Mozilla") nor the names of their contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY APPLE, MOZILLA AND THEIR CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, MOZILLA OR + THEIR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The toolkit/mozapps/update/src/updater/bspatch.cpp and +toolkit/mozapps/update/src/updater/bspatch.h files are licensed under the +following terms: + + Copyright 2003,2004 Colin Percival + All rights reserved + + Redistribution and use in source and binary forms, with or without + modification, are permitted providing that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +Some but not all the files in netwerk/dns/src/ are licensed under the +following terms: + + Copyright (c) 2001,2002 Japan Network Information Center. + All rights reserved. + + By using this file, you agree to the terms and conditions set forth bellow. + + LICENSE TERMS AND CONDITIONS + + The following License Terms and Conditions apply, unless a different + license is obtained from Japan Network Information Center ("JPNIC"), + a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, + Chiyoda-ku, Tokyo 101-0047, Japan. + + 1. Use, Modification and Redistribution (including distribution of any + modified or derived work) in source and/or binary forms is permitted + under this License Terms and Conditions. + + 2. Redistribution of source code must retain the copyright notices as they + appear in each source code file, this License Terms and Conditions. + + 3. Redistribution in binary form must reproduce the Copyright Notice, + this License Terms and Conditions, in the documentation and/or other + materials provided with the distribution. For the purposes of binary + distribution the "Copyright Notice" refers to the following language: + "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." + + 4. The name of JPNIC may not be used to endorse or promote products + derived from this Software without specific prior written approval of + JPNIC. + + 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Some files in plugin/oji/JEP/ are licensed under the following terms: + + Copyright (c) 2004, Steven Michaud, All Rights Reserved + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +The extensions/auth/gssapi.h file is licensed under the following terms: + + Copyright 1993 by OpenVision Technologies, Inc. + + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appears in all copies and + that both that copyright notice and this permission notice appear in + supporting documentation, and that the name of OpenVision not be used + in advertising or publicity pertaining to distribution of the software + without specific, written prior permission. OpenVision makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied warranty. + + OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +The gfx/src/xlib/xregion.h and gfx/src/gtk/xregion.h are licensed under the +following terms: + + Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, + and the Massachusetts Institute of Technology, Cambridge, Massachusetts. + + All Rights Reserved + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the names of Digital or MIT not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + +=== sqlite + +The db/sqlite3 directory contains a copy of sqlite with the following +licensing terms: + + The author disclaims copyright to this source code. In place of + a legal notice, here is a blessing: + + May you do good and not evil. + May you find forgiveness for yourself and forgive others. + May you share freely, never taking more than you give. + +=== dbm + +The dbm directory, except some files added by the mozilla project, is +licensed under the following terms: + + Copyright (c) 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +=== myspell + +The extensions/spellcheck/myspell directory is licensed under the following +terms: + + Copyright 2002 Kevin B. Hendricks, Stratford, Ontario, Canada + And Contributors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. All modifications to the source code must be clearly marked as + such. Binary redistributions based on modified source code + must be clearly marked as modified versions in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY KEVIN B. HENDRICKS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + KEVIN B. HENDRICKS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +=== boehm + +The gc/boehm directory, except the files listed under the xulrunner section, +is licensed under the following terms: + + Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers + Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved. + Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved. + + THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED + OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + + Permission is hereby granted to use or copy this program + for any purpose, provided the above notices are retained on all copies. + Permission to modify the code and to distribute modified code is granted, + provided the above notices are retained, and a notice that the code was + modified is included with the above copyright notice. + +=== cairo + +The gfx/cairo/cairo directory is licensed under the following terms: + + Copyright (c) 2003 University of Southern California + Copyright (c) 1999 Tom Tromey + Copyright (c) 2002, 2003 University of Southern California + Copyright (c) 2004 Calum Robinson + Copyright (c) 2004 David Reveman + Copyright (c) 2000, 2002, 2004 Keith Packard + Copyright (c) 2004, 2005 Red Hat, Inc + + Cairo is free software and is available to be redistributed and/or + modified under the terms of either the GNU Lesser General Public + License (LGPL) version 2.1 or the Mozilla Public License (MPL) version + 1.1. + +=== libpixman + +The gfx/cairo/libpixman directory is licensed under the following terms: +(from gfx/cairo/libpixman/COPYING) + + libpixregion + + Copyright 1987, 1998 The Open Group + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of The Open Group shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from The Open Group. + + + Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Digital not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + + ---------------------------------------------------------------------- + libic + + Copyright © 2001 Keith Packard + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation, and that the name of Keith Packard not be used in + advertising or publicity pertaining to distribution of the software without + specific, written prior permission. Keith Packard makes no + representations about the suitability of this software for any purpose. It + is provided "as is" without express or implied warranty. + + KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + ---------------------------------------------------------------------- + slim + + slim is Copyright © 2003 Richard Henderson + + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Richard Henderson not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Richard Henderson + makes no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + RICHARD HENDERSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL RICHARD HENDERSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +=== libjpeg + +The jpeg directory, except the files under the xulrunner section, are licensed +under the following terms: + + The authors make NO WARRANTY or representation, either express or implied, + with respect to this software, its quality, accuracy, merchantability, or + fitness for a particular purpose. This software is provided "AS IS", and you, + its user, assume the entire risk as to its quality and accuracy. + + This software is copyright (C) 1991-1998, Thomas G. Lane. + All Rights Reserved except as specified below. + + Permission is hereby granted to use, copy, modify, and distribute this + software (or portions thereof) for any purpose, without fee, subject to these + conditions: + (1) If any part of the source code for this software is distributed, then this + README file must be included, with this copyright and no-warranty notice + unaltered; and any additions, deletions, or changes to the original files + must be clearly indicated in accompanying documentation. + (2) If only executable code is distributed, then the accompanying + documentation must state that "this software is based in part on the work of + the Independent JPEG Group". + (3) Permission for use of this software is granted only if the user accepts + full responsibility for any undesirable consequences; the authors accept + NO LIABILITY for damages of any kind. + + These conditions apply to any software derived from or based on the IJG code, + not just to the unmodified library. If you use our work, you ought to + acknowledge us. + + Permission is NOT granted for the use of any IJG author's name or company name + in advertising or publicity relating to this software or products derived from + it. This software may be referred to only as "the Independent JPEG Group's + software". + + We specifically permit and encourage the use of this software as the basis of + commercial products, provided that all warranty or liability claims are + assumed by the product vendor. + +=== bzip2 + +The modules/libbz2/src directory is licensed under the following terms: +(from modules/libbz2/src/LICENSE) + + This program, "bzip2", the associated library "libbzip2", and all + documentation, are copyright (C) 1996-2005 Julian R Seward. All + rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + 3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Julian Seward, Cambridge, UK. + jseward@acm.org + bzip2/libbzip2 version 1.0.3 of 15 February 2005 + +=== libpng + +The directory modules/libimg/png is licensed under the following terms: +(from modules/libimg/png/LICENSE) + + This copy of the libpng notices is provided for your convenience. In case of + any discrepancy between this copy and the notices in the file png.h that is + included in the libpng distribution, the latter shall prevail. + + COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + + If you modify libpng you may insert additional notices immediately following + this sentence. + + libpng version 1.2.6, September 12, 2004, is + Copyright (c) 2004 Glenn Randers-Pehrson, and is + distributed according to the same disclaimer and license as libpng-1.2.5 + with the following individual added to the list of Contributing Authors + + Cosmin Truta + + libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are + Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.0.6 + with the following individuals added to the list of Contributing Authors + + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + + and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + + libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are + Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-0.96, + with the following individuals added to the list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + + libpng versions 0.89, June 1996, through 0.96, May 1997, are + Copyright (c) 1996, 1997 Andreas Dilger + Distributed according to the same disclaimer and license as libpng-0.88, + with the following individuals added to the list of Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + + libpng versions 0.5, May 1995, through 0.88, January 1996, are + Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + + For the purposes of this copyright and license, "Contributing Authors" + is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + + The PNG Reference Library is supplied "AS IS". The Contributing Authors + and Group 42, Inc. disclaim all warranties, expressed or implied, + including, without limitation, the warranties of merchantability and of + fitness for any purpose. The Contributing Authors and Group 42, Inc. + assume no liability for direct, indirect, incidental, special, exemplary, + or consequential damages, which may result from the use of the PNG + Reference Library, even if advised of the possibility of such damage. + + Permission is hereby granted to use, copy, modify, and distribute this + source code, or portions hereof, for any purpose, without fee, subject + to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + The Contributing Authors and Group 42, Inc. specifically permit, without + fee, and encourage the use of this source code as a component to + supporting the PNG file format in commercial products. If you use this + source code in a product, acknowledgment is not required but would be + appreciated. + + + A "png_get_copyright" function is available, for convenient use in "about" + boxes and the like: + + printf("%s",png_get_copyright(NULL)); + + Also, the PNG logo (in PNG format, of course) is supplied in the + files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + + Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a + certification mark of the Open Source Initiative. + + Glenn Randers-Pehrson + glennrp@users.sourceforge.net + September 12, 2004 + +=== zlib + +The directories modules/zlib/src and security/nss/cmd/zlib are licensed under +the following terms: + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + If you use the zlib library in a product, we would appreciate *not* + receiving lengthy legal documents to sign. The sources are provided + for free but without warranty of any kind. The library has been + entirely written by Jean-loup Gailly and Mark Adler; it does not + include third-party code. + + If you redistribute modified sources, we would appreciate that you include + in the file ChangeLog history information documenting your changes. Please + read the FAQ for more information on the distribution of modified source + versions. + +=== expat + +The directory parser/expat is licensed under the following terms: +(from parser/expat/COPYING) + + Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper + Copyright (c) 2001, 2002 Expat maintainers. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --- firefox-6.0+build1+nobinonly.orig/debian/README.source +++ firefox-6.0+build1+nobinonly/debian/README.source @@ -0,0 +1,27 @@ +1) To create the fully patched source, just run "debian/rules apply-patches" in the source directory. The fully patched source will be available in build-tree/mozilla + +2) This package uses the quilt patch system. To create or edit patches which are applied at build time, you must first extract the source tarball. To do this, run "debian/rules pre-build". cd in to build-tree/mozilla and use quilt in the usual fashion (see "man quilt"). + +Your life will be much easier if you add the following to ~/.quiltrc: + +for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do + if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then + export QUILT_PATCHES=${where}debian/patches + fi +done + +So, basically: + + a) debian/rules pre-build + b) cd build-tree/mozilla + c) quilt push <patchname> + .....or..... + quilt push + .....or..... + quilt push -a + .....or..... + quilt new + +You get the idea..... + +3) To remove any changes applied to the packaging, run "fakeroot debian/rules clean". This will remove all patches and delete auto-generated files --- firefox-6.0+build1+nobinonly.orig/debian/firefox.postrm.in +++ firefox-6.0+build1+nobinonly/debian/firefox.postrm.in @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "purge" ]; then + APP_PROFILE="usr.bin.@MOZ_APP_NAME@" + rm -f /etc/apparmor.d/force-complain/$APP_PROFILE || true + rm -f /etc/apparmor.d/disable/$APP_PROFILE || true + rm -f /etc/apparmor.d/local/$APP_PROFILE || true + rm -f "/etc/apparmor.d/abstractions/ubuntu-browsers.d/@MOZ_APP_NAME@" || true + rmdir /etc/apparmor.d/local 2>/dev/null || true +fi + +#DEBHELPER# --- firefox-6.0+build1+nobinonly.orig/debian/usr.bin.firefox.apparmor.11.04 +++ firefox-6.0+build1+nobinonly/debian/usr.bin.firefox.apparmor.11.04 @@ -0,0 +1,139 @@ +# vim:syntax=apparmor +# Author: Jamie Strandboge <jamie@canonical.com> + +#include <tunables/global> + +# We want to confine the binaries that match: +# @MOZ_LIBDIR@/@MOZ_APP_NAME@ +# @MOZ_LIBDIR@/firefox +# but not: +# @MOZ_LIBDIR@/firefox.sh +@MOZ_LIBDIR@/firefox{,*[^s][^h]} { + #include <abstractions/audio> + #include <abstractions/cups-client> + #include <abstractions/dbus-session> + #include <abstractions/gnome> + #include <abstractions/nameservice> + + # Addons + #include <abstractions/ubuntu-browsers.d/firefox> + + # for networking + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + + # should maybe be in abstractions + /etc/ r, + /etc/mime.types r, + /etc/mailcap r, + /etc/xdg/*buntu/applications/defaults.list r, # for all derivatives + /usr/share/xubuntu/applications/defaults.list r, + owner @{HOME}/.local/share/applications/defaults.list r, + owner @{HOME}/.local/share/applications/mimeapps.list r, + owner @{HOME}/.local/share/applications/mimeinfo.cache r, + owner /tmp/** m, + owner /var/tmp/** m, + /tmp/.X[0-9]*-lock r, + + /etc/timezone r, + /etc/wildmidi/wildmidi.cfg r, + + # firefox specific + /etc/firefox*/ r, + /etc/firefox*/** r, + /etc/xul-ext/** r, + /etc/xulrunner-2.0*/ r, + /etc/xulrunner-2.0*/** r, + /etc/gre.d/ r, + /etc/gre.d/* r, + + # noisy + deny @MOZ_LIBDIR@/** w, + deny /usr/lib/@MOZ_APP_NAME@-addons/** w, + deny /usr/lib/xulrunner-addons/** w, + deny /usr/lib/xulrunner-*/components/*.tmp w, + deny /.suspended r, + deny /boot/initrd.img* r, + deny /boot/vmlinuz* r, + deny /var/cache/fontconfig/ w, + deny @{HOME}/.local/share/recently-used.xbel r, + + # TODO: investigate + deny /usr/bin/gconftool-2 x, + + # These are needed when a new user starts firefox and firefox.sh is used + @MOZ_LIBDIR@/** ixr, + /usr/bin/basename ixr, + /usr/bin/dirname ixr, + /usr/bin/pwd ixr, + /sbin/killall5 ixr, + /bin/which ixr, + /usr/bin/tr ixr, + @{PROC}/ r, + @{PROC}/[0-9]*/cmdline r, + @{PROC}/[0-9]*/mountinfo r, + @{PROC}/[0-9]*/stat r, + owner @{PROC}/[0-9]*/task/[0-9]*/stat r, + @{PROC}/[0-9]*/status r, + @{PROC}/filesystems r, + owner @{HOME}/.thumbnails/*/*.png r, + + /etc/mtab r, + /etc/fstab r, + + # Needed for the crash reporter + owner @{PROC}/[0-9]*/environ r, + owner @{PROC}/[0-9]*/auxv r, + /etc/lsb-release r, + /usr/bin/expr ix, + + # Needed for container to work in xul builds + /usr/lib/xulrunner-*/plugin-container ixr, + + # allow access to documentation and other files the user may want to look + # at in /usr + /usr/ r, + /usr/** r, + + # so browsing directories works + / r, + /**/ r, + + # Default profile allows downloads to ~/Downloads and uploads from ~/Public + owner @{HOME}/ r, + owner @{HOME}/Public/ r, + owner @{HOME}/Public/* r, + owner @{HOME}/Downloads/ r, + owner @{HOME}/Downloads/* rw, + + # per-user firefox configuration + owner @{HOME}/.{firefox,mozilla}/ rw, + owner @{HOME}/.{firefox,mozilla}/** rw, + owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k, + owner @{HOME}/.{firefox,mozilla}/plugins/** rm, + owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm, + owner @{HOME}/.config/ibus/bus/ w, + owner @{HOME}/.gnome2/firefox*-bin-* rw, + + # + # Extensions + # /usr/share/.../extensions/... is already covered by '/usr/** r', above. + # Allow 'x' for downloaded extensions, but inherit policy for safety + owner @{HOME}/.mozilla/**/extensions/** mixr, + + deny @MOZ_LIBDIR@/update.test w, + deny /usr/lib/mozilla/extensions/**/ w, + deny /usr/lib/xulrunner-addons/extensions/**/ w, + deny /usr/share/mozilla/extensions/**/ w, + deny /usr/share/mozilla/ w, + + # Miscellaneous (to be abstracted) + /usr/bin/mkfifo Uxr, # TODO: investigate + /bin/ps Uxr, # TODO: child profile + /bin/uname Uxr, # TODO: child profile + + # Site-specific additions and overrides. See local/README for details. + #include <local/usr.bin.firefox> +} --- firefox-6.0+build1+nobinonly.orig/debian/usr.bin.firefox.apparmor.9.10 +++ firefox-6.0+build1+nobinonly/debian/usr.bin.firefox.apparmor.9.10 @@ -0,0 +1,342 @@ +# vim:syntax=apparmor +# Author: Jamie Strandboge <jamie@canonical.com> + +#include <tunables/global> + +# We want to confine the binaries that match: +# @MOZ_LIBDIR@/@MOZ_APP_NAME@ +# @MOZ_LIBDIR@/firefox +# but not: +# @MOZ_LIBDIR@/firefox.sh +@MOZ_LIBDIR@/firefox{,*[^s][^h]} { + #include <abstractions/audio> + #include <abstractions/base> + #include <abstractions/cups-client> + #include <abstractions/dbus> + #include <abstractions/fonts> + #include <abstractions/freedesktop.org> + #include <abstractions/gnome> + #include <abstractions/kde> + #include <abstractions/nameservice> + #include <abstractions/user-tmp> + #include <abstractions/X> + + # for networking + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + + # sounds + /etc/sound/ r, + /etc/sound/** r, + /etc/wildmidi/wildmidi.cfg r, + + # should maybe be in abstractions + /etc/ r, + /etc/gnome/defaults.list r, + /etc/mime.types r, + /etc/mailcap r, + /etc/timezone r, + /usr/bin/dbus-launch ixr, + /usr/bin/apport-bug Ux, + /usr/bin/scim Ux, + /usr/bin/scim-bridge Ux, + /usr/lib/gstreamer0.10/gstreamer-0.10/gst-plugin-scanner ix, + /usr/bin/apturl Uxr, + /tmp/.X[0-9]*-lock r, + + # firefox specific + /etc/firefox*/ r, + /etc/firefox*/** r, + /etc/xul-ext/** r, + /etc/xulrunner-2.0*/ r, + /etc/xulrunner-2.0*/** r, + /etc/gre.d/ r, + /etc/gre.d/* r, + + # noisy + deny @MOZ_LIBDIR@/** w, + deny /usr/lib/@MOZ_APP_NAME@-addons/** w, + deny /usr/lib/xulrunner-addons/** w, + deny /usr/lib/xulrunner-*/components/*.tmp w, + deny /.suspended r, + deny /boot/initrd.img* r, + deny /boot/vmlinuz* r, + deny /var/cache/fontconfig/ w, + + # TODO: investigate + deny /usr/bin/gconftool-2 x, + + # These are needed when a new user starts firefox and firefox.sh is used + @MOZ_LIBDIR@/** ixr, + /usr/bin/basename ixr, + /usr/bin/dirname ixr, + /usr/bin/pwd ixr, + /sbin/killall5 ixr, + /bin/which ixr, + /usr/bin/tr ixr, + @{PROC}/ r, + @{PROC}/[0-9]*/cmdline r, + @{PROC}/[0-9]*/mountinfo r, + @{PROC}/[0-9]*/stat r, + owner @{PROC}/[0-9]*/task/[0-9]*/stat r, + @{PROC}/[0-9]*/status r, + @{PROC}/filesystems r, + capability sys_ptrace, + + /etc/mtab r, + /etc/fstab r, + @{PROC}/[0-9]*/mounts r, + @{PROC}/[0-9]*/maps r, + + # allow access to documentation and other files the user may want to look + # at in /usr + /usr/ r, + /usr/** r, + + # so browsing directories works + / r, + /**/ r, + + # allow read and write to all user's files, except explicitly denied ones + @{HOME}/ r, + @{HOME}/** rw, + @{HOME}/Desktop/** rw, + @{HOME}/Firefox_wallpaper* rw, + /media/** rw, + owner /mnt/** rw, + owner /srv/** rw, + + #include <abstractions/private-files> + audit deny @{HOME}/.ssh/** mrwkl, + audit deny @{HOME}/.gnome2_private/** mrwkl, + + # comment this out if using gpg plugin/addons + audit deny @{HOME}/.gnupg/** mrwkl, + + # per-user firefox configuration + owner @{HOME}/.{firefox,mozilla}/ rw, + owner @{HOME}/.{firefox,mozilla}/** rw, + owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k, + owner @{HOME}/.{firefox,mozilla}/plugins/** rm, + owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm, + + # per-user common plugin configuration + @{HOME}/.adobe/ rw, + @{HOME}/.adobe/** rw, + @{HOME}/.macromedia/ rw, + @{HOME}/.macromedia/** rw, + + # + # Extensions + # /usr/share/.../extensions/... is already covered by '/usr/** r', above. + # Allow 'x' for downloaded extensions, but inherit policy for safety + owner @{HOME}/.mozilla/**/extensions/** mixr, + + deny @MOZ_LIBDIR@/update.test w, + deny /usr/lib/mozilla/extensions/**/ w, + deny /usr/lib/xulrunner-addons/extensions/**/ w, + deny /usr/share/mozilla/extensions/**/ w, + deny /usr/share/mozilla/ w, + + # + # Plugins/helpers + # + @{PROC}/[0-9]*/fd/ r, + /usr/lib/** rm, + /bin/bash ixr, + /bin/dash ixr, + /bin/grep ixr, + /bin/sed ixr, + /bin/ps Uxr, + /bin/uname Uxr, + /usr/bin/gnome-codec-install Uxr, + /usr/bin/m4 ixr, + /usr/bin/mkfifo Uxr, + /usr/lib/nspluginwrapper/i386/linux/npviewer Uxr, + /var/lib/ r, + /var/lib/** mr, + + # Needed for container to work in xul builds + /usr/lib/xulrunner-*/plugin-container ixr, + + # for maximum plugin/helper compatibility + #/usr/bin/* Uxr, + #/usr/lib/*/** ixr, + + # + # For stricter access, comment out the 'maximum plugin/helper compatibility' + # lines above and uncomment these + # + + # evince has its own profile, so change to it + /usr/bin/evince PUxr, + + # miscellaneous + /usr/bin/eog Uxr, + /usr/bin/gedit Uxr, + /usr/bin/gimp* Uxr, + /usr/bin/file-roller Uxr, + /usr/bin/ooffice Uxr, + /usr/bin/oocalc Uxr, + /usr/bin/oodraw Uxr, + /usr/bin/ooimpress Uxr, + /usr/bin/oowriter Uxr, + /usr/lib/openoffice/program/soffice Uxr, + /usr/bin/gtk-gnash ixr, + /usr/bin/pulseaudio ixr, + /usr/bin/nautilus Uxr, + /usr/bin/deluge Uxr, + /usr/bin/okular Uxr, + /usr/bin/transmission Uxr, + /usr/bin/liferea-add-feed Uxr, + /usr/bin/azureus Uxr, + /usr/bin/leafpad Uxr, + /usr/bin/mousepad Uxr, + + # Adobe Acrobat Reader + /opt/Adobe/Reader9/bin/acroread Uxr, + /opt/Adobe/Reader9/** r, + + # totem + /usr/lib/totem/** ixr, + /usr/bin/totem-gstreamer Uxr, + /usr/bin/totem-xine Uxr, + /usr/bin/totem Uxr, + + # mozplugger + /etc/mozpluggerrc r, + /usr/bin/mozplugger-helper Uxr, + + # mplayer plugin + /etc/mplayerplug-in.conf r, + /usr/bin/mplayer Uxr, + + # Java + @{HOME}/.java/deployment/deployment.properties k, + /etc/java-*/ r, + /etc/java-*/** r, + /usr/lib/jvm/java-6-openjdk/jre/bin/java cx -> firefox_openjdk, + /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} cx -> firefox_java, + /usr/lib/jvm/java-*-sun-1.*/jre/lib/*/libnp*.so cx -> firefox_java, + /usr/lib/j2*-ibm/jre/bin/java cx -> firefox_java, + + # for mailto: + #include <abstractions/ubuntu-email> + #include <abstractions/ubuntu-console-email> + + # Terminals for using console applications. These abstractions should ideally + # have 'ix' to restrct access to what only firefox is allowed to do + #include <abstractions/ubuntu-gnome-terminal> + + # By default, we won't support launching a terminal program in Xterm or + # KDE's konsole. It opens up too many unnecessary files for most users. + # People who need this functionality can uncomment the following: + ##include <abstractions/ubuntu-xterm> + ##include <abstractions/ubuntu-konsole> + + + # + # Child profiles + # + + # Profile for the supported OpenJDK in Ubuntu. This doesn't require the + # unfortunate workarounds of the proprietary Javas, so have a separate + # profile. + profile firefox_openjdk { + #include <abstractions/base> + #include <abstractions/fonts> + #include <abstractions/gnome> + #include <abstractions/kde> + #include <abstractions/nameservice> + #include <abstractions/ssl_certs> + #include <abstractions/user-tmp> + #include <abstractions/private-files-strict> + + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + + /etc/java-*/ r, + /etc/java-*/** r, + /etc/lsb-release r, + /etc/ssl/certs/java/* r, + /etc/timezone r, + + @{PROC}/[0-9]*/ r, + @{PROC}/[0-9]*/fd/ r, + @{PROC}/filesystems r, + /sys/devices/system/cpu/ r, + /sys/devices/system/cpu/** r, + /usr/share/** r, + /var/lib/dbus/machine-id r, + + /usr/bin/env ix, + /usr/lib/jvm/java-6-openjdk/jre/bin/java ix, + /usr/lib/jvm/java-6-openjdk/jre/lib/i386/client/classes.jsa m, + + # Why would java need this? + deny /usr/bin/gconftool-2 x, + + owner @{HOME}/ r, + owner @{HOME}/** rwk, + } + + # Profile for commercial Javas. These need workarounds to work right (eg + # Sun's forcing of an executable stack (LP: #535247)). + profile firefox_java { + #include <abstractions/base> + #include <abstractions/fonts> + #include <abstractions/gnome> + #include <abstractions/kde> + #include <abstractions/nameservice> + #include <abstractions/ssl_certs> + #include <abstractions/user-tmp> + #include <abstractions/private-files-strict> + + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + @{PROC}/loadavg r, + + /etc/debian_version r, + /etc/java-*/ r, + /etc/java-*/** r, + /etc/lsb-release r, + /etc/ssl/certs/java/* r, + /etc/timezone r, + + @{PROC}/[0-9]*/ r, + @{PROC}/[0-9]*/fd/ r, + @{PROC}/filesystems r, + /sys/devices/system/cpu/ r, + /sys/devices/system/cpu/** r, + /usr/share/** r, + /var/lib/dbus/machine-id r, + + /usr/bin/env ix, + /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} ix, + /usr/lib/jvm/java-*-sun-1.*/jre/lib/i386/client/classes.jsa m, + /usr/lib/j2*-ibm/jre/bin/java ix, + + # noisy, can't write here anyway + deny /etc/.java/ w, + deny /etc/.java/** w, + + deny /usr/bin/gconftool-2 x, + + owner @{HOME}/ r, + owner @{HOME}/** rwk, + owner @{HOME}/.fontconfig/*.cache* m, + + # These are seriously unfortunate, but required due to LP: #535247 + /etc/passwd m, + owner @{HOME}/.java/**/cache/** m, + owner /tmp/** m, + /usr/lib{,32,64}/jvm/**/*.jar mr, + /usr/share/fonts/** m, + } +} --- firefox-6.0+build1+nobinonly.orig/debian/firefox-gnome-support.install.in +++ firefox-6.0+build1+nobinonly/debian/firefox-gnome-support.install.in @@ -0,0 +1,7 @@ +%%ifndef MOZ_DISABLE_GNOMEVFS +debian/tmp@MOZ_LIBDIR@/components/libnkgnomevfs.so +%%endif +debian/tmp@MOZ_LIBDIR@/components/libmozgnome.so +%%ifndef MOZ_DISABLE_CONTROL_CENTER +debian/@MOZ_APP_NAME@.xml /usr/share/gnome-control-center/default-apps +%%endif --- firefox-6.0+build1+nobinonly.orig/debian/firefox.prerm.in +++ firefox-6.0+build1+nobinonly/debian/firefox.prerm.in @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +MOZ_APP_NAME=@MOZ_APP_NAME@ + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] ; then + update-alternatives --remove gnome-www-browser /usr/bin/$MOZ_APP_NAME + update-alternatives --remove x-www-browser /usr/bin/$MOZ_APP_NAME +fi + +if [ -f /usr/share/apport/package-hooks/$MOZ_APP_NAME.pyc ] ; then + rm -f /usr/share/apport/package-hooks/$MOZ_APP_NAME.pyc +fi + +#DEBHELPER# --- firefox-6.0+build1+nobinonly.orig/debian/locales.unavailable +++ firefox-6.0+build1+nobinonly/debian/locales.unavailable @@ -0,0 +1,3 @@ +as:Assamese +ka:Georgian +oc:Occitan (post 1500) --- firefox-6.0+build1+nobinonly.orig/debian/firefox.desktop.in +++ firefox-6.0+build1+nobinonly/debian/firefox.desktop.in @@ -0,0 +1,195 @@ +[Desktop Entry] +Version=1.0 +%%ifdef MOZ_OFFICIAL_BRANDING +Name=Firefox Web Browser +Name[ar]=متصفح الوِب فَيَرفُكْس +Name[ast]=Restolador web Firefox +Name[bn]=ফায়ারফক্স ওয়েব ব্রাউজার +Name[ca]=Navegador web Firefox +Name[cs]=Firefox Webový prohlížeč +Name[da]=Firefox - internetbrowser +Name[es]=Navegador web Firefox +Name[et]=Firefoxi veebibrauser +Name[fa]=مرورگر اینترنتی Firefox +Name[fi]=Firefox-selain +Name[fr]=Navigateur Web Firefox +Name[gl]=Navegador web Firefox +Name[he]=דפדפן האינטרנט Firefox +Name[hr]=Firefox web preglednik +Name[hu]=Firefox webböngésző +Name[it]=Firefox Browser Web +Name[ja]=Firefox ウェブ・ブラウザ +Name[ko]=Firefox 웹 브라우저 +Name[ku]=Geroka torê Firefox +Name[lt]=Firefox interneto naršyklė +Name[nb]=Firefox Nettleser +Name[nl]=Firefox webbrowser +Name[nn]=Firefox Nettlesar +Name[no]=Firefox Nettleser +Name[pl]=Przeglądarka WWW Firefox +Name[pt]=Firefox Navegador Web +Name[pt_BR]=Navegador Web Firefox +Name[ro]=Firefox – Navigator Internet +Name[ru]=Веб-браузер Firefox +Name[sk]=Firefox - internetový prehliadač +Name[sl]=Firefox spletni brskalnik +Name[sv]=Webbläsaren Firefox +Name[ug]=Firefox توركۆرگۈ +Name[uk]=Веб-браузер Firefox +Name[vi]=Trình duyệt web Firefox +Name[zh_CN]=Firefox 网络浏览器 +Name[zh_TW]=Firefox 網路瀏覽器 +%%else +Name=@MOZ_DISPLAY_NAME@ Web Browser +Name[ast]=Restolador web @MOZ_DISPLAY_NAME@ +Name[ca]=Navegador web @MOZ_DISPLAY_NAME@ +Name[cs]=@MOZ_DISPLAY_NAME@ Webový prohlížeč +Name[da]=@MOZ_DISPLAY_NAME@ - internetbrowser +Name[es]=Navegador web @MOZ_DISPLAY_NAME@ +Name[et]=@MOZ_DISPLAY_NAME@i veebibrauser +Name[fa]=مرورگر اینترنتی @MOZ_DISPLAY_NAME@ +Name[fi]=@MOZ_DISPLAY_NAME@-selain +Name[fr]=Navigateur Web @MOZ_DISPLAY_NAME@ +Name[gl]=Navegador web @MOZ_DISPLAY_NAME@ +Name[he]=דפדפן האינטרנט @MOZ_DISPLAY_NAME@ +Name[hr]=@MOZ_DISPLAY_NAME@ web preglednik +Name[hu]=@MOZ_DISPLAY_NAME@ webböngésző +Name[it]=@MOZ_DISPLAY_NAME@ Browser Web +Name[ja]=@MOZ_DISPLAY_NAME@ ウェブ・ブラウザ +Name[ko]=@MOZ_DISPLAY_NAME@ 웹 브라우저 +Name[ku]=Geroka torê @MOZ_DISPLAY_NAME@ +Name[lt]=@MOZ_DISPLAY_NAME@ interneto naršyklė +Name[nb]=@MOZ_DISPLAY_NAME@ Nettleser +Name[nl]=@MOZ_DISPLAY_NAME@ webbrowser +Name[nn]=@MOZ_DISPLAY_NAME@ Nettlesar +Name[no]=@MOZ_DISPLAY_NAME@ Nettleser +Name[pl]=Przeglądarka WWW @MOZ_DISPLAY_NAME@ +Name[pt]=@MOZ_DISPLAY_NAME@ Navegador Web +Name[pt_BR]=Navegador Web @MOZ_DISPLAY_NAME@ +Name[ro]=@MOZ_DISPLAY_NAME@ – Navigator Internet +Name[ru]=Веб-браузер @MOZ_DISPLAY_NAME@ +Name[sk]=@MOZ_DISPLAY_NAME@ - internetový prehliadač +Name[sl]=@MOZ_DISPLAY_NAME@ spletni brskalnik +Name[sv]=Webbläsaren @MOZ_DISPLAY_NAME@ +Name[ug]=@MOZ_DISPLAY_NAME@ توركۆرگۈ +Name[uk]=Веб-браузер @MOZ_DISPLAY_NAME@ +Name[vi]=Trình duyệt web @MOZ_DISPLAY_NAME@ +Name[zh_CN]=@MOZ_DISPLAY_NAME@ 网络浏览器 +Name[zh_TW]=@MOZ_DISPLAY_NAME@ 網路瀏覽器 +%%endif +Comment=Browse the World Wide Web +Comment[ar]=تصفح الشبكة العنكبوتية العالمية +Comment[ast]=Restola pela Rede +Comment[bn]=ইন্টারনেট ব্রাউজ করুন +Comment[ca]=Navegueu per la web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[da]=Surf på internettet +Comment[de]=Im Internet surfen +Comment[es]=Navegue por la web +Comment[et]=Lehitse veebi +Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید +Comment[fi]=Selaa Internetin WWW-sivuja +Comment[fr]=Naviguer sur le Web +Comment[gl]=Navegar pola rede +Comment[he]=גלישה ברחבי האינטרנט +Comment[hr]=Pretražite web +Comment[hu]=A világháló böngészése +Comment[it]=Esplora il web +Comment[ja]=ウェブを閲覧します +Comment[ko]=웹을 돌아 다닙니다 +Comment[ku]=Li torê bigere +Comment[lt]=Naršykite internete +Comment[nb]=Surf på nettet +Comment[nl]=Verken het internet +Comment[nn]=Surf på nettet +Comment[no]=Surf på nettet +Comment[pl]=Przeglądanie stron WWW +Comment[pt]=Navegue na Internet +Comment[pt_BR]=Navegue na Internet +Comment[ro]=Navigați pe Internet +Comment[ru]=Доступ в Интернет +Comment[sk]=Prehliadanie internetu +Comment[sl]=Brskajte po spletu +Comment[sv]=Surfa på webben +Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ +Comment[uk]=Перегляд сторінок Інтернету +Comment[vi]=Để duyệt các trang web +Comment[zh_CN]=浏览互联网 +Comment[zh_TW]=瀏覽網際網路 +GenericName=Web Browser +GenericName[ar]=متصفح وب +GenericName[ast]=Restolador Web +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[ca]=Navegador web +GenericName[cs]=Webový prohlížeč +GenericName[da]=Webbrowser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fa]=مرورگر اینترنتی +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gl]=Navegador Web +GenericName[he]=דפדפן אינטרנט +GenericName[hr]=Web preglednik +GenericName[hu]=Webböngésző +GenericName[it]=Browser web +GenericName[ja]=ウェブ・ブラウザ +GenericName[ko]=웹 브라우저 +GenericName[ku]=Geroka torê +GenericName[lt]=Interneto naršyklė +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[nn]=Nettlesar +GenericName[no]=Nettleser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador Web +GenericName[ro]=Navigator Internet +GenericName[ru]=Веб-браузер +GenericName[sk]=Internetový prehliadač +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ug]=توركۆرگۈ +GenericName[uk]=Веб-браузер +GenericName[vi]=Trình duyệt Web +GenericName[zh_CN]=网络浏览器 +GenericName[zh_TW]=網路瀏覽器 +Exec=@MOZ_APP_NAME@ %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=@MOZ_APP_NAME@ +Categories=GNOME;GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome; +StartupWMClass=@MOZ_DISPLAY_NAME@ +StartupNotify=true +X-Ayatana-Desktop-Shortcuts=NewWindow; + +[NewWindow Shortcut Group] +Name=Open a New Window +Name[ast]=Abrir una ventana nueva +Name[bn]=Abrir una ventana nueva +Name[ca]=Obre una finestra nova +Name[da]=Åbn et nyt vindue +Name[de]=Ein neues Fenster öffnen +Name[es]=Abrir una ventana nueva +Name[fi]=Avaa uusi ikkuna +Name[fr]=Ouvrir une nouvelle fenêtre +Name[gl]=Abrir unha nova xanela +Name[he]=פתיחת חלון חדש +Name[hr]=Otvori novi prozor +Name[hu]=Új ablak nyitása +Name[it]=Apri una nuova finestra +Name[ja]=新しいウィンドウを開く +Name[ku]=Paceyeke nû veke +Name[lt]=Atverti naują langą +Name[nl]=Nieuw venster openen +Name[ro]=Deschide o fereastră nouă +Name[ru]=Открыть новое окно +Name[sv]=Öppna ett nytt fönster +Name[ug]=يېڭى كۆزنەك ئېچىش +Name[uk]=Відкрити нове вікно +Name[zh_CN]=新建窗口 +Name[zh_TW]=開啟新視窗 +Exec=@MOZ_APP_NAME@ -new-window about:blank +TargetEnvironment=Unity --- firefox-6.0+build1+nobinonly.orig/debian/README.Debian.in +++ firefox-6.0+build1+nobinonly/debian/README.Debian.in @@ -0,0 +1,15 @@ +Apparmor Profile +---------------- +If your system uses AppArmor, please note that the shipped profile is disabled +by default. The profile can be enabled by performing: + +$ sudo aa-enforce /etc/apparmor.d/usr.bin.@MOZ_APP_NAME@ + +The profile can be disabled by performing: +$ sudo aparmor_parser -R /etc/apparmor.d/usr.bin.@MOZ_APP_NAME@ +$ sudo ln -s /etc/apparmor.d/usr.bin.@MOZ_APP_NAME@ /etc/apparmor.d/disable/usr.bin.@MOZ_APP_NAME@ + +This profile should work without modification for most plugins available in +Ubuntu, but may require adjusting for your environment. Please see +https://wiki.ubuntu.com/DebuggingApparmor before filing a bug against this +software. --- firefox-6.0+build1+nobinonly.orig/debian/firefox.links.in +++ firefox-6.0+build1+nobinonly/debian/firefox.links.in @@ -0,0 +1,10 @@ +/usr/lib/@MOZ_APP_NAME@-addons/searchplugins /usr/lib/@MOZ_APP_NAME@-addons/searchplugins/common +/usr/lib/@MOZ_APP_NAME@-addons/extensions @MOZ_LIBDIR@/extensions +/usr/lib/@MOZ_APP_NAME@-addons/plugins @MOZ_LIBDIR@/plugins +/usr/lib/@MOZ_APP_NAME@-addons/searchplugins @MOZ_LIBDIR@/searchplugins +/usr/lib/@MOZ_APP_NAME@-addons/searchplugins @MOZ_LIBDIR@/distribution/searchplugins +@MOZ_SYSTEM_DICTDIR@ @MOZ_LIBDIR@/dictionaries +/usr/share/hyphen @MOZ_LIBDIR@/hyphenation +@MOZ_LIBDIR@/firefox.sh /usr/bin/@MOZ_APP_NAME@ +@MOZ_LIBDIR@/icons/mozicon128.png /usr/share/pixmaps/@MOZ_APP_NAME@.png +/etc/@MOZ_APP_NAME@/syspref.js @MOZ_LIBDIR@/defaults/pref/syspref.js --- firefox-6.0+build1+nobinonly.orig/debian/firefox.manpages.in +++ firefox-6.0+build1+nobinonly/debian/firefox.manpages.in @@ -0,0 +1 @@ +debian/@MOZ_APP_NAME@.1 --- firefox-6.0+build1+nobinonly.orig/debian/firefox.menu.in +++ firefox-6.0+build1+nobinonly/debian/firefox.menu.in @@ -0,0 +1,3 @@ +?package(@MOZ_APP_NAME@):needs="x11" section="Applications/Network/Web Browsing" \ + title="@MOZ_DISPLAY_NAME@ Browser" command="/usr/bin/@MOZ_APP_NAME@" hints="Web browsers" \ + icon="/usr/share/pixmaps/@MOZ_APP_NAME@.xpm" --- firefox-6.0+build1+nobinonly.orig/debian/control.in +++ firefox-6.0+build1+nobinonly/debian/control.in @@ -0,0 +1,177 @@ +Source: @MOZ_APP_NAME@ +Section: web +Priority: optional +Maintainer: Ubuntu Mozilla Team <ubuntu-mozillateam@lists.ubuntu.com> +Vcs-Bzr: https://code.launchpad.net/~mozillateam/firefox/firefox.natty +Build-Depends: cdbs, + debhelper (>= 5), + m4, + autotools-dev, + autoconf2.13, + quilt, + patchutils (>= 0.2.25), + bzip2, + zip, + libx11-dev, + libxt-dev, + libgtk2.0-dev (>= 2.10), + liborbit2-dev, + libidl-dev (>= 0.8.0), + libxft-dev, + libfreetype6-dev, + libxrender-dev, + libxinerama-dev, + libgnome2-dev, + libgconf2-dev, + libgnomeui-dev, + libstartup-notification0-dev, + libasound2-dev, + libcurl4-openssl-dev, + libdbus-glib-1-dev (>= 0.60), + mozilla-devscripts (>= 0.10~), + hardening-wrapper, + lsb-release, + libiw-dev, + mesa-common-dev, + libnotify-dev (>= 0.4), @EXTRA_BD@ + libgnomevfs2-dev, + yasm, + xvfb, + imagemagick, + libdbusmenu-gtk-dev +Standards-Version: 3.9.1 + +Package: @MOZ_APP_NAME@ +Architecture: any +Depends: fontconfig, + psmisc, + lsb-release, + debianutils (>= 1.16), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: ubufox, + @MOZ_APP_NAME@-globalmenu +Provides: www-browser, + iceweasel, + gnome-www-browser +Suggests: @MOZ_APP_NAME@-gnome-support | firefox-kde-support, + latex-xft-fonts, + libthai0 +Replaces: abrowser, + abrowser-branding, + firefox-branding, + kubuntu-firefox-installer +Breaks: abrowser (<= 4.0~b11+build3+nobinonly-0ubuntu1), + abrowser-branding (<= 4.0~b11+build3+nobinonly-0ubuntu1), + firefox-branding (<= 4.0~b11+build3+nobinonly-0ubuntu1) +XB-Xul-AppId: {ec8030f7-c20a-464f-9b0e-13a3a9e97384} +Description: Safe and easy web browser from Mozilla + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + +Package: @MOZ_APP_NAME@-gnome-support +Architecture: any +Section: gnome +Depends: ${shlibs:Depends}, + ${misc:Depends}, + @MOZ_APP_NAME@ +Description: Safe and easy web browser from Mozilla - GNOME support + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package depends on the GNOME libraries which allow Firefox to take + advantage of technologies such as GConf, GIO libnotify + +Package: @MOZ_APP_NAME@-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, + ${misc:Depends}, + @MOZ_APP_NAME@ (= ${binary:Version}) +Description: Safe and easy web browser from Mozilla - debug symbols + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package contains the debugging symbols for the Firefox web + browser + +Package: @MOZ_APP_NAME@-dev +Architecture: any +Section: devel +Priority: extra +Depends: ${shlibs:Depends}, + ${misc:Depends}, + @MOZ_APP_NAME@ (= ${binary:Version}), + ${nspr:Depends}, + ${nss:Depends}, + ${cairo:Depends} +Conflicts: xulrunner-2.0-dev, + xulrunner-1.9.2-dev +Description: Safe and easy web browser from Mozilla - development files + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package contains the headers and SDK for building plugins with Firefox + +Package: @MOZ_APP_NAME@-mozsymbols +Architecture: amd64 i386 armel +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: Safe and easy web browser from Mozilla - Breakpad symbols + Firefox delivers safe, easy web browsing. A familiar user interface, + enhanced security features including protection from online identity theft, + and integrated search let you get the most out of the web. + . + This package contains the Firefox symbols in a format expected by Mozilla's + Breakpad. Eventually this package should go away and the symbol upload be + implemented in soyuz (or other builders that build this package) + +Package: @MOZ_APP_NAME@-globalmenu +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + @MOZ_APP_NAME@ (= ${binary:Version}) +Description: Unity appmenu integration for Firefox + This package provides an extension which adds support for the Unity + appmenu to Firefox + +# Transitional packages below here + +Package: abrowser +Architecture: any +Depends: ${misc:Depends}, firefox +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +Package: firefox-branding +Architecture: any +Depends: ${misc:Depends}, firefox +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +Package: abrowser-branding +Architecture: any +Depends: ${misc:Depends}, firefox +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +Package: firefox-gnome-support-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${misc:Depends}, firefox-gnome-support, firefox-dbg (= ${binary:Version}) +Description: Safe and easy web browser from Mozilla - transitional package + This is a transitional package to ensure that upgrades work correctly. + It can be safely removed + +# Language packs below here --- firefox-6.0+build1+nobinonly.orig/debian/rules +++ firefox-6.0+build1+nobinonly/debian/rules @@ -0,0 +1,501 @@ +#!/usr/bin/make -f + +MOZ_APP_BASENAME := firefox +CHANNEL := release +MOZ_MOZDIR := + +# Various build options +# 1 = Use bundled libs +MOZ_MIN_SYSDEPS ?= 1 +# 1 = Enable crashreporter (if supported) +MOZ_ENABLE_BREAKPAD ?= 1 +# 1 = Disable official branding and crash reporter (the crash reporter builds but is not enabled in application.ini) +MOZ_BUILD_UNOFFICIAL ?= 0 +# 1 = Build without jemalloc suitable for valgrind debugging +MOZ_VALGRIND ?= 0 +# 1 = Profile guided build +MOZ_BUILD_PGO ?= 0 +# 1 = Build and run the testsuite +MOZ_WANT_UNIT_TESTS ?= 1 +# 1 = Turn on debugging bits and disable optimizations +MOZ_DEBUG ?= 0 +# 1 = Disable optimizations +MOZ_NO_OPTIMIZE ?= 0 + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) +# Other things which should be defined before including the CDBS rules +DEB_TAR_SRCDIR := mozilla +DEB_DH_STRIP_ARGS = --dbg-package=$(MOZ_APP_NAME)-dbg +# We don't want build-tree/mozilla/README to be shipped as a doc +DEB_INSTALL_DOCS_ALL := $(NULL) +# Needed for mozclient +MOZCLIENT_PROJECTNAME := $(MOZ_APP_BASENAME) +MOZCLIENT_PROJECTDIR := $(CURDIR)/debian/mozclient + +ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + MOZ_WANT_UNIT_TESTS=0 +endif + +include /usr/share/cdbs/1/rules/tarball.mk +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk +include /usr/share/cdbs/1/class/makefile.mk +include $(CURDIR)/debian/mozclient/$(MOZ_APP_BASENAME).mk + +MOZ_OBJDIR := $(DEB_BUILDDIR)$(MOZ_MOZDIR)/objdir-$(DEB_BUILD_GNU_TYPE) +MOZ_DISTDIR := $(MOZ_OBJDIR)$(MOZ_MOZDIR)/dist + +ifeq (1,$(MOZ_VALGRIND)) + MOZ_BUILD_UNOFFICIAL = 1 +endif + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + MOZ_BUILD_PGO = 0 + MOZ_NO_OPTIMIZE = 1 +endif + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + MOZ_NO_OPTIMIZE = 1 + MOZ_DEBUG = 1 + MOZ_BUILD_UNOFFICIAL = 1 +endif + +ifeq (1, $(MOZ_BUILD_PGO)) + # See https://bugzilla.mozilla.org/show_bug.cgi?id=602245 + MOZ_WANT_UNIT_TESTS = 0 + # We don't really want the crash reporter on for PGO builds yet + MOZ_ENABLE_BREAKPAD = 0 + MOZ_BUILD_UNOFFICIAL = 1 +endif + +include $(CURDIR)/debian/testsuite.mk + +# Define other variables used throughout the build +MOZ_APP_NAME := $(shell dpkg-parsechangelog | sed -n 's/^Source: *\(.*\)$$/\1/ p') +MOZ_APP_NAME_SUFFIX := $(shell echo $(MOZ_APP_NAME) | sed 's/\($(MOZ_APP_BASENAME)\)\-*\(.*\)/\2/' ) + +DEB_MAKE_MAKEFILE := client.mk + +# Without this, CDBS passes CFLAGS and CXXFLAGS options to client.mk, which breaks the build +DEB_MAKE_EXTRA_ARGS := + +# These normally come from autotools.mk, which we no longer include (because we +# don't want to run configure) +ifeq (1, $(MOZ_BUILD_PGO)) + DEB_MAKE_BUILD_TARGET := profiledbuild +endif +DEB_MAKE_INSTALL_TARGET := install DESTDIR=$(CURDIR)/debian/tmp +DEB_MAKE_CLEAN_TARGET := distclean + +MOZ_VERSION = $(shell cat $(DEB_BUILDDIR)/browser/config/version.txt) +MOZ_PREFIX := /usr +MOZ_LIBDIR = $(MOZ_PREFIX)/lib/$(MOZ_APP_NAME)-$(MOZ_VERSION) +MOZ_INCDIR = $(MOZ_PREFIX)/include/$(MOZ_APP_NAME)-$(MOZ_VERSION) +MOZ_IDLDIR = $(MOZ_PREFIX)/share/idl/$(MOZ_APP_NAME)-$(MOZ_VERSION) +MOZ_SDKDIR = $(MOZ_PREFIX)/lib/$(MOZ_APP_NAME)-devel-$(MOZ_VERSION) +MOZ_SERIES = $(shell echo $(MOZ_VERSION) | sed -e 's/pre//; s/[ab].*//' | cut -d '.' -f 1,2) + +NSPR_DEPENDS := $(NULL) +NSS_DEPENDS := $(NULL) +CAIRO_DEPENDS := $(NULL) +DEB_DH_GENCONTROL_ARGS = -- -Vnspr:Depends=$(NSPR_DEPENDS) -Vnss:Depends=$(NSS_DEPENDS) -Vcairo:Depends=$(CAIRO_DEPENDS) +DEB_AUTO_UPDATE_DEBIAN_CONTROL = no + +MOZ_PYTHON := $(shell which python) +DISTRIB := $(shell lsb_release -i -s) + +ifneq (,$(filter $(DISTRIB),Ubuntu)) + DISTRIB_VERSION_MAJOR := $(shell lsb_release -s -r | cut -d '.' -f 1) + DISTRIB_VERSION_MINOR := $(shell lsb_release -s -r | cut -d '.' -f 2) +endif + +ifneq ($(MOZ_APP_NAME),$(MOZ_APP_BASENAME)) + # We don't want to make builds which change MOZ_APP_NAME official + MOZ_BUILD_UNOFFICIAL = 1 +endif + +# enable the crash reporter only on i386, amd64 and armel +ifeq (,$(filter i386 amd64 armel,$(DEB_BUILD_ARCH))) + MOZ_ENABLE_BREAKPAD = 0 +endif + +BRANDING = $(CHANNEL) +ifneq (,$(filter release beta, $(BRANDING))) + BRANDING = official +endif +ifeq (1,$(MOZ_BUILD_UNOFFICIAL)) +ifneq (,$(filter official aurora, $(BRANDING))) + BRANDING = unofficial +endif +endif +ifeq (official,$(BRANDING)) + MOZ_BRANDING_OPTION = --enable-official-branding +else + MOZ_BRANDING_OPTION = --with-branding=$(BRANDING_DIR) +endif +BRANDING_DIR = browser/branding/$(BRANDING) +MOZ_DISPLAY_NAME = $(shell cat $(DEB_BUILDDIR)/$(BRANDING_DIR)/locales/en-US/brand.properties \ + | grep brandShortName | sed -e 's/brandShortName\=//') + +ifeq (nightly,$(CHANNEL)) +ifeq (1,$(shell test "$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)" -lt "1104" && echo "1")) + # Disable crashreporter on nightly builds older than Natty + MOZ_ENABLE_BREAKPAD = 0 +endif +endif + +CFLAGS = -g +CXXFLAGS = -g + +LDFLAGS = $(shell echo $$LDFLAGS | sed -e 's/-Wl,-Bsymbolic-functions//') +export LDFLAGS +export DEB_BUILD_HARDENING=1 +ifeq (1,$(shell test "$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)" -ge "1104" && echo "1")) + MOZ_ENABLE_GLOBALMENU := 1 +endif +ifeq (1,$(shell test "$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)" -ge "1010" && echo "1")) + MOZ_SYSTEM_DICTDIR = /usr/share/hunspell +else + MOZ_SYSTEM_DICTDIR = /usr/share/myspell/dicts +endif +export MOZCONFIG=$(CURDIR)/debian/mozconfig +ifneq (1,$(MOZ_BUILD_UNOFFICIAL)) + export BUILD_OFFICIAL=1 +endif +ifeq (1,$(MOZ_ENABLE_BREAKPAD)) + # Needed to enable crashreported in application.ini + export MOZILLA_OFFICIAL=1 +endif +ifeq (1,$(MOZ_BUILD_PGO)) + CC = $(shell which gcc-4.5) + CXX = $(shell which g++-4.5) + export CC + export CXX +endif + +ifneq (1, $(MOZ_MIN_SYSDEPS)) +ifneq (1, $(MOZ_DEBUG)) + MOZ_USE_SYSTEM_NSPR := $(shell pkg-config --exists 'nspr >= 4.8.7'; a=$$?; if test $$a != 1; then echo 1; fi) + MOZ_USE_SYSTEM_CAIRO := $(shell pkg-config --exists 'cairo >= 1.8.8'; a=$$?; if test $$a != 1; then echo 1; fi) + MOZ_USE_SYSTEM_SQLITE := $(shell pkg-config --exists 'sqlite3 >= 3.7.1'; a=$$?; if test $$a != 1; then echo 1; fi) + MOZ_USE_SYSTEM_NSS := $(shell pkg-config --exists 'nss >= 3.12.9'; a=$$?; if test $$a != 1; then echo 1; fi) + MOZ_USE_SYSTEM_HUNSPELL := $(shell pkg-config --exists 'hunspell >= 1.2' && echo 1) +ifeq (1, $(MOZ_USE_SYSTEM_CAIRO)) + MOZ_USE_SYSTEM_CAIRO := $(shell printf "\#include <cairo-tee.h>\nint main(int argc, char *argv[]) { return 0; }" > test.c && \ + gcc `pkg-config --cflags --libs cairo` -lc -o test test.c > /dev/null 2>&1 && echo "1"; rm -f test test.c) +endif +endif +endif + +# Defines used for the Mozilla text preprocessor +DEB_DEFINES = -DMOZ_LIBDIR="$(MOZ_LIBDIR)" -DMOZ_APP_NAME="$(MOZ_APP_NAME)" -DMOZ_SERIES="$(MOZ_SERIES)" -DMOZ_APP_BASENAME="$(MOZ_APP_BASENAME)"\ + -DMOZ_INCDIR="$(MOZ_INCDIR)" -DMOZ_IDLDIR="$(MOZ_IDLDIR)" -DMOZ_VERSION="$(MOZ_VERSION)" -DDEB_BUILD_ARCH="$(DEB_BUILD_ARCH)" \ + -DMOZ_DISPLAY_NAME="$(MOZ_DISPLAY_NAME)" -DMOZ_SYSTEM_DICTDIR="$(MOZ_SYSTEM_DICTDIR)" \ + -DMOZ_BRANDING_OPTION="$(MOZ_BRANDING_OPTION)" -DTOPSRCDIR="$(CURDIR)" -DDEB_BUILD_GNU_TYPE="$(DEB_BUILD_GNU_TYPE)" \ + -DMOZ_PREFIX="$(MOZ_PREFIX)" -DMOZ_SDKDIR="$(MOZ_SDKDIR)" -DMOZ_DISTDIR="$(MOZ_DISTDIR)" \ + -DMOZ_OBJDIR="$(MOZ_OBJDIR)" -DDEB_BUILDDIR="$(DEB_BUILDDIR)" -DMOZ_PYTHON="$(MOZ_PYTHON)" -DMOZ_PROFILE_PREFIX=".mozilla/" +ifeq (1, $(MOZ_MIN_SYSDEPS)) + DEB_DEFINES += -DMOZ_MIN_SYSDEPS +endif +ifeq (1, $(MOZ_ENABLE_BREAKPAD)) + DEB_DEFINES += -DMOZ_ENABLE_BREAKPAD +endif +ifeq (1, $(MOZ_VALGRIND)) + DEB_DEFINES += -DMOZ_VALGRIND +endif +ifeq (1,$(MOZ_NO_OPTIMIZE)) + DEB_DEFINES += -DMOZ_NO_OPTIMIZE +endif +ifeq (1, $(MOZ_USE_SYSTEM_NSPR)) + DEB_DEFINES += -DMOZ_USE_SYSTEM_NSPR + NSPR_DEPENDS = libnspr4-dev +endif +ifeq (1, $(MOZ_USE_SYSTEM_CAIRO)) + DEB_DEFINES += -DMOZ_USE_SYSTEM_CAIRO + CAIRO_DEPENDS = libcairo2-dev +endif +ifeq (1, $(MOZ_USE_SYSTEM_SQLITE)) + DEB_DEFINES += -DMOZ_USE_SYSTEM_SQLITE +endif +ifeq (1, $(MOZ_USE_SYSTEM_NSS)) + DEB_DEFINES += -DMOZ_USE_SYSTEM_NSS + NSS_DEPENDS = libnss3-dev +endif +ifeq (1,$(MOZ_USE_SYSTEM_HUNSPELL)) + DEB_DEFINES += -DMOZ_USE_SYSTEM_HUNSPELL +endif +ifeq (1,$(MOZ_WANT_UNIT_TESTS)) + DEB_DEFINES += -DMOZ_WANT_UNIT_TESTS +endif +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + DEB_DEFINES += -DDEB_HOST_GNU_TYPE="$(DEB_HOST_GNU_TYPE)" +endif +ifeq (1,$(MOZ_BUILD_PGO)) + DEB_DEFINES += -DMOZ_BUILD_PGO +endif +ifeq (1,$(shell test "$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)" -ge "1104" && echo "1")) + DEB_DEFINES += -DMOZ_DISABLE_GNOMEVFS + DEB_DEFINES += -DMOZ_DISABLE_CONTROL_CENTER +endif +ifneq (default,$(CHANNEL)) + DEB_DEFINES += -DMOZ_UPDATE_CHANNEL="$(CHANNEL)" +endif +ifeq (1,$(MOZ_DEBUG)) + DEB_DEFINES += -DMOZ_DEBUG +endif +ifneq (,$(findstring armel,$(DEB_BUILD_ARCH))) + DEB_DEFINES += -DDEB_ENABLE_THUMB2 +endif +ifeq (1,$(MOZ_ENABLE_GLOBALMENU)) + DEB_DEFINES += -DMOZ_ENABLE_GLOBALMENU +endif +ifeq (official, $(BRANDING)) + DEB_DEFINES += -DMOZ_OFFICIAL_BRANDING +endif +ifneq ($(MOZ_APP_NAME),$(MOZ_APP_BASENAME)) + DEB_DEFINES += -DMOZ_APP_RENAME +endif + +DEBIAN_EXECUTABLES = \ + $(MOZ_APP_NAME)$(MOZ_LIBDIR)/firefox.sh \ + $(NULL) + +subst_files = \ + debian/usr.bin.$(MOZ_APP_NAME) \ + debian/README.Debian \ + debian/firefox.sh \ + debian/apport/$(MOZ_APP_NAME) \ + debian/apport/$(MOZ_APP_NAME).py \ + debian/$(MOZ_APP_NAME).desktop \ + debian/$(MOZ_APP_NAME).xml \ + debian/$(MOZ_APP_NAME)-gnome-support.install \ + debian/$(MOZ_APP_NAME).dirs \ + debian/$(MOZ_APP_NAME).install \ + debian/$(MOZ_APP_NAME).links \ + debian/$(MOZ_APP_NAME).manpages \ + debian/$(MOZ_APP_NAME).menu \ + debian/$(MOZ_APP_NAME).postinst \ + debian/$(MOZ_APP_NAME).postrm \ + debian/$(MOZ_APP_NAME).preinst \ + debian/$(MOZ_APP_NAME).prerm \ + debian/$(MOZ_APP_NAME).1 \ + debian/$(MOZ_APP_NAME)-mozsymbols.install \ + debian/$(MOZ_APP_NAME)-dev.install \ + debian/$(MOZ_APP_NAME)-dev.links \ + debian/$(MOZ_APP_NAME).lintian-overrides \ + debian/$(MOZ_APP_NAME)-globalmenu.dirs \ + debian/mozconfig \ + $(NULL) + +pkgconfig_files = \ + debian/pkgconfig/mozilla-plugin.pc \ + debian/pkgconfig/libxul.pc \ + debian/pkgconfig/mozilla-nspr.pc \ + $(NULL) + +ifneq (1, $(MOZ_MIN_SYSDEPS)) +EXTRA_BD = \n\tlibnspr4-dev,\n\tlibnss3-dev,\n\tlibcairo2-dev,\n\tlibsqlite3-dev,\n\tlibpixman-1-dev,\n\tlibjpeg62-dev,\n\tlibpng12-dev,\n\tzlib1g-dev,\n\tlibhunspell-dev, +else +EXTRA_BD = $(NULL) +endif + +debian/control:: debian/control.in debian/control.langpacks debian/control.langpacks.unavail debian/locales.shipped debian/locales.unavailable + mv debian/control debian/control.old + sed -e 's/@EXTRA_BD@/$(EXTRA_BD)/g' \ + -e 's/@MOZ_APP_NAME@/$(MOZ_APP_NAME)/g' < debian/control.in > debian/control + + while read line ; \ + do \ + line=`echo $$line | sed 's/#.*//' | sed '/^$$/d'` ; \ + if [ ! -z "$$line" ] ; \ + then \ + language=`echo $$line | sed 's/\([^:]*\):*\([^:]*\):*\([^:]*\)/\2/'` ; \ + desc=`echo $$line | sed 's/\([^:]*\):*\([^:]*\):*\([^:]*\)/\3/'` ; \ + tmp=`echo $$language | sed 's/\-/_/'` ; \ + eval b=\$$$$tmp ; \ + if [ -z $$b ] ; \ + then \ + sed -e "s/@LANGCODE@/$$language/g" \ + -e "s/@LANG@/$$desc/g" \ + -e 's/@MOZ_APP_NAME@/$(MOZ_APP_NAME)/g' < debian/control.langpacks >> debian/control ; \ + eval $$tmp=1 ; \ + fi \ + fi \ + done < debian/locales.shipped + + while read line ; \ + do \ + line=`echo $$line | sed 's/#.*//' | sed '/^$$/d'` ; \ + if [ ! -z "$$line" ] ; \ + then \ + language=`echo $$line | sed 's/\([^:]*\):*\([^:]*\)/\1/'` ; \ + sed -e "s/@LANGCODE@/$$language/g" \ + -e 's/@MOZ_APP_NAME@/$(MOZ_APP_NAME)/g' < debian/control.langpacks.unavail >> debian/control ; \ + fi \ + done < debian/locales.unavailable ; \ + + if ! cmp -s debian/control debian/control.old ; \ + then \ + echo "debian/control file is out of date" ; \ + rm debian/control.old ; \ + exit 1 ; \ + fi + rm debian/control.old + +BRANCH := +ifneq (,$(MOZ_APP_NAME_SUFFIX)) + BRANCH = -$(MOZ_APP_NAME_SUFFIX) +endif +$(subst_files): $(foreach file, $(subst_files), $(subst $(BRANCH),,$(file).in)) + $(MOZ_PYTHON) $(DEB_BUILDDIR)/config/Preprocessor.py -Fsubstitution --marker="%%" $(DEB_DEFINES) $(CURDIR)/$(subst $(BRANCH),,$@.in) > $(CURDIR)/$@ + +%.pc: WCHAR_CFLAGS = $(shell cat $(MOZ_OBJDIR)/config/autoconf.mk | grep WCHAR_CFLAGS | sed 's/^[^=]*=[[:space:]]*\(.*\)$$/\1/') +%.pc: %.pc.in debian/stamp-makefile-build + $(MOZ_PYTHON) $(DEB_BUILDDIR)/$(MOZ_MOZDIR)/config/Preprocessor.py -Fsubstitution --marker="%%" $(DEB_DEFINES) -DWCHAR_CFLAGS="$(WCHAR_CFLAGS)" $(CURDIR)/$< > $(CURDIR)/$@ + +debian/usr.bin.firefox.in: + if [ '$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)' -ge '1104' ]; then \ + cp $(CURDIR)/debian/usr.bin.firefox.apparmor.11.04 $(CURDIR)/debian/usr.bin.firefox.in ; \ + elif [ '$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)' -ge '1010' ]; then \ + cp $(CURDIR)/debian/usr.bin.firefox.apparmor.10.10 $(CURDIR)/debian/usr.bin.firefox.in ; \ + elif [ "$(DISTRIB_VERSION_MAJOR)" -ge "10" ]; then \ + cp $(CURDIR)/debian/usr.bin.firefox.apparmor.10.04 $(CURDIR)/debian/usr.bin.firefox.in ; \ + else \ + cp $(CURDIR)/debian/usr.bin.firefox.apparmor.9.10 $(CURDIR)/debian/usr.bin.firefox.in ; \ + fi + +debian/stamp-buildsymbols: debian/stamp-makefile-build +ifeq (1, $(MOZ_ENABLE_BREAKPAD)) + # create build symbols + cd $(MOZ_OBJDIR); \ + $(MAKE) buildsymbols MOZ_SYMBOLS_EXTRA_BUILDID=$(shell date -d "`dpkg-parsechangelog | grep Date: | sed -e 's/^Date: //'`" +%y%m%d%H%M%S)-$(DEB_HOST_GNU_CPU) +endif + touch $@ + +compare-locales/scripts/compare-locales: + cp -r $(CURDIR)/debian/compare-locales $(CURDIR) + chmod +x $(CURDIR)/compare-locales/scripts/* + +debian/stamp-langpack-xpi-build: compare-locales/scripts/compare-locales + rm -rf $(CURDIR)/debian/l10n-mergedirs + mkdir $(CURDIR)/debian/l10n-mergedirs + + export PATH=$(CURDIR)/compare-locales/scripts/:$$PATH ; \ + export PYTHONPATH=$(CURDIR)/compare-locales/lib ; \ + cd $(MOZ_OBJDIR)/browser/locales ; \ + while read line ; \ + do \ + line=`echo $$line | sed 's/#.*//' | sed '/^$$/d'` ; \ + if [ ! -z "$$line" ] ; \ + then \ + language=`echo $$line | sed 's/\([^:]*\):*\([^:]*\):*\([^:]*\)/\1/'` ; \ + $(MAKE) merge-$$language LOCALE_MERGEDIR=$(CURDIR)/debian/l10n-mergedirs/$$language ; \ + $(MAKE) langpack-$$language LOCALE_MERGEDIR=$(CURDIR)/debian/l10n-mergedirs/$$language ; \ + fi \ + done < $(CURDIR)/debian/locales.shipped + + touch $@ + +common-build-arch:: debian/stamp-testsuite $(pkgconfig_files) + +common-build-indep:: debian/stamp-langpack-xpi-build + +common-binary-arch:: debian/stamp-buildsymbols + +common-binary-post-install-indep:: + while read line ; \ + do \ + line=`echo $$line | sed 's/#.*//' | sed '/^$$/d'` ; \ + if [ ! -z "$$line" ] ; \ + then \ + language=`echo $$line | sed 's/\([^:]*\):*\([^:]*\):*\([^:]*\)/\1/'` ; \ + pkgname=`echo $$line | sed 's/\([^:]*\):*\([^:]*\):*\([^:]*\)/\2/'` ; \ + id=`python $(CURDIR)/debian/get-xpi-id.py $(CURDIR)/$(MOZ_OBJDIR)/dist/install/$(MOZ_APP_NAME)-$(MOZ_VERSION).$${language}.langpack.xpi` ; \ + dh_installdirs -p$(MOZ_APP_NAME)-locale-$${pkgname} usr/lib/$(MOZ_APP_NAME)-addons/extensions ; \ + cp $(CURDIR)/$(MOZ_OBJDIR)/dist/install/$(MOZ_APP_NAME)-$(MOZ_VERSION).$${language}.langpack.xpi \ + $(CURDIR)/debian/$(MOZ_APP_NAME)-locale-$${pkgname}/usr/lib/$(MOZ_APP_NAME)-addons/extensions/$${id}.xpi ; \ + dh_installdirs -p$(MOZ_APP_NAME)-locale-$${pkgname} usr/lib/$(MOZ_APP_NAME)-addons/searchplugins/$${language} ; \ + cp -r $(CURDIR)/$(MOZ_OBJDIR)/dist/xpi-stage/locale-$${language}/searchplugins/*.xml \ + $(CURDIR)/debian/$(MOZ_APP_NAME)-locale-$${pkgname}/usr/lib/$(MOZ_APP_NAME)-addons/searchplugins/$${language}/. ; \ + fi \ + done < $(CURDIR)/debian/locales.shipped + +binary-install/$(MOZ_APP_NAME):: + convert -resize 32x32 debian/$(MOZ_APP_NAME)/usr/share/pixmaps/$(MOZ_APP_NAME).png debian/$(MOZ_APP_NAME)/usr/share/pixmaps/$(MOZ_APP_NAME).xpm + +ifeq (1, $(MOZ_ENABLE_GLOBALMENU)) +binary-install/$(MOZ_APP_NAME)-globalmenu:: + unzip -o -d debian/$(MOZ_APP_NAME)-globalmenu$(MOZ_PREFIX)/lib/$(MOZ_APP_NAME)-addons/extensions/globalmenu@ubuntu.com/ $(MOZ_DISTDIR)/xpi-stage/globalmenu.xpi + find debian/$(MOZ_APP_NAME)-globalmenu$(MOZ_PREFIX)/lib/$(MOZ_APP_NAME)-addons/extensions/globalmenu@ubuntu.com/ -type f -executable | xargs chmod -x +endif + +GNOME_SUPPORT_FILES = libmozgnome.so libnkgnomevfs.so + +binary-post-install/$(MOZ_APP_NAME):: compare + $(foreach file,$(GNOME_SUPPORT_FILES),rm -fv debian/$(MOZ_APP_NAME)/usr/lib/firefox-*/components/$(file);) true + +ifneq (1, $(MOZ_USE_SYSTEM_NSPR)) +binary-post-install/$(MOZ_APP_NAME)-dev:: + rm -f debian/$(MOZ_APP_NAME)-dev$(MOZ_INCDIR)/nspr/md/_linux.cfg + dh_link -p$(MOZ_APP_NAME)-dev $(MOZ_INCDIR)/nspr/prcpucfg.h $(MOZ_INCDIR)/nspr/md/_linux.cfg +endif + +common-binary-predeb-arch:: + $(foreach file,$(DEBIAN_EXECUTABLES),chmod a+x debian/$(file);) + # we want the gnome dependencies not to be in the main package at shlibdeps runtime, hence we dont + # install them at binary-install/* stage, but copy them over _after_ the shlibdeps had been generated + $(foreach file,$(GNOME_SUPPORT_FILES),mv debian/$(MOZ_APP_NAME)-gnome-support$(MOZ_LIBDIR)/components/$(file) debian/$(MOZ_APP_NAME)$(MOZ_LIBDIR)/components/;) true + touch $@ + +ifneq (1, $(MOZ_USE_SYSTEM_NSS)) +binary-predeb/$(MOZ_APP_NAME):: + $(foreach lib,libsoftokn3.so libfreebl3.so libnssdbm3.so, \ + LD_LIBRARY_PATH=debian/$(MOZ_APP_NAME)$(MOZ_LIBDIR):$$LD_LIBRARY_PATH \ + $(MOZ_DISTDIR)/bin/shlibsign -v -i debian/$(MOZ_APP_NAME)$(MOZ_LIBDIR)/$(lib);) +endif + +pre-build:: $(subst_files) + + # KDE integration + cp $(DEB_SRCDIR)/toolkit/content/widgets/dialog.xml $(DEB_SRCDIR)/toolkit/content/widgets/dialog-kde.xml + cp $(DEB_SRCDIR)/toolkit/content/widgets/preferences.xml $(DEB_SRCDIR)/toolkit/content/widgets/preferences-kde.xml + cp $(DEB_SRCDIR)/browser/base/content/browser.xul $(DEB_SRCDIR)/browser/base/content/browser-kde.xul + mkdir -p $(DEB_SRCDIR)/extensions/globalmenu + (cd debian/globalmenu && tar -cvhf - .) | (cd $(DEB_SRCDIR)/extensions/globalmenu && tar -xf -) + +get-compare-locales: + mkdir -p compare-locales-tmp + hg clone http://hg.mozilla.org/build/compare-locales compare-locales-tmp +ifdef HGTAG + cd compare-locales-tmp; \ + hg update $(HGTAG); \ + printf "TAG=%s" $(HGTAG) > REV +else + cd compare-locales-tmp; \ + CHANGESET=`hg summary | grep parent | cut -d ' ' -f 2 | cut -d : -f 2`; \ + printf "CHANGESET=%s" $$CHANGESET > REV +endif + cd compare-locales-tmp; \ + find . -name *.pyc | xargs rm -f; \ + rm -rf .hg .hgtags .hgignore tests *.py + rm -rf debian/compare-locales + mv compare-locales-tmp debian/compare-locales + +refresh-supported-locales: pre-build +ifdef LANGPACK_O_MATIC + perl debian/refresh-supported-locales.pl -s $(CURDIR)/$(DEB_BUILDDIR)/browser/locales/shipped-locales -l $(LANGPACK_O_MATIC) +else + perl debian/refresh-supported-locales.pl -s $(CURDIR)/$(DEB_BUILDDIR)/browser/locales/shipped-locales +endif + +clean:: + rm -f $(subst_files) + rm -f debian/usr.bin.firefox.in + rm -f debian/stamp-* + rm -rf debian/l10n-mergedirs + rm -rf compare-locales --- firefox-6.0+build1+nobinonly.orig/debian/firefox.install.in +++ firefox-6.0+build1+nobinonly/debian/firefox.install.in @@ -0,0 +1,40 @@ +debian/tmp@MOZ_LIBDIR@/icons +debian/tmp@MOZ_LIBDIR@/chrome/icons +debian/tmp@MOZ_LIBDIR@/components/*.manifest +debian/tmp@MOZ_LIBDIR@/components/*.so +debian/tmp@MOZ_LIBDIR@/defaults +debian/tmp@MOZ_LIBDIR@/omni.jar +debian/tmp@MOZ_LIBDIR@/*.so +debian/tmp@MOZ_LIBDIR@/@MOZ_APP_NAME@-bin +%%ifdef MOZ_ENABLE_BREAKPAD +debian/tmp@MOZ_LIBDIR@/crashreporter +%%endif +debian/tmp@MOZ_LIBDIR@/plugin-container +debian/tmp@MOZ_LIBDIR@/chrome.manifest +debian/tmp@MOZ_LIBDIR@/searchplugins/* /usr/lib/@MOZ_APP_NAME@-addons/searchplugins/en-US +debian/tmp@MOZ_LIBDIR@/blocklist.xml +debian/tmp@MOZ_LIBDIR@/extensions/\{972ce4c6-7e08-4474-a285-3208198ce6fd\} /usr/lib/@MOZ_APP_NAME@-addons/extensions +%%if MOZ_UPDATE_CHANNEL == beta +%%define SHIP_TESTPILOT +%%elif MOZ_UPDATE_CHANNEL == aurora +%%define SHIP_TESTPILOT +%%endif +%%ifdef SHIP_TESTPILOT +debian/tmp@MOZ_LIBDIR@/distribution/extensions/testpilot@labs.mozilla.com.xpi /usr/lib/@MOZ_APP_NAME@-addons/extensions +%%endif +debian/tmp@MOZ_LIBDIR@/*.ini + +debian/@MOZ_APP_NAME@.desktop /usr/share/applications + +%%ifdef MOZ_ENABLE_BREAKPAD +debian/apport/@MOZ_APP_NAME@ /etc/apport/blacklist.d +%%endif +debian/apport/@MOZ_APP_NAME@.py /usr/share/apport/package-hooks/ + +debian/firefox.sh @MOZ_LIBDIR@ +debian/distribution.ini @MOZ_LIBDIR@/distribution +debian/vendor.js @MOZ_LIBDIR@/defaults/pref + +debian/syspref.js /etc/@MOZ_APP_NAME@ + +debian/usr.bin.@MOZ_APP_NAME@ /etc/apparmor.d --- firefox-6.0+build1+nobinonly.orig/debian/firefox-dev.install.in +++ firefox-6.0+build1+nobinonly/debian/firefox-dev.install.in @@ -0,0 +1,44 @@ +debian/tmp@MOZ_INCDIR@/angle +%%ifndef MOZ_USE_SYSTEM_CAIRO +debian/tmp@MOZ_INCDIR@/cairo +%%endif +debian/tmp@MOZ_INCDIR@/harfbuzz +debian/tmp@MOZ_INCDIR@/IPC +debian/tmp@MOZ_INCDIR@/mozilla +debian/tmp@MOZ_INCDIR@/nestegg +%%ifndef MOZ_USE_SYSTEM_NSPR +debian/tmp@MOZ_INCDIR@/md +debian/tmp@MOZ_INCDIR@/nspr +debian/tmp@MOZ_INCDIR@/obsolete +debian/tmp@MOZ_INCDIR@/private +%%endif +debian/tmp@MOZ_INCDIR@/ogg +debian/tmp@MOZ_INCDIR@/sydneyaudio +debian/tmp@MOZ_INCDIR@/theora +%%if DEB_BUILD_ARCH != armel +debian/tmp@MOZ_INCDIR@/vorbis +%%else +debian/tmp@MOZ_INCDIR@/tremor +%%endif +debian/tmp@MOZ_INCDIR@/vpx +debian/tmp@MOZ_INCDIR@/*.h +debian/tmp@MOZ_INCDIR@/*.tbl +debian/tmp@MOZ_INCDIR@/*.msg +debian/tmp@MOZ_IDLDIR@/*.idl + +debian/tmp@MOZ_SDKDIR@/sdk/lib/*.a +debian/tmp@MOZ_SDKDIR@/*.h +debian/tmp@MOZ_SDKDIR@/bin +debian/tmp@MOZ_SDKDIR@/idl +debian/tmp@MOZ_SDKDIR@/include +debian/tmp@MOZ_SDKDIR@/lib + +%%ifndef MOZ_USE_SYSTEM_NSPR +debian/tmp@MOZ_SDKDIR@/sdk/bin/nspr-config +debian/pkgconfig/mozilla-nspr.pc /usr/lib/pkgconfig +%%endif +debian/tmp@MOZ_SDKDIR@/sdk/bin/xpidl +debian/tmp@MOZ_SDKDIR@/sdk/bin/xpt.py + +debian/pkgconfig/mozilla-plugin.pc /usr/lib/pkgconfig +debian/pkgconfig/libxul.pc /usr/lib/pkgconfig --- firefox-6.0+build1+nobinonly.orig/debian/distribution.ini +++ firefox-6.0+build1+nobinonly/debian/distribution.ini @@ -0,0 +1,9 @@ +[Global] +id=canonical +version=1.0 +about=Mozilla Firefox for Ubuntu + +[Preferences] +app.distributor = “canonical” +app.distributor.channel = “ubuntu” +app.partner.ubuntu = “ubuntu” --- firefox-6.0+build1+nobinonly.orig/debian/apport/firefox.in +++ firefox-6.0+build1+nobinonly/debian/apport/firefox.in @@ -0,0 +1,2 @@ +@MOZ_LIBDIR@/@MOZ_APP_NAME@-bin +@MOZ_LIBDIR@/plugin-container --- firefox-6.0+build1+nobinonly.orig/debian/apport/firefox.py.in +++ firefox-6.0+build1+nobinonly/debian/apport/firefox.py.in @@ -0,0 +1,247 @@ +'''firefox apport hook draft + +/usr/share/apport/package-hooks/firefox.py + +Appends to apport's firefox default report: the files pluginreg.dat and +profiles.ini, and also a summary of all the extensions loaded on each firefox +profile (the summary is the extension's name, it's version, and the id) +obtained by parsing each extension's install.rdf file. + +Copyright (c) 2007: Hilario J. Montoliu <hmontoliu@gmail.com> + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. See http://www.gnu.org/copyleft/gpl.html for +the full text of the license. +''' + +import os +import ConfigParser +import cStringIO +from xml.dom import minidom +import re +from zipfile import ZipFile +from subprocess import Popen + +def extensions_ini_parser(extensions_ini_file): + '''parses profile's extensions.ini file and returns a tuple: + ((gre extensions, app extensions, local extensions), (gre themes, app + themes, local themes))''' + parser = ConfigParser.ConfigParser() + parser.read(extensions_ini_file) + ext_ini_d = {} + for section in parser.sections(): + section_system, section_user, my_ext = [], [], '' + for extension in parser.options(section): + my_ext = parser.get(section, extension) + if '/usr/lib' in my_ext or '/usr/share' in my_ext: + section_system.append((my_ext)) + else: + section_user.append((my_ext)) + ext_ini_d[section] = (section_system, section_user) + return (ext_ini_d['ExtensionDirs'], ext_ini_d['ThemeDirs']) + +def install_ini_parser(extension_path): + '''parses each extension's install.rdf and returns string: + extension name, its version and the id.''' + if not os.path.exists(extension_path): + return ''' %s does not exist (old profile?)''' % extension_path + + if not os.path.isdir(extension_path): + try: + dom_doc = minidom.parseString(ZipFile(extension_path).open('install.rdf').read()) + except: + return ''' %s is not unpacked, and we can't inspect its contents''' % extension_path + else: + dom_doc = minidom.parse(os.path.join(extension_path, 'install.rdf')) + + refs_dict = {'em:version': '', 'em:id': '', 'em:name': ''} + parse_err = '%s (Not Parsed)\n' % extension_path + for key in refs_dict.keys(): + this_key = '' + try: + document_ref = dom_doc.getElementsByTagName('RDF:Description')[0].attributes + this_key = document_ref[key].value + except: + try: + document_ref = dom_doc.getElementsByTagName('Description')[0].attributes + this_key = document_ref[key].value + except: + try: + this_key = dom_doc.getElementsByTagName(key)[0].childNodes[0].data + except: + return parse_err + try: # avoid problems with encodings. + print >> cStringIO.StringIO(), this_key + refs_dict[key] = this_key + except UnicodeEncodeError: + refs_dict[key] = repr(this_key) + return '''%(em:name)s (version: %(em:version)s) -\tid: %(em:id)s''' % refs_dict + +def extension_summary_helper(extension_list, section_name, profile_path, alt_output = 1): + '''does some output proccessing for extensionSummary''' + summary = '' + if len(extension_list) > 0: + summary += ''' %s:\n''' % section_name + for extension in extension_list: + summary += ''' %s\n''' % re.sub(profile_path, '/<hidden_local_profile>', install_ini_parser(extension)) + else: + if alt_output == 1: # if 0, don't output anything + summary += ''' No %s in this Profile.\n''' % section_name + summary += '''\n''' + return summary + +def recent_kernlog(pattern): + '''Extract recent messages from kern.log or message which match a regex. + pattern should be a "re" object. ''' + lines = '' + if os.path.exists('/var/log/kern.log'): + file = '/var/log/kern.log' + elif os.path.exists('/var/log/messages'): + file = '/var/log/messages' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def recent_auditlog(pattern): + '''Extract recent messages from kern.log or message which match a regex. + pattern should be a "re" object. ''' + lines = '' + if os.path.exists('/var/log/audit/audit.log'): + file = '/var/log/audit/audit.log' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def add_info(report): + ddproc = Popen(['dpkg-divert', '--truename', '/usr/bin/@MOZ_APP_NAME@'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + truename = ddproc.communicate() + if ddproc.returncode == 0 and truename[0].strip() != '/usr/bin/@MOZ_APP_NAME@': + ddproc = Popen(['dpkg-divert', '--listpackage', '/usr/bin/@MOZ_APP_NAME@'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + diverter = ddproc.communicate() + report['UnreportableReason'] = "/usr/bin/@MOZ_APP_NAME@ has been diverted by a third party package (%s)" % diverter[0].strip() + return + + if not apport.packaging.is_distro_package(report['Package'].split()[0]): + report['ThirdParty'] = 'True' + report['CrashDB'] = 'ubuntu-mozilla-ppa-bugs' + + packages = ['@MOZ_APP_NAME@', + 'flashplugin-installer', + 'adobe-flashplugin', + 'icedtea-plugin'] + + versions = '' + for package in packages: + try: + version = packaging.get_version(package) + except ValueError: + version = 'N/A' + if version is None: + version = 'N/A' + versions += '%s %s\n' % (package, version) + report['FirefoxPackages'] = versions + + + '''adds hooked info into the apport report.''' + config_dir = os.path.join(os.environ['HOME'], '.mozilla', '@MOZ_APP_NAME@') + profiles_d = {} + # append profiles.ini file & parse it: + profiles_ini = os.path.join(config_dir,'profiles.ini') + if os.path.exists(profiles_ini): + profiles_ini_contents = "" + for line in open(profiles_ini).readlines(): + if not 'Path=' in line: + profiles_ini_contents += line + pbuffer = cStringIO.StringIO() + print >> pbuffer, profiles_ini_contents + pbuffer.seek(0) + report['profiles.ini'] = pbuffer.read() + # parse profiles.ini: + profile_parser = ConfigParser.ConfigParser() + profile_parser.read(profiles_ini) + for section in profile_parser.sections(): + if profile_parser.has_option(section, 'Name') and profile_parser.has_option(section, 'Path'): + if profile_parser.has_option(section, 'Default'): + is_default = profile_parser.get(section, 'Default') + else: + is_default = 0 + profiles_d[profile_parser.get(section, 'Name')] = (os.path.join(config_dir, profile_parser.get(section, 'Path')), is_default) + + # summarize the extensions loaded on each profile (either global and local): + # also append the pluginreg.dat file of the default profile (maybe in a + # future append each profile's pluginreg.dat file) + extensions_dict, themes_dict, extension_summary = {}, {}, '' + for profile_name in profiles_d.keys(): + profile_name_apport = "".join(x for x in profile_name if x.isalnum()) + profile_path, is_default = profiles_d[profile_name] + extensions_ini = os.path.join(profile_path, 'extensions.ini') + pluginreg_dat = os.path.join(profile_path, 'pluginreg.dat') + if os.path.exists(pluginreg_dat): + if is_default == '1': + report['default_profile_pluginreg.dat'] = re.sub(profile_path, '/<hidden_local_profile>', open(pluginreg_dat).read()) + else: + report['profile_%s_pluginreg.dat' % profile_name_apport] = re.sub(profile_path, '/<hidden_local_profile>', open(pluginreg_dat).read()) + if os.path.exists(extensions_ini): + # attach each profile's extensions.ini too (not enabled). + #report['extensions.ini (profile: %s)' % profile_name ] = open(extensions_ini).read() + (extensions_dict['system_extensions'], extensions_dict['user_extensions']), \ + (themes_dict['system_theme'], themes_dict['user_theme']) = extensions_ini_parser(extensions_ini) + if is_default == '1': + is_default_str = ''' (The Default):''' + else: is_default_str = ''':''' + extension_summary += '''Profile "%s"%s\n\n''' % (profile_name, is_default_str) + extension_summary += extension_summary_helper(extensions_dict['system_extensions'], 'System Extensions', profile_path) + extension_summary += extension_summary_helper(extensions_dict['user_extensions'], 'User Extensions', profile_path) + extension_summary += extension_summary_helper(themes_dict['system_theme'], 'System Themes', profile_path, 0) + extension_summary += extension_summary_helper(themes_dict['user_theme'], 'User Themes', profile_path, 0) + wbuffer = cStringIO.StringIO() # it's needed for propper apport attachments + print >> wbuffer, extension_summary + wbuffer.seek(0) + report['ExtensionSummary'] = wbuffer.read() + + # Get apparmor stuff if the profile isn't disabled. copied from + # source_apparmor.py until apport runs hooks via attach_related_packages + apparmor_disable_dir = "/etc/apparmor.d/disable" + add_apparmor = True + if os.path.isdir(apparmor_disable_dir): + for f in os.listdir(apparmor_disable_dir): + if f.startswith("usr.bin.@MOZ_APP_NAME@"): + add_apparmor = False + break + if add_apparmor: + attach_related_packages(report, ['apparmor', 'libapparmor1', + 'libapparmor-perl', 'apparmor-utils', 'auditd', 'libaudit0']) + + attach_file(report, '/proc/version_signature', 'ProcVersionSignature') + attach_file(report, '/proc/cmdline', 'ProcCmdline') + + sec_re = re.compile('audit\(|apparmor|selinux|security', re.IGNORECASE) + report['KernLog'] = recent_kernlog(sec_re) + + if os.path.exists("/var/log/audit"): + # this needs to be run as root + report['AuditLog'] = recent_auditlog(sec_re) + + # debug (comment on production) + # return report + +#### debug #### +# (uncomment the 'return report' at add_report()) +if __name__ == "__main__": + import apport + from apport import packaging + D = {} + D['Package'] = '@MOZ_APP_NAME@' + add_info(D) + for KEY in D.keys(): + print '''-------------------%s: ------------------\n''' % KEY, D[KEY] --- firefox-6.0+build1+nobinonly.orig/debian/mozclient/firefox.conf +++ firefox-6.0+build1+nobinonly/debian/mozclient/firefox.conf @@ -0,0 +1,28 @@ +# Copyright (c) 2008-2009 Fabien Tassin <fta@sofaraway.org> +# Description: Project firefox 4.0 +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +MOZCLIENT_APPNAME = firefox +MOZCLIENT_PROJECT = mozilla-release +MOZCLIENT_VCS = hg +MOZCLIENT_VCS_LOC = http://hg.mozilla.org/releases/ +MOZCLIENT_FILE = mozilla/browser/config/version.txt +MOZCLIENT_GETVERSION = sed -e 's/pre//; s/\([ab]\)\([0-9]*\)/~\1\2/' mozilla/browser/config/version.txt +#MOZCLIENT_POSTCOCMD = cd mozilla && python client.py checkout +MOZCLIENT_GETDATE = sh debian/moz-rev.sh http://hg.mozilla.org/releases/mozilla-release default +MOZCLIENT_EMBEDDED = 1 +MOZCLIENT_WANTMOZDIR = 1 +MOZCLIENT_POSTCOCMD = bzr branch lp:~mozillateam/firefox-l10n/l10n-stable mozilla/l10n && rm -rf mozilla/l10n/.bzr --- firefox-6.0+build1+nobinonly.orig/debian/mozclient/firefox.mk +++ firefox-6.0+build1+nobinonly/debian/mozclient/firefox.mk @@ -0,0 +1,52 @@ +# -*- mode: makefile; coding: utf-8 -*- + +# Copyright (c) 2008-2009 Fabien Tassin <fta@sofaraway.org> +# Description: Project firefox 4.0 +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-13.7 USA. + +include /usr/share/mozilla-devscripts/mozclient.mk + +COMPARE_FILTER_PRE_IN := sed \ + -e 's,foo,bar,' \ + $(NULL) + +COMPARE_FILTER_PRE_OUT := sed \ + -e 's,^usr/lib/firefox-4.0[^/]*/,,' \ + $(NULL) + +COMPARE_FILTER_IN := sed \ + -e 's,^usr/lib/firefox-4.0[^/]*/searchplugins,usr/lib/firefox-addons/searchplugins,' \ + -e 's,^usr/lib/firefox-4.0[^/]*/extensions/inspector@mozilla.org/.*,,' \ + -e 's,^usr/lib/firefox-4.0[^/]*/extensions,usr/lib/xulrunner-addons/extensions,' \ + -e 's,^usr/lib/firefox-4.0[^/]*/defaults/profile,etc/firefox-4.0/profile,' \ + -e 's,^usr/lib/firefox-4.0[^/]*/\(old-homepage-default.properties\|README.txt\|removed-files\),,' \ + -e 's,^usr/lib/firefox-4.0[^/]*/.autoreg,,' \ + -e 's,^etc/firefox-4.0[^/]*/.autoreg,,' \ + $(NULL) + +COMPARE_FILTER_OUT := sed \ + -e 's,^DEBIAN/.*,,' \ + -e 's,^usr/lib/debug/.*,,' \ + -e 's,^usr/share/doc/.*,,' \ + -e 's,^usr/share/menu/.*,,' \ + -e 's,^usr/share/applications/.*,,' \ + -e 's,^usr/share/bug/firefox-4.0/presubj,,' \ + -e 's,^etc/firefox-4.0/\(firefoxrc\|pref/firefox.js\),,' \ + -e 's,^usr/lib/firefox-addons/searchplugins/\(debsearch\|wikipedia\).\(gif\|src\),,' \ + -e 's,^usr/lib/firefox-4.0[^/]*/\(firefox-4.0-restart-required.update-notifier\|firefox.cfg\|firefox.sh\|ffox-4-beta-profile-migration-dialog\),,' \ + $(NULL) + +include /usr/share/mozilla-devscripts/compare.mk --- firefox-6.0+build1+nobinonly.orig/debian/patches/dont-reset-user-prefs-on-upgrade.patch +++ firefox-6.0+build1+nobinonly/debian/patches/dont-reset-user-prefs-on-upgrade.patch @@ -0,0 +1,78 @@ +Description: This bug is due to the fact, applications are restarted before extension + defaults are loaded. + + To reproduce, choose any preference and set the values like: + system default: + pref("prefkey",systemvalue); + extension default: + pref("prefkey", extensiondefault); + user pref: + user_pref("prefkey", systemvalue); + + Next, trigger application behaviour similar to upgrade by removing compreg.dat + from profile and start the application. + + Result: + User sees extensiondefault after upgrade, because the user_pref has been + eliminated ... which is definitly not what the user expects because he explicitly + had *systemvalue* set before the upgrade. + + Evaluation: + The bug happens because restart is performed *before* extension defaults have been + loaded and the prefapi.cpp always eliminate user preference if the user preference + is equal to the actual default (which happens to be extensiondefault normally - so + no reset, but is systemvalue during restart). + + Fix: + 1. savePrefs should not try to be smart ... this patch removes the heuristic that guesses + whether a setting can be eliminated or not; it should be sufficient to only eliminate + prefs in hashPrefs. + + 2. This patch prevents hashPrefs from eliminating the user pref in case we are in + *startup* ... unfortunately no such state info exists, which lets us guess that + we are in startup for the previously not dealt case: !set_default && + !pref_ValueChanged(pref->defaultPref, value, type) && !PREF_HAS_USER_VALUE(pref). + + If is the case we explicitly remember that this setting is a user-pref ... + even though it might be temporarily equal to the default pref. +Author: Alexander Sack <asac@ubuntu.com> +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=467766 +Bug-Ubuntu: https://launchpad.net/bugs/548866 +Forwarded: https://bugzilla.mozilla.org/attachment.cgi?id=351173 + +--- + modules/libpref/src/prefapi.cpp | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +--- a/modules/libpref/src/prefapi.cpp ++++ b/modules/libpref/src/prefapi.cpp +@@ -328,10 +328,7 @@ pref_savePref(PLDHashTable *table, PLDHa + // where we're getting our pref from + PrefValue* sourcePref; + +- if (PREF_HAS_USER_VALUE(pref) && +- pref_ValueChanged(pref->defaultPref, +- pref->userPref, +- (PrefType) PREF_TYPE(pref))) { ++ if (PREF_HAS_USER_VALUE(pref)) { + sourcePref = &pref->userPref; + } else { + if (argData->saveTypes == SAVE_ALL_AND_DEFAULTS) { +@@ -748,6 +745,17 @@ nsresult pref_HashPref(const char *key, + pref->flags &= ~PREF_USERSET; + if (!PREF_IS_LOCKED(pref)) + valueChanged = PR_TRUE; ++ } else { ++ // this is tricky: we have !set_default ... ++ // thus we are setting a user pref; however the user ++ // pref set is same as *current default*; this normally ++ // means to un-set ... however since we have ++ // !PREF_HAS_USER_VALUE(pref) this can only be during ++ // startup ++ pref_SetValue(&pref->userPref, value, type); ++ pref->flags |= PREF_USERSET; ++ if (!PREF_IS_LOCKED(pref)) ++ valueChanged = PR_TRUE; + } + } + else if ( !PREF_HAS_USER_VALUE(pref) || --- firefox-6.0+build1+nobinonly.orig/debian/patches/plugin-for-mimetype-pref.patch +++ firefox-6.0+build1+nobinonly/debian/patches/plugin-for-mimetype-pref.patch @@ -0,0 +1,57 @@ +Description: We introduce a new preference that allows users to set a preferred + plugin for a given mime-type. + + For example: + + pref ("modules.plugins.mimetype.application/x-shockwave-flash", "/usr/lib/firefox-3.0.1/plugins/libflashplayer.so") + + would make the flashplyer installed in that location the preferred one to use. + + In case the path is not valid, we just go ahead and search for the first match + given the mime-type. +Author: Alexander Sack <asac@ubuntu.com> +Forwarded: no + +--- a/dom/plugins/base/nsPluginHost.cpp ++++ b/dom/plugins/base/nsPluginHost.cpp +@@ -1647,6 +1647,40 @@ nsPluginHost::FindPluginForType(const ch + + LoadPlugins(); + ++ nsCOMPtr<nsIPrefBranch> pref (do_QueryInterface(mPrefService)); ++ ++ char *preferredPluginPath = NULL; ++ nsCAutoString mimetypePrefString ("modules.plugins.mimetype."); ++ mimetypePrefString.Append(aMimeType); ++ // FIXME: preferredPluginPath is leaked. Ouch ++ nsresult rv = pref->GetCharPref(mimetypePrefString.get(), &preferredPluginPath); ++ ++ if(NS_SUCCEEDED(rv) && preferredPluginPath) { ++ // FIXME: This should really check if the selected plugin can handle ++ // the specified mimetype and that it is enabled, and just reject the ++ // pref if not ++ nsPluginTag *plugins = mPlugins; ++ while (plugins) { ++ if (0 == PL_strcasecmp(plugins->mFileName.get(), preferredPluginPath) || ++ 0 == PL_strcasecmp(plugins->mFullPath.get(), preferredPluginPath)) { ++ return plugins; ++ } ++ plugins = plugins->mNext; ++ } ++ ++ // now lets search for substrings ++ plugins=mPlugins; ++ while (plugins) { ++ if (nsnull != PL_strstr(plugins->mFileName.get(), preferredPluginPath) || ++ nsnull != PL_strstr(plugins->mFullPath.get(), preferredPluginPath)) { ++ return plugins; ++ } ++ plugins = plugins->mNext; ++ } ++ } ++ ++ // if there is no pref for this mime-type, or if the plugin named in pref ++ // isn't found, we pick the first that matches for this mime-type + nsPluginTag *plugin = mPlugins; + while (plugin) { + if (!aCheckEnabled || plugin->IsEnabled()) { --- firefox-6.0+build1+nobinonly.orig/debian/patches/normalize-distribution-searchplugins.patch +++ firefox-6.0+build1+nobinonly/debian/patches/normalize-distribution-searchplugins.patch @@ -0,0 +1,33 @@ +Description: Normalize the paths to distribution searchplugins so that + associated metadata is not lost on upgrades (when the install location changes) +Author: Alexander Sack <asac@ubuntu.com> +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=534663 +Forwarded: no +--- + toolkit/components/search/nsSearchService.js | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/toolkit/components/search/nsSearchService.js ++++ b/toolkit/components/search/nsSearchService.js +@@ -54,6 +54,7 @@ const MODE_APPEND = 0x10; + const MODE_TRUNCATE = 0x20; + + // Directory service keys ++const NS_XPCOM_CURRENT_PROCESS_DIR = "XCurProcD"; + const NS_APP_SEARCH_DIR_LIST = "SrchPluginsDL"; + const NS_APP_USER_SEARCH_DIR = "UsrSrchPlugns"; + const NS_APP_SEARCH_DIR = "SrchPlugns"; +@@ -2776,6 +2777,13 @@ SearchService.prototype = { + if (!file.isFile() || file.fileSize == 0 || file.isHidden()) + continue; + ++ var appdirstr = getDir (NS_XPCOM_CURRENT_PROCESS_DIR).path ++ + "/distribution/searchplugins"; ++ ++ // normalize distribution searchplugins if they are following links ++ if (file.path.indexOf(appdirstr) == 0) ++ file.normalize(); ++ + var fileURL = NetUtil.ioService.newFileURI(file).QueryInterface(Ci.nsIURL); + var fileExtension = fileURL.fileExtension.toLowerCase(); + var isWritable = isInProfile && file.isWritable(); --- firefox-6.0+build1+nobinonly.orig/debian/patches/firefox-kde.patch +++ firefox-6.0+build1+nobinonly/debian/patches/firefox-kde.patch @@ -0,0 +1,432 @@ +Description: Add KDE integration to Firefox (browser parts) +Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> +Author: Felix Geyer <debfx-pkg@fobos.de> +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 +Bug-Ubuntu: https://launchpad.net/bugs/494067 +Bug-OpenSUSE: https://bugzilla.novell.com/show_bug.cgi?id=170055 +Forwarded: no + +--- a/browser/base/content/browser-kde.xul ++++ b/browser/base/content/browser-kde.xul +@@ -199,7 +199,7 @@ + </row> + <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/> + <hbox id="editBookmarkPanelBottomButtons" pack="end"> +-#ifndef XP_UNIX ++#ifdef XP_UNIX + <button id="editBookmarkPanelDoneButton" + class="editBookmarkPanelBottomButton" + label="&editBookmark.done.label;" +--- a/browser/base/jar.mn ++++ b/browser/base/jar.mn +@@ -26,6 +26,8 @@ browser.jar: + * content/browser/browser.css (content/browser.css) + * content/browser/browser.js (content/browser.js) + * content/browser/browser.xul (content/browser.xul) ++* content/browser/browser-kde.xul (content/browser-kde.xul) ++% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde + * content/browser/browser-tabPreviews.xml (content/browser-tabPreviews.xml) + * content/browser/fullscreen-video.xhtml (content/fullscreen-video.xhtml) + * content/browser/inspector.html (content/inspector.html) +--- a/browser/components/build/nsModule.cpp ++++ b/browser/components/build/nsModule.cpp +@@ -46,7 +46,7 @@ + #elif defined(XP_MACOSX) + #include "nsMacShellService.h" + #elif defined(MOZ_WIDGET_GTK2) +-#include "nsGNOMEShellService.h" ++#include "nsUnixShellService.h" + #endif + + #include "nsProfileMigrator.h" +@@ -77,8 +77,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(Directory + NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindowsShellService) + #elif defined(XP_MACOSX) + NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService) +-#elif defined(MOZ_WIDGET_GTK2) +-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) + #endif + + #if !defined(XP_OS2) +@@ -122,7 +120,7 @@ static const mozilla::Module::CIDEntry k + #if defined(XP_WIN) + { &kNS_SHELLSERVICE_CID, false, NULL, nsWindowsShellServiceConstructor }, + #elif defined(MOZ_WIDGET_GTK2) +- { &kNS_SHELLSERVICE_CID, false, NULL, nsGNOMEShellServiceConstructor }, ++ { &kNS_SHELLSERVICE_CID, false, NULL, nsUnixShellServiceConstructor }, + #endif + { &kNS_FEEDSNIFFER_CID, false, NULL, nsFeedSnifferConstructor }, + { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, NULL, AboutRedirector::Create }, +--- a/browser/components/shell/src/Makefile.in ++++ b/browser/components/shell/src/Makefile.in +@@ -57,7 +57,8 @@ ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) + CPPSRCS = nsMacShellService.cpp + else + ifeq ($(MOZ_WIDGET_TOOLKIT), gtk2) +-CPPSRCS = nsGNOMEShellService.cpp ++CPPSRCS = nsUnixShellService.cpp nsGNOMEShellService.cpp nsKDEShellService.cpp ++LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre + endif + endif + endif +--- /dev/null ++++ b/browser/components/shell/src/nsKDEShellService.cpp +@@ -0,0 +1,193 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is Shell Service. ++ * ++ * The Initial Developer of the Original Code is mozilla.org. ++ * Portions created by the Initial Developer are Copyright (C) 2004 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either the GNU General Public License Version 2 or later (the "GPL"), or ++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++#include "nsKDEShellService.h" ++#include "nsShellService.h" ++#include "nsKDEUtils.h" ++#include "nsCOMPtr.h" ++#include "nsIPrefService.h" ++#include "nsIProcess.h" ++#include "nsILocalFile.h" ++#include "nsServiceManagerUtils.h" ++#include "nsComponentManagerUtils.h" ++ ++nsresult ++nsKDEShellService::Init() ++ { ++ if( !nsKDEUtils::kdeSupport()) ++ return NS_ERROR_NOT_AVAILABLE; ++ return NS_OK; ++ } ++ ++NS_IMPL_ISUPPORTS1(nsKDEShellService, nsIShellService) ++ ++NS_IMETHODIMP ++nsKDEShellService::IsDefaultBrowser(PRBool aStartupCheck, ++ PRBool* aIsDefaultBrowser) ++ { ++ *aIsDefaultBrowser = PR_FALSE; ++ if (aStartupCheck) ++ mCheckedThisSession = PR_TRUE; ++ nsCStringArray command; ++ command.AppendCString( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" )); ++ if( nsKDEUtils::command( command )) ++ *aIsDefaultBrowser = PR_TRUE; ++ return NS_OK; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::SetDefaultBrowser(PRBool aClaimAllTypes, ++ PRBool aForAllUsers) ++ { ++ nsCStringArray command; ++ command.AppendCString( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" )); ++ command.AppendCString( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" )); ++ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::GetShouldCheckDefaultBrowser(PRBool* aResult) ++{ ++ // If we've already checked, the browser has been started and this is a ++ // new window open, and we don't want to check again. ++ if (mCheckedThisSession) { ++ *aResult = PR_FALSE; ++ return NS_OK; ++ } ++ ++ nsCOMPtr<nsIPrefBranch> prefs; ++ nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID)); ++ if (pserve) ++ pserve->GetBranch("", getter_AddRefs(prefs)); ++ ++ if (prefs) ++ prefs->GetBoolPref(PREF_CHECKDEFAULTBROWSER, aResult); ++ ++ return NS_OK; ++} ++ ++NS_IMETHODIMP ++nsKDEShellService::SetShouldCheckDefaultBrowser(PRBool aShouldCheck) ++{ ++ nsCOMPtr<nsIPrefBranch> prefs; ++ nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID)); ++ if (pserve) ++ pserve->GetBranch("", getter_AddRefs(prefs)); ++ ++ if (prefs) ++ prefs->SetBoolPref(PREF_CHECKDEFAULTBROWSER, aShouldCheck); ++ ++ return NS_OK; ++} ++ ++NS_IMETHODIMP ++nsKDEShellService::SetDesktopBackground(nsIDOMElement* aElement, ++ PRInt32 aPosition) ++ { ++ return NS_ERROR_NOT_IMPLEMENTED; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::GetDesktopBackgroundColor(PRUint32 *aColor) ++ { ++ return NS_ERROR_NOT_IMPLEMENTED; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::SetDesktopBackgroundColor(PRUint32 aColor) ++ { ++ return NS_ERROR_NOT_IMPLEMENTED; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::OpenApplication(PRInt32 aApplication) ++ { ++ nsCStringArray command; ++ if( aApplication == APPLICATION_MAIL ) ++ command.AppendCString( NS_LITERAL_CSTRING( "OPENMAIL" )); ++ else if( aApplication == APPLICATION_NEWS ) ++ command.AppendCString( NS_LITERAL_CSTRING( "OPENNEWS" )); ++ else ++ return NS_ERROR_NOT_IMPLEMENTED; ++ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::OpenApplicationWithURI(nsILocalFile* aApplication, const nsACString& aURI) ++ { ++ nsCStringArray command; ++ command.AppendCString( NS_LITERAL_CSTRING( "RUN" )); ++ nsCString app; ++ nsresult rv = aApplication->GetNativePath( app ); ++ NS_ENSURE_SUCCESS( rv, rv ); ++ command.AppendCString( app ); ++ command.AppendCString( aURI ); ++ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; ++ } ++ ++NS_IMETHODIMP ++nsKDEShellService::GetDefaultFeedReader(nsILocalFile** _retval) ++ { ++ *_retval = nsnull; ++ ++ nsCStringArray command; ++ command.AppendCString( NS_LITERAL_CSTRING( "GETDEFAULTFEEDREADER" )); ++ nsCStringArray output; ++ if( !nsKDEUtils::command( command, &output ) || output.Count() != 1 ) ++ return NS_ERROR_FAILURE; ++ ++ nsCString path; ++ path = *output[ 0 ]; ++ if (path.IsEmpty()) ++ return NS_ERROR_FAILURE; ++ ++ nsresult rv; ++ nsCOMPtr<nsILocalFile> defaultReader = ++ do_CreateInstance("@mozilla.org/file/local;1", &rv); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = defaultReader->InitWithNativePath(path); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ PRBool exists; ++ rv = defaultReader->Exists(&exists); ++ NS_ENSURE_SUCCESS(rv, rv); ++ if (!exists) ++ return NS_ERROR_FAILURE; ++ ++ NS_ADDREF(*_retval = defaultReader); ++ return NS_OK; ++ } +--- /dev/null ++++ b/browser/components/shell/src/nsKDEShellService.h +@@ -0,0 +1,59 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is Shell Service. ++ * ++ * The Initial Developer of the Original Code is mozilla.org. ++ * Portions created by the Initial Developer are Copyright (C) 2004 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either the GNU General Public License Version 2 or later (the "GPL"), or ++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++#ifndef nskdeshellservice_h____ ++#define nskdeshellservice_h____ ++ ++#include "nsIShellService.h" ++#include "nsStringAPI.h" ++ ++class nsKDEShellService : public nsIShellService ++{ ++public: ++ nsKDEShellService() : mCheckedThisSession(PR_FALSE) { } ++ ++ NS_DECL_ISUPPORTS ++ NS_DECL_NSISHELLSERVICE ++ ++ nsresult Init() NS_HIDDEN; ++ ++private: ++ ~nsKDEShellService() {} ++ ++ PRPackedBool mCheckedThisSession; ++}; ++ ++#endif // nskdeshellservice_h____ +--- /dev/null ++++ b/browser/components/shell/src/nsUnixShellService.cpp +@@ -0,0 +1,52 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is Shell Service. ++ * ++ * The Initial Developer of the Original Code is mozilla.org. ++ * Portions created by the Initial Developer are Copyright (C) 2004 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either the GNU General Public License Version 2 or later (the "GPL"), or ++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++#include "nsUnixShellService.h" ++#include "nsGNOMEShellService.h" ++#include "nsKDEShellService.h" ++#include "nsKDEUtils.h" ++#include "mozilla/ModuleUtils.h" ++ ++NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) ++NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init) ++ ++NS_METHOD ++nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult) ++{ ++ if( nsKDEUtils::kdeSupport()) ++ return nsKDEShellServiceConstructor( aOuter, aIID, aResult ); ++ return nsGNOMEShellServiceConstructor( aOuter, aIID, aResult ); ++} +--- /dev/null ++++ b/browser/components/shell/src/nsUnixShellService.h +@@ -0,0 +1,45 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is Shell Service. ++ * ++ * The Initial Developer of the Original Code is mozilla.org. ++ * Portions created by the Initial Developer are Copyright (C) 2004 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either the GNU General Public License Version 2 or later (the "GPL"), or ++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++#ifndef nsunixshellservice_h____ ++#define nsunixshellservice_h____ ++ ++#include "nsIShellService.h" ++ ++NS_METHOD ++nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult); ++ ++#endif // nsunixshellservice_h____ --- firefox-6.0+build1+nobinonly.orig/debian/patches/unity-globalmenu-build-support.patch +++ firefox-6.0+build1+nobinonly/debian/patches/unity-globalmenu-build-support.patch @@ -0,0 +1,66 @@ +Description: Support building globalmenu-extension from the Firefox source +Author: Chris Coulson <chris.coulson@canonical.com> +Forwarded: not-needed + +--- a/config/autoconf.mk.in ++++ b/config/autoconf.mk.in +@@ -555,6 +555,11 @@ MOZ_ENABLE_D3D10_LAYER = @MOZ_ENABLE_D3 + MOZ_GTK2_CFLAGS = @MOZ_GTK2_CFLAGS@ + MOZ_GTK2_LIBS = @MOZ_GTK2_LIBS@ + ++DBUSMENU_CFLAGS = @DBUSMENU_CFLAGS@ ++DBUSMENU_LIBS = @DBUSMENU_LIBS@ ++ ++UNITY_GLOBALMENU = @UNITY_GLOBALMENU@ ++ + MOZ_QT_CFLAGS = @MOZ_QT_CFLAGS@ + MOZ_QT_LIBS = @MOZ_QT_LIBS@ + MOZ_ENABLE_QTNETWORK = @MOZ_ENABLE_QTNETWORK@ +--- a/config/system-headers ++++ b/config/system-headers +@@ -395,6 +395,10 @@ LFocusBox.h + LGrafPortView.h + LHandleStream.h + libc_r.h ++#ifdef UNITY_GLOBALMENU ++libdbusmenu-glib/server.h ++libdbusmenu-gtk/menuitem.h ++#endif + libelf.h + libelf/libelf.h + libgen.h +@@ -1030,6 +1034,11 @@ osso-mem.h + #ifdef MOZ_ENABLE_GIO + gio/gio.h + #endif ++#ifdef UNITY_GLOBALMENU ++#ifndef MOZ_ENABLE_GIO ++gio/gio.h ++#endif ++#endif + #ifdef MOZ_ENABLE_LIBCONIC + conic/conicconnection.h + conic/conicconnectionevent.h +--- a/configure.in ++++ b/configure.in +@@ -8810,6 +8810,20 @@ AC_SUBST(MOZ_CAIRO_LIBS) + AC_SUBST(MOZ_TREE_PIXMAN) + + dnl ======================================================== ++dnl Dbus-Menu ++dnl ======================================================== ++ ++UNITY_GLOBALMENU=0 ++if test `echo "$MOZ_EXTENSIONS" | grep -c globalmenu` -ne 0; then ++ PKG_CHECK_MODULES(DBUSMENU, dbusmenu-gtk-0.4 gio-2.0) ++ UNITY_GLOBALMENU=1 ++ AC_SUBST(DBUSMENU_CFLAGS) ++ AC_SUBST(DBUSMENU_LIBS) ++ AC_DEFINE(UNITY_GLOBALMENU) ++fi ++AC_SUBST(UNITY_GLOBALMENU) ++ ++dnl ======================================================== + dnl qcms + dnl ======================================================== + --- firefox-6.0+build1+nobinonly.orig/debian/patches/ubuntu-codes-google.patch +++ firefox-6.0+build1+nobinonly/debian/patches/ubuntu-codes-google.patch @@ -0,0 +1,138 @@ +Description: Update the Google search URL +Author: Chris Coulson <chris.coulson@canonical.com> +Forwarded: not-needed + +--- a/browser/locales/en-US/searchplugins/google.xml ++++ b/browser/locales/en-US/searchplugins/google.xml +@@ -5,13 +5,11 @@ + <Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> + <Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}&q={searchTerms}"/> + <Url type="text/html" method="GET" template="http://www.google.com/search"> ++ <Param name="client" value="ubuntu"/> ++ <Param name="channel" value="fs"/> + <Param name="q" value="{searchTerms}"/> + <Param name="ie" value="utf-8"/> + <Param name="oe" value="utf-8"/> +- <Param name="aq" value="t"/> +- <!-- Dynamic parameters --> +- <Param name="rls" value="{moz:distributionID}:{moz:locale}:{moz:official}"/> +- <MozParam name="client" condition="defaultEngine" trueValue="firefox-a" falseValue="firefox"/> + </Url> + <SearchForm>http://www.google.com/</SearchForm> + </SearchPlugin> +--- a/l10n/bg/browser/searchplugins/google.xml ++++ b/l10n/bg/browser/searchplugins/google.xml +@@ -5,13 +5,11 @@ + <Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> + <Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}&q={searchTerms}"/> + <Url type="text/html" method="GET" template="http://www.google.com/search"> ++ <Param name="client" value="ubuntu"/> ++ <Param name="channel" value="fs"/> + <Param name="q" value="{searchTerms}"/> + <Param name="ie" value="utf-8"/> + <Param name="oe" value="utf-8"/> +- <Param name="aq" value="t"/> +- <!-- Dynamic parameters --> +- <Param name="rls" value="{moz:distributionID}:{moz:locale}:{moz:official}"/> +- <MozParam name="client" condition="defaultEngine" trueValue="firefox-a" falseValue="firefox"/> + </Url> + <SearchForm>http://www.google.com/firefox</SearchForm> + </SearchPlugin> +--- a/l10n/ja/browser/searchplugins/google-jp.xml ++++ b/l10n/ja/browser/searchplugins/google-jp.xml +@@ -6,16 +6,14 @@ + <Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> + <Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl=ja&qu={searchTerms}"/><!-- suggestqueries.google.co.jp doesn't exist and suggestqueries.google.com can handle Japanese too --> + <Url type="text/html" method="GET" template="http://www.google.co.jp/search"> ++ <Param name="client" value="ubuntu"/> ++ <Param name="channel" value="fs"/> + <Param name="q" value="{searchTerms}"/> + <!-- <Param name="lr" value="lang_ja"/> --> + <!-- <Param name="num" value="100"/> --> + <Param name="ie" value="utf-8"/> + <Param name="oe" value="utf-8"/> +- <Param name="aq" value="t"/> +- <!-- Dynamic parameters --> +- <Param name="rls" value="{moz:distributionID}:{moz:locale}:{moz:official}"/> + <Param name="hl" value="ja"/> +- <MozParam name="client" condition="defaultEngine" trueValue="firefox-a" falseValue="firefox"/> + </Url> + <SearchForm>http://www.google.co.jp/</SearchForm> + </SearchPlugin> +--- a/l10n/ku/browser/searchplugins/google-ku.xml ++++ b/l10n/ku/browser/searchplugins/google-ku.xml +@@ -5,14 +5,12 @@ + <Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> + <Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl=en&q={searchTerms}"/> + <Url type="text/html" method="GET" template="http://www.google.com/search"> ++ <Param name="client" value="ubuntu"/> ++ <Param name="channel" value="fs"/> + <Param name="q" value="{searchTerms}"/> + <Param name="ie" value="utf-8"/> + <Param name="oe" value="utf-8"/> +- <Param name="aq" value="t"/> + <Param name="hl" value="en"/> +- <!-- Dynamic parameters --> +- <Param name="rls" value="{moz:distributionID}:{moz:locale}:{moz:official}"/> +- <MozParam name="client" condition="defaultEngine" trueValue="firefox-a" falseValue="firefox"/> + </Url> + <SearchForm>http://www.google.com/firefox?hl=en</SearchForm> + </SearchPlugin> +--- /dev/null ++++ b/l10n/en-GB/browser/searchplugins/google-en-GB.xml +@@ -0,0 +1,16 @@ ++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> ++<ShortName>Google</ShortName> ++<Description>Google Search</Description> ++<InputEncoding>UTF-8</InputEncoding> ++<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> ++<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}&q={searchTerms}"/> ++<Url type="text/html" method="GET" template="http://www.google.com/search"> ++ <Param name="client" value="ubuntu"/> ++ <Param name="channel" value="fs"/> ++ <Param name="q" value="{searchTerms}"/> ++ <Param name="ie" value="utf-8"/> ++ <Param name="oe" value="utf-8"/> ++ <Param name="gl" value="uk"/> ++</Url> ++<SearchForm>http://www.google.com/</SearchForm> ++</SearchPlugin> +--- a/l10n/en-GB/browser/searchplugins/list.txt ++++ b/l10n/en-GB/browser/searchplugins/list.txt +@@ -2,6 +2,6 @@ amazon-en-GB + bing + chambers-en-GB + eBay-en-GB +-google ++google-en-GB + wikipedia + yahoo-en-GB +--- /dev/null ++++ b/l10n/en-ZA/browser/searchplugins/google-en-ZA.xml +@@ -0,0 +1,16 @@ ++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> ++<ShortName>Google</ShortName> ++<Description>Google Search</Description> ++<InputEncoding>UTF-8</InputEncoding> ++<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> ++<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}&q={searchTerms}"/> ++<Url type="text/html" method="GET" template="http://www.google.com/search"> ++ <Param name="client" value="ubuntu"/> ++ <Param name="channel" value="fs"/> ++ <Param name="q" value="{searchTerms}"/> ++ <Param name="ie" value="utf-8"/> ++ <Param name="oe" value="utf-8"/> ++ <Param name="gl" value="za"/> ++</Url> ++<SearchForm>http://www.google.com/</SearchForm> ++</SearchPlugin> +--- a/l10n/en-ZA/browser/searchplugins/list.txt ++++ b/l10n/en-ZA/browser/searchplugins/list.txt +@@ -1,6 +1,6 @@ + amazondotcom + bing + eBay +-google ++google-en-ZA + wikipedia + yahoo --- firefox-6.0+build1+nobinonly.orig/debian/patches/distro-locale-searchplugins.patch +++ firefox-6.0+build1+nobinonly/debian/patches/distro-locale-searchplugins.patch @@ -0,0 +1,125 @@ +Description: Add support for localized distribution searchplugins +Author: Alexander Sack <asac@ubuntu.com> +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=515232 +Forwarded: https://bugzilla.mozilla.org/attachment.cgi?id=399338 + +diff --git a/browser/components/dirprovider/DirectoryProvider.cpp b/browser/components/dirprovider/DirectoryProvider.cpp +--- a/browser/components/dirprovider/DirectoryProvider.cpp ++++ b/browser/components/dirprovider/DirectoryProvider.cpp +@@ -30,16 +30,17 @@ + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + ++#include "nsIChromeRegistry.h" + #include "nsIDirectoryService.h" + #include "DirectoryProvider.h" + + #include "nsIFile.h" + #include "nsISimpleEnumerator.h" + #include "nsIPrefService.h" + #include "nsIPrefBranch.h" + +@@ -198,47 +199,51 @@ AppendDistroSearchDirs(nsIProperties* aD + if (NS_FAILED(rv) || !exists) + return; + + nsCOMPtr<nsIFile> commonPlugins; + rv = searchPlugins->Clone(getter_AddRefs(commonPlugins)); + if (NS_SUCCEEDED(rv)) { + commonPlugins->AppendNative(NS_LITERAL_CSTRING("common")); + rv = commonPlugins->Exists(&exists); +- if (NS_SUCCEEDED(rv) && exists) +- array.AppendObject(commonPlugins); ++ if (NS_FAILED(rv) || !exists) ++ commonPlugins = nsnull; ++ } ++ if (NS_FAILED(rv)) ++ return; ++ ++ nsCAutoString locale; ++ nsCOMPtr<nsIFile> localePlugins; ++ rv = searchPlugins->Clone(getter_AddRefs(localePlugins)); ++ if (NS_FAILED(rv)) ++ return; ++ ++ nsCOMPtr<nsIXULChromeRegistry> chromeReg = ++ do_GetService(NS_CHROMEREGISTRY_CONTRACTID); ++ if (!chromeReg) ++ return; ++ ++ chromeReg->GetSelectedLocale(NS_LITERAL_CSTRING("global"), locale); ++ if (NS_SUCCEEDED(rv)) { ++ nsCOMPtr<nsIFile> curLocalePlugins; ++ rv = localePlugins->Clone(getter_AddRefs(curLocalePlugins)); ++ if (NS_SUCCEEDED(rv)) { ++ curLocalePlugins->AppendNative(locale); ++ rv = curLocalePlugins->Exists(&exists); ++ if (NS_SUCCEEDED(rv) && exists) { ++ array.AppendObject(curLocalePlugins); ++ if (commonPlugins) ++ array.AppendObject(commonPlugins); ++ return; // all done ++ } ++ } + } + + nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID)); + if (prefs) { +- +- nsCOMPtr<nsIFile> localePlugins; +- rv = searchPlugins->Clone(getter_AddRefs(localePlugins)); +- if (NS_FAILED(rv)) +- return; +- +- localePlugins->AppendNative(NS_LITERAL_CSTRING("locale")); +- +- nsCString locale; +- rv = prefs->GetCharPref("general.useragent.locale", getter_Copies(locale)); +- if (NS_SUCCEEDED(rv)) { +- +- nsCOMPtr<nsIFile> curLocalePlugins; +- rv = localePlugins->Clone(getter_AddRefs(curLocalePlugins)); +- if (NS_SUCCEEDED(rv)) { +- +- curLocalePlugins->AppendNative(locale); +- rv = curLocalePlugins->Exists(&exists); +- if (NS_SUCCEEDED(rv) && exists) { +- array.AppendObject(curLocalePlugins); +- return; // all done +- } +- } +- } +- + // we didn't append the locale dir - try the default one + nsCString defLocale; + rv = prefs->GetCharPref("distribution.searchplugins.defaultLocale", + getter_Copies(defLocale)); + if (NS_SUCCEEDED(rv)) { + + nsCOMPtr<nsIFile> defLocalePlugins; + rv = localePlugins->Clone(getter_AddRefs(defLocalePlugins)); +@@ -246,16 +251,19 @@ AppendDistroSearchDirs(nsIProperties* aD + + defLocalePlugins->AppendNative(defLocale); + rv = defLocalePlugins->Exists(&exists); + if (NS_SUCCEEDED(rv) && exists) + array.AppendObject(defLocalePlugins); + } + } + } ++ ++ if (commonPlugins) ++ array.AppendObject(commonPlugins); + } + + NS_IMETHODIMP + DirectoryProvider::GetFiles(const char *aKey, nsISimpleEnumerator* *aResult) + { + nsresult rv; + + if (!strcmp(aKey, NS_APP_SEARCH_DIR_LIST)) { --- firefox-6.0+build1+nobinonly.orig/debian/patches/fix-sdk-bin-install.patch +++ firefox-6.0+build1+nobinonly/debian/patches/fix-sdk-bin-install.patch @@ -0,0 +1,21 @@ +Description: Fix the SDK layout with make install, to match the + upstream layout +Author: Chris Coulson <chris.coulson@canonical.com> +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=639554 +Forwarded: https://bugzilla.mozilla.org/attachment.cgi?id=517465 + +--- a/toolkit/mozapps/installer/packager.mk ++++ b/toolkit/mozapps/installer/packager.mk +@@ -621,10 +621,12 @@ ifdef INSTALL_SDK # Here comes the hard + (cd $(DESTDIR)$(idldir) && tar -xf -) + # SDK directory is the libs + a bunch of symlinks + $(NSINSTALL) -D $(DESTDIR)$(sdkdir)/sdk/lib ++ $(NSINSTALL) -D $(DESTDIR)$(sdkdir)/sdk/bin + if test -f $(DIST)/include/xpcom-config.h; then \ + $(SYSINSTALL) $(IFLAGS1) $(DIST)/include/xpcom-config.h $(DESTDIR)$(sdkdir); \ + fi + (cd $(DIST)/sdk/lib && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DESTDIR)$(sdkdir)/sdk/lib && tar -xf -) ++ (cd $(DIST)/sdk/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DESTDIR)$(sdkdir)/sdk/bin && tar -xf -) + $(RM) -f $(DESTDIR)$(sdkdir)/lib $(DESTDIR)$(sdkdir)/bin $(DESTDIR)$(sdkdir)/include $(DESTDIR)$(sdkdir)/include $(DESTDIR)$(sdkdir)/sdk/idl $(DESTDIR)$(sdkdir)/idl + ln -s $(sdkdir)/sdk/lib $(DESTDIR)$(sdkdir)/lib + ln -s $(installdir) $(DESTDIR)$(sdkdir)/bin --- firefox-6.0+build1+nobinonly.orig/debian/patches/cairo-lcd-filter.patch +++ firefox-6.0+build1+nobinonly/debian/patches/cairo-lcd-filter.patch @@ -0,0 +1,1067 @@ +Description: Add a Cairo LCD filter to use FreeType LCD colour filtering features +Origin: other, based on git rev 5d887ad5dca5af0f8216830d1b04d08a5aba9bee +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=404637 +Bug-Cairo: http://bugs.freedesktop.org/show_bug.cgi?id=10301 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/512615 + +--- a/config/system-headers ++++ b/config/system-headers +@@ -268,6 +268,7 @@ frame/req.h + freetype/freetype.h + freetype/ftcache.h + freetype/ftglyph.h ++freetype/ftlcdfil.h + freetype/ftsynth.h + freetype/ftoutln.h + freetype/ttnameid.h +--- a/gfx/cairo/cairo/src/cairo-font-options.c ++++ b/gfx/cairo/cairo/src/cairo-font-options.c +@@ -39,6 +39,7 @@ + static const cairo_font_options_t _cairo_font_options_nil = { + CAIRO_ANTIALIAS_DEFAULT, + CAIRO_SUBPIXEL_ORDER_DEFAULT, ++ CAIRO_LCD_FILTER_DEFAULT, + CAIRO_HINT_STYLE_DEFAULT, + CAIRO_HINT_METRICS_DEFAULT + }; +@@ -54,6 +55,7 @@ _cairo_font_options_init_default (cairo_ + { + options->antialias = CAIRO_ANTIALIAS_DEFAULT; + options->subpixel_order = CAIRO_SUBPIXEL_ORDER_DEFAULT; ++ options->lcd_filter = CAIRO_LCD_FILTER_DEFAULT; + options->hint_style = CAIRO_HINT_STYLE_DEFAULT; + options->hint_metrics = CAIRO_HINT_METRICS_DEFAULT; + } +@@ -64,6 +66,7 @@ _cairo_font_options_init_copy (cairo_fon + { + options->antialias = other->antialias; + options->subpixel_order = other->subpixel_order; ++ options->lcd_filter = other->lcd_filter; + options->hint_style = other->hint_style; + options->hint_metrics = other->hint_metrics; + } +@@ -189,6 +192,8 @@ cairo_font_options_merge (cairo_font_opt + options->antialias = other->antialias; + if (other->subpixel_order != CAIRO_SUBPIXEL_ORDER_DEFAULT) + options->subpixel_order = other->subpixel_order; ++ if (other->lcd_filter != CAIRO_LCD_FILTER_DEFAULT) ++ options->lcd_filter = other->lcd_filter; + if (other->hint_style != CAIRO_HINT_STYLE_DEFAULT) + options->hint_style = other->hint_style; + if (other->hint_metrics != CAIRO_HINT_METRICS_DEFAULT) +@@ -221,6 +226,7 @@ cairo_font_options_equal (const cairo_fo + + return (options->antialias == other->antialias && + options->subpixel_order == other->subpixel_order && ++ options->lcd_filter == other->lcd_filter && + options->hint_style == other->hint_style && + options->hint_metrics == other->hint_metrics); + } +@@ -246,7 +252,8 @@ cairo_font_options_hash (const cairo_fon + + return ((options->antialias) | + (options->subpixel_order << 4) | +- (options->hint_style << 8) | ++ (options->lcd_filter << 8) | ++ (options->hint_style << 12) | + (options->hint_metrics << 16)); + } + slim_hidden_def (cairo_font_options_hash); +@@ -328,6 +335,48 @@ cairo_font_options_get_subpixel_order (c + } + + /** ++ * _cairo_font_options_set_lcd_filter: ++ * @options: a #cairo_font_options_t ++ * @lcd_filter: the new LCD filter ++ * ++ * Sets the LCD filter for the font options object. The LCD filter ++ * specifies how pixels are filtered when rendered with an antialiasing ++ * mode of %CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for ++ * #cairo_lcd_filter_t for full details. ++ * ++ * Since: 1.8 ++ **/ ++void ++_cairo_font_options_set_lcd_filter (cairo_font_options_t *options, ++ cairo_lcd_filter_t lcd_filter) ++{ ++ if (cairo_font_options_status (options)) ++ return; ++ ++ options->lcd_filter = lcd_filter; ++} ++ ++/** ++ * _cairo_font_options_get_lcd_filter: ++ * @options: a #cairo_font_options_t ++ * ++ * Gets the LCD filter for the font options object. ++ * See the documentation for #cairo_lcd_filter_t for full details. ++ * ++ * Return value: the LCD filter for the font options object ++ * ++ * Since: 1.8 ++ **/ ++cairo_lcd_filter_t ++_cairo_font_options_get_lcd_filter (const cairo_font_options_t *options) ++{ ++ if (cairo_font_options_status ((cairo_font_options_t *) options)) ++ return CAIRO_LCD_FILTER_DEFAULT; ++ ++ return options->lcd_filter; ++} ++ ++/** + * cairo_font_options_set_hint_style: + * @options: a #cairo_font_options_t + * @hint_style: the new hint style +--- a/gfx/cairo/cairo/src/cairo-ft-font.c ++++ b/gfx/cairo/cairo/src/cairo-ft-font.c +@@ -59,6 +59,28 @@ + #include FT_SYNTHESIS_H + #endif + ++#include FT_LCD_FILTER_H ++ ++/* Fontconfig version older than 2.6 didn't have these options */ ++#ifndef FC_LCD_FILTER ++#define FC_LCD_FILTER "lcdfilter" ++#endif ++/* Some Ubuntu versions defined FC_LCD_FILTER without defining the following */ ++#ifndef FC_LCD_NONE ++#define FC_LCD_NONE 0 ++#define FC_LCD_DEFAULT 1 ++#define FC_LCD_LIGHT 2 ++#define FC_LCD_LEGACY 3 ++#endif ++ ++/* FreeType version older than 2.3.5(?) didn't have these options */ ++#ifndef FT_LCD_FILTER_NONE ++#define FT_LCD_FILTER_NONE 0 ++#define FT_LCD_FILTER_DEFAULT 1 ++#define FT_LCD_FILTER_LIGHT 2 ++#define FT_LCD_FILTER_LEGACY 16 ++#endif ++ + #define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0)) + #define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0) + #define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0)) +@@ -779,23 +801,286 @@ _cairo_ft_unscaled_font_set_scale (cairo + return CAIRO_STATUS_SUCCESS; + } + +-/* Empirically-derived subpixel filtering values thanks to Keith +- * Packard and libXft. */ +-static const int filters[3][3] = { +- /* red */ +-#if 0 +- { 65538*4/7,65538*2/7,65538*1/7 }, +- /* green */ +- { 65536*1/4, 65536*2/4, 65537*1/4 }, +- /* blue */ +- { 65538*1/7,65538*2/7,65538*4/7 }, +-#endif +- { 65538*9/13,65538*3/13,65538*1/13 }, +- /* green */ +- { 65538*1/6, 65538*4/6, 65538*1/6 }, +- /* blue */ +- { 65538*1/13,65538*3/13,65538*9/13 }, +-}; ++/* we sometimes need to convert the glyph bitmap in a FT_GlyphSlot ++ * into a different format. For example, we want to convert a ++ * FT_PIXEL_MODE_LCD or FT_PIXEL_MODE_LCD_V bitmap into a 32-bit ++ * ARGB or ABGR bitmap. ++ * ++ * this function prepares a target descriptor for this operation. ++ * ++ * input :: target bitmap descriptor. The function will set its ++ * 'width', 'rows' and 'pitch' fields, and only these ++ * ++ * slot :: the glyph slot containing the source bitmap. this ++ * function assumes that slot->format == FT_GLYPH_FORMAT_BITMAP ++ * ++ * mode :: the requested final rendering mode. supported values are ++ * MONO, NORMAL (i.e. gray), LCD and LCD_V ++ * ++ * the function returns the size in bytes of the corresponding buffer, ++ * it's up to the caller to allocate the corresponding memory block ++ * before calling _fill_xrender_bitmap ++ * ++ * it also returns -1 in case of error (e.g. incompatible arguments, ++ * like trying to convert a gray bitmap into a monochrome one) ++ */ ++static int ++_compute_xrender_bitmap_size(FT_Bitmap *target, ++ FT_GlyphSlot slot, ++ FT_Render_Mode mode) ++{ ++ FT_Bitmap *ftbit; ++ int width, height, pitch; ++ ++ if (slot->format != FT_GLYPH_FORMAT_BITMAP) ++ return -1; ++ ++ /* compute the size of the final bitmap */ ++ ftbit = &slot->bitmap; ++ ++ width = ftbit->width; ++ height = ftbit->rows; ++ pitch = (width + 3) & ~3; ++ ++ switch (ftbit->pixel_mode) { ++ case FT_PIXEL_MODE_MONO: ++ if (mode == FT_RENDER_MODE_MONO) { ++ pitch = (((width + 31) & ~31) >> 3); ++ break; ++ } ++ /* fall-through */ ++ ++ case FT_PIXEL_MODE_GRAY: ++ if (mode == FT_RENDER_MODE_LCD || ++ mode == FT_RENDER_MODE_LCD_V) ++ { ++ /* each pixel is replicated into a 32-bit ARGB value */ ++ pitch = width * 4; ++ } ++ break; ++ ++ case FT_PIXEL_MODE_LCD: ++ if (mode != FT_RENDER_MODE_LCD) ++ return -1; ++ ++ /* horz pixel triplets are packed into 32-bit ARGB values */ ++ width /= 3; ++ pitch = width * 4; ++ break; ++ ++ case FT_PIXEL_MODE_LCD_V: ++ if (mode != FT_RENDER_MODE_LCD_V) ++ return -1; ++ ++ /* vert pixel triplets are packed into 32-bit ARGB values */ ++ height /= 3; ++ pitch = width * 4; ++ break; ++ ++ default: /* unsupported source format */ ++ return -1; ++ } ++ ++ target->width = width; ++ target->rows = height; ++ target->pitch = pitch; ++ target->buffer = NULL; ++ ++ return pitch * height; ++} ++ ++/* this functions converts the glyph bitmap found in a FT_GlyphSlot ++ * into a different format (see _compute_xrender_bitmap_size) ++ * ++ * you should call this function after _compute_xrender_bitmap_size ++ * ++ * target :: target bitmap descriptor. Note that its 'buffer' pointer ++ * must point to memory allocated by the caller ++ * ++ * slot :: the glyph slot containing the source bitmap ++ * ++ * mode :: the requested final rendering mode ++ * ++ * bgr :: boolean, set if BGR or VBGR pixel ordering is needed ++ */ ++static void ++_fill_xrender_bitmap(FT_Bitmap *target, ++ FT_GlyphSlot slot, ++ FT_Render_Mode mode, ++ int bgr) ++{ ++ FT_Bitmap *ftbit = &slot->bitmap; ++ unsigned char *srcLine = ftbit->buffer; ++ unsigned char *dstLine = target->buffer; ++ int src_pitch = ftbit->pitch; ++ int width = target->width; ++ int height = target->rows; ++ int pitch = target->pitch; ++ int subpixel; ++ int h; ++ ++ subpixel = (mode == FT_RENDER_MODE_LCD || ++ mode == FT_RENDER_MODE_LCD_V); ++ ++ if (src_pitch < 0) ++ srcLine -= src_pitch * (ftbit->rows - 1); ++ ++ target->pixel_mode = ftbit->pixel_mode; ++ ++ switch (ftbit->pixel_mode) { ++ case FT_PIXEL_MODE_MONO: ++ if (subpixel) { ++ /* convert mono to ARGB32 values */ ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) { ++ int x; ++ ++ for (x = 0; x < width; x++) { ++ if (srcLine[(x >> 3)] & (0x80 >> (x & 7))) ++ ((unsigned int *) dstLine)[x] = 0xffffffffU; ++ } ++ } ++ target->pixel_mode = FT_PIXEL_MODE_LCD; ++ ++ } else if (mode == FT_RENDER_MODE_NORMAL) { ++ /* convert mono to 8-bit gray */ ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) { ++ int x; ++ ++ for (x = 0; x < width; x++) { ++ if (srcLine[(x >> 3)] & (0x80 >> (x & 7))) ++ dstLine[x] = 0xff; ++ } ++ } ++ target->pixel_mode = FT_PIXEL_MODE_GRAY; ++ ++ } else { ++ /* copy mono to mono */ ++ ++ int bytes = (width + 7) >> 3; ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) ++ memcpy (dstLine, srcLine, bytes); ++ } ++ break; ++ ++ case FT_PIXEL_MODE_GRAY: ++ if (subpixel) { ++ /* convert gray to ARGB32 values */ ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) { ++ int x; ++ unsigned int *dst = (unsigned int *) dstLine; ++ ++ for (x = 0; x < width; x++) { ++ unsigned int pix = srcLine[x]; ++ ++ pix |= (pix << 8); ++ pix |= (pix << 16); ++ ++ dst[x] = pix; ++ } ++ } ++ target->pixel_mode = FT_PIXEL_MODE_LCD; ++ } else { ++ /* copy gray into gray */ ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) ++ memcpy (dstLine, srcLine, width); ++ } ++ break; ++ ++ case FT_PIXEL_MODE_LCD: ++ if (!bgr) { ++ /* convert horizontal RGB into ARGB32 */ ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) { ++ int x; ++ unsigned char *src = srcLine; ++ unsigned int *dst = (unsigned int *) dstLine; ++ ++ for (x = 0; x < width; x++, src += 3) { ++ unsigned int pix; ++ ++ pix = ((unsigned int)src[0] << 16) | ++ ((unsigned int)src[1] << 8) | ++ ((unsigned int)src[2] ) | ++ ((unsigned int)src[1] << 24) ; ++ ++ dst[x] = pix; ++ } ++ } ++ } else { ++ /* convert horizontal BGR into ARGB32 */ ++ ++ for (h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch) { ++ ++ int x; ++ unsigned char *src = srcLine; ++ unsigned int *dst = (unsigned int *) dstLine; ++ ++ for (x = 0; x < width; x++, src += 3) { ++ unsigned int pix; ++ ++ pix = ((unsigned int)src[2] << 16) | ++ ((unsigned int)src[1] << 8) | ++ ((unsigned int)src[0] ) | ++ ((unsigned int)src[1] << 24) ; ++ ++ dst[x] = pix; ++ } ++ } ++ } ++ break; ++ ++ default: /* FT_PIXEL_MODE_LCD_V */ ++ /* convert vertical RGB into ARGB32 */ ++ if (!bgr) { ++ ++ for (h = height; h > 0; h--, srcLine += 3 * src_pitch, dstLine += pitch) { ++ int x; ++ unsigned char* src = srcLine; ++ unsigned int* dst = (unsigned int *) dstLine; ++ ++ for (x = 0; x < width; x++, src += 1) { ++ unsigned int pix; ++#if 1 ++ pix = ((unsigned int)src[0] << 16) | ++ ((unsigned int)src[src_pitch] << 8) | ++ ((unsigned int)src[src_pitch*2] ) | ++ 0xFF000000 ; ++#else ++ pix = ((unsigned int)src[0] << 16) | ++ ((unsigned int)src[src_pitch] << 8) | ++ ((unsigned int)src[src_pitch*2] ) | ++ ((unsigned int)src[src_pitch] << 24) ; ++#endif ++ dst[x] = pix; ++ } ++ } ++ } else { ++ ++ for (h = height; h > 0; h--, srcLine += 3*src_pitch, dstLine += pitch) { ++ int x; ++ unsigned char *src = srcLine; ++ unsigned int *dst = (unsigned int *) dstLine; ++ ++ for (x = 0; x < width; x++, src += 1) { ++ unsigned int pix; ++ ++ pix = ((unsigned int)src[src_pitch * 2] << 16) | ++ ((unsigned int)src[src_pitch] << 8) | ++ ((unsigned int)src[0] ) | ++ ((unsigned int)src[src_pitch] << 24) ; ++ ++ dst[x] = pix; ++ } ++ } ++ } ++ } ++} ++ + + /* Fills in val->image with an image surface created from @bitmap + */ +@@ -808,6 +1093,7 @@ _get_bitmap_surface (FT_Bitmap *bi + int width, height, stride; + unsigned char *data; + int format = CAIRO_FORMAT_A8; ++ cairo_image_surface_t *image; + + width = bitmap->width; + height = bitmap->rows; +@@ -864,11 +1150,7 @@ _get_bitmap_surface (FT_Bitmap *bi + case FT_PIXEL_MODE_LCD: + case FT_PIXEL_MODE_LCD_V: + case FT_PIXEL_MODE_GRAY: +- switch (font_options->antialias) { +- case CAIRO_ANTIALIAS_DEFAULT: +- case CAIRO_ANTIALIAS_GRAY: +- case CAIRO_ANTIALIAS_NONE: +- default: ++ if (font_options->antialias != CAIRO_ANTIALIAS_SUBPIXEL) { + stride = bitmap->pitch; + if (own_buffer) { + data = bitmap->buffer; +@@ -880,103 +1162,16 @@ _get_bitmap_surface (FT_Bitmap *bi + memcpy (data, bitmap->buffer, stride * height); + } + format = CAIRO_FORMAT_A8; +- break; +- case CAIRO_ANTIALIAS_SUBPIXEL: { +- int x, y; +- unsigned char *in_line, *out_line, *in; +- unsigned int *out; +- unsigned int red, green, blue; +- int rf, gf, bf; +- int s; +- int o, os; +- unsigned char *data_rgba; +- unsigned int width_rgba, stride_rgba; +- int vmul = 1; +- int hmul = 1; ++ } else { ++ /* if we get there, the data from the source bitmap ++ * really comes from _fill_xrender_bitmap, and is ++ * made of 32-bit ARGB or ABGR values */ ++ assert (own_buffer != 0); ++ assert (bitmap->pixel_mode != FT_PIXEL_MODE_GRAY); + +- switch (font_options->subpixel_order) { +- case CAIRO_SUBPIXEL_ORDER_DEFAULT: +- case CAIRO_SUBPIXEL_ORDER_RGB: +- case CAIRO_SUBPIXEL_ORDER_BGR: +- default: +- width /= 3; +- hmul = 3; +- break; +- case CAIRO_SUBPIXEL_ORDER_VRGB: +- case CAIRO_SUBPIXEL_ORDER_VBGR: +- vmul = 3; +- height /= 3; +- break; +- } +- /* +- * Filter the glyph to soften the color fringes +- */ +- width_rgba = width; ++ data = bitmap->buffer; + stride = bitmap->pitch; +- stride_rgba = (width_rgba * 4 + 3) & ~3; +- data_rgba = calloc (stride_rgba, height); +- if (unlikely (data_rgba == NULL)) { +- if (own_buffer) +- free (bitmap->buffer); +- return _cairo_error (CAIRO_STATUS_NO_MEMORY); +- } +- +- os = 1; +- switch (font_options->subpixel_order) { +- case CAIRO_SUBPIXEL_ORDER_VRGB: +- os = stride; +- case CAIRO_SUBPIXEL_ORDER_DEFAULT: +- case CAIRO_SUBPIXEL_ORDER_RGB: +- default: +- rf = 0; +- gf = 1; +- bf = 2; +- break; +- case CAIRO_SUBPIXEL_ORDER_VBGR: +- os = stride; +- case CAIRO_SUBPIXEL_ORDER_BGR: +- bf = 0; +- gf = 1; +- rf = 2; +- break; +- } +- in_line = bitmap->buffer; +- out_line = data_rgba; +- for (y = 0; y < height; y++) +- { +- in = in_line; +- out = (unsigned int *) out_line; +- in_line += stride * vmul; +- out_line += stride_rgba; +- for (x = 0; x < width * hmul; x += hmul) +- { +- red = green = blue = 0; +- o = 0; +- for (s = 0; s < 3; s++) +- { +- red += filters[rf][s]*in[x+o]; +- green += filters[gf][s]*in[x+o]; +- blue += filters[bf][s]*in[x+o]; +- o += os; +- } +- red = red / 65536; +- green = green / 65536; +- blue = blue / 65536; +- *out++ = (green << 24) | (red << 16) | (green << 8) | blue; +- } +- } +- +- /* Images here are stored in native format. The +- * backend must convert to its own format as needed +- */ +- +- if (own_buffer) +- free (bitmap->buffer); +- data = data_rgba; +- stride = stride_rgba; + format = CAIRO_FORMAT_ARGB32; +- break; +- } + } + break; + case FT_PIXEL_MODE_GRAY2: +@@ -988,16 +1183,20 @@ _get_bitmap_surface (FT_Bitmap *bi + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + } + +- *surface = (cairo_image_surface_t *) ++ /* XXX */ ++ *surface = image = (cairo_image_surface_t *) + cairo_image_surface_create_for_data (data, + format, + width, height, stride); +- if ((*surface)->base.status) { ++ if (image->base.status) { + free (data); + return (*surface)->base.status; + } + +- _cairo_image_surface_assume_ownership_of_data ((*surface)); ++ if (font_options->antialias == CAIRO_ANTIALIAS_SUBPIXEL) ++ pixman_image_set_component_alpha (image->pixman_image, TRUE); ++ ++ _cairo_image_surface_assume_ownership_of_data ((image)); + + _cairo_debug_check_image_surface_is_defined (&(*surface)->base); + +@@ -1024,16 +1223,59 @@ _render_glyph_outline (FT_Face + cairo_font_options_t *font_options, + cairo_image_surface_t **surface) + { ++ int rgba = FC_RGBA_UNKNOWN; ++ int lcd_filter = FT_LCD_FILTER_LEGACY; + FT_GlyphSlot glyphslot = face->glyph; + FT_Outline *outline = &glyphslot->outline; + FT_Bitmap bitmap; + FT_BBox cbox; +- FT_Matrix matrix; +- int hmul = 1; +- int vmul = 1; +- unsigned int width, height, stride; +- cairo_bool_t subpixel = FALSE; ++ unsigned int width, height; + cairo_status_t status; ++ FT_Error fterror; ++ FT_Library library = glyphslot->library; ++ FT_Render_Mode render_mode = FT_RENDER_MODE_NORMAL; ++ ++ switch (font_options->antialias) { ++ case CAIRO_ANTIALIAS_NONE: ++ render_mode = FT_RENDER_MODE_MONO; ++ break; ++ ++ case CAIRO_ANTIALIAS_SUBPIXEL: ++ switch (font_options->subpixel_order) { ++ case CAIRO_SUBPIXEL_ORDER_DEFAULT: ++ case CAIRO_SUBPIXEL_ORDER_RGB: ++ case CAIRO_SUBPIXEL_ORDER_BGR: ++ render_mode = FT_RENDER_MODE_LCD; ++ break; ++ ++ case CAIRO_SUBPIXEL_ORDER_VRGB: ++ case CAIRO_SUBPIXEL_ORDER_VBGR: ++ render_mode = FT_RENDER_MODE_LCD_V; ++ break; ++ } ++ ++ switch (font_options->lcd_filter) { ++ case CAIRO_LCD_FILTER_NONE: ++ lcd_filter = FT_LCD_FILTER_NONE; ++ break; ++ case CAIRO_LCD_FILTER_DEFAULT: ++ case CAIRO_LCD_FILTER_INTRA_PIXEL: ++ lcd_filter = FT_LCD_FILTER_LEGACY; ++ break; ++ case CAIRO_LCD_FILTER_FIR3: ++ lcd_filter = FT_LCD_FILTER_LIGHT; ++ break; ++ case CAIRO_LCD_FILTER_FIR5: ++ lcd_filter = FT_LCD_FILTER_DEFAULT; ++ break; ++ } ++ ++ break; ++ ++ case CAIRO_ANTIALIAS_DEFAULT: ++ case CAIRO_ANTIALIAS_GRAY: ++ render_mode = FT_RENDER_MODE_NORMAL; ++ } + + FT_Outline_Get_CBox (outline, &cbox); + +@@ -1044,20 +1286,21 @@ _render_glyph_outline (FT_Face + + width = (unsigned int) ((cbox.xMax - cbox.xMin) >> 6); + height = (unsigned int) ((cbox.yMax - cbox.yMin) >> 6); +- stride = (width * hmul + 3) & ~3; + + if (width * height == 0) { + cairo_format_t format; + /* Looks like fb handles zero-sized images just fine */ +- switch (font_options->antialias) { +- case CAIRO_ANTIALIAS_NONE: ++ switch (render_mode) { ++ case FT_RENDER_MODE_MONO: + format = CAIRO_FORMAT_A1; + break; +- case CAIRO_ANTIALIAS_SUBPIXEL: ++ case FT_RENDER_MODE_LCD: ++ case FT_RENDER_MODE_LCD_V: + format= CAIRO_FORMAT_ARGB32; + break; +- case CAIRO_ANTIALIAS_DEFAULT: +- case CAIRO_ANTIALIAS_GRAY: ++ case FT_RENDER_MODE_LIGHT: ++ case FT_RENDER_MODE_NORMAL: ++ case FT_RENDER_MODE_MAX: + default: + format = CAIRO_FORMAT_A8; + break; +@@ -1069,73 +1312,69 @@ _render_glyph_outline (FT_Face + return (*surface)->base.status; + } else { + +- matrix.xx = matrix.yy = 0x10000L; +- matrix.xy = matrix.yx = 0; ++ int bitmap_size; + +- switch (font_options->antialias) { +- case CAIRO_ANTIALIAS_NONE: +- bitmap.pixel_mode = FT_PIXEL_MODE_MONO; +- bitmap.num_grays = 1; +- stride = ((width + 31) & -32) >> 3; +- break; +- case CAIRO_ANTIALIAS_DEFAULT: +- case CAIRO_ANTIALIAS_GRAY: +- bitmap.pixel_mode = FT_PIXEL_MODE_GRAY; +- bitmap.num_grays = 256; +- stride = (width + 3) & -4; ++ switch (render_mode) { ++ case FT_RENDER_MODE_LCD: ++ if (font_options->subpixel_order == CAIRO_SUBPIXEL_ORDER_BGR) { ++ rgba = FC_RGBA_BGR; ++ } else { ++ rgba = FC_RGBA_RGB; ++ } + break; +- case CAIRO_ANTIALIAS_SUBPIXEL: +- switch (font_options->subpixel_order) { +- case CAIRO_SUBPIXEL_ORDER_RGB: +- case CAIRO_SUBPIXEL_ORDER_BGR: +- case CAIRO_SUBPIXEL_ORDER_DEFAULT: +- default: +- matrix.xx *= 3; +- hmul = 3; +- subpixel = TRUE; +- break; +- case CAIRO_SUBPIXEL_ORDER_VRGB: +- case CAIRO_SUBPIXEL_ORDER_VBGR: +- matrix.yy *= 3; +- vmul = 3; +- subpixel = TRUE; +- break; ++ case FT_RENDER_MODE_LCD_V: ++ if (font_options->subpixel_order == CAIRO_SUBPIXEL_ORDER_VBGR) { ++ rgba = FC_RGBA_VBGR; ++ } else { ++ rgba = FC_RGBA_VRGB; + } +- FT_Outline_Transform (outline, &matrix); +- +- bitmap.pixel_mode = FT_PIXEL_MODE_GRAY; +- bitmap.num_grays = 256; +- stride = (width * hmul + 3) & -4; ++ break; ++ case FT_RENDER_MODE_MONO: ++ case FT_RENDER_MODE_LIGHT: ++ case FT_RENDER_MODE_NORMAL: ++ case FT_RENDER_MODE_MAX: ++ default: ++ break; + } + +- bitmap.pitch = stride; +- bitmap.width = width * hmul; +- bitmap.rows = height * vmul; +- bitmap.buffer = calloc (stride, bitmap.rows); +- if (unlikely (bitmap.buffer == NULL)) ++ FT_Library_SetLcdFilter (library, lcd_filter); ++ ++ fterror = FT_Render_Glyph (face->glyph, render_mode); ++ ++ FT_Library_SetLcdFilter (library, FT_LCD_FILTER_NONE); ++ ++ if (fterror != 0) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +- FT_Outline_Translate (outline, -cbox.xMin*hmul, -cbox.yMin*vmul); ++ bitmap_size = _compute_xrender_bitmap_size (&bitmap, ++ face->glyph, ++ render_mode); ++ if (bitmap_size < 0) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +- if (FT_Outline_Get_Bitmap (glyphslot->library, outline, &bitmap) != 0) { +- free (bitmap.buffer); ++ bitmap.buffer = calloc (1, bitmap_size); ++ if (unlikely (bitmap.buffer == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); +- } + ++ _fill_xrender_bitmap (&bitmap, face->glyph, render_mode, ++ (rgba == FC_RGBA_BGR || rgba == FC_RGBA_VBGR)); ++ ++ /* Note: ++ * _get_bitmap_surface will free bitmap.buffer if there is an error ++ */ + status = _get_bitmap_surface (&bitmap, TRUE, font_options, surface); + if (unlikely (status)) + return status; +- } + +- /* +- * Note: the font's coordinate system is upside down from ours, so the +- * Y coordinate of the control box needs to be negated. Moreover, device +- * offsets are position of glyph origin relative to top left while xMin +- * and yMax are offsets of top left relative to origin. Another negation. +- */ +- cairo_surface_set_device_offset (&(*surface)->base, +- floor (-(double) cbox.xMin / 64.0), +- floor (+(double) cbox.yMax / 64.0)); ++ /* Note: the font's coordinate system is upside down from ours, so the ++ * Y coordinate of the control box needs to be negated. Moreover, device ++ * offsets are position of glyph origin relative to top left while xMin ++ * and yMax are offsets of top left relative to origin. Another negation. ++ */ ++ cairo_surface_set_device_offset (&(*surface)->base, ++ (double)-glyphslot->bitmap_left, ++ (double)+glyphslot->bitmap_top); ++ } + + return CAIRO_STATUS_SUCCESS; + } +@@ -1355,6 +1594,7 @@ _get_pattern_ft_options (FcPattern *patt + + if (antialias) { + cairo_subpixel_order_t subpixel_order; ++ int lcd_filter; + + /* disable hinting if requested */ + if (FcPatternGetBool (pattern, +@@ -1390,6 +1630,25 @@ _get_pattern_ft_options (FcPattern *patt + ft_options.base.antialias = CAIRO_ANTIALIAS_SUBPIXEL; + } + ++ if (FcPatternGetInteger (pattern, ++ FC_LCD_FILTER, 0, &lcd_filter) == FcResultMatch) ++ { ++ switch (lcd_filter) { ++ case FC_LCD_NONE: ++ ft_options.base.lcd_filter = CAIRO_LCD_FILTER_NONE; ++ break; ++ case FC_LCD_DEFAULT: ++ ft_options.base.lcd_filter = CAIRO_LCD_FILTER_FIR5; ++ break; ++ case FC_LCD_LIGHT: ++ ft_options.base.lcd_filter = CAIRO_LCD_FILTER_FIR3; ++ break; ++ case FC_LCD_LEGACY: ++ ft_options.base.lcd_filter = CAIRO_LCD_FILTER_INTRA_PIXEL; ++ break; ++ } ++ } ++ + #ifdef FC_HINT_STYLE + if (FcPatternGetInteger (pattern, + FC_HINT_STYLE, 0, &hintstyle) != FcResultMatch) +@@ -1491,6 +1750,12 @@ _cairo_ft_options_merge (cairo_ft_option + if (other->base.hint_style == CAIRO_HINT_STYLE_NONE) + options->base.hint_style = CAIRO_HINT_STYLE_NONE; + ++ if (options->base.lcd_filter == CAIRO_LCD_FILTER_DEFAULT) ++ options->base.lcd_filter = other->base.lcd_filter; ++ ++ if (other->base.lcd_filter == CAIRO_LCD_FILTER_NONE) ++ options->base.lcd_filter = CAIRO_LCD_FILTER_NONE; ++ + if (options->base.antialias == CAIRO_ANTIALIAS_NONE) { + if (options->base.hint_style == CAIRO_HINT_STYLE_NONE) + load_flags |= FT_LOAD_NO_HINTING; +@@ -1514,11 +1779,11 @@ _cairo_ft_options_merge (cairo_ft_option + case CAIRO_SUBPIXEL_ORDER_DEFAULT: + case CAIRO_SUBPIXEL_ORDER_RGB: + case CAIRO_SUBPIXEL_ORDER_BGR: +- load_target |= FT_LOAD_TARGET_LCD; ++ load_target = FT_LOAD_TARGET_LCD; + break; + case CAIRO_SUBPIXEL_ORDER_VRGB: + case CAIRO_SUBPIXEL_ORDER_VBGR: +- load_target |= FT_LOAD_TARGET_LCD_V; ++ load_target = FT_LOAD_TARGET_LCD_V; + break; + } + } +@@ -2516,6 +2781,34 @@ _cairo_ft_font_options_substitute (const + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + } + } ++ ++ if (options->lcd_filter != CAIRO_LCD_FILTER_DEFAULT) ++ { ++ if (FcPatternGet (pattern, FC_LCD_FILTER, 0, &v) == FcResultNoMatch) ++ { ++ int lcd_filter; ++ ++ switch (options->lcd_filter) { ++ case CAIRO_LCD_FILTER_NONE: ++ lcd_filter = FT_LCD_FILTER_NONE; ++ break; ++ case CAIRO_LCD_FILTER_DEFAULT: ++ case CAIRO_LCD_FILTER_INTRA_PIXEL: ++ lcd_filter = FT_LCD_FILTER_LEGACY; ++ break; ++ case CAIRO_LCD_FILTER_FIR3: ++ lcd_filter = FT_LCD_FILTER_LIGHT; ++ break; ++ default: ++ case CAIRO_LCD_FILTER_FIR5: ++ lcd_filter = FT_LCD_FILTER_DEFAULT; ++ break; ++ } ++ ++ if (! FcPatternAddInteger (pattern, FC_LCD_FILTER, lcd_filter)) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); ++ } ++ } + + if (options->hint_style != CAIRO_HINT_STYLE_DEFAULT) + { +--- a/gfx/cairo/cairo/src/cairoint.h ++++ b/gfx/cairo/cairo/src/cairoint.h +@@ -1405,6 +1405,13 @@ cairo_private void + _cairo_font_options_init_copy (cairo_font_options_t *options, + const cairo_font_options_t *other); + ++cairo_private void ++_cairo_font_options_set_lcd_filter (cairo_font_options_t *options, ++ cairo_lcd_filter_t lcd_filter); ++ ++cairo_private cairo_lcd_filter_t ++_cairo_font_options_get_lcd_filter (const cairo_font_options_t *options); ++ + /* cairo-hull.c */ + cairo_private cairo_status_t + _cairo_hull_compute (cairo_pen_vertex_t *vertices, int *num_vertices); +--- a/gfx/cairo/cairo/src/cairo-surface.c ++++ b/gfx/cairo/cairo/src/cairo-surface.c +@@ -72,6 +72,7 @@ const cairo_surface_t name = { \ + }, /* snapshots */ \ + { CAIRO_ANTIALIAS_DEFAULT, /* antialias */ \ + CAIRO_SUBPIXEL_ORDER_DEFAULT, /* subpixel_order */ \ ++ CAIRO_LCD_FILTER_DEFAULT, /* lcd_filter */ \ + CAIRO_HINT_STYLE_DEFAULT, /* hint_style */ \ + CAIRO_HINT_METRICS_DEFAULT /* hint_metrics */ \ + } /* font_options */ \ +--- a/gfx/cairo/cairo/src/cairo-types-private.h ++++ b/gfx/cairo/cairo/src/cairo-types-private.h +@@ -117,9 +117,35 @@ struct _cairo_array { + cairo_bool_t is_snapshot; + }; + ++ ++/** ++ * cairo_lcd_filter_t: ++ * @CAIRO_LCD_FILTER_DEFAULT: Use the default LCD filter for ++ * font backend and target device ++ * @CAIRO_LCD_FILTER_NONE: Do not perform LCD filtering ++ * @CAIRO_LCD_FILTER_INTRA_PIXEL: Intra-pixel filter ++ * @CAIRO_LCD_FILTER_FIR3: FIR filter with a 3x3 kernel ++ * @CAIRO_LCD_FILTER_FIR5: FIR filter with a 5x5 kernel ++ * ++ * The LCD filter specifies the low-pass filter applied to LCD-optimized ++ * bitmaps generated with an antialiasing mode of %CAIRO_ANTIALIAS_SUBPIXEL. ++ * ++ * Note: This API was temporarily made available in the public ++ * interface during the 1.7.x development series, but was made private ++ * before 1.8. ++ **/ ++typedef enum _cairo_lcd_filter { ++ CAIRO_LCD_FILTER_DEFAULT, ++ CAIRO_LCD_FILTER_NONE, ++ CAIRO_LCD_FILTER_INTRA_PIXEL, ++ CAIRO_LCD_FILTER_FIR3, ++ CAIRO_LCD_FILTER_FIR5 ++} cairo_lcd_filter_t; ++ + struct _cairo_font_options { + cairo_antialias_t antialias; + cairo_subpixel_order_t subpixel_order; ++ cairo_lcd_filter_t lcd_filter; + cairo_hint_style_t hint_style; + cairo_hint_metrics_t hint_metrics; + }; +--- a/gfx/cairo/cairo/src/cairo-xlib-screen.c ++++ b/gfx/cairo/cairo/src/cairo-xlib-screen.c +@@ -61,6 +61,13 @@ + + #include <fontconfig/fontconfig.h> + ++#ifndef FC_LCD_NONE ++#define FC_LCD_NONE 0 ++#define FC_LCD_DEFAULT 1 ++#define FC_LCD_LIGHT 2 ++#define FC_LCD_LEGACY 3 ++#endif ++ + static int + parse_boolean (const char *v) + { +@@ -150,13 +157,22 @@ _cairo_xlib_init_screen_font_options (Di + cairo_bool_t xft_antialias; + int xft_hintstyle; + int xft_rgba; ++ int xft_lcdfilter; + cairo_antialias_t antialias; + cairo_subpixel_order_t subpixel_order; ++ cairo_lcd_filter_t lcd_filter; + cairo_hint_style_t hint_style; + + if (!get_boolean_default (dpy, "antialias", &xft_antialias)) + xft_antialias = TRUE; + ++ if (!get_integer_default (dpy, "lcdfilter", &xft_lcdfilter)) { ++ /* -1 is an non-existant Fontconfig constant used to differentiate ++ * the case when no lcdfilter property is available. ++ */ ++ xft_lcdfilter = -1; ++ } ++ + if (!get_boolean_default (dpy, "hinting", &xft_hinting)) + xft_hinting = TRUE; + +@@ -239,6 +255,24 @@ _cairo_xlib_init_screen_font_options (Di + subpixel_order = CAIRO_SUBPIXEL_ORDER_DEFAULT; + } + ++ switch (xft_lcdfilter) { ++ case FC_LCD_NONE: ++ lcd_filter = CAIRO_LCD_FILTER_NONE; ++ break; ++ case FC_LCD_DEFAULT: ++ lcd_filter = CAIRO_LCD_FILTER_FIR5; ++ break; ++ case FC_LCD_LIGHT: ++ lcd_filter = CAIRO_LCD_FILTER_FIR3; ++ break; ++ case FC_LCD_LEGACY: ++ lcd_filter = CAIRO_LCD_FILTER_INTRA_PIXEL; ++ break; ++ default: ++ lcd_filter = CAIRO_LCD_FILTER_DEFAULT; ++ break; ++ } ++ + if (xft_antialias) { + if (subpixel_order == CAIRO_SUBPIXEL_ORDER_DEFAULT) + antialias = CAIRO_ANTIALIAS_GRAY; +@@ -251,6 +285,7 @@ _cairo_xlib_init_screen_font_options (Di + cairo_font_options_set_hint_style (&info->font_options, hint_style); + cairo_font_options_set_antialias (&info->font_options, antialias); + cairo_font_options_set_subpixel_order (&info->font_options, subpixel_order); ++ _cairo_font_options_set_lcd_filter (&info->font_options, lcd_filter); + cairo_font_options_set_hint_metrics (&info->font_options, CAIRO_HINT_METRICS_ON); + } + +--- a/js/src/config/system-headers ++++ b/js/src/config/system-headers +@@ -268,6 +268,7 @@ frame/req.h + freetype/freetype.h + freetype/ftcache.h + freetype/ftglyph.h ++freetype/ftlcdfil.h + freetype/ftsynth.h + freetype/ftoutln.h + freetype/ttnameid.h --- firefox-6.0+build1+nobinonly.orig/debian/patches/ubuntu-codes-baidu.patch +++ firefox-6.0+build1+nobinonly/debian/patches/ubuntu-codes-baidu.patch @@ -0,0 +1,19 @@ +Description: Update the Baidu search URL +Author: Chris Coulson <chris.coulson@canonical.com> +Forwarded: not-needed + +--- a/l10n/zh-CN/browser/searchplugins/baidu.xml ++++ b/l10n/zh-CN/browser/searchplugins/baidu.xml +@@ -5,9 +5,10 @@ + <Description>百度网页搜索</Description> + <InputEncoding>GB2312</InputEncoding> + <Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEACABoBQAAJgAAABAQAAABACAAaAQAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAL8UFQCYMwAAmjQAAJ06AAChPQAAuSQaANkOGQDBFBQAwBIeAMAfHwDaEBoA2hMdAMARIwDEHiwA2xYgANoYIgDbGiQA2x4nANwcJgDbHigAwyUlAMMsKwDcJSoA3SMtAN0kLQDeKzQA3i82AMUzMADBOTYAxDA8AN4wNwDfMDkA3zU9AKNBAAClQwAApkQAAKhHAACqSQAArU0AAK9QAACyVAAAtFcAALhaAAC5XgAAvWEAAL9lAADCaAAAxGsAAMZuAADIcgAAy3QAAM12AADPeQAA0HoAANJ+AADEOkMA4DpBAOE+RgDCRUYAzUpHAM1LSwDQQlEA0E9VAMJTUwDNU1IAx19aANFXVADQWFgA4UFHAOJESwDiRk0A4klQAOJNUgDjS1QA41FYAORTWQDkV10A5VpgAOVeZQDUbWsA2HJvAMx2dgDFf38A13F0ANR3fQDbfHoA5WBnAOZjaQDnZmwA52tvAOdscQDpcXYA6XR4ANOAAADVggAA336BAOp8ggDUgoAA3YaEAN2IhwDqgYYA7IeLAOuJjQDtj5MA7ZKWAOGWmADmo6AA56ilAOelqwDlqaoA6q6rAPCipgDwpaoA8amsAPGsrgDus64A6K2zAOe2tgDqubQA87K1APS9wADrxsQA7MvIAPbIygDxzs4A/8zMAPXRxAD11MkA+NbLAPfS0wDz1NAA+NHTAPjS1AD41NUA9NjWAPbf3AD42doA+dvdAPnd3gD+6dQA/u3bAPrg4QD75ucA/u/hAPvo6QD87+gA/O7vAP7y5gD68+wA/ff3AP748gD++vYA/vf4AP75+QD//v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////ACEhISEhISEhISEhISEhISEh//////////////////8hIf//jlk6SmhoORpXkf//ISH//2UHCwsHBwsLEXD//yEh//9hDw8RDxERDxh5//8hIf//hUYREQ8RDxlOi///ISH//5aLShERDxFLi3n//yEh//9yaYtGFBhNi0pKi/8hIf98IUp4i1lai2YaEXz/ISH/cREhhf+W//+LTU2O/yEh/45OWf9nhf9ycnyO//8hIf//k/9cIU58IUV8////ISH/////XBhOiyFHi////yEh/////4llgv+Li/////8hIf//////////////////ISEhISEhISEhISEhISEhISEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAALhbAP+0VwD/slQA/69RAP+tTgD/q0oA/6hHAP+mRAD/o0IA/6I+AP+gPAD/njoA/5w4AP+bNgD/mjQA/5gzAP+6XgD////////////////+////zP///8b////G////xv///8b////G////xv///8z///////////////+aNQD/vWEA////////////+uDh/+dlbP/hPkb/40tU/+2Pk//tj5P/4DtD/94rNP/lYGf/++jp////////////mzYA/79lAP////////7+/+uBh/7aDxn+2hAa/9oQG/7ZDhn+2g8Z/9oTHv7aEx3+2xkj//Cipv7//////////504AP/CaAD////////+/v/qfIL+2xYg/tsXIf/bGCL/2xgi/9sYIv/bGCL/2xYg/t0jLf/0vcD+//////////+eOwD/xGsA////////////+NLU/+JES//cHCb/2xgi/9sYIv/bGCL/2xgi/90lL//lWmH/+dzd////////////oD0A/8dvAP////////////339//5293/4khQ/9seKP7bGCL/2xgi/9sYIv/jUFj++dvd//S+wf7//v///////6NAAP/JcwD////////8/P/xqaz+7ZKW/vnb3f/iR0/+2x4n/t0kLP/kV13++dvd/+JOU//iSlH++d7f/v////+lQwD/zHUA///////2yMr/3zQ8/+NMUv/zsrX/+dvd/+Zjaf/nbHH/+dvd/+yHi//eMDf/2xok//bIy/7/////qEcA/853AP//////8KWq/9oYIf7fNz7+//////nb3f/+9/j////////////5293/5FNZ/+NSWf775uf//////6pJAP/QegD///////rg4f/lXmT+52ds/vGsrv/mX2b/7ZKW///////tkpb/7ZKW//bIy//64eL///////////+tTQD/0n0A/////////////O7v///////pcXb/3zA5/+ZfZv/2yMv/3i82/+FBR//2yMv/////////////////r1AA/9N/AP/////////////////++fn/6XR4/9wlKv7lW2D++dvd/+A6QP7iRkz++dvd/////////////////7JUAP/VgQD///////////////////////jZ2v7qgYX+99LT/v/////42tv++dvd/v////////////////////+0VwD/1oMA////////////////////////////////////////////////////////////////////////////uFoA/9aDAP/WgwD/1YEA/9OAAP/TfgD/0HsA/895AP/NdgD/y3QA/8hxAP/GbQD/xGsA/8JoAP+/ZQD/vWEA/7leAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</Image> +- <Url type="text/html" method="GET" template="http://www.baidu.com/baidu"> ++ <Url type="text/html" method="GET" template="http://baidu.com/s"> ++ <Param name="cl" value="3"/> + <Param name="wd" value="{searchTerms}"/> +- <Param name="tn" value="monline_dg"/> ++ <Param name="tn" value="ubuntuu_cb"/> + </Url> + <SearchForm>http://www.baidu.com/</SearchForm> + </SearchPlugin> --- firefox-6.0+build1+nobinonly.orig/debian/patches/fix-selection-drag-autoscroll.patch +++ firefox-6.0+build1+nobinonly/debian/patches/fix-selection-drag-autoscroll.patch @@ -0,0 +1,188 @@ +Description: Fix selection autoscroll with maximized windows +Author: Chris Coulson <chris.coulson@canonical.com> +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=644621 +Bug-Ubuntu: https://launchpad.net/bugs/744580 +Forwarded: https://bug644621.bugzilla.mozilla.org/attachment.cgi?id=525563 + +diff --git a/layout/generic/nsSelection.cpp b/layout/generic/nsSelection.cpp +--- a/layout/generic/nsSelection.cpp ++++ b/layout/generic/nsSelection.cpp +@@ -4720,18 +4720,20 @@ nsTypedSelection::DoAutoScroll(nsIFrame + nsRootPresContext* rootPC = presContext->GetRootPresContext(); + if (!rootPC) + return NS_OK; + nsIFrame* rootmostFrame = rootPC->PresShell()->FrameManager()->GetRootFrame(); + // Get the point relative to the root most frame because the scroll we are + // about to do will change the coordinates of aFrame. + nsPoint globalPoint = aPoint + aFrame->GetOffsetToCrossDoc(rootmostFrame); + ++ nsRect rect = nsIntRect(-20, -20, 40, 40). ++ ToAppUnits(presContext->AppUnitsPerDevPixel()); + PRBool didScroll = presContext->PresShell()-> +- ScrollFrameRectIntoView(aFrame, nsRect(aPoint, nsSize(1,1)), ++ ScrollFrameRectIntoView(aFrame, rect + aPoint, + NS_PRESSHELL_SCROLL_ANYWHERE, + NS_PRESSHELL_SCROLL_ANYWHERE, 0); + + // + // Start the AutoScroll timer if necessary. + // + + if (didScroll && mAutoScrollTimer) +diff --git a/layout/generic/test/Makefile.in b/layout/generic/test/Makefile.in +--- a/layout/generic/test/Makefile.in ++++ b/layout/generic/test/Makefile.in +@@ -124,16 +124,17 @@ _TEST_FILES = \ + test_bug522632.html \ + test_bug589621.html \ + test_bug589623.html \ + test_bug632379.xul \ + test_bug633762.html \ + bug633762_iframe.html \ + $(srcdir)/../../reftests/backgrounds/blue-32x32.png \ + $(srcdir)/../../reftests/backgrounds/fuchsia-32x32.png \ ++ test_drag_selection_autoscroll.html \ + $(NULL) + + _CHROME_FILES = \ + test_bug514732-2.xul \ + file_bug514732_window.xul \ + $(NULL) + + libs:: $(_TEST_FILES) +diff --git a/layout/generic/test/test_drag_selection_autoscroll.html b/layout/generic/test/test_drag_selection_autoscroll.html +new file mode 100644 +--- /dev/null ++++ b/layout/generic/test/test_drag_selection_autoscroll.html +@@ -0,0 +1,130 @@ ++<!DOCTYPE HTML> ++<html> ++<head> ++ <title>Test for autoscrolling the selection into view, when dragging ++ ++ ++ ++ ++ ++ ++ ++
++
++
Test
++
++
++ ++
++
++
++ ++ + --- firefox-6.0+build1+nobinonly.orig/debian/patches/reload-new-plugins.patch +++ firefox-6.0+build1+nobinonly/debian/patches/reload-new-plugins.patch @@ -0,0 +1,59 @@ +Description: Ensure that new plugins are reloaded +Author: Alexander Sack +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=460917 +Forwarded: https://bugzilla.mozilla.org/attachment.cgi?id=350845 +--- + browser/base/content/browser.js | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +--- a/browser/base/content/browser.js ++++ b/browser/base/content/browser.js +@@ -6783,7 +6783,11 @@ var gPluginHandler = { + if (notification) + notificationBox.removeNotification(notification); + +- // reload the browser to make the new plugin show. ++ // reload plugins ++ var pm = Components.classes["@mozilla.org/plugin/manager;1"] ++ .getService(Components.interfaces.nsIPluginManager); ++ pm.reloadPlugins(false); ++ // ... and reload the browser to activate new plugins available + browser.reload(); + }, + +@@ -6794,9 +6798,17 @@ var gPluginHandler = { + var pluginInfo = getPluginInfo(plugin); + missingPluginsArray[pluginInfo.mimetype] = pluginInfo; + ++ gBrowser.selectedBrowser.addEventListener("NewPluginInstalled", ++ gPluginHandler.newPluginInstalled, ++ false); ++ + openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul", + "PFSWindow", "chrome,centerscreen,resizable=yes", + {plugins: missingPluginsArray, browser: gBrowser.selectedBrowser}); ++ ++ gBrowser.selectedBrowser.removeEventListener("NewPluginInstalled", ++ gPluginHandler.newPluginInstalled, ++ false); + }, + + // Callback for user clicking on a disabled plugin +@@ -6858,11 +6870,17 @@ var gPluginHandler = { + function showPluginsMissing() { + // get the urls of missing plugins + var missingPluginsArray = gBrowser.selectedBrowser.missingPlugins; ++ gBrowser.selectedBrowser.addEventListener("NewPluginInstalled", ++ gPluginHandler.newPluginInstalled, ++ false); + if (missingPluginsArray) { + openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul", + "PFSWindow", "chrome,centerscreen,resizable=yes", + {plugins: missingPluginsArray, browser: gBrowser.selectedBrowser}); + } ++ gBrowser.selectedBrowser.removeEventListener("NewPluginInstalled", ++ gPluginHandler.newPluginInstalled, ++ false); + } + + #ifdef XP_MACOSX --- firefox-6.0+build1+nobinonly.orig/debian/patches/series +++ firefox-6.0+build1+nobinonly/debian/patches/series @@ -0,0 +1,16 @@ +reload-new-plugins.patch +ubuntu-codes-amazon.patch +ubuntu-bookmarks.patch +distro-locale-searchplugins.patch +normalize-distribution-searchplugins.patch +#dont-reset-user-prefs-on-upgrade.patch +cairo-lcd-filter.patch +ubuntu-codes-google.patch +plugin-for-mimetype-pref.patch +allow-lockPref-everywhere.patch +mozilla-kde.patch +firefox-kde.patch +fix-sdk-bin-install.patch +unity-globalmenu-build-support.patch +fix-selection-drag-autoscroll.patch +ubuntu-codes-baidu.patch --- firefox-6.0+build1+nobinonly.orig/debian/patches/ubuntu-codes-amazon.patch +++ firefox-6.0+build1+nobinonly/debian/patches/ubuntu-codes-amazon.patch @@ -0,0 +1,248 @@ +Description: Update the URL for Amazon search +Author: Alexander Sack +Forwarded: not-needed +--- + browser/locales/en-US/searchplugins/amazondotcom.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/browser/locales/en-US/searchplugins/amazondotcom.xml ++++ b/browser/locales/en-US/searchplugins/amazondotcom.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.com/ +--- a/l10n/ar/browser/searchplugins/amazondotcom.xml ++++ b/l10n/ar/browser/searchplugins/amazondotcom.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.com/ +--- a/l10n/bg/browser/searchplugins/amazondotcom.xml ++++ b/l10n/bg/browser/searchplugins/amazondotcom.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.com/ +--- a/l10n/br/browser/searchplugins/amazon-france.xml ++++ b/l10n/br/browser/searchplugins/amazon-france.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.fr/ +--- a/l10n/cy/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/cy/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/da/browser/searchplugins/amazon-co-uk.xml ++++ b/l10n/da/browser/searchplugins/amazon-co-uk.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/de/browser/searchplugins/amazondotcom-de.xml ++++ b/l10n/de/browser/searchplugins/amazondotcom-de.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.de/ +--- a/l10n/el/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/el/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/en-GB/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/en-GB/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/eu/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/eu/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/fr/browser/searchplugins/amazon-france.xml ++++ b/l10n/fr/browser/searchplugins/amazon-france.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.fr/ +--- a/l10n/ga-IE/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/ga-IE/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/gd/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/gd/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/gl/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/gl/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/hr/browser/searchplugins/amazon-en-GB.xml ++++ b/l10n/hr/browser/searchplugins/amazon-en-GB.xml +@@ -6,7 +6,7 @@ + + + +- ++ + + + http://www.amazon.co.uk/ +--- a/l10n/ja/browser/searchplugins/amazon-jp.xml ++++ b/l10n/ja/browser/searchplugins/amazon-jp.xml +@@ -11,7 +11,7 @@ + + + --> +- ++ + + <--[2] + + + <-------[3]---------><------[6]------> + ''' + def __init__(self, contents, pp, + span, pre_ws_span, pre_comment_span, def_span, + key_span, val_span, post_span): + self.contents = contents + self.span = span + self.pre_ws_span = pre_ws_span + self.pre_comment_span = pre_comment_span + self.def_span = def_span + self.key_span = key_span + self.val_span = val_span + self.post_span = post_span + self.pp = pp + pass + + # getter helpers + + def get_all(self): + return self.contents[self.span[0] : self.span[1]] + def get_pre_ws(self): + return self.contents[self.pre_ws_span[0] : self.pre_ws_span[1]] + def get_pre_comment(self): + return self.contents[self.pre_comment_span[0] : self.pre_comment_span[1]] + def get_def(self): + return self.contents[self.def_span[0] : self.def_span[1]] + def get_key(self): + return self.contents[self.key_span[0] : self.key_span[1]] + def get_val(self): + return self.pp(self.contents[self.val_span[0] : self.val_span[1]]) + def get_post(self): + return self.contents[self.post_span[0] : self.post_span[1]] + + # getters + + all = property(get_all) + pre_ws = property(get_pre_ws) + pre_comment = property(get_pre_comment) + definition = property(get_def) + key = property(get_key) + val = property(get_val) + post = property(get_post) + + def __repr__(self): + return self.key + +class Junk(object): + ''' + An almost-Entity, representing junk data that we didn't parse. + This way, we can signal bad content as stuff we don't understand. + And the either fix that, or report real bugs in localizations. + ''' + junkid = 0 + def __init__(self, contents, span): + self.contents = contents + self.span = span + self.pre_ws = self.pre_comment = self.definition = self.post = '' + self.__class__.junkid += 1 + self.key = '_junk_%d_%d-%d' % (self.__class__.junkid, span[0], span[1]) + + # getter helpers + + def get_all(self): + return self.contents[self.span[0] : self.span[1]] + + # getters + + all = property(get_all) + val = property(get_all) + def __repr__(self): + return self.key + + +class Parser: + canMerge = True + def __init__(self): + if not hasattr(self, 'encoding'): + self.encoding = 'utf-8'; + pass + def readFile(self, file): + f = codecs.open(file, 'r', self.encoding) + try: + self.contents = f.read() + except UnicodeDecodeError, e: + logging.getLogger('locales').error("Can't read file: " + file + '; ' + str(e)) + self.contents = u'' + f.close() + def readContents(self, contents): + (self.contents, length) = codecs.getdecoder(self.encoding)(contents) + def parse(self): + l = [] + m = {} + for e in self: + m[e.key] = len(l) + l.append(e) + return (l, m) + def postProcessValue(self, val): + return val + def __iter__(self): + contents = self.contents + offset = 0 + self.header = '' + self.footer = '' + h = self.reHeader.match(contents) + if h: + self.header = h.group() + offset = h.end() + entity, offset = self.getEntity(contents, offset) + while entity: + yield entity + entity, offset = self.getEntity(contents, offset) + f = self.reFooter.match(contents, offset) + if f: + self.footer = f.group() + offset = f.end() + if len(contents) > offset: + yield Junk(contents, (offset, len(contents))) + pass + def getEntity(self, contents, offset): + m = self.reKey.match(contents, offset) + if m: + offset = m.end() + entity = Entity(contents, self.postProcessValue, + *[m.span(i) for i in xrange(7)]) + return (entity, offset) + m = self.reKey.search(contents, offset) + if m: + # we didn't match, but search, so there's junk between offset + # and start. We'll match() on the next turn + junkend = m.start() + return (Junk(contents, (offset, junkend)), junkend) + return (None, offset) + +def getParser(path): + for item in __constructors: + if re.search(item[0], path): + return item[1] + raise UserWarning, "Cannot find Parser" + + +# Subgroups of the match will: +# 1: pre white space +# 2: pre comments +# 3: entity definition +# 4: entity key (name) +# 5: entity value +# 6: post comment (and white space) in the same line (dtd only) +# <--[1] +# <--[2] +# +# +# <-------[3]---------><------[6]------> + + +class DTDParser(Parser): + def __init__(self): + # http://www.w3.org/TR/2006/REC-xml11-20060816/#NT-NameStartChar + #":" | [A-Z] | "_" | [a-z] | + # [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] + # | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | + # [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | + # [#x10000-#xEFFFF] + CharMinusDash = u'\x09\x0A\x0D\u0020-\u002C\u002E-\uD7FF\uE000-\uFFFD' + XmlComment = '' % CharMinusDash + NameStartChar = u':A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF' + \ + u'\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF'+\ + u'\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD' + # + \U00010000-\U000EFFFF seems to be unsupported in python + + # NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | + # [#x0300-#x036F] | [#x203F-#x2040] + NameChar = NameStartChar + ur'\-\.0-9' + u'\xB7\u0300-\u036F\u203F-\u2040' + Name = '[' + NameStartChar + '][' + NameChar + ']*' + self.reKey = re.compile('(?:(\s*)((?:' + XmlComment + '\s*)*)()([ \t]*(?:' + XmlComment + '\s*)*\n?)?)') + # add BOM to DTDs, details in bug 435002 + self.reHeader = re.compile(u'^\ufeff?(\s*)?') + self.reFooter = re.compile('\s*(\s*)*$') + self.rePE = re.compile('(?:(\s*)((?:' + XmlComment + '\s*)*)(\s*%' + Name + ';)([ \t]*(?:' + XmlComment + '\s*)*\n?)?)') + Parser.__init__(self) + def getEntity(self, contents, offset): + ''' + Overload Parser.getEntity to special-case ParsedEntities. + Just check for a parsed entity if that method claims junk. + + + %foo; + ''' + entity, inneroffset = Parser.getEntity(self, contents, offset) + if (entity and isinstance(entity, Junk)) or entity is None: + m = self.rePE.match(contents, offset) + if m: + inneroffset = m.end() + entity = Entity(contents, self.postProcessValue, + *[m.span(i) for i in xrange(7)]) + return (entity, inneroffset) + +class PropertiesParser(Parser): + def __init__(self): + self.reKey = re.compile('^(\s*)((?:[#!].*?\n\s*)*)(([^#!\s\n][^=:\n]*?)\s*[:=][ \t]*((?:[^\\\\]|\\\\.)*?))([ \t]*$\n?)',re.M|re.S) + self.reHeader = re.compile('^\s*([#!].*LICENSE BLOCK.*\s*)([#!].*\s*)*') + self.reFooter = re.compile('\s*([#!].*\s*)*$') + self._post = re.compile('\\\\u([0-9a-fA-F]{4})') + Parser.__init__(self) + _arg_re = re.compile('%(?:(?P[0-9]+)\$)?(?P[0-9]+)?(?:.(?P[0-9]+))?(?P[hL]|(?:ll?))?(?P[dciouxXefgpCSsn])') + def postProcessValue(self, val): + m = self._post.search(val) + if not m: + return val + while m: + uChar = unichr(int(m.group(1), 16)) + val = val.replace(m.group(), uChar) + m = self._post.search(val) + return val + +class DefinesParser(Parser): + # can't merge, #unfilter needs to be the last item, which we don't support + canMerge = False + def __init__(self): + self.reKey = re.compile('^(\s*)((?:^#(?!define\s).*\s*)*)(#define[ \t]+(\w+)[ \t]+(.*?))([ \t]*$\n?)',re.M) + self.reHeader = re.compile('^\s*(#(?!define\s).*\s*)*') + self.reFooter = re.compile('\s*(#(?!define\s).*\s*)*$',re.M) + Parser.__init__(self) + +class IniParser(Parser): + ''' + Parse files of the form: + # initial comment + [cat] + whitespace* + #comment + string=value + ... + ''' + def __init__(self): + self.reHeader = re.compile('^(\s*[;#].*\n)*\[.+?\]\n', re.M) + self.reKey = re.compile('(\s*)((?:[;#].*\n\s*)*)((.+?)=(.*))(\n?)') + self.reFooter = re.compile('\s*') + Parser.__init__(self) + + +DECL, COMMENT, START, END, CONTENT = range(5) + +class BookmarksParserInner(HTMLParser): + + class Token(object): + _type = None + content = '' + def __str__(self): + return self.content + class DeclToken(Token): + _type = DECL + def __init__(self, decl): + self.content = decl + pass + def __str__(self): + return '' % self.content + pass + class CommentToken(Token): + _type = COMMENT + def __init__(self, comment): + self.content = comment + pass + def __str__(self): + return '' % self.content + pass + class StartToken(Token): + _type = START + def __init__(self, tag, attrs, content): + self.tag = tag + self.attrs = dict(attrs) + self.content = content + pass + pass + class EndToken(Token): + _type = END + def __init__(self, tag): + self.tag = tag + pass + def __str__(self): + return '' % self.tag.upper() + pass + class ContentToken(Token): + _type = CONTENT + def __init__(self, content): + self.content = content + pass + pass + + def __init__(self): + HTMLParser.__init__(self) + self.tokens = [] + + def parse(self, contents): + self.tokens = [] + self.feed(contents) + self.close() + return self.tokens + + # Called when we hit an end DL tag to reset the folder selections + def handle_decl(self, decl): + self.tokens.append(self.DeclToken(decl)) + + # Called when we hit an end DL tag to reset the folder selections + def handle_comment(self, comment): + self.tokens.append(self.CommentToken(comment)) + + def handle_starttag(self, tag, attrs): + self.tokens.append(self.StartToken(tag, attrs, self.get_starttag_text())) + + # Called when text data is encountered + def handle_data(self, data): + if self.tokens[-1]._type == CONTENT: + self.tokens[-1].content += data + else: + self.tokens.append(self.ContentToken(data)) + + def handle_charref(self, data): + self.handle_data('&#%s;' % data) + + def handle_entityref(self, data): + self.handle_data('&%s;' % data) + + # Called when we hit an end DL tag to reset the folder selections + def handle_endtag(self, tag): + self.tokens.append(self.EndToken(tag)) + +class BookmarksParser(Parser): + canMerge = False + + class BMEntity(object): + def __init__(self, key, val): + self.key = key + self.val = val + + def __iter__(self): + p = BookmarksParserInner() + tks = p.parse(self.contents) + i = 0 + k = [] + for i in xrange(len(tks)): + t = tks[i] + if t._type == START: + k.append(t.tag) + keys = t.attrs.keys() + keys.sort() + for attrname in keys: + yield self.BMEntity('.'.join(k) + '.@' + attrname, + t.attrs[attrname]) + if i + 1 < len(tks) and tks[i+1]._type == CONTENT: + i += 1 + t = tks[i] + v = t.content.strip() + if v: + yield self.BMEntity('.'.join(k), v) + elif t._type == END: + k.pop() + + +__constructors = [('\\.dtd$', DTDParser()), + ('\\.properties$', PropertiesParser()), + ('\\.ini$', IniParser()), + ('\\.inc$', DefinesParser()), + ('bookmarks\\.html$', BookmarksParser())] --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/lib/Mozilla/Paths.py +++ firefox-6.0+build1+nobinonly/debian/compare-locales/lib/Mozilla/Paths.py @@ -0,0 +1,409 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2006 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +import os.path +import os +from ConfigParser import ConfigParser, NoSectionError, NoOptionError +from urlparse import urlparse, urljoin +from urllib import pathname2url, url2pathname +from urllib2 import urlopen +from Mozilla.CompareLocales import defaultdict + +class L10nConfigParser(object): + '''Helper class to gather application information from ini files. + + This class is working on synchronous open to read files or web data. + Subclass this and overwrite loadConfigs and addChild if you need async. + ''' + def __init__(self, inipath, **kwargs): + """Constructor for L10nConfigParsers + + inipath -- l10n.ini path + Optional keyword arguments are fowarded to the inner ConfigParser as + defaults. + """ + if os.path.isabs(inipath): + self.inipath = 'file:%s' % pathname2url(inipath) + else: + pwdurl = 'file:%s/' % pathname2url(os.getcwd()) + self.inipath = urljoin(pwdurl, inipath) + # l10n.ini files can import other l10n.ini files, store the + # corresponding L10nConfigParsers + self.children = [] + # we really only care about the l10n directories described in l10n.ini + self.dirs = [] + # optional defaults to be passed to the inner ConfigParser (unused?) + self.defaults = kwargs + + def getDepth(self, cp): + '''Get the depth for the comparison from the parsed l10n.ini. + + Overloadable to get the source depth for fennec and friends. + ''' + try: + depth = cp.get('general', 'depth') + except: + depth = '.' + return depth + + def getFilters(self): + '''Get the test functions from this ConfigParser and all children. + + Only works with synchronous loads, used by compare-locales, which + is local anyway. + ''' + filterurl = urljoin(self.inipath, 'filter.py') + try: + l = {} + execfile(url2pathname(urlparse(filterurl).path), {}, l) + if 'test' in l and callable(l['test']): + filters = [l['test']] + else: + filters = [] + except: + filters = [] + + for c in self.children: + filters += c.getFilters() + + return filters + + + def loadConfigs(self): + """Entry point to load the l10n.ini file this Parser refers to. + + This implementation uses synchronous loads, subclasses might overload + this behaviour. If you do, make sure to pass a file-like object + to onLoadConfig. + """ + self.onLoadConfig(urlopen(self.inipath)) + + def onLoadConfig(self, inifile): + """Parse a file-like object for the loaded l10n.ini file.""" + cp = ConfigParser(self.defaults) + cp.readfp(inifile) + depth = self.getDepth(cp) + self.baseurl = urljoin(self.inipath, depth) + # create child loaders for any other l10n.ini files to be included + try: + for title, path in cp.items('includes'): + # skip default items + if title in self.defaults: + continue + # add child config parser + self.addChild(title, path, cp) + except NoSectionError: + pass + # try to load the "dirs" defined in the "compare" section + try: + self.dirs.extend(cp.get('compare', 'dirs').split()) + except (NoOptionError, NoSectionError): + pass + # try getting a top level compare dir, as used for fennec + try: + self.tld = cp.get('compare', 'tld') + # remove tld from comparison dirs + if self.tld in self.dirs: + self.dirs.remove(self.tld) + except (NoOptionError, NoSectionError): + self.tld = None + # try to set "all_path" and "all_url" + try: + self.all_path = cp.get('general', 'all') + self.all_url = urljoin(self.baseurl, self.all_path) + except (NoOptionError, NoSectionError): + self.all_path = None + self.all_url = None + return cp + + def addChild(self, title, path, orig_cp): + """Create a child L10nConfigParser and load it. + + title -- indicates the module's name + path -- indicates the path to the module's l10n.ini file + orig_cp -- the configuration parser of this l10n.ini + """ + cp = L10nConfigParser(urljoin(self.baseurl, path), **self.defaults) + cp.loadConfigs() + self.children.append(cp) + + def getTLDPathsTuple(self, basepath): + """Given the basepath, return the path fragments to be used for + self.tld. For build runs, this is (basepath, self.tld), for + source runs, just (basepath,). + + @see overwritten method in SourceTreeConfigParser. + """ + return (basepath, self.tld) + + def dirsIter(self): + """Iterate over all dirs and our base path for this l10n.ini""" + url = urlparse(self.baseurl) + basepath = url2pathname(url.path) + if self.tld is not None: + yield self.tld, self.getTLDPathsTuple(basepath) + for dir in self.dirs: + yield dir, (basepath, dir) + + + def directories(self): + """Iterate over all dirs and base paths for this l10n.ini as well + as the included ones. + """ + for t in self.dirsIter(): + yield t + for child in self.children: + for t in child.directories(): + yield t + + def allLocales(self): + """Return a list of all the locales of this project""" + return urlopen(self.all_url).read().splitlines() + + +class SourceTreeConfigParser(L10nConfigParser): + '''Subclassing L10nConfigParser to work with just the repos + checked out next to each other instead of intermingled like + we do for real builds. + ''' + + def __init__(self, inipath, basepath): + '''Add additional arguments basepath. + + basepath is used to resolve local paths via branchnames. + ''' + L10nConfigParser.__init__(self, inipath) + self.basepath = basepath + self.tld = None + + def getDepth(self, cp): + '''Get the depth for the comparison from the parsed l10n.ini. + + Overloaded to get the source depth for fennec and friends. + ''' + try: + depth = cp.get('general', 'source-depth') + except: + try: + depth = cp.get('general', 'depth') + except: + depth = '.' + return depth + + def addChild(self, title, path, orig_cp): + # check if there's a section with details for this include + # we might have to check a different repo, or even VCS + # for example, projects like "mail" indicate in + # an "include_" section where to find the l10n.ini for "toolkit" + details = 'include_' + title + if orig_cp.has_section(details): + branch = orig_cp.get(details, 'mozilla') + inipath = orig_cp.get(details, 'l10n.ini') + path = self.basepath + '/' + branch + '/' + inipath + else: + path = urljoin(self.baseurl, path) + cp = SourceTreeConfigParser(path, self.basepath, **self.defaults) + cp.loadConfigs() + self.children.append(cp) + + def getTLDPathsTuple(self, basepath): + """Overwrite L10nConfigParser's getTLDPathsTuple to just return + the basepath. + """ + return (basepath, ) + + +class File(object): + def __init__(self, fullpath, file, module = None, locale = None): + self.fullpath = fullpath + self.file = file + self.module = module + self.locale = locale + pass + def getContents(self): + # open with universal line ending support and read + return open(self.fullpath, 'rU').read() + def __hash__(self): + f = self.file + if self.module: + f = self.module + '/' + f + return hash(f) + def __str__(self): + return self.fullpath + def __cmp__(self, other): + if not isinstance(other, File): + raise NotImplementedError + rv = cmp(self.module, other.module) + if rv != 0: + return rv + return cmp(self.file, other.file) + +class EnumerateDir(object): + ignore_dirs = ['CVS', '.svn', '.hg'] + def __init__(self, basepath, module = '', locale = None): + self.basepath = basepath + self.module = module + self.locale = locale + pass + def cloneFile(self, other): + ''' + Return a File object that this enumerator would return, if it had it. + ''' + return File(os.path.join(self.basepath, other.file), other.file, + self.module, self.locale) + def __iter__(self): + # our local dirs are given as a tuple of path segments, starting off + # with an empty sequence for the basepath. + dirs = [()] + while dirs: + dir = dirs.pop(0) + fulldir = os.path.join(self.basepath, *dir) + try: + entries = os.listdir(fulldir) + except OSError: + # we probably just started off in a non-existing dir, ignore + continue + entries.sort() + for entry in entries: + leaf = os.path.join(fulldir, entry) + if os.path.isdir(leaf): + if entry not in self.ignore_dirs: + dirs.append(dir + (entry,)) + continue + yield File(leaf, '/'.join(dir + (entry,)), + self.module, self.locale) + +class LocalesWrap(object): + def __init__(self, base, module, locales): + self.base = base + self.module = module + self.locales = locales + def __iter__(self): + for locale in self.locales: + path = os.path.join(self.base, locale, self.module) + yield (locale, EnumerateDir(path, self.module, locale)) + +class EnumerateApp(object): + reference = 'en-US' + def __init__(self, inipath, l10nbase, locales = None): + self.setupConfigParser(inipath) + self.modules = defaultdict(dict) + self.l10nbase = os.path.abspath(l10nbase) + self.filters = [] + drive, tail = os.path.splitdrive(inipath) + filterpath = drive + url2pathname(urlparse(urljoin(tail,'filter.py'))[2]) + self.addFilters(*self.config.getFilters()) + self.locales = locales or self.config.allLocales() + self.locales.sort() + pass + def setupConfigParser(self, inipath): + self.config = L10nConfigParser(inipath) + self.config.loadConfigs() + def addFilters(self, *args): + self.filters += args + + value_map = {None:None, 'error':0, 'ignore':1, 'report':2} + def filter(self, l10n_file, entity = None): + '''Go through all added filters, and, + - map "error" -> 0, "ignore" -> 1, "report" -> 2 + - if filter.test returns a bool, map that to + False -> "ignore" (1), True -> "error" (0) + - take the max of all reported + ''' + rv = 0 + for f in reversed(self.filters): + try: + _r = f(l10n_file.module, l10n_file.file, entity) + except: + # XXX error handling + continue + if isinstance(_r, bool): + _r = [1, 0][_r] + else: + # map string return value to int, default to 'error', None is None + _r = self.value_map.get(_r, 0) + if _r is not None: + rv = max(rv, _r) + return ['error','ignore','report'][rv] + + def __iter__(self): + ''' + Iterate over all modules, return en-US directory enumerator, and an + iterator over all locales in each iteration. Per locale, the locale + code and an directory enumerator will be given. + ''' + dirmap = dict(self.config.directories()) + mods = dirmap.keys() + mods.sort() + for mod in mods: + if self.reference == 'en-US': + base = os.path.join(*(dirmap[mod] + ('locales', 'en-US'))) + else: + base = os.path.join(self.l10nbase, self.reference, mod) + yield (mod, EnumerateDir(base, mod, self.reference), + LocalesWrap(self.l10nbase, mod, self.locales)) + + +class EnumerateSourceTreeApp(EnumerateApp): + '''Subclass EnumerateApp to work on side-by-side checked out + repos, and to no pay attention to how the source would actually + be checked out for building. + + It's supporting applications like Fennec, too, which have + 'locales/en-US/...' in their root dir, but claim to be 'mobile'. + ''' + + def __init__(self, inipath, basepath, l10nbase, locales=None): + self.basepath = basepath + EnumerateApp.__init__(self, inipath, l10nbase, locales) + + def setupConfigParser(self, inipath): + self.config = SourceTreeConfigParser(inipath, self.basepath) + self.config.loadConfigs() + + +def get_base_path(mod, loc): + 'statics for path patterns and conversion' + __l10n = 'l10n/%(loc)s/%(mod)s' + __en_US = 'mozilla/%(mod)s/locales/en-US' + if loc == 'en-US': + return __en_US % {'mod': mod} + return __l10n % {'mod': mod, 'loc': loc} + +def get_path(mod, loc, leaf): + return get_base_path(mod, loc) + '/' + leaf + --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/lib/Mozilla/CompareLocales.py +++ firefox-6.0+build1+nobinonly/debian/compare-locales/lib/Mozilla/CompareLocales.py @@ -0,0 +1,506 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2006 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +'Mozilla l10n compare locales tool' + +import codecs +import os +import os.path +import shutil +import re +import logging +from difflib import SequenceMatcher +try: + from collections import defaultdict +except ImportError: + class defaultdict(dict): + def __init__(self, defaultclass): + dict.__init__(self) + self.__defaultclass = defaultclass + def __getitem__(self, k): + if not dict.__contains__(self, k): + self[k] = self.__defaultclass() + return dict.__getitem__(self, k) +# backwards compat hack for any(), new in python 2.5 +try: + any([True]) +except NameError: + def any(sequence): + for item in sequence: + if item: + return True + return False + + +import Parser +import Paths + +class Tree(object): + def __init__(self, valuetype): + self.branches = dict() + self.valuetype = valuetype + self.value = None + def __getitem__(self, leaf): + parts = [] + if isinstance(leaf, Paths.File): + parts = [p for p in [leaf.locale, leaf.module] if p] + \ + leaf.file.split('/') + else: + parts = leaf.split('/') + return self.__get(parts) + def __get(self, parts): + common = None + old = None + new = tuple(parts) + t = self + for k, v in self.branches.iteritems(): + for i, part in enumerate(zip(k, parts)): + if part[0] != part[1]: + i -= 1 + break + if i < 0: + continue + i += 1 + common = tuple(k[:i]) + old = tuple(k[i:]) + new = tuple(parts[i:]) + break + if old: + self.branches.pop(k) + t = Tree(self.valuetype) + t.branches[old] = v + self.branches[common] = t + elif common: + t = self.branches[common] + if new: + if common: + return t.__get(new) + t2 = t + t = Tree(self.valuetype) + t2.branches[new] = t + if t.value is None: + t.value = t.valuetype() + return t.value + indent = ' ' + def getContent(self, depth = 0): + ''' + Returns iterator of (depth, flag, key_or_value) tuples. + If flag is 'value', key_or_value is a value object, otherwise + (flag is 'key') it's a key string. + ''' + keys = self.branches.keys() + keys.sort() + if self.value is not None: + yield (depth, 'value', self.value) + for key in keys: + yield (depth, 'key', key) + for child in self.branches[key].getContent(depth + 1): + yield child + def toJSON(self): + ''' + Returns this Tree as a JSON-able tree of hashes. + Only the values need to take care that they're JSON-able. + ''' + json = {} + keys = self.branches.keys() + keys.sort() + if self.value is not None: + json['value'] = self.value + children = [('/'.join(key), self.branches[key].toJSON()) + for key in keys] + if children: + json['children'] = children + return json + def getStrRows(self): + def tostr(t): + if t[1] == 'key': + return self.indent * t[0] + '/'.join(t[2]) + return self.indent * (t[0] + 1) + str(t[2]) + return map(tostr, self.getContent()) + def __str__(self): + return '\n'.join(self.getStrRows()) + +class AddRemove(SequenceMatcher): + def __init__(self): + SequenceMatcher.__init__(self, None, None, None) + def set_left(self, left): + if not isinstance(left, list): + left = [l for l in left] + self.set_seq1(left) + def set_right(self, right): + if not isinstance(right, list): + right = [l for l in right] + self.set_seq2(right) + def __iter__(self): + for tag, i1, i2, j1, j2 in self.get_opcodes(): + if tag == 'equal': + for pair in zip(self.a[i1:i2], self.b[j1:j2]): + yield ('equal', pair) + elif tag == 'delete': + for item in self.a[i1:i2]: + yield ('delete', item) + elif tag == 'insert': + for item in self.b[j1:j2]: + yield ('add', item) + else: + # tag == 'replace' + for item in self.a[i1:i2]: + yield ('delete', item) + for item in self.b[j1:j2]: + yield ('add', item) + +class DirectoryCompare(SequenceMatcher): + def __init__(self, reference): + SequenceMatcher.__init__(self, None, [i for i in reference], + []) + self.watcher = None + def setWatcher(self, watcher): + self.watcher = watcher + def compareWith(self, other): + if not self.watcher: + return + self.set_seq2([i for i in other]) + for tag, i1, i2, j1, j2 in self.get_opcodes(): + if tag == 'equal': + for i, j in zip(xrange(i1,i2), xrange(j1,j2)): + self.watcher.compare(self.a[i], self.b[j]) + elif tag == 'delete': + for i in xrange(i1,i2): + self.watcher.add(self.a[i], other.cloneFile(self.a[i])) + elif tag == 'insert': + for j in xrange(j1, j2): + self.watcher.remove(self.b[j]) + else: + for j in xrange(j1, j2): + self.watcher.remove(self.b[j]) + for i in xrange(i1,i2): + self.watcher.add(self.a[i], other.cloneFile(self.a[i])) + +class Observer(object): + stat_cats = ['missing', 'obsolete', 'missingInFiles', 'report', + 'changed', 'unchanged', 'keys'] + def __init__(self): + class intdict(defaultdict): + def __init__(self): + defaultdict.__init__(self, int) + self.summary = defaultdict(intdict) + self.details = Tree(dict) + self.filter = None + # support pickling + def __getstate__(self): + return dict(summary = self.getSummary(), details = self.details) + def __setstate__(self, state): + class intdict(defaultdict): + def __init__(self): + defaultdict.__init__(self, int) + self.summary = defaultdict(intdict) + if 'summary' in state: + for loc, stats in state['summary'].iteritems(): + self.summary[loc].update(stats) + self.details = state['details'] + self.filter = None + def getSummary(self): + plaindict = {} + for k, v in self.summary.iteritems(): + plaindict[k] = dict(v) + return plaindict + def toJSON(self): + return dict(summary = self.getSummary(), details = self.details.toJSON()) + def notify(self, category, file, data): + rv = "error" + if category in self.stat_cats: + # these get called post reporting just for stats + # return "error" to forward them to other observers + self.summary[file.locale][category] += data + return "error" + if category in ['missingFile', 'obsoleteFile']: + if self.filter is not None: + rv = self.filter(file) + if rv != "ignore": + self.details[file][category] = rv + return rv + if category in ['missingEntity', 'obsoleteEntity']: + if self.filter is not None: + rv = self.filter(file, data) + if rv == "ignore": + return rv + v = self.details[file] + try: + v[category].append(data) + except KeyError: + v[category] = [data] + return rv + if category == 'error': + try: + self.details[file][category].append(data) + except KeyError: + self.details[file][category] = [data] + self.summary[file.locale]['errors'] += 1 + return rv + def serialize(self, type="text/plain"): + def tostr(t): + if t[1] == 'key': + return ' ' * t[0] + '/'.join(t[2]) + o = [] + indent = ' ' * (t[0] + 1) + if 'error' in t[2]: + o += [indent + 'ERROR: ' + e for e in t[2]['error']] + if 'missingEntity' in t[2] or 'obsoleteEntity' in t[2]: + missingEntities = ('missingEntity' in t[2] and t[2]['missingEntity']) \ + or [] + obsoleteEntities = ('obsoleteEntity' in t[2] and + t[2]['obsoleteEntity']) or [] + entities = missingEntities + obsoleteEntities + entities.sort() + for entity in entities: + op = '+' + if entity in obsoleteEntities: + op = '-' + o.append(indent + op + entity) + elif 'missingFile' in t[2]: + o.append(indent + '// add and localize this file') + elif 'obsoleteFile' in t[2]: + o.append(indent + '// remove this file') + return '\n'.join(o) + out = [] + for locale, summary in self.summary.iteritems(): + if locale is not None: + out.append(locale + ':') + out += [k + ': ' + str(v) for k,v in summary.iteritems()] + total = sum([summary[k] \ + for k in ['changed','unchanged','report','missing', + 'missingInFiles'] \ + if k in summary]) + rate = (('changed' in summary and summary['changed'] * 100) + or 0) / total + out.append('%d%% of entries changed' % rate) + return '\n'.join(map(tostr, self.details.getContent()) + out) + def __str__(self): + return 'observer' + +class ContentComparer: + keyRE = re.compile('[kK]ey') + def __init__(self, filterObserver): + '''Create a ContentComparer. + filterObserver is usually a instance of Observer. The return values + of the notify method are used to control the handling of missing + entities. + ''' + self.reference = dict() + self.filterObserver = filterObserver + self.observers = [] + self.merge_stage = None + def add_observer(self, obs): + '''Add a non-filtering observer. + Results from the notify calls are ignored. + ''' + self.observers.append(obs) + def set_merge_stage(self, merge_stage): + self.merge_stage = merge_stage + def merge(self, ref_entities, ref_map, ref_file, l10n_file, missing, p): + outfile = os.path.join(self.merge_stage, l10n_file.module, l10n_file.file) + outdir = os.path.dirname(outfile) + if not os.path.isdir(outdir): + os.makedirs(outdir) + if not p.canMerge: + shutil.copyfile(ref_file.fullpath, outfile) + print "copied reference to " + outfile + return + trailing = [ref_entities[ref_map[key]].all for key in missing] + shutil.copyfile(l10n_file.fullpath, outfile) + print "adding to " + outfile + f = codecs.open(outfile, 'ab', p.encoding) + f.write(''.join(trailing)) + f.close() + def notify(self, category, file, data): + '''Check filterObserver for the found data, and if it's + not to ignore, notify observers. + ''' + rv = self.filterObserver.notify(category, file, data) + if rv == 'ignore': + return rv + for obs in self.observers: + # non-filtering observers, ignore results + obs.notify(category, file, data) + return rv + def remove(self, obsolete): + self.notify('obsoleteFile', obsolete, None) + pass + def compare(self, ref_file, l10n): + try: + p = Parser.getParser(ref_file.file) + except UserWarning: + # no comparison, XXX report? + return + if ref_file not in self.reference: + # we didn't parse this before + try: + p.readContents(ref_file.getContents()) + except Exception, e: + self.notify('error', ref_file, str(e)) + return + self.reference[ref_file] = p.parse() + ref = self.reference[ref_file] + ref_list = ref[1].keys() + ref_list.sort() + try: + p.readContents(l10n.getContents()) + l10n_entities, l10n_map = p.parse() + except Exception, e: + self.notify('error', l10n, str(e)) + return + l10n_list = l10n_map.keys() + l10n_list.sort() + ar = AddRemove() + ar.set_left(ref_list) + ar.set_right(l10n_list) + report = missing = obsolete = changed = unchanged = keys = 0 + missings = [] + for action, item_or_pair in ar: + if action == 'delete': + # missing entity + _rv = self.notify('missingEntity', l10n, item_or_pair) + if _rv == "ignore": + continue + if _rv == "error": + # only add to missing entities for l10n-merge on error, not report + missings.append(item_or_pair) + missing += 1 + else: + # just report + report += 1 + elif action == 'add': + # obsolete entity or junk + if isinstance(l10n_entities[l10n_map[item_or_pair]], Parser.Junk): + junk = l10n_entities[l10n_map[item_or_pair]] + params = (junk.val,) + junk.span + self.notify('error', l10n, 'Unparsed content "%s" at %d-%d' % params) + elif self.notify('obsoleteEntity', l10n, item_or_pair) != 'ignore': + obsolete += 1 + else: + # entity found in both ref and l10n, check for changed + entity = item_or_pair[0] + if self.keyRE.search(entity): + keys += 1 + else: + refent = ref[0][ref[1][entity]] + l10nent = l10n_entities[l10n_map[entity]] + if refent.val == l10nent.val: + self.doUnchanged(l10nent) + unchanged += 1 + else: + self.doChanged(ref_file, refent, l10nent) + changed += 1 + pass + if missing: + self.notify('missing', l10n, missing) + if self.merge_stage is not None and missings: + self.merge(ref[0], ref[1], ref_file, l10n, missings, p) + if report: + self.notify('report', l10n, report) + if obsolete: + self.notify('obsolete', l10n, obsolete) + if changed: + self.notify('changed', l10n, changed) + if unchanged: + self.notify('unchanged', l10n, unchanged) + if keys: + self.notify('keys', l10n, keys) + pass + def add(self, orig, missing): + if self.notify('missingFile', missing, None) == "ignore": + # filter said that we don't need this file, don't count it + return + f = orig + try: + p = Parser.getParser(f.file) + except UserWarning: + return + try: + p.readContents(f.getContents()) + entities, map = p.parse() + except Exception, e: + self.notify('error', f, str(e)) + return + self.notify('missingInFiles', missing, len(map)) + def doUnchanged(self, entity): + # overload this if needed + pass + def doChanged(self, file, ref_entity, l10n_entity): + # overload this if needed + pass + +def compareApp(app, otherObserver = None, merge_stage = None): + '''Compare locales set in app. + + Optional arguments are: + - otherObserver. A object implementing + notify(category, _file, data) + The return values of that callback are ignored. + - merge_stage. A directory to be used for staging the output of + l10n-merge. + ''' + o = Observer() + cc = ContentComparer(o) + if otherObserver is not None: + cc.add_observer(otherObserver) + cc.set_merge_stage(merge_stage) + o.filter = app.filter + for module, reference, locales in app: + dc = DirectoryCompare(reference) + dc.setWatcher(cc) + for locale, localization in locales: + dc.compareWith(localization) + return o + +def compareDirs(reference, locale, otherObserver = None, merge_stage = None): + '''Compare reference and locale dir. + + Optional arguments are: + - otherObserver. A object implementing + notify(category, _file, data) + The return values of that callback are ignored. + ''' + o = Observer() + cc = ContentComparer(o) + if otherObserver is not None: + cc.add_observer(otherObserver) + cc.set_merge_stage(merge_stage) + dc = DirectoryCompare(Paths.EnumerateDir(reference)) + dc.setWatcher(cc) + dc.compareWith(Paths.EnumerateDir(locale)) + return o --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/lib/Mozilla/Jars.py +++ firefox-6.0+build1+nobinonly/debian/compare-locales/lib/Mozilla/Jars.py @@ -0,0 +1,85 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2007 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +from zipfile import ZipFile +from difflib import SequenceMatcher +import os.path +import re + +from Paths import File +import CompareLocales + +class JarEntry(File): + def __init__(self, zf, file, fakefile): + File.__init__(self, None, fakefile) + self.realfile = file + self.zipfile = zf + def __str__(self): + return self.zipfile.filename + '!' + self.realfile + def getContents(self): + return self.zipfile.read(self.realfile) + +class EnumerateJar(object): + def __init__(self, basepath): + basepath = os.path.abspath(basepath) + if not basepath.endswith('.jar'): + raise RuntimeError("Only jar files supported") + self.basepath = basepath + # best guess we have on locale code + self.locale = os.path.split(basepath)[1].replace('.jar','') + self.zf = ZipFile(basepath, 'r') + def cloneFile(self, other): + return JarEntry(self.zf, other.realfile, other.file) + def __iter__(self): + # get all entries, drop those ending with '/', those are dirs. + files = [f for f in self.zf.namelist() if not f.endswith('/')] + files.sort() + # unfortunately, we have to fake file paths of the form + # locale/AB-CD/ + # for comparison. + # For real, the corresponding manifest would tell us. Whichever. + localesub = re.compile('^locale/' + self.locale) + for f in files: + yield JarEntry(self.zf, f, localesub.sub('locale/@AB_CD@', f)) + +def compareJars(ref, l10n): + o = CompareLocales.Observer() + cc = CompareLocales.ContentComparer(o) + dc = CompareLocales.DirectoryCompare(EnumerateJar(ref)) + dc.setWatcher(cc) + dc.compareWith(EnumerateJar(l10n)) + return o --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/scripts/compare-locales +++ firefox-6.0+build1+nobinonly/debian/compare-locales/scripts/compare-locales @@ -0,0 +1,85 @@ +#! /usr/bin/python +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2006 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + + +import logging +from optparse import OptionParser +import codecs + +from Mozilla.Paths import EnumerateApp +from Mozilla.CompareLocales import compareApp +from Mozilla import version + +usage = 'usage: %prog [options] l10n.ini l10n_base_dir language1 [language2 ...]' +parser = OptionParser(usage = usage, version = "%%prog %s" % version) + +parser.add_option('-v', '--verbose', action='count', dest='v', default=0, + help='Make more noise') +parser.add_option('-q', '--quiet', action='count', dest='q', default=0, + help='Make more noise') +parser.add_option('-r', '--reference', default='en-US', dest='reference', + help='Explicitly set the reference '+ + 'localization. [default: en-US]') +parser.add_option('-m', '--merge', + help='Use this directory to stage merged files') + +(options, args) = parser.parse_args() +if len(args) < 3: + parser.error('At least one language required') +inipath, l10nbase = args[:2] +locales = args[2:] + +# log as verbose or quiet as we want, warn by default +logging.basicConfig() +logging.getLogger().setLevel(logging.WARNING - (options.v - options.q)*10) + +app = EnumerateApp(inipath, l10nbase, locales) +app.reference = options.reference + +o = compareApp(app, merge_stage = options.merge) +print codecs.utf_8_encode(o.serialize())[0] + +if not options.merge: + # if not merging, error on really missing strings + totalMissing = 0 + for k in ('missing', 'missingInFiles'): + for summary in o.summary.values(): + if k in summary: + totalMissing = summary[k] + if totalMissing: + parser.exit(1) --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/scripts/compare-packs +++ firefox-6.0+build1+nobinonly/debian/compare-locales/scripts/compare-packs @@ -0,0 +1,69 @@ +#! python +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2007 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + + +import logging +import os.path +import re +from optparse import OptionParser +from pprint import pprint +from zipfile import ZipFile + +from Mozilla.Jars import compareJars + +usage = 'usage: %prog [options] language-pack reference-pack' +parser = OptionParser(usage=usage) + +parser.add_option('-v', '--verbose', action='count', dest='v', default=0, + help='Report more detail') +parser.add_option('-q', '--quiet', action='count', dest='q', default=0, + help='Report less detail') + +(options, args) = parser.parse_args() +if len(args) != 2: + parser.error('language pack and reference pack required') + +# log as verbose or quiet as we want, warn by default +logging.basicConfig(level=(logging.WARNING - (options.v - options.q)*10)) + +# we expect two jar files +if not (args[0].endswith('.jar') and args[1].endswith('.jar')): + parser.error('Please specify two jar files to compare') + +o = compareJars(*args) +print o.serialize() --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/scripts/compare-dirs +++ firefox-6.0+build1+nobinonly/debian/compare-locales/scripts/compare-dirs @@ -0,0 +1,76 @@ +#! python +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2006 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + + +import logging +from optparse import OptionParser +import codecs + +from Mozilla.CompareLocales import compareDirs + +usage = 'usage: %prog [options] reference locale' +parser = OptionParser(usage=usage) + +parser.add_option('-v', '--verbose', action='count', dest='v', default=0, + help='Make more noise') +parser.add_option('-q', '--quiet', action='count', dest='q', default=0, + help='Make more noise') +parser.add_option('-m', '--merge', + help='Use this directory to stage merged files') + +(options, args) = parser.parse_args() +if len(args) != 2: + parser.error('Reference and language required') + +# log as verbose or quiet as we want, warn by default +logging.basicConfig() +logging.getLogger().setLevel(logging.WARNING - (options.v - options.q)*10) + +reference, locale = args +o = compareDirs(reference, locale, merge_stage = options.merge) +print codecs.utf_8_encode(o.serialize())[0] + +if not options.merge: + # if not merging, error on really missing strings + totalMissing = 0 + for k in ('missing', 'missingInFiles'): + for summary in o.summary.values(): + if k in summary: + totalMissing = summary[k] + if totalMissing: + parser.exit(1) --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/scripts/test-locales +++ firefox-6.0+build1+nobinonly/debian/compare-locales/scripts/test-locales @@ -0,0 +1,245 @@ +#! python +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2006 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + + +import logging +import sys +import os +import os.path +from datetime import datetime +import time +from optparse import OptionParser +import gzip +import codecs + +from Mozilla import Parser, CompareLocales, Paths, Tests +import simplejson + +# +# Helper classes +# + +# +# Logging +# +class LogHandler(logging.Handler): + def __init__(self): + self.log = [] + logging.Handler.__init__(self) + def emit(self, record): + self.log.append((record.name, record.levelname, record.getMessage().strip())) + +# +# JSON with optional gzip +# +class Wrapper: + def __init__(self, path, name): + self.p = os.path.join(path, name) + self.n = name + self.f = None + if opts.gzip: + self.p += '.gz' + def open(self, mode): + if self.f: + self.f.close() + if opts.gzip: + mode += 'b' + self.f = open(self.p, mode) + if opts.gzip: + self.f = gzip.GzipFile(fileobj = self.f, filename = self.n) + self.w = codecs.getwriter('utf-8')(self.f) + self.r = codecs.getreader('utf-8')(self.f) + def write(self, str): + self.w.write(str) + def read(self, size = -1): + return self.r.read(size) + def rewind(self): + if opts.gzip: + self.f.rewind() + else: + self.f.seek(0,0) + def close(self): + if opts.gzip: + f = self.f.fileobj; + self.f.close() + if opts.gzip: + f.close() + self.w = self.r = self.f = None +# +# Helper function for JSON output with optional gzip +# +def saveJSON(dic, localName): + name = os.path.join(basePath, localName) ; + if opts.gzip: + f = open(name + '.gz', 'wb') + s = gzip.GzipFile(fileobj = f, filename = localName) + else: + f = open(name, 'w') + s = f + sw = codecs.getwriter('utf-8')(s) + sw.write(simplejson.dumps(dic, sort_keys=True)) + sw.reset() + if opts.gzip: + s.close() + f.close() + + +lvl = logging.WARNING +date = datetime.utcnow().replace(second=0,microsecond=0).isoformat(' ') +# parse commandline arguments +cp = OptionParser(version='0.2') +cp.add_option('-v', '--verbose', action='count', dest='v', default=0, + help='Make more noise') +cp.add_option('-q', '--quiet', action='count', dest='q', default=0, + help='Make less noise') +cp.add_option('-O', '--base-dir', type='string', dest='target', + default='results', + help='Destination base directory') +cp.add_option('-c', '--checkout', action='store_true', dest='checkout', + default=False, + help='Run make -f client.mk l10n-checkout [Default: not]') +cp.add_option('-d', '--date', type='string', dest='date', + help='Explicit start date or subdir [Default: now]') +cp.add_option('-z',action="store_true", dest="gzip", default=False, + help='Use gzip compression for output') +cp.add_option('-w','--enable-waterfall', action="store_true", + dest="waterfall", default=False, + help='Update waterfall data') +cp.add_option('--end-date', type='string', dest='enddate', + help='Explicit (faked) end date') +opts, optlist = cp.parse_args(sys.argv[1:]) + +# +# Set up Logging +# +logging.basicConfig(level=(logging.WARNING + 10*(opts.q - opts.v))) +# Add a handler to store the output +h = LogHandler() +logging.getLogger('').addHandler(h) + +# +# Check that we're in the right location and check out if requested +# +try: + os.chdir('mozilla') + if opts.checkout: + env = '' + l = logging.getLogger('cvsco') + if opts.date: + env = 'MOZ_CO_DATE="' + opts.date + ' +0" ' + fh = os.popen(env + 'make -f client.mk l10n-checkout') + for ln in fh: + l.info(ln.strip()) + if fh.close(): + raise Exception('cvs checkout failed') + os.chdir('..') +except Exception,e: + sys.exit(str(e)) + +if not opts.date: + opts.date = date # use default set above + +logging.debug(' Ensure output directory') +# replace : with - +opts.date = opts.date.replace(':','-') +if not os.path.isdir(opts.target): + sys.exit('error: ' + opts.target + ' is not a directory') +if opts.waterfall: + startdate = time.mktime(time.strptime(opts.date, '%Y-%m-%d %H-%M-%S')) + time.altzone +basePath = os.path.join(opts.target, opts.date) +if not os.path.isdir(basePath): + os.mkdir(basePath) + + +tests = [Tests.CompareTest(), + Tests.SearchTest(), + Tests.RSSReaderTest()] +# disable bookmarks test, that's hard to fix. XXX +# Tests.BookmarksTest()] +drop = {} +for test in tests: + res = test.run() + test.serialize(res, saveJSON) + if opts.waterfall: + test.failureTest(res, drop) + +if not opts.waterfall: + saveJSON(h.log, 'buildlog.json') + sys.exit() + + +if opts.enddate: + endtime = time.mktime(time.strptime(opts.enddate, '%Y-%m-%d %H:%M:%S')) + time.altzone +else: + endtime = time.mktime(datetime.now().timetuple()) +f = None +w = Wrapper(opts.target, 'waterfall.json') +if os.path.isfile(w.p): + w.open('r') + water = simplejson.load(w) +else: + water = [] + +water.append((opts.date, (startdate, endtime), drop)) +# +# Check if we need to rotate the waterfall +# +rotateLen = 24 +if len(water) > rotateLen * 1.5: + # rotate, maximum of 16 logs + suffix = '' + if opts.gzip: + suffix = '.gz' + fnames = [os.path.join(opts.target, 'waterfall-%x.json'%i) + suffix for i in range(16)] + # remove oldest log + if os.path.isfile(fnames[15]): + os.remove(fnames[15]) + for l in range(14, -1, -1): + if os.path.isfile(fnames[l]): + os.rename(fnames[l], fnames[l+1]) + w0 = Wrapper('.', fnames[0]) + w0.open('w') + simplejson.dump(water[:rotateLen], w0, sort_keys=True) + w0.close() + water = water[rotateLen:] + +w.open('w') +simplejson.dump(water, w, sort_keys=True) +w.close() + +saveJSON(h.log, 'buildlog.json') --- firefox-6.0+build1+nobinonly.orig/debian/compare-locales/scripts/verify-rss-redirects +++ firefox-6.0+build1+nobinonly/debian/compare-locales/scripts/verify-rss-redirects @@ -0,0 +1,105 @@ +#!python +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is l10n test automation. +# +# The Initial Developer of the Original Code is +# Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2006 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Axel Hecht +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +import sys +import logging +from optparse import OptionParser +from urlparse import urlparse +import httplib +from urllib2 import urlopen + +EN_US_FEED = 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml' +FEEDSERVER = '%s.fxfeeds.mozilla.com' +FEEDPATH = '/%s/firefox/headlines.xml' + +L10NFEEDS = 'https://wiki.mozilla.org/index.php?title=Firefox/L10n_Feed_Redirects&action=raw' + +op = OptionParser() +op.add_option('--oldid', dest='oldid', + help='explicitly give a version number on the wiki') +op.add_option('-v', dest='verbose', action='count', default=0, + help='increase verbosity') +(options, args) = op.parse_args() + +if len(args) != 1: + sys.exit('all-locales or shipped-locales path expected') + +logging.basicConfig(level=(logging.WARNING - options.verbose*10)) + +if options.oldid: + L10NFEEDS += '&oldid=' + options.oldid + +lFeeds = urlopen(L10NFEEDS) +redirs = {} + +for row in lFeeds: + d, loc, url = row.split(' ', 2) + redirs[loc] = url.strip() + +# parse all-locales and shipped-locales, only take first bunch +lFile = open(args[0]) +locales = [ln.split(' ', 1)[0].strip() for ln in lFile] +# ignore ja-JP-mac, same bookmarks as ja +def not_ja_JP_mac(loc): return loc != 'ja-JP-mac' +locales = filter(not_ja_JP_mac, locales) + +for loc in locales: + logging.debug('testing ' + loc) + server = FEEDSERVER % loc + path = FEEDPATH % loc + while server.endswith('mozilla.com'): + url = None + conn = httplib.HTTPConnection(server) + conn.request('HEAD', path) + r = conn.getresponse() + if r.status != 302: + logging.error('mozilla.com loses feed for ' + loc) + server = '' + continue + url = r.getheader('location') + server, path = urlparse(url)[1:3] + conn.close() + refurl = EN_US_FEED + if redirs.has_key(loc): + refurl = redirs[loc] + if url != refurl: + print loc, "FAIL" + logging.info(str(url) + ' is not ' + refurl) + else: + logging.debug(loc + ' PASS') + --- firefox-6.0+build1+nobinonly.orig/debian/pkgconfig/mozilla-plugin.pc.in +++ firefox-6.0+build1+nobinonly/debian/pkgconfig/mozilla-plugin.pc.in @@ -0,0 +1,8 @@ +prefix=@MOZ_PREFIX@ +sdkdir=@MOZ_SDKDIR@ +includedir=@MOZ_INCDIR@ + +Name: Mozilla Plug-In API +Description: Firefox Plug-In API +Version: @MOZ_VERSION@ +Cflags: -I${includedir} -DXP_UNIX --- firefox-6.0+build1+nobinonly.orig/debian/pkgconfig/libxul.pc.in +++ firefox-6.0+build1+nobinonly/debian/pkgconfig/libxul.pc.in @@ -0,0 +1,15 @@ +prefix=@MOZ_PREFIX@ +sdkdir=@MOZ_SDKDIR@ +includedir=@MOZ_INCDIR@ +idldir=@MOZ_IDLDIR@ + +Name: libxul +Description: The Mozilla Runtime and Embedding Engine +Version: @MOZ_VERSION@ +%%ifdef MOZ_USE_SYSTEM_NSPR +Requires: nspr +%%else +Requires: mozilla-nspr +%%endif +Libs: -L${sdkdir}/lib -lxpcomglue_s -lxul -lxpcom -lmozalloc +Cflags: -I${includedir} @WCHAR_CFLAGS@ --- firefox-6.0+build1+nobinonly.orig/debian/pkgconfig/mozilla-nspr.pc.in +++ firefox-6.0+build1+nobinonly/debian/pkgconfig/mozilla-nspr.pc.in @@ -0,0 +1,11 @@ +prefix=@MOZ_PREFIX@ +sdkdir=@MOZ_SDKDIR@ +includedir=@MOZ_INCDIR@ + +Name: NSPR +Description: The Netscape Portable Runtime +Version: @MOZ_VERSION@ +Libs: -L${sdkdir}/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl +Cflags: -I${includedir}/nspr + + --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/makefiles.sh +++ firefox-6.0+build1+nobinonly/debian/globalmenu/makefiles.sh @@ -0,0 +1,44 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Mozilla build system. +# +# The Initial Developer of the Original Code is +# the Mozilla Foundation . +# Portions created by the Initial Developer are Copyright (C) 2007 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +add_makefiles " +extensions/globalmenu/Makefile +extensions/globalmenu/chrome/Makefile +extensions/globalmenu/components/Makefile +extensions/globalmenu/components/public/Makefile +extensions/globalmenu/components/src/Makefile +" --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/confvars.sh +++ firefox-6.0+build1+nobinonly/debian/globalmenu/confvars.sh @@ -0,0 +1,4 @@ +MOZ_WEBM=0 +MOZ_OGG=0 +MOZ_WAVE=0 +NECKO_WIFI=0 --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/install.rdf +++ firefox-6.0+build1+nobinonly/debian/globalmenu/install.rdf @@ -0,0 +1,34 @@ + + + + + globalmenu@ubuntu.com + 1.0.7 + true + + + + + {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + 4.0b6pre + 7.0.* + + + + + + + {3550f703-e582-4d05-9a08-453d09bdfdc6} + 3.1 + 7.0.* + + + + + Global Menu Bar integration + This extension integrates the menu bar in to the Unity panel + Chris Coulson + http://launchpad.net/globalmenu-extension + + --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/Makefile.in +++ firefox-6.0+build1+nobinonly/debian/globalmenu/Makefile.in @@ -0,0 +1,57 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu +DIRS = \ + components \ + chrome \ + $(NULL) + +XPI_NAME = globalmenu +INSTALL_EXTENSION_ID = globalmenu@ubuntu.com +XPI_PKGNAME = globalmenu + +DIST_FILES = install.rdf + +include $(topsrcdir)/config/rules.mk --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/Makefile.in +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/Makefile.in @@ -0,0 +1,54 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu + +DIRS = \ + public \ + src \ + $(NULL) + +XPI_NAME = globalmenu + +include $(topsrcdir)/config/rules.mk --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uWidgetAtoms.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uWidgetAtoms.h @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Original Author: Mike Pinkerton (pinkerton@netscape.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_WIDGETATOMS_H +#define _U_WIDGETATOMS_H + +#include "prtypes.h" +#include "nscore.h" + +class nsIAtom; + +class uWidgetAtoms { +public: + + static nsresult RegisterAtoms(); + +#define WIDGET_ATOM(_name, _value) static nsIAtom* _name; +#include "uWidgetAtomList.h" +#undef WIDGET_ATOM + +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuUtils.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuUtils.h @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUFACTORY_H +#define _U_GLOBALMENUFACTORY_H + +#include + +class uGlobalMenuObject; +class uGlobalMenuDocListener; +class nsIContent; +class uGlobalMenuBar; +class nsIAtom; + +class uGlobalMenuRequestAutoCanceller +{ +public: + static uGlobalMenuRequestAutoCanceller* Create() + { + uGlobalMenuRequestAutoCanceller *canceller = + new uGlobalMenuRequestAutoCanceller(); + if (!canceller) { + return nsnull; + } + + if (!canceller->Init()) { + delete canceller; + canceller = nsnull; + } + + return canceller; + } + + GCancellable* GetCancellable() + { + return mCancellable; + } + + void Destroy() + { + if (mCancellable) { + g_object_unref(mCancellable); + mCancellable = nsnull; + } + } + + ~uGlobalMenuRequestAutoCanceller() + { + if (mCancellable) { + g_cancellable_cancel(mCancellable); + g_object_unref(mCancellable); + } + } +private: + uGlobalMenuRequestAutoCanceller() { }; + PRBool Init() + { + mCancellable = g_cancellable_new(); + return mCancellable ? PR_TRUE : PR_FALSE; + } + + GCancellable *mCancellable; +}; + +uGlobalMenuObject* NewGlobalMenuItem(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuObject.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuObject.cpp @@ -0,0 +1,719 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 +# include +# include +#else +# include +# include +# include +#endif +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuObject.h" +#include "uGlobalMenuBar.h" +#include "uWidgetAtoms.h" + +#define MAX_LABEL_NCHARS 40 + +typedef nsresult (nsIDOMRect::*GetRectSideMethod)(nsIDOMCSSPrimitiveValue**); + +NS_IMPL_ISUPPORTS2(uGlobalMenuIconLoader, imgIDecoderObserver, imgIContainerObserver) + +PRInt32 uGlobalMenuIconLoader::sImagesInMenus = -1; +nsCOMPtr uGlobalMenuIconLoader::sLoader = 0; + +PRBool +uGlobalMenuIconLoader::ShouldShowIcon() +{ + // Ideally, we want to get the visibility of the XUL image in our menu item, + // but that is anonymous content which is only created when the frame is drawn + // (which obviously never happens here). + // As an alternative, we get the user setting for menus-have-icons from + // nsILookAndFeel. If menu icons are to be hidden, we hide everything except + // for menuitems with the menuitem-with-favicon class. This is basically + // how the visibility gets set anyway (see chrome://toolkit/content/xul.css), + // which should work in most cases. But, I guess a theme could override this, + // and then we ignore the users theme settings. Oh well...... + + nsresult rv; + + if (sImagesInMenus == -1) { + nsCOMPtr laf = + do_GetService("@mozilla.org/widget/lookandfeel;1"); + if (laf) { + rv = laf->GetMetric(nsILookAndFeel::eMetric_ImagesInMenus, + sImagesInMenus); + if (NS_FAILED(rv)) { + NS_WARNING("Failed to get ImagesInMenus metric from nsILookAndFeel"); + sImagesInMenus = 0; + } + } else { + NS_WARNING("No nsILookAndFeel service?"); + sImagesInMenus = 0; + } + } + + if (sImagesInMenus) { + return PR_TRUE; + } + + return mMenuItem->WithFavicon(); +} + +void +uGlobalMenuIconLoader::LoadIcon() +{ + NS_DispatchToCurrentThread(this); +} + +static PRInt32 +GetDOMRectSide(nsIDOMRect* aRect, GetRectSideMethod aMethod) +{ + nsCOMPtr dimensionValue; + (aRect->*aMethod)(getter_AddRefs(dimensionValue)); + if (!dimensionValue) + return -1; + + PRUint16 primitiveType; + nsresult rv = dimensionValue->GetPrimitiveType(&primitiveType); + if (NS_FAILED(rv) || primitiveType != nsIDOMCSSPrimitiveValue::CSS_PX) + return -1; + + float dimension = 0; + rv = dimensionValue->GetFloatValue(nsIDOMCSSPrimitiveValue::CSS_PX, + &dimension); + if (NS_FAILED(rv)) + return -1; + + return NSToIntRound(dimension); +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::Run() +{ + // Some of this is borrowed from widget/src/cocoa/nsMenuItemIconX.mm + if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nsnull; + } + + if (!mMenuItem) { + // Our menu item got destroyed already + return NS_OK; + } + + mMenuItem->GetContent(getter_AddRefs(mContent)); + + if (!ShouldShowIcon()) { + ClearIcon(); + return NS_OK; + } + + mIconLoaded = PR_FALSE; + + nsAutoString uriString; + PRBool hasImage = mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::image, + uriString); + + nsresult rv; + nsCOMPtr domRect; + + if (!hasImage) { + nsCOMPtr cssStyleDecl; +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = + do_QueryInterface(mContent->GetDocument()); + if (domDoc) { + nsCOMPtr domWin; + domDoc->GetDefaultView(getter_AddRefs(domWin)); + if (domWin) { + nsCOMPtr domElement = do_QueryInterface(mContent); + if (domElement) { + domWin->GetComputedStyle(domElement, EmptyString(), + getter_AddRefs(cssStyleDecl)); + } + } + } +#else + nsCOMPtr domDocView = + do_QueryInterface(mContent->GetDocument()); + if (domDocView) { + nsCOMPtr domWin; + domDocView->GetDefaultView(getter_AddRefs(domWin)); + if (domWin) { + nsCOMPtr domViewCSS; + domViewCSS = do_QueryInterface(domWin); + if (domViewCSS) { + nsCOMPtr domElement = do_QueryInterface(mContent); + if (!domElement) { + domViewCSS->GetComputedStyle(domElement, EmptyString(), + getter_AddRefs(cssStyleDecl)); + } + } + } + } +#endif + + if (!cssStyleDecl) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr cssValue; + nsCOMPtr primitiveValue; + PRUint16 primitiveType; + cssStyleDecl->GetPropertyCSSValue(NS_LITERAL_STRING("list-style-image"), + getter_AddRefs(cssValue)); + if (cssValue) { + primitiveValue = do_QueryInterface(cssValue); + if (primitiveValue) { + primitiveValue->GetPrimitiveType(&primitiveType); + if (primitiveType == nsIDOMCSSPrimitiveValue::CSS_URI) { + rv = primitiveValue->GetStringValue(uriString); + if (NS_SUCCEEDED(rv)) { + hasImage = PR_TRUE; + } + } else { + NS_WARNING("list-style-image has wrong primitive type"); + } + } + } + + if (!hasImage) { + return NS_OK; + } + + cssStyleDecl->GetPropertyCSSValue(NS_LITERAL_STRING("-moz-image-region"), + getter_AddRefs(cssValue)); + if (cssValue) { + primitiveValue = do_QueryInterface(cssValue); + if (primitiveValue) { + primitiveValue->GetPrimitiveType(&primitiveType); + if (primitiveType == nsIDOMCSSPrimitiveValue::CSS_RECT) { + primitiveValue->GetRectValue(getter_AddRefs(domRect)); + } else { + NS_WARNING("-moz-image-region has wrong primitive type"); + } + } + } + } + + nsCOMPtr uri; + rv = NS_NewURI(getter_AddRefs(uri), uriString); + if (NS_FAILED(rv)) { + ClearIcon(); + return NS_OK; + } + + if (!sLoader) { + sLoader = do_GetService("@mozilla.org/image/loader;1"); + } + + NS_ASSERTION(sLoader, "No icon loader"); + if (!sLoader) { + return NS_OK; + } + + nsIDocument *doc = mContent->GetDocument(); + nsCOMPtr loadGroup = doc->GetDocumentLoadGroup(); + +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + sLoader->LoadImage(uri, nsnull, nsnull, loadGroup, this, + nsnull, nsIRequest::LOAD_NORMAL, nsnull, + nsnull, getter_AddRefs(mIconRequest)); +#else + sLoader->LoadImage(uri, nsnull, nsnull, loadGroup, this, + nsnull, nsIRequest::LOAD_NORMAL, nsnull, + nsnull, nsnull, getter_AddRefs(mIconRequest)); +#endif + +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + mImageRect.SetEmpty(); +#else + mImageRect.Empty(); +#endif + + if (domRect) { + PRInt32 bottom = GetDOMRectSide(domRect, &nsIDOMRect::GetBottom); + PRInt32 right = GetDOMRectSide(domRect, &nsIDOMRect::GetRight); + PRInt32 top = GetDOMRectSide(domRect, &nsIDOMRect::GetTop); + PRInt32 left = GetDOMRectSide(domRect, &nsIDOMRect::GetLeft); + + if (top < 0 || left < 0 || bottom <= top || right <= left) { + return NS_ERROR_FAILURE; + } + + mImageRect.SetRect(left, top, right - left, bottom - top); + } + + return NS_OK; +} + +void +uGlobalMenuIconLoader::ClearIcon() +{ + dbusmenu_menuitem_property_remove(mMenuItem->GetDbusMenuItem(), + DBUSMENU_MENUITEM_PROP_ICON_DATA); +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartRequest(imgIRequest *aRequest) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartDecode(imgIRequest *aRequest) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartContainer(imgIRequest *aRequest, imgIContainer *aContainer) +{ +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + aContainer->RequestDecode(); +#endif + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartFrame(imgIRequest *aRequest, PRUint32 aFrame) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnDataAvailable(imgIRequest *aRequest, + PRBool aCurrentFrame, + const nsIntRect *aRect) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopFrame(imgIRequest *aRequest, PRUint32 aFrame) +{ + if (aRequest != mIconRequest) { + return NS_ERROR_FAILURE; + } + + if (mIconLoaded) { + return NS_OK; + } + + mIconLoaded = PR_TRUE; + + nsCOMPtr img; + aRequest->GetImage(getter_AddRefs(img)); + if (!img) { + return NS_ERROR_FAILURE; + } + + PRInt32 origWidth; + PRInt32 origHeight; + img->GetWidth(&origWidth); + img->GetHeight(&origHeight); + + PRBool needsClip = PR_FALSE; + + if (!mImageRect.IsEmpty()) { + if (mImageRect.XMost() > origWidth || mImageRect.YMost() > origHeight) { + return NS_ERROR_FAILURE; + } + + if (!(mImageRect.x == 0 && mImageRect.y == 0 && + mImageRect.width == origWidth && mImageRect.height == origHeight)) { + needsClip = PR_TRUE; + } + } + + if ((!needsClip && (origWidth > 100 || origHeight > 100)) || + (needsClip && (mImageRect.width > 100 || mImageRect.height > 100))) { + /* The icon data needs to go across DBus. Make sure the icon + * data isn't too large, else our connection gets terminated and + * GDbus helpfully aborts the application. Thank you :) + */ + NS_WARNING("Icon data too large"); + ClearIcon(); + return NS_OK; + } + + nsCOMPtr clippedImg; + if (needsClip) { +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsresult rv = img->ExtractCurrentFrame(mImageRect, + getter_AddRefs(clippedImg)); +#else + nsresult rv = img->ExtractFrame(0, mImageRect, 0, + getter_AddRefs(clippedImg)); +#endif + if (NS_FAILED(rv)) { + return NS_ERROR_FAILURE; + } + } + + nsCOMPtr converter = + do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1"); + if (!converter) { + return NS_ERROR_FAILURE; + } + + GdkPixbuf *pixbuf = + converter->ConvertImageToPixbuf(clippedImg ? clippedImg : img); + if (pixbuf) { + dbusmenu_menuitem_property_set_image(mMenuItem->GetDbusMenuItem(), + DBUSMENU_MENUITEM_PROP_ICON_DATA, + pixbuf); + g_object_unref(pixbuf); + } else { + ClearIcon(); + } + + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopContainer(imgIRequest *aRequest, + imgIContainer *aContainer) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopDecode(imgIRequest *aRequest, nsresult status, + const PRUnichar *statusArg) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopRequest(imgIRequest *aRequest, PRBool aIsLastPart) +{ + if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nsnull; + } + + return NS_OK; +} + +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 +NS_IMETHODIMP +uGlobalMenuIconLoader::OnDiscard(imgIRequest *aRequest) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} +#endif + +NS_IMETHODIMP +uGlobalMenuIconLoader::FrameChanged(imgIContainer *aContainer, +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsIntRect *aDirtyRect) +#else + const nsIntRect *aDirtyRect) +#endif +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +void +uGlobalMenuIconLoader::Destroy() +{ + if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nsnull; + } + + mMenuItem = nsnull; +} + +void +uGlobalMenuObject::GetContent(nsIContent **_retval) +{ + if (!_retval) { + return; + } + *_retval = mContent; + NS_IF_ADDREF(*_retval); +} + +// Synchronize the 'label' and 'accesskey' attributes on the DOM node +// with the 'label' property on the dbusmenu node +void +uGlobalMenuObject::SyncLabelFromContent() +{ + // Gecko stores the label and access key in separate attributes + // so we need to convert label="Foo"/accesskey="F" in to + // label="_Foo" for dbusmenu + + nsAutoString label; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::label, label); + + nsAutoString accesskey; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::accesskey, accesskey); + + const PRUnichar *tmp = accesskey.BeginReading(); + PRUnichar keyUpper; + PRUnichar keyLower; + // XXX: I think we need to link against libxul.so to get ToLowerCase + // and ToUpperCase from nsUnicharUtils.h + nsCOMPtr converter = + do_GetService(NS_UNICHARUTIL_CONTRACTID); + if (converter) { + converter->ToUpper(*tmp, &keyUpper); + converter->ToLower(*tmp, &keyLower); + } else { + if (*tmp < 256) { + keyUpper = toupper(char(*tmp)); + keyLower = tolower(char(*tmp)); + } else { + NS_WARNING("accesskey matching is case-sensitive when it shouldn't be"); + keyUpper = *tmp; + keyLower = *tmp; + } + } + + PRUnichar *cur = label.BeginWriting(); + PRUnichar *end = label.EndWriting(); + int length = label.Length(); + int pos = 0; + PRBool foundAccessKey = PR_FALSE; + + while (cur < end) { + if (*cur != PRUnichar('_')) { + if ((*cur != keyLower && *cur != keyUpper) || foundAccessKey) { + cur++; + pos++; + continue; + } + foundAccessKey = PR_TRUE; + } + + length += 1; + label.SetLength(length); + int newLength = label.Length(); + if (length != newLength) + break; + + cur = label.BeginWriting() + pos; + end = label.EndWriting(); + memmove(cur + 1, cur, (length - 1 - pos) * sizeof(PRUnichar)); +// \^/ + *cur = PRUnichar('_'); // Yeah! +// v + + cur += 2; + pos += 2; + } + + // Ellipsize long labels. I've picked an arbitrary length here + if (length > MAX_LABEL_NCHARS) { + cur = label.BeginWriting(); + for (PRUint32 i = 1; i < 4; i++) { + *(cur + (MAX_LABEL_NCHARS - i)) = PRUnichar('.'); + } + *(cur + MAX_LABEL_NCHARS) = nsnull; + label.SetLength(MAX_LABEL_NCHARS); + } + + nsCAutoString clabel; + CopyUTF16toUTF8(label, clabel); + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_LABEL, + clabel.get()); +} + +void +uGlobalMenuObject::SyncLabelFromContent(nsIContent *aCommandContent) +{ + if (mLabelSyncGuard) { + return; + } + + mLabelSyncGuard = PR_TRUE; + + if (aCommandContent) { + nsAutoString label; + aCommandContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::label, label); + if (!label.IsEmpty() || aCommandContent == mLabelContent) { + // If the command content node has a label, or we previously mirrored a + // label from it, then mirror its label again to the menuitem content node. + // If it doesn't have a label and never did, then we just fall back to + // the label from the menuitem content node + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::label, + label, PR_TRUE); + mLabelContent = aCommandContent; + } + } + + SyncLabelFromContent(); + + mLabelSyncGuard = PR_FALSE; +} + +// Synchronize the 'hidden' attribute on the DOM node with the +// 'visible' property on the dbusmenu node +void +uGlobalMenuObject::SyncVisibilityFromContent() +{ + mContentVisible = !mContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::hidden, + uWidgetAtoms::_true, + eCaseMatters); + dbusmenu_menuitem_property_set_bool(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_VISIBLE, + mContentVisible); +} + +// Synchronize the 'disabled' attribute on the DOM node with the +// 'sensitivity' property on the dbusmenu node +void +uGlobalMenuObject::SyncSensitivityFromContent() +{ + dbusmenu_menuitem_property_set_bool(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_ENABLED, + !mContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::disabled, + uWidgetAtoms::_true, + eCaseMatters)); +} + +// Synchronize the 'disabled' attribute on the specified command content +// node with the menuitem content node and the 'sensitivity' property on +// the dbusmenu node +void +uGlobalMenuObject::SyncSensitivityFromContent(nsIContent *aCommandContent) +{ + if (mSensitivitySyncGuard) { + return; + } + + mSensitivitySyncGuard = PR_TRUE; + + if (aCommandContent) { + PRBool disabled = aCommandContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::disabled, + uWidgetAtoms::_true, + eCaseMatters); + if (disabled) { + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::disabled, + NS_LITERAL_STRING("true"), PR_TRUE); + } else { + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::disabled, PR_TRUE); + } + } + + SyncSensitivityFromContent(); + + mSensitivitySyncGuard = PR_FALSE; +} + +void +uGlobalMenuObject::UpdateInfoFromContentClass() +{ + nsCOMPtr element(do_QueryInterface(mContent)); + if (!element) { + return; + } + + nsCOMPtr classes; + element->GetClassList(getter_AddRefs(classes)); + if (!classes) { + return; + } + + classes->Contains(NS_LITERAL_STRING("show-only-for-keyboard"), + &mShowOnlyForKb); + classes->Contains(NS_LITERAL_STRING("menuitem-with-favicon"), + &mWithFavicon); +} + +void +uGlobalMenuObject::UpdateVisibility() +{ + if (!mMenuBar) { + return; + } + + PRBool newVis = (mShowOnlyForKb == PR_FALSE || mMenuBar->OpenedByKeyboard()) ? + mContentVisible : PR_FALSE; + + dbusmenu_menuitem_property_set_bool(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_VISIBLE, + newVis); +} + +void +uGlobalMenuObject::SyncIconFromContent() +{ + if (!mIconLoader) { + mIconLoader = new uGlobalMenuIconLoader(this); + } + + mIconLoader->LoadIcon(); +} + +void +uGlobalMenuObject::DestroyIconLoader() +{ + if (mIconLoader) { + mIconLoader->Destroy(); + } +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDummy.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDummy.cpp @@ -0,0 +1,138 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * Mike Conley + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include + +#include +#include + +#include "uGlobalMenuDummy.h" +#include "uGlobalMenuBar.h" +#include "uWidgetAtoms.h" + + +nsresult +uGlobalMenuDummy::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if (!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_VISIBLE, + FALSE); + + return NS_OK; +} + +uGlobalMenuDummy::~uGlobalMenuDummy() +{ + + if (mDbusMenuItem) + g_object_unref(mDbusMenuItem); +} + +nsresult +uGlobalMenuDummy::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + mMenuBar = nsnull; + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + return NS_OK; +} + +/*static*/ uGlobalMenuObject* +uGlobalMenuDummy::Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent) +{ + uGlobalMenuDummy *menuitem = new uGlobalMenuDummy(); + if (!menuitem) { + return nsnull; + } + + if (NS_FAILED(menuitem->Init(aParent, aListener, aContent))) { + delete menuitem; + return nsnull; + } + + return static_cast(menuitem); +} + +// GlobalMenuDummy is inert, and does not observe/react to content +// changes. The following methods are included simply to fill out +// the interface. +void +uGlobalMenuDummy::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + +} + +void +uGlobalMenuDummy::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} + +void +uGlobalMenuDummy::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uWidgetAtoms.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uWidgetAtoms.cpp @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Original Author: Mike Pinkerton (pinkerton@netscape.com) + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include + +#define WIDGET_ATOM(_name, _value) nsIAtom* uWidgetAtoms::_name = 0; +#include "uWidgetAtomList.h" +#undef WIDGET_ATOM + +struct uWidgetAtom { + const char *raw; + nsIAtom **atom; +}; + +static const uWidgetAtom atoms[] = { +#define WIDGET_ATOM(_name, _value) { _value, &uWidgetAtoms::_name }, +#include "uWidgetAtomList.h" +#undef WIDGET_ATOM +}; + +nsresult +uWidgetAtoms::RegisterAtoms() +{ + nsCOMPtr as = + do_GetService("@mozilla.org/atom-service;1"); + NS_ENSURE_TRUE(as, NS_ERROR_OUT_OF_MEMORY); + + nsAutoString aAtomStr; + nsCAutoString cAtomStr; + + for (PRUint32 i = 0; i < NS_ARRAY_LENGTH(atoms); i++) { + cAtomStr = atoms[i].raw; + CopyUTF8toUTF16(cAtomStr, aAtomStr); + nsresult rv = as->GetAtom(aAtomStr, atoms[i].atom); + NS_ENSURE_SUCCESS(rv, rv); + } + + return NS_OK; +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenu.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenu.cpp @@ -0,0 +1,727 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 +# include +# include +#else +# include +# include +# include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 +# include +#endif + +#include + +#include "uGlobalMenu.h" +#include "uGlobalMenuBar.h" +#include "uGlobalMenuUtils.h" +#include "uWidgetAtoms.h" + +/*static*/ PRBool +uGlobalMenu::MenuEventCallback(DbusmenuMenuitem *menu, + const gchar *name, + GVariant *value, + guint timestamp, + void *data) +{ + uGlobalMenu *self = static_cast(data); + if (!g_strcmp0("closed", name)) { + self->OnClose(); + return PR_TRUE; + } + + if (!g_strcmp0("opened", name)) { + self->OnOpen(); + return PR_TRUE; + } + + return PR_FALSE; +} + +/*static*/ PRBool +uGlobalMenu::MenuAboutToOpenCallback(DbusmenuMenuitem *menu, + void *data) +{ + uGlobalMenu *self = static_cast(data); + self->AboutToOpen(); + + // We return false here for "needsUpdate", as we have no way of + // knowing in advance if the menu structure is going to be updated. + // The menu layout will still update on the client, but we won't block + // opening the menu until it's happened + return PR_FALSE; +} + +void +uGlobalMenu::Activate() +{ + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::menuactive, + NS_LITERAL_STRING("true"), PR_TRUE); + + nsIDocument *doc = mContent->GetOwnerDoc(); + nsCOMPtr target = do_QueryInterface(mContent); + if (doc && target) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = do_QueryInterface(doc); +#else + nsCOMPtr domDoc = do_QueryInterface(doc); +#endif + if (domDoc) { + nsCOMPtr event; + domDoc->CreateEvent(NS_LITERAL_STRING("Events"), + getter_AddRefs(event)); + if (event) { + event->InitEvent(NS_LITERAL_STRING("DOMMenuItemActive"), + PR_TRUE, PR_TRUE); + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } +} + +void +uGlobalMenu::Deactivate() +{ + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::menuactive, PR_TRUE); + + nsIDocument *doc = mContent->GetOwnerDoc(); + if (doc) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = do_QueryInterface(doc); +#else + nsCOMPtr domDoc = do_QueryInterface(doc); +#endif + if (domDoc) { + nsCOMPtr event; + domDoc->CreateEvent(NS_LITERAL_STRING("Events"), + getter_AddRefs(event)); + if (event) { + event->InitEvent(NS_LITERAL_STRING("DOMMenuItemInactive"), + PR_TRUE, PR_TRUE); + nsCOMPtr target = do_QueryInterface(mContent); + if (target) { + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } + } +} + +PRBool +uGlobalMenu::CanOpen() +{ + PRBool isHidden = mContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::hidden, + uWidgetAtoms::_true, + eCaseMatters); + PRBool isDisabled = mContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::disabled, + uWidgetAtoms::_true, + eCaseMatters); + + return (!isHidden && !isDisabled); +} + +void +uGlobalMenu::AboutToOpen() +{ + // If there is no popup content, then there is nothing to do, and it's + // unsafe to proceed anyway + if (!mPopupContent) { + return; + } + + PRUint32 count = mMenuObjects.Length(); + for (PRUint32 i = 0; i < count; i++) { + mMenuObjects[i]->UpdateVisibility(); + } + + // XXX: This should happen when the pointer hovers over the menu entry, + // but we don't have that information right now. We synthesize it for + // menus, but this doesn't work for menuitems at all + Activate(); + + nsIDocument *doc = mPopupContent->GetOwnerDoc(); + if (doc) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = do_QueryInterface(doc); + if (domDoc) { + nsCOMPtr event; + domDoc->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); +#else + nsCOMPtr docEvent = do_QueryInterface(doc); + if (docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); +#endif + if (event) { + nsCOMPtr mouseEvent = do_QueryInterface(event); + if (mouseEvent) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr window; + domDoc->GetDefaultView(getter_AddRefs(window)); +#else + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); +#endif + if (window) { + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popupshowing"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + nsCOMPtr target = do_QueryInterface(mPopupContent); + if (target) { + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + // XXX: dummy == PR_FALSE means that we should prevent the + // the menu from opening, but there's no way to do this + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + if (os) { + nsAutoString popupID; + mPopupContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::id, popupID); + os->NotifyObservers(nsnull, "menuservice-popup-open", popupID.get()); + } +} + +void +uGlobalMenu::OnOpen() +{ + // If there is no popup content, then there is nothing to do, and it's + // unsafe to proceed anyway + if (!mPopupContent) { + return; + } + + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::open, NS_LITERAL_STRING("true"), PR_TRUE); + + nsIDocument *doc = mPopupContent->GetOwnerDoc(); + if (doc) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = do_QueryInterface(doc); + if (domDoc) { + nsCOMPtr event; + domDoc->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); +#else + nsCOMPtr docEvent = do_QueryInterface(doc); + if (docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); +#endif + if (event) { + nsCOMPtr mouseEvent = do_QueryInterface(event); + if (mouseEvent) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr window; + domDoc->GetDefaultView(getter_AddRefs(window)); +#else + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); +#endif + if (window) { + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popupshown"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + nsCOMPtr target = do_QueryInterface(mPopupContent); + if (target) { + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } +} + +void +uGlobalMenu::OnClose() +{ + // If there is no popup content, then there is nothing to do, and it's + // unsafe to proceed anyway + if (!mPopupContent) { + return; + } + + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::open, PR_TRUE); + + nsIDocument *doc = mPopupContent->GetOwnerDoc(); + if (doc) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = do_QueryInterface(doc); + if (domDoc) { + nsCOMPtr event; + domDoc->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); +#else + nsCOMPtr docEvent = do_QueryInterface(doc); + if (docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); +#endif + if (event) { + nsCOMPtr mouseEvent = do_QueryInterface(event); + if (mouseEvent) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr window; + domDoc->GetDefaultView(getter_AddRefs(window)); +#else + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); +#endif + if (window) { + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popuphiding"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + nsCOMPtr target = do_QueryInterface(mPopupContent); + if (target) { + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popuphidden"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } + + Deactivate(); +} + +nsresult +uGlobalMenu::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if (!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + // This happens automatically when we add children, but we have to + // do this manually for menus which don't initially have children, + // so we can receive about-to-show which triggers a build of the menu + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY, + DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU); + + mOpenHandlerID = g_signal_connect(G_OBJECT(mDbusMenuItem), + "about-to-show", + G_CALLBACK(MenuAboutToOpenCallback), + this); + mEventHandlerID = g_signal_connect(G_OBJECT(mDbusMenuItem), + "event", + G_CALLBACK(MenuEventCallback), + this); + + SyncLabelFromContent(mCommandContent); + SyncSensitivityFromContent(mCommandContent); + SyncVisibilityFromContent(); + SyncIconFromContent(); + UpdateInfoFromContentClass(); + + return NS_OK; +} + +void +uGlobalMenu::GetMenuPopupFromMenu(nsIContent **aResult) +{ + if (!aResult) + return; + + *aResult = nsnull; + + // Taken from widget/src/cocoa/nsMenuX.mm. Not sure if we need this + nsresult rv; + nsCOMPtr xblService = do_GetService("@mozilla.org/xbl;1", &rv); + if (!xblService) + return; + + PRInt32 dummy; + nsCOMPtr tag; + xblService->ResolveTag(mContent, &dummy, getter_AddRefs(tag)); + if (tag == uWidgetAtoms::menupopup) { + *aResult = mContent; + NS_ADDREF(*aResult); + return; + } + + PRUint32 count = mContent->GetChildCount(); + + for (PRUint32 i = 0; i < count; i++) { + PRInt32 dummy; + nsIContent *child = mContent->GetChildAt(i); + nsCOMPtr tag; + xblService->ResolveTag(child, &dummy, getter_AddRefs(tag)); + if (tag == uWidgetAtoms::menupopup) { + *aResult = child; + NS_ADDREF(*aResult); + return; + } + } +} + +void +uGlobalMenu::InsertMenuObjectAt(uGlobalMenuObject *menuObj, + PRUint32 index) +{ + PRBool res = dbusmenu_menuitem_child_add_position(mDbusMenuItem, + menuObj->GetDbusMenuItem(), + index); + NS_ASSERTION(res, "Failed to add child to menu. Everything will go horribly wrong now"); + + mMenuObjects.InsertElementAt(index, menuObj); +} + +void +uGlobalMenu::AppendMenuObject(uGlobalMenuObject *menuObj) +{ + PRBool res = dbusmenu_menuitem_child_append(mDbusMenuItem, + menuObj->GetDbusMenuItem()); + NS_ASSERTION(res, "Failed to append child to menu. Everything will go horribly wrong now"); + + mMenuObjects.AppendElement(menuObj); +} + +void +uGlobalMenu::RemoveMenuObjectAt(PRUint32 index) +{ + PRBool res = dbusmenu_menuitem_child_delete(mDbusMenuItem, + mMenuObjects[index]->GetDbusMenuItem()); + NS_ASSERTION(res, "Failed to delete child from menu. Everything will go horribly wrong now"); + + mMenuObjects.RemoveElementAt(index); +} + +nsresult +uGlobalMenu::Build() +{ + GetMenuPopupFromMenu(getter_AddRefs(mPopupContent)); + + if (!mPopupContent) { + // The menu has no popup, so there are no menuitems here + return NS_OK; + } + + // Manually wrap the menupopup node to make sure it's bounded + // Borrowed from widget/src/cocoa/nsMenuX.mm, we need this to make + // some menus in Thunderbird work + if (!mPopupBound) { + nsIDocument *doc = mPopupContent->GetCurrentDoc(); + if (doc) { + nsresult rv; + nsCOMPtr xpconnect = + do_GetService(nsIXPConnect::GetCID(), &rv); + if (NS_SUCCEEDED(rv)) { + nsIScriptGlobalObject *sgo = doc->GetScriptGlobalObject(); + nsCOMPtr scriptContext = sgo->GetContext(); + JSObject *global = sgo->GetGlobalJSObject(); + if (scriptContext && global) { + JSContext *cx = (JSContext *)scriptContext->GetNativeContext(); + if (cx) { + nsCOMPtr wrapper; + xpconnect->WrapNative(cx, global, + mPopupContent, NS_GET_IID(nsISupports), + getter_AddRefs(wrapper)); + mPopupBound = PR_TRUE; + } + } + } + } + } + + if (mContent != mPopupContent) { + mListener->RegisterForContentChanges(mPopupContent, this); + } + + PRUint32 count = mPopupContent->GetChildCount(); + + for (PRUint32 i = 0; i < count; i++) { + nsIContent *child = mPopupContent->GetChildAt(i); + uGlobalMenuObject *menuObject = + NewGlobalMenuItem(static_cast(this), + mListener, child, mMenuBar); + if (!menuObject) { + return NS_ERROR_FAILURE; + } + + AppendMenuObject(menuObject); + } + + return NS_OK; +} + +nsresult +uGlobalMenu::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + NS_ENSURE_ARG(aMenuBar); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + mMenuBar = aMenuBar; + + nsIDocument *doc = mContent->GetCurrentDoc(); + if (doc) { + nsAutoString attr; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::command, attr); +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; +#endif + if (!attr.IsEmpty()) { +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + if (domDoc) { + domDoc->GetElementById(attr, getter_AddRefs(domElmt)); + } + + mCommandContent = do_QueryInterface(domElmt); +#else + mCommandContent = doc->GetElementById(attr); +#endif + } + } + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + if (mCommandContent) { + mListener->RegisterForContentChanges(mCommandContent, this); + } + + return Build(); +} + +void +uGlobalMenu::Rebuild() +{ + PRUint32 count = mMenuObjects.Length(); + for (PRUint32 i = 0; i < count; i++) { + RemoveMenuObjectAt(0); + } + + if (mContent != mPopupContent) { + mListener->UnregisterForContentChanges(mPopupContent); + } + + mPopupBound = PR_FALSE; + + Build(); +} + +uGlobalMenu::~uGlobalMenu() +{ + if (mListener) { + mListener->UnregisterForContentChanges(mContent); + if (mContent != mPopupContent) { + mListener->UnregisterForContentChanges(mPopupContent); + } + if (mCommandContent) { + mListener->UnregisterForContentChanges(mCommandContent); + } + } + + DestroyIconLoader(); + + if (mDbusMenuItem) { + g_signal_handler_disconnect(mDbusMenuItem, mOpenHandlerID); + g_object_unref(mDbusMenuItem); + } +} + +/*static*/ uGlobalMenuObject* +uGlobalMenu::Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ + uGlobalMenu *menu = new uGlobalMenu(); + if (!menu) { + return nsnull; + } + + if (NS_FAILED(menu->Init(aParent, aListener, aContent, aMenuBar))) { + delete menu; + return nsnull; + } + + return static_cast(menu); +} + +void +uGlobalMenu::OpenMenu() +{ + if (!CanOpen()) { + return; + } + + dbusmenu_menuitem_show_to_user(mDbusMenuItem, 0); +} + +void +uGlobalMenu::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + NS_ASSERTION(aContent == mContent || aContent == mPopupContent, + "Received an event that wasn't meant for us!"); + + if (aAttribute == uWidgetAtoms::open) + return; + + if (aAttribute == uWidgetAtoms::disabled) { + SyncSensitivityFromContent(mCommandContent); + } else if (aAttribute == uWidgetAtoms::hidden) { + SyncVisibilityFromContent(); + } else if (aAttribute == uWidgetAtoms::label || + aAttribute == uWidgetAtoms::accesskey) { + SyncLabelFromContent(mCommandContent); + } else if (aAttribute == uWidgetAtoms::image) { + SyncIconFromContent(); + } else if (aAttribute == uWidgetAtoms::_class) { + UpdateInfoFromContentClass(); + } +} + +void +uGlobalMenu::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(aContainer == mContent || aContainer == mPopupContent, + "Received an event that wasn't meant for us!"); + + if (aContainer == mContent) { + // Should only get this when a menupopup is removed, in + // which case, we need to rebuild the whole menu + Rebuild(); + } else if (aContainer == mPopupContent) { + RemoveMenuObjectAt(aIndexInContainer); + } +} + +void +uGlobalMenu::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(aContainer == mContent || aContainer == mPopupContent, + "Received an event that wasn't meant for us!"); + + if (aContainer == mContent) { + // Should only get this when a menupopup is inserted, in + // which case, we need to rebuild the whole menu + Rebuild(); + } else if (aContainer == mPopupContent) { + uGlobalMenuObject *newItem = + NewGlobalMenuItem(static_cast(this), + mListener, aChild, mMenuBar); + if (newItem) { + InsertMenuObjectAt(newItem, aIndexInContainer); + } + } +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuSeparator.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuSeparator.h @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUSEPARATOR_H +#define _U_GLOBALMENUSEPARATOR_H + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class nsIContent; +class uGlobalMenuDocListener; +class uGlobalMenuBar; + +class uGlobalMenuSeparator: public uGlobalMenuObject, + public uMenuChangeObserver +{ +public: + NS_DECL_UMENUCHANGEOBSERVER + + static uGlobalMenuObject* Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); + +private: + uGlobalMenuSeparator(): uGlobalMenuObject(MenuSeparator) { }; + + nsresult Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); + ~uGlobalMenuSeparator(); + + nsresult ConstructDbusMenuItem(); +}; + + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDocListener.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDocListener.h @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Josh Aas + * Thomas K. Dyas + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUDOCLISTENER_H +#define _U_GLOBALMENUDOCLISTENER_H + +#include +#include +#include +#include + +#include "uMenuChangeObserver.h" + +class nsIContent; +class nsIDocument; + +class uGlobalMenuDocListener: public nsIMutationObserver +{ +public: + NS_DECL_ISUPPORTS + NS_DECL_NSIMUTATIONOBSERVER + + uGlobalMenuDocListener(); + nsresult Init(nsIContent *rootNode); + void RegisterForContentChanges(nsIContent *aContent, + uMenuChangeObserver *aMenuObject); + void UnregisterForContentChanges(nsIContent *aContent); + void RegisterForAllChanges(uMenuChangeObserver *aMenuObject); + void UnregisterForAllChanges(uMenuChangeObserver *aMenuObject); + void Destroy(); + ~uGlobalMenuDocListener() { }; + +private: + uMenuChangeObserver* LookupContentChangeObserver(nsIContent *aContent); + + nsIDocument *mDocument; + nsDataHashtable, uMenuChangeObserver *> mContentToObserverTable; + nsTArray mGlobalObservers; +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuBar.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuBar.cpp @@ -0,0 +1,697 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "uGlobalMenuBar.h" +#include "uGlobalMenu.h" +#include "uGlobalMenuUtils.h" +#include "uIGlobalMenuService.h" +#include "uWidgetAtoms.h" + +#define MODIFIER_SHIFT 1 +#define MODIFIER_CONTROL 2 +#define MODIFIER_ALT 4 +#define MODIFIER_META 8 + +NS_IMPL_ADDREF(uGlobalMenuBarListener) +NS_IMPL_RELEASE(uGlobalMenuBarListener) +NS_INTERFACE_MAP_BEGIN(uGlobalMenuBarListener) + NS_INTERFACE_MAP_ENTRY(nsIDOMKeyListener) + NS_INTERFACE_MAP_ENTRY(nsIDOMFocusListener) + NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener,nsIDOMKeyListener) +NS_INTERFACE_MAP_END + +NS_IMETHODIMP +uGlobalMenuBarListener::KeyPress(nsIDOMEvent *aKeyEvent) +{ + return mMenuBar->KeyPress(aKeyEvent); +} + +NS_IMETHODIMP +uGlobalMenuBarListener::KeyUp(nsIDOMEvent *aKeyEvent) +{ + return mMenuBar->KeyUp(aKeyEvent); +} + +NS_IMETHODIMP +uGlobalMenuBarListener::KeyDown(nsIDOMEvent *aKeyEvent) +{ + return mMenuBar->KeyDown(aKeyEvent); +} + +NS_IMETHODIMP +uGlobalMenuBarListener::Blur(nsIDOMEvent *aEvent) +{ + if (mMenuBar) { + mMenuBar->Blur(); + } + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuBarListener::Focus(nsIDOMEvent *aEvent) +{ + if (mMenuBar) { + mMenuBar->Focus(); + } + return NS_OK; +} + +GtkWidget* +uGlobalMenuBar::WidgetToGTKWindow(nsIWidget *aWidget) +{ + // Get the main GDK drawing window from our nsIWidget + GdkWindow *window = static_cast(aWidget->GetNativeData(NS_NATIVE_WINDOW)); + if (!window) + return nsnull; + + // Get the widget for the main drawing window, which should be a MozContainer + gpointer user_data = nsnull; + gdk_window_get_user_data(window, &user_data); + if (!user_data || !GTK_IS_CONTAINER(user_data)) + return nsnull; + + return gtk_widget_get_toplevel(GTK_WIDGET(user_data)); +} + +void +uGlobalMenuBar::AppendMenuObject(uGlobalMenuObject *menu) +{ + dbusmenu_menuitem_child_append(mDbusMenuItem, + menu->GetDbusMenuItem()); + + mMenuObjects.AppendElement(menu); +} + +void +uGlobalMenuBar::InsertMenuObjectAt(uGlobalMenuObject *menu, + PRUint32 index) +{ + dbusmenu_menuitem_child_add_position(mDbusMenuItem, + menu->GetDbusMenuItem(), + index); + + mMenuObjects.InsertElementAt(index, menu); +} + +void +uGlobalMenuBar::RemoveMenuObjectAt(PRUint32 index) +{ + dbusmenu_menuitem_child_delete(mDbusMenuItem, + mMenuObjects[index]->GetDbusMenuItem()); + + mMenuObjects.RemoveElementAt(index); +} + +nsresult +uGlobalMenuBar::Build() +{ + PRUint32 count = mContent->GetChildCount(); + + for (PRUint32 i = 0; i < count; i++) { + nsIContent *menuContent = mContent->GetChildAt(i); + uGlobalMenuObject *newItem = + NewGlobalMenuItem(static_cast(this), + mListener, menuContent, this); + if (!newItem) { + return NS_ERROR_FAILURE; + } + AppendMenuObject(newItem); + } + return NS_OK; +} + +nsresult +uGlobalMenuBar::Init(nsIWidget *aWindow, + nsIContent *aMenuBar) +{ + NS_ENSURE_ARG(aWindow); + NS_ENSURE_ARG(aMenuBar); + + mContent = aMenuBar; + + mTopLevel = WidgetToGTKWindow(aWindow); + if (!GTK_IS_WINDOW(mTopLevel)) + return NS_ERROR_FAILURE; + + g_object_ref(mTopLevel); + + mPath = NS_LITERAL_CSTRING("/com/canonical/menu/"); + char xid[10]; + sprintf(xid, "%X", (PRUint32) GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel))); + mPath.Append(xid); + + mServer = dbusmenu_server_new(mPath.get()); + if (!mServer) + return NS_ERROR_OUT_OF_MEMORY; + + mDbusMenuItem = dbusmenu_menuitem_new(); + if (!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + dbusmenu_server_set_root(mServer, mDbusMenuItem); + + mListener = new uGlobalMenuDocListener(); + if (!mListener) + return NS_ERROR_OUT_OF_MEMORY; + + nsresult rv = mListener->Init(mContent); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + + rv = Build(); + NS_ENSURE_SUCCESS(rv, rv); + + // Find the top-level DOM window from our nsIWidget, so we + // can register the menubar as a focus event listener, in order + // for it to cancel menus when it the window gets focus + void *clientData; + aWindow->GetClientData(clientData); + nsISupports *data = static_cast(clientData); + nsCOMPtr xulWindow = do_QueryInterface(data); + NS_ENSURE_TRUE(xulWindow, NS_ERROR_FAILURE); + + nsCOMPtr docShell; + xulWindow->GetDocShell(getter_AddRefs(docShell)); + NS_ENSURE_TRUE(docShell, NS_ERROR_FAILURE); + + nsCOMPtr domWindow = do_GetInterface(docShell); + mDOMWinTarget = do_QueryInterface(domWindow); + + mEventListener = new uGlobalMenuBarListener(this); + NS_ENSURE_TRUE(mEventListener, NS_ERROR_OUT_OF_MEMORY); + + mDOMWinTarget->AddEventListener(NS_LITERAL_STRING("focus"), + (nsIDOMFocusListener *)mEventListener, + PR_TRUE); + mDOMWinTarget->AddEventListener(NS_LITERAL_STRING("blur"), + (nsIDOMFocusListener *)mEventListener, + PR_FALSE); + + mDocTarget = do_QueryInterface(mContent->GetDocument()); + + mDocTarget->AddEventListener(NS_LITERAL_STRING("keypress"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + mDocTarget->AddEventListener(NS_LITERAL_STRING("keydown"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + mDocTarget->AddEventListener(NS_LITERAL_STRING("keyup"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + + nsCOMPtr prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); + NS_ENSURE_TRUE(prefs, NS_ERROR_FAILURE); + + prefs->GetIntPref("ui.key.menuAccessKey", &mAccessKey); + if (mAccessKey == nsIDOMKeyEvent::DOM_VK_SHIFT) { + mAccessKeyMask = MODIFIER_SHIFT; + } else if (mAccessKey == nsIDOMKeyEvent::DOM_VK_CONTROL) { + mAccessKeyMask = MODIFIER_CONTROL; + } else if (mAccessKey == nsIDOMKeyEvent::DOM_VK_ALT) { + mAccessKeyMask = MODIFIER_ALT; + } else if (mAccessKey == nsIDOMKeyEvent::DOM_VK_META) { + mAccessKeyMask = MODIFIER_META; + } else { + mAccessKeyMask = MODIFIER_ALT; + } + + mListener->RegisterForAllChanges(this); + + nsCOMPtr service = + do_GetService("@canonical.com/globalmenu-service;1"); + NS_ENSURE_TRUE(service, NS_ERROR_FAILURE); + + mCancellable = uGlobalMenuRequestAutoCanceller::Create(); + service->RegisterGlobalMenuBar(this, mCancellable); + + return NS_OK; +} + +PRBool +uGlobalMenuBar::ShouldParentStayVisible(nsIContent *aContent) +{ + static nsIAtom *blacklist[] = + { uWidgetAtoms::toolbarspring, nsnull }; + + nsIContent *parent = aContent->GetParent(); + if (!parent) { + return PR_TRUE; + } + + PRUint32 count = parent->GetChildCount(); + + if (count <= 1) { + // It's just us + return PR_FALSE; + } + + for (PRUint32 i = 0 ; i < count ; i++) { + nsIContent *child = parent->GetChildAt(i); + if (child == aContent) { + continue; + } + + PRBool found = PR_FALSE; + for (PRUint32 j = 0 ; blacklist[j] != nsnull ; j++) { + if (child->Tag() == blacklist[j]) { + found = PR_TRUE; + break; + } + } + + if (!found) { + return PR_TRUE; + } + } + + return PR_FALSE; +} + +PRUint32 +uGlobalMenuBar::GetModifiersFromEvent(nsIDOMKeyEvent *aKeyEvent) +{ + PRUint32 modifiers = 0; + PRBool modifier; + + aKeyEvent->GetAltKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_ALT; + } + + aKeyEvent->GetShiftKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_SHIFT; + } + + aKeyEvent->GetCtrlKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_CONTROL; + } + + aKeyEvent->GetMetaKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_META; + } + + return modifiers; +} + +PRBool +uGlobalMenuBar::IsParentOfMenuBar(nsIContent *aContent) +{ + nsIContent *tmp = mContent->GetParent(); + + while (tmp) { + if (tmp == aContent) { + return PR_TRUE; + } + + tmp = tmp->GetParent(); + } + + return PR_FALSE; +} + +void +uGlobalMenuBar::SetXULMenuBarHidden(PRBool hidden) +{ + mXULMenuHidden = hidden; + + if (hidden) { + if (mHiddenElement) { + mHiddenElement->SetAttr(kNameSpaceID_None, uWidgetAtoms::hidden, + mRestoreHidden ? NS_LITERAL_STRING("true") : + NS_LITERAL_STRING("false"), PR_TRUE); + } + nsIContent *tmp = mContent; + + // Walk up the DOM tree until we find a node with siblings + while (tmp) { + if (ShouldParentStayVisible(tmp)) { + break; + } + + tmp = tmp->GetParent(); + } + + mHiddenElement = tmp; + mRestoreHidden = mHiddenElement->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::hidden, + uWidgetAtoms::_true, + eCaseMatters); + + mHiddenElement->SetAttr(kNameSpaceID_None, uWidgetAtoms::hidden, + NS_LITERAL_STRING("true"), PR_TRUE); + } else if (mHiddenElement) { + mHiddenElement->SetAttr(kNameSpaceID_None, uWidgetAtoms::hidden, + mRestoreHidden ? NS_LITERAL_STRING("true") : + NS_LITERAL_STRING("false"), PR_TRUE); + mHiddenElement = nsnull; + } +} + +uGlobalMenuBar::~uGlobalMenuBar() +{ + SetXULMenuBarHidden(PR_FALSE); + + if (mDOMWinTarget) { + mDOMWinTarget->RemoveEventListener(NS_LITERAL_STRING("focus"), + (nsIDOMFocusListener *)mEventListener, + PR_TRUE); + mDOMWinTarget->RemoveEventListener(NS_LITERAL_STRING("blur"), + (nsIDOMFocusListener *)mEventListener, + PR_FALSE); + } + + if (mDocTarget) { + mDocTarget->RemoveEventListener(NS_LITERAL_STRING("keypress"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + mDocTarget->RemoveEventListener(NS_LITERAL_STRING("keydown"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + mDocTarget->RemoveEventListener(NS_LITERAL_STRING("keyup"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + } + + if (mListener) { + mListener->UnregisterForAllChanges(this); + mListener->UnregisterForContentChanges(mContent); + mListener->Destroy(); + } + + if (mTopLevel) + g_object_unref(mTopLevel); + + if (mDbusMenuItem) + g_object_unref(mDbusMenuItem); + + if (mServer) + g_object_unref(mServer); +} + +/*static*/ uGlobalMenuBar* +uGlobalMenuBar::Create(nsIWidget *aWindow, + nsIContent *aMenuBar) +{ + uGlobalMenuBar *menubar = new uGlobalMenuBar(); + if (!menubar) { + return nsnull; + } + + if (NS_FAILED(menubar->Init(aWindow, aMenuBar))) { + delete menubar; + return nsnull; + } + + return menubar; +} + +void +uGlobalMenuBar::Blur() +{ + dbusmenu_server_set_status(mServer, DBUSMENU_STATUS_NORMAL); +} + +void +uGlobalMenuBar::Focus() +{ + mOpenedByKeyboard = PR_FALSE; +} + +PRBool +uGlobalMenuBar::ShouldHandleKeyEvent(nsIDOMEvent *aKeyEvent) +{ + nsCOMPtr nsEvent = do_QueryInterface(aKeyEvent); + if (!nsEvent) { + return PR_FALSE; + } + + PRBool handled, trusted; + nsEvent->GetPreventDefault(&handled); + nsEvent->GetIsTrusted(&trusted); + + if (handled || !trusted) { + return PR_FALSE; + } + + return PR_TRUE; +} + +nsresult +uGlobalMenuBar::KeyDown(nsIDOMEvent *aKeyEvent) +{ + if (!ShouldHandleKeyEvent(aKeyEvent)) { + return NS_OK; + } + + nsCOMPtr keyEvent = do_QueryInterface(aKeyEvent); + if (keyEvent) { + PRUint32 keyCode; + keyEvent->GetKeyCode(&keyCode); + PRUint32 modifiers = GetModifiersFromEvent(keyEvent); + if ((keyCode == static_cast(mAccessKey)) && + ((modifiers & ~mAccessKeyMask) == 0)) { + dbusmenu_server_set_status(mServer, DBUSMENU_STATUS_NOTICE); + } + } + + return NS_OK; +} + +nsresult +uGlobalMenuBar::KeyUp(nsIDOMEvent *aKeyEvent) +{ + if (!ShouldHandleKeyEvent(aKeyEvent)) { + return NS_OK; + } + + nsCOMPtr keyEvent = do_QueryInterface(aKeyEvent); + if (keyEvent) { + PRUint32 keyCode; + keyEvent->GetKeyCode(&keyCode); + if (keyCode == static_cast(mAccessKey)) { + dbusmenu_server_set_status(mServer, DBUSMENU_STATUS_NORMAL); + } + } + + return NS_OK; +} + +nsresult +uGlobalMenuBar::KeyPress(nsIDOMEvent *aKeyEvent) +{ + if (!ShouldHandleKeyEvent(aKeyEvent)) { + return NS_OK; + } + + nsCOMPtr keyEvent = do_QueryInterface(aKeyEvent); + uGlobalMenuObject *found = nsnull; + PRUint32 keyCode = nsnull; + + if (keyEvent) { + keyEvent->GetKeyCode(&keyCode); + PRUint32 count = mMenuObjects.Length(); + PRUint32 modifiers = GetModifiersFromEvent(keyEvent); + if ((modifiers & mAccessKeyMask) && ((modifiers & ~mAccessKeyMask) == 0)) { + // The menu access modifier is pressed + PRUint32 charCode; + keyEvent->GetCharCode(&charCode); + if (charCode != 0) { + PRUnichar ch = PRUnichar(charCode); + PRUnichar chl; + PRUnichar chu; + // XXX: I think we need to link against libxul.so to get ToLowerCase + // and ToUpperCase from nsUnicharUtils.h + nsCOMPtr converter = + do_GetService(NS_UNICHARUTIL_CONTRACTID); + if (converter) { + converter->ToUpper(ch, &chu); + converter->ToLower(ch, &chl); + } else { + if (ch < 256) { + chu = toupper(char(ch)); + chl = tolower(char(ch)); + } else { + chu = ch; + chl = ch; + } + } + + for (PRUint32 i = 0; i < count; i++) { + nsCOMPtr content; + mMenuObjects[i]->GetContent(getter_AddRefs(content)); + if (content) { + nsAutoString accessKey; + content->GetAttr(kNameSpaceID_None, uWidgetAtoms::accesskey, + accessKey); + const PRUnichar *key = accessKey.BeginReading(); + if (*key == chl || *key == chu) { + found = mMenuObjects[i]; + break; + } + } + } + } + } else if (keyCode == nsIDOMKeyEvent::DOM_VK_F10) { + // Go through each mMenuObject, and find the first one + // that is both visible and sensitive, and mark it found + // for opening. + for (PRUint32 i = 0; i < count; i++) { + uGlobalMenu *menu = static_cast((uGlobalMenuObject *)mMenuObjects[i]); + if (menu->CanOpen()) { + found = mMenuObjects[i]; + break; + } + } + } + } + + if (found) { + mOpenedByKeyboard = PR_TRUE; + uGlobalMenu *menu = static_cast(found); + menu->OpenMenu(); + aKeyEvent->StopPropagation(); + aKeyEvent->PreventDefault(); + } + + return NS_OK; +} + +void +uGlobalMenuBar::SetMenuBarRegistered(PRBool aRegistered) +{ + if (mCancellable) { + mCancellable->Destroy(); + mCancellable = nsnull; + } + + SetXULMenuBarHidden(aRegistered); +} + +PRUint32 +uGlobalMenuBar::GetWindowID() +{ + return (PRUint32) GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel)); +} + +const char* +uGlobalMenuBar::GetMenuPath() +{ + return mPath.get(); +} + +PRBool +uGlobalMenuBar::WidgetHasSameToplevelWindow(nsIWidget *aWidget) +{ + GtkWidget *topLevel = WidgetToGTKWindow(aWidget); + return GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel)) == GDK_WINDOW_XID(gtk_widget_get_window(topLevel)); +} + +void +uGlobalMenuBar::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + +} + +void +uGlobalMenuBar::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + if (IsParentOfMenuBar(aContainer)) { + SetXULMenuBarHidden(mXULMenuHidden); + return; + } + + if (aContainer != mContent) { + NS_ASSERTION(0, "Received an event that wasn't meant for us!"); + return; + } + + RemoveMenuObjectAt(aIndexInContainer); +} + +void +uGlobalMenuBar::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + if (IsParentOfMenuBar(aContainer)) { + SetXULMenuBarHidden(mXULMenuHidden); + return; + } + + if (aContainer != mContent) { + NS_ASSERTION(0, "Received an event that wasn't meant for us!"); + return; + } + + uGlobalMenuObject *newItem = + NewGlobalMenuItem(static_cast(this), + mListener, aChild, this); + if (newItem) { + InsertMenuObjectAt(newItem, aIndexInContainer); + } +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuService.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuService.h @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUSERVICE_H +#define _U_GLOBALMENUSERVICE_H + +#include +#include +#include +#include + +#include +#include + +#include "uGlobalMenuBar.h" +#include "uIGlobalMenuService.h" +#include "uGlobalMenuUtils.h" + +#define U_GLOBALMENUSERVICE_CID \ +{ 0xa9e41684, 0xbf71, 0x46e3, { 0x93, 0xbf, 0x3c, 0xda, 0x1e, 0xc6, 0x16, 0x49 } } + +#define U_GLOBALMENUSERVICE_CONTRACTID "@canonical.com/globalmenu-service;1" + +class nsIWidget; + +class uGlobalMenuService: public uIGlobalMenuService, + public nsIWindowMediatorListener +{ +public: + NS_DECL_ISUPPORTS + NS_DECL_UIGLOBALMENUSERVICE + NS_DECL_NSIWINDOWMEDIATORLISTENER + + uGlobalMenuService() : mOnline(PR_FALSE), + mDbusProxy(NULL), + mCancellable(NULL) { }; + nsresult Init(); + + ~uGlobalMenuService(); + +protected: + GDBusProxy* GetDbusProxy() { return mDbusProxy; } + +private: + void SetOnline(PRBool aOnline); + static void ProxyCreatedCallback(GObject *object, + GAsyncResult *res, + gpointer userdata); + static void NameOwnerChangedCallback(GObject *object, + GParamSpec *pspec, + gpointer userdata); + static void RegisterWindowCallback(GObject *object, + GAsyncResult *res, + gpointer userdata); + PRBool WidgetHasGlobalMenu(nsIWidget *aWidget); + void DestroyMenus(); + void DestroyMenuForWidget(nsIWidget *aWidget); + + PRBool mOnline; + GDBusProxy *mDbusProxy; + nsAutoPtr mCancellable; + PRUint32 mNOCHandlerID; + nsTArray< nsAutoPtr > mMenus; +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuLoader.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuLoader.cpp @@ -0,0 +1,323 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 +# include +#endif + +#include "uIGlobalMenuService.h" +#include "uIGlobalMenuLoader.h" +#include "uGlobalMenuLoader.h" + +// XXX: The sole purpose of this class is to listen for new nsIXULWindows +// and do the task that xpfe/appshell/src/nsWebShellWindow.cpp +// would be doing if this extension were part of Mozilla core. The reason +// it is an entirely separate entity is so that the menubar service +// implementation is as close as possible to how it might look inside Mozilla + +void +uGlobalMenuLoader::RegisterMenuForWindow(nsIXULWindow *aWindow) +{ + nsCOMPtr baseWindow = do_QueryInterface(aWindow); + if (!baseWindow) + return; + + nsCOMPtr mainWidget; + baseWindow->GetMainWidget(getter_AddRefs(mainWidget)); + if (!mainWidget) + return; + + nsCOMPtr docShell; + aWindow->GetDocShell(getter_AddRefs(docShell)); + if (!docShell) + return; + + nsCOMPtr progress; + progress = do_GetInterface(docShell); + if (progress) { + // If we've been called off a window open event from the window mediator, + // then the document probably hasn't loaded yet. To fix this, we set up a progress + // listener on the docshell, so we can do the actual menu load once the + // document has finished loading + nsresult rv = progress->AddProgressListener(this, nsIWebProgress::NOTIFY_STATE_NETWORK); + } + + PRBool res = RegisterMenu(mainWidget, docShell); + + if (res && progress) { + progress->RemoveProgressListener(this); + } +} + +PRBool +uGlobalMenuLoader::RegisterMenu(nsIWidget *aWindow, + nsIDocShell *aDocShell) +{ + nsCOMPtr cv; + aDocShell->GetContentViewer(getter_AddRefs(cv)); + if (!cv) + return PR_FALSE; + +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsCOMPtr docv(do_QueryInterface(cv)); + if (!docv) + return PR_FALSE; + + nsCOMPtr doc; + docv->GetDocument(getter_AddRefs(doc)); +#else + nsIDocument *doc = cv->GetDocument(); +#endif + nsCOMPtr domDoc = do_QueryInterface(doc); + if (!domDoc) + return PR_FALSE; + + nsCOMPtr elements; + domDoc->GetElementsByTagNameNS(NS_LITERAL_STRING("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"), + NS_LITERAL_STRING("menubar"), + getter_AddRefs(elements)); + + if (elements) { + nsCOMPtr menubar; + elements->Item(0, getter_AddRefs(menubar)); + if (menubar) { + nsCOMPtr menubarContent = do_QueryInterface(menubar); + // XXX: Should we do anything with errors here? + mService->CreateGlobalMenuBar(aWindow, menubarContent); + } + } + return PR_TRUE; +} + +void +uGlobalMenuLoader::RegisterAllMenus() +{ + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + if (!wm) { + return; + } + + nsCOMPtr iter; + wm->GetXULWindowEnumerator(nsnull, getter_AddRefs(iter)); + if (!iter) { + return; + } + + PRBool hasMore; + iter->HasMoreElements(&hasMore); + + while (hasMore) { + nsCOMPtr elem; + iter->GetNext(getter_AddRefs(elem)); + iter->HasMoreElements(&hasMore); + if (!elem) + continue; + + nsCOMPtr xulWindow = do_QueryInterface(elem); + if (!xulWindow) + continue; + + RegisterMenuForWindow(xulWindow); + } +} + +NS_IMPL_ISUPPORTS4(uGlobalMenuLoader, nsIObserver, uIGlobalMenuLoader, nsIWebProgressListener, nsISupportsWeakReference) + +nsresult +uGlobalMenuLoader::Init() +{ + mService = do_GetService("@canonical.com/globalmenu-service;1"); + NS_ENSURE_TRUE(mService, NS_ERROR_OUT_OF_MEMORY); + + mService->RegisterNotification(this); + + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + NS_ENSURE_TRUE(wm, NS_ERROR_OUT_OF_MEMORY); + + wm->AddListener(this); + + PRBool online; + mService->GetOnline(&online); + if (online) { + RegisterAllMenus(); + } + + return NS_OK; +} + +uGlobalMenuLoader::~uGlobalMenuLoader() +{ + mService->UnregisterNotification(this); + + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + + if (wm) { + wm->RemoveListener(this); + } +} + +NS_IMETHODIMP +uGlobalMenuLoader::Observe(nsISupports *aSubject, + const char *aTopic, + const PRUnichar *aData) +{ + if (strcmp(aTopic, "menuservice-online") == 0) { + RegisterAllMenus(); + } + + return NS_OK; +} + +/* void onWindowTitleChange (in nsIXULWindow window, in wstring newTitle); */ +NS_IMETHODIMP +uGlobalMenuLoader::OnWindowTitleChange(nsIXULWindow *window, + const PRUnichar *newTitle) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void onOpenWindow (in nsIXULWindow window); */ +NS_IMETHODIMP +uGlobalMenuLoader::OnOpenWindow(nsIXULWindow *window) +{ + RegisterMenuForWindow(window); + return NS_OK; +} + +/* void onCloseWindow (in nsIXULWindow window); */ +NS_IMETHODIMP +uGlobalMenuLoader::OnCloseWindow(nsIXULWindow *window) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnStateChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRUint32 aStateFlags, + nsresult aStatus) +{ + // Borrowed from nsWebShellWindow.cpp + + // If the notification is not about a document finishing, then just + // ignore it... + if (!(aStateFlags & nsIWebProgressListener::STATE_STOP) || + !(aStateFlags & nsIWebProgressListener::STATE_IS_NETWORK)) { + return NS_OK; + } + + // If this document notification is for a frame then ignore it... + nsCOMPtr eventWin; + aWebProgress->GetDOMWindow(getter_AddRefs(eventWin)); + nsCOMPtr eventPWin(do_QueryInterface(eventWin)); + if (eventPWin) { + nsPIDOMWindow *rootPWin = eventPWin->GetPrivateRoot(); + if (eventPWin != rootPWin) + return NS_OK; + } + + nsCOMPtr baseWindow = do_GetInterface(aWebProgress); + if (baseWindow) { + nsCOMPtr parentWidget; + baseWindow->GetParentWidget(getter_AddRefs(parentWidget)); + + nsCOMPtr docShell = do_GetInterface(aWebProgress); + if (docShell && parentWidget) { + PRBool res = RegisterMenu(parentWidget, docShell); + if (res) { + aWebProgress->RemoveProgressListener(this); + } + } + } + + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnProgressChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRInt32 aCurSelfProgress, + PRInt32 aMaxSelfProgress, + PRInt32 aCurTotalProgress, + PRInt32 aMaxTotalProgress) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnLocationChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + nsIURI *aLocation) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnStatusChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + nsresult aStatus, + const PRUnichar *aMessage) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnSecurityChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRUint32 aState) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuItem.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuItem.cpp @@ -0,0 +1,878 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 +# include +# include +#else +# include +# include +# include +#endif +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 +# include +#endif +#include +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 +# include +# include +#endif + +#include +#include +#include +#include + +#include "uGlobalMenuItem.h" +#include "uGlobalMenuBar.h" +#include "uGlobalMenu.h" +#include "uWidgetAtoms.h" + +// XXX: Borrowed from content/xbl/src/nsXBLPrototypeHandler.cpp. This doesn't +// seem to be publicly available, and we need a way to map key names +// to key codes (so we can then map them to GDK key codes) + +struct keyCodeData { + const char* str; + size_t strlength; + PRUint32 keycode; +}; + +// All of these must be uppercase, since the function below does +// case-insensitive comparison by converting to uppercase. +// XXX: be sure to check this periodically for new symbol additions! +static struct keyCodeData gKeyCodes[] = { + +#define KEYCODE_ENTRY(str) {#str, sizeof(#str) - 1, nsIDOMKeyEvent::DOM_##str} + + KEYCODE_ENTRY(VK_CANCEL), + KEYCODE_ENTRY(VK_BACK_SPACE), + KEYCODE_ENTRY(VK_TAB), + KEYCODE_ENTRY(VK_CLEAR), + KEYCODE_ENTRY(VK_RETURN), + KEYCODE_ENTRY(VK_ENTER), + KEYCODE_ENTRY(VK_SHIFT), + KEYCODE_ENTRY(VK_CONTROL), + KEYCODE_ENTRY(VK_ALT), + KEYCODE_ENTRY(VK_PAUSE), + KEYCODE_ENTRY(VK_CAPS_LOCK), + KEYCODE_ENTRY(VK_ESCAPE), + KEYCODE_ENTRY(VK_SPACE), + KEYCODE_ENTRY(VK_PAGE_UP), + KEYCODE_ENTRY(VK_PAGE_DOWN), + KEYCODE_ENTRY(VK_END), + KEYCODE_ENTRY(VK_HOME), + KEYCODE_ENTRY(VK_LEFT), + KEYCODE_ENTRY(VK_UP), + KEYCODE_ENTRY(VK_RIGHT), + KEYCODE_ENTRY(VK_DOWN), + KEYCODE_ENTRY(VK_PRINTSCREEN), + KEYCODE_ENTRY(VK_INSERT), + KEYCODE_ENTRY(VK_HELP), + KEYCODE_ENTRY(VK_DELETE), + KEYCODE_ENTRY(VK_0), + KEYCODE_ENTRY(VK_1), + KEYCODE_ENTRY(VK_2), + KEYCODE_ENTRY(VK_3), + KEYCODE_ENTRY(VK_4), + KEYCODE_ENTRY(VK_5), + KEYCODE_ENTRY(VK_6), + KEYCODE_ENTRY(VK_7), + KEYCODE_ENTRY(VK_8), + KEYCODE_ENTRY(VK_9), + KEYCODE_ENTRY(VK_SEMICOLON), + KEYCODE_ENTRY(VK_EQUALS), + KEYCODE_ENTRY(VK_A), + KEYCODE_ENTRY(VK_B), + KEYCODE_ENTRY(VK_C), + KEYCODE_ENTRY(VK_D), + KEYCODE_ENTRY(VK_E), + KEYCODE_ENTRY(VK_F), + KEYCODE_ENTRY(VK_G), + KEYCODE_ENTRY(VK_H), + KEYCODE_ENTRY(VK_I), + KEYCODE_ENTRY(VK_J), + KEYCODE_ENTRY(VK_K), + KEYCODE_ENTRY(VK_L), + KEYCODE_ENTRY(VK_M), + KEYCODE_ENTRY(VK_N), + KEYCODE_ENTRY(VK_O), + KEYCODE_ENTRY(VK_P), + KEYCODE_ENTRY(VK_Q), + KEYCODE_ENTRY(VK_R), + KEYCODE_ENTRY(VK_S), + KEYCODE_ENTRY(VK_T), + KEYCODE_ENTRY(VK_U), + KEYCODE_ENTRY(VK_V), + KEYCODE_ENTRY(VK_W), + KEYCODE_ENTRY(VK_X), + KEYCODE_ENTRY(VK_Y), + KEYCODE_ENTRY(VK_Z), + KEYCODE_ENTRY(VK_NUMPAD0), + KEYCODE_ENTRY(VK_NUMPAD1), + KEYCODE_ENTRY(VK_NUMPAD2), + KEYCODE_ENTRY(VK_NUMPAD3), + KEYCODE_ENTRY(VK_NUMPAD4), + KEYCODE_ENTRY(VK_NUMPAD5), + KEYCODE_ENTRY(VK_NUMPAD6), + KEYCODE_ENTRY(VK_NUMPAD7), + KEYCODE_ENTRY(VK_NUMPAD8), + KEYCODE_ENTRY(VK_NUMPAD9), + KEYCODE_ENTRY(VK_MULTIPLY), + KEYCODE_ENTRY(VK_ADD), + KEYCODE_ENTRY(VK_SEPARATOR), + KEYCODE_ENTRY(VK_SUBTRACT), + KEYCODE_ENTRY(VK_DECIMAL), + KEYCODE_ENTRY(VK_DIVIDE), + KEYCODE_ENTRY(VK_F1), + KEYCODE_ENTRY(VK_F2), + KEYCODE_ENTRY(VK_F3), + KEYCODE_ENTRY(VK_F4), + KEYCODE_ENTRY(VK_F5), + KEYCODE_ENTRY(VK_F6), + KEYCODE_ENTRY(VK_F7), + KEYCODE_ENTRY(VK_F8), + KEYCODE_ENTRY(VK_F9), + KEYCODE_ENTRY(VK_F10), + KEYCODE_ENTRY(VK_F11), + KEYCODE_ENTRY(VK_F12), + KEYCODE_ENTRY(VK_F13), + KEYCODE_ENTRY(VK_F14), + KEYCODE_ENTRY(VK_F15), + KEYCODE_ENTRY(VK_F16), + KEYCODE_ENTRY(VK_F17), + KEYCODE_ENTRY(VK_F18), + KEYCODE_ENTRY(VK_F19), + KEYCODE_ENTRY(VK_F20), + KEYCODE_ENTRY(VK_F21), + KEYCODE_ENTRY(VK_F22), + KEYCODE_ENTRY(VK_F23), + KEYCODE_ENTRY(VK_F24), + KEYCODE_ENTRY(VK_NUM_LOCK), + KEYCODE_ENTRY(VK_SCROLL_LOCK), + KEYCODE_ENTRY(VK_COMMA), + KEYCODE_ENTRY(VK_PERIOD), + KEYCODE_ENTRY(VK_SLASH), + KEYCODE_ENTRY(VK_BACK_QUOTE), + KEYCODE_ENTRY(VK_OPEN_BRACKET), + KEYCODE_ENTRY(VK_BACK_SLASH), + KEYCODE_ENTRY(VK_CLOSE_BRACKET), + KEYCODE_ENTRY(VK_QUOTE) + +#undef KEYCODE_ENTRY +}; + +PRUint32 +uGlobalMenuItem::GetKeyCode(nsAString &aKeyName) +{ + nsCAutoString keyName; + CopyUTF16toUTF8(aKeyName, keyName); + ToUpperCase(keyName); // We want case-insensitive comparison with data + // stored as uppercase. + + PRUint32 keyNameLength = keyName.Length(); + const char* keyNameStr = keyName.get(); + for (PRUint16 i = 0; i < (sizeof(gKeyCodes) / sizeof(gKeyCodes[0])); ++i) + if (keyNameLength == gKeyCodes[i].strlength && + !strcmp(gKeyCodes[i].str, keyNameStr)) + return gKeyCodes[i].keycode; + + return 0; +} + +// XXX: Borrowed from widget/src/gtk2/nsGtkKeyUtils.cpp +struct nsKeyConverter { + int vkCode; // Platform independent key code + int keysym; // GDK keysym key code +}; + +// +// Netscape keycodes are defined in widget/public/nsGUIEvent.h +// GTK keycodes are defined in +// +static struct nsKeyConverter nsKeycodes[] = { + { nsIDOMKeyEvent::DOM_VK_CANCEL, GDK_Cancel }, + { nsIDOMKeyEvent::DOM_VK_BACK_SPACE, GDK_BackSpace }, + { nsIDOMKeyEvent::DOM_VK_TAB, GDK_Tab }, + { nsIDOMKeyEvent::DOM_VK_TAB, GDK_ISO_Left_Tab }, + { nsIDOMKeyEvent::DOM_VK_CLEAR, GDK_Clear }, + { nsIDOMKeyEvent::DOM_VK_RETURN, GDK_Return }, + { nsIDOMKeyEvent::DOM_VK_SHIFT, GDK_Shift_L }, + { nsIDOMKeyEvent::DOM_VK_SHIFT, GDK_Shift_R }, + { nsIDOMKeyEvent::DOM_VK_CONTROL, GDK_Control_L }, + { nsIDOMKeyEvent::DOM_VK_CONTROL, GDK_Control_R }, + { nsIDOMKeyEvent::DOM_VK_ALT, GDK_Alt_L }, + { nsIDOMKeyEvent::DOM_VK_ALT, GDK_Alt_R }, + { nsIDOMKeyEvent::DOM_VK_META, GDK_Meta_L }, + { nsIDOMKeyEvent::DOM_VK_META, GDK_Meta_R }, + { nsIDOMKeyEvent::DOM_VK_PAUSE, GDK_Pause }, + { nsIDOMKeyEvent::DOM_VK_CAPS_LOCK, GDK_Caps_Lock }, +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + { nsIDOMKeyEvent::DOM_VK_KANA, GDK_Kana_Lock }, + { nsIDOMKeyEvent::DOM_VK_KANA, GDK_Kana_Shift }, + { nsIDOMKeyEvent::DOM_VK_HANGUL, GDK_Hangul }, + // { nsIDOMKeyEvent::DOM_VK_JUNJA, GDK_XXX }, + // { nsIDOMKeyEvent::DOM_VK_FINAL, GDK_XXX }, + { nsIDOMKeyEvent::DOM_VK_HANJA, GDK_Hangul_Hanja }, + { nsIDOMKeyEvent::DOM_VK_KANJI, GDK_Kanji }, +#endif + { nsIDOMKeyEvent::DOM_VK_ESCAPE, GDK_Escape }, +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + { nsIDOMKeyEvent::DOM_VK_CONVERT, GDK_Henkan }, + { nsIDOMKeyEvent::DOM_VK_NONCONVERT, GDK_Muhenkan }, + // { nsIDOMKeyEvent::DOM_VK_ACCEPT, GDK_XXX }, + { nsIDOMKeyEvent::DOM_VK_MODECHANGE, GDK_Mode_switch }, +#endif + { nsIDOMKeyEvent::DOM_VK_SPACE, GDK_space }, + { nsIDOMKeyEvent::DOM_VK_PAGE_UP, GDK_Page_Up }, + { nsIDOMKeyEvent::DOM_VK_PAGE_DOWN, GDK_Page_Down }, + { nsIDOMKeyEvent::DOM_VK_END, GDK_End }, + { nsIDOMKeyEvent::DOM_VK_HOME, GDK_Home }, + { nsIDOMKeyEvent::DOM_VK_LEFT, GDK_Left }, + { nsIDOMKeyEvent::DOM_VK_UP, GDK_Up }, + { nsIDOMKeyEvent::DOM_VK_RIGHT, GDK_Right }, + { nsIDOMKeyEvent::DOM_VK_DOWN, GDK_Down }, +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + { nsIDOMKeyEvent::DOM_VK_SELECT, GDK_Select }, + { nsIDOMKeyEvent::DOM_VK_PRINT, GDK_Print }, + { nsIDOMKeyEvent::DOM_VK_EXECUTE, GDK_Execute }, +#endif + { nsIDOMKeyEvent::DOM_VK_PRINTSCREEN, GDK_Print }, + { nsIDOMKeyEvent::DOM_VK_INSERT, GDK_Insert }, + { nsIDOMKeyEvent::DOM_VK_DELETE, GDK_Delete }, + { nsIDOMKeyEvent::DOM_VK_HELP, GDK_Help }, + + // keypad keys + { nsIDOMKeyEvent::DOM_VK_LEFT, GDK_KP_Left }, + { nsIDOMKeyEvent::DOM_VK_RIGHT, GDK_KP_Right }, + { nsIDOMKeyEvent::DOM_VK_UP, GDK_KP_Up }, + { nsIDOMKeyEvent::DOM_VK_DOWN, GDK_KP_Down }, + { nsIDOMKeyEvent::DOM_VK_PAGE_UP, GDK_KP_Page_Up }, + // Not sure what these are + //{ nsIDOMKeyEvent::DOM_VK_, GDK_KP_Prior }, + //{ nsIDOMKeyEvent::DOM_VK_, GDK_KP_Next }, + // GDK_KP_Begin is the 5 on the non-numlock keypad + //{ nsIDOMKeyEvent::DOM_VK_, GDK_KP_Begin }, + { nsIDOMKeyEvent::DOM_VK_PAGE_DOWN, GDK_KP_Page_Down }, + { nsIDOMKeyEvent::DOM_VK_HOME, GDK_KP_Home }, + { nsIDOMKeyEvent::DOM_VK_END, GDK_KP_End }, + { nsIDOMKeyEvent::DOM_VK_INSERT, GDK_KP_Insert }, + { nsIDOMKeyEvent::DOM_VK_DELETE, GDK_KP_Delete }, + + { nsIDOMKeyEvent::DOM_VK_MULTIPLY, GDK_KP_Multiply }, + { nsIDOMKeyEvent::DOM_VK_ADD, GDK_KP_Add }, + { nsIDOMKeyEvent::DOM_VK_SEPARATOR, GDK_KP_Separator }, + { nsIDOMKeyEvent::DOM_VK_SUBTRACT, GDK_KP_Subtract }, + { nsIDOMKeyEvent::DOM_VK_DECIMAL, GDK_KP_Decimal }, + { nsIDOMKeyEvent::DOM_VK_DIVIDE, GDK_KP_Divide }, + { nsIDOMKeyEvent::DOM_VK_RETURN, GDK_KP_Enter }, + { nsIDOMKeyEvent::DOM_VK_NUM_LOCK, GDK_Num_Lock }, + { nsIDOMKeyEvent::DOM_VK_SCROLL_LOCK,GDK_Scroll_Lock }, + + { nsIDOMKeyEvent::DOM_VK_COMMA, GDK_comma }, + { nsIDOMKeyEvent::DOM_VK_PERIOD, GDK_period }, + { nsIDOMKeyEvent::DOM_VK_SLASH, GDK_slash }, + { nsIDOMKeyEvent::DOM_VK_BACK_SLASH, GDK_backslash }, + { nsIDOMKeyEvent::DOM_VK_BACK_QUOTE, GDK_grave }, + { nsIDOMKeyEvent::DOM_VK_OPEN_BRACKET, GDK_bracketleft }, + { nsIDOMKeyEvent::DOM_VK_CLOSE_BRACKET, GDK_bracketright }, + { nsIDOMKeyEvent::DOM_VK_SEMICOLON, GDK_colon }, + { nsIDOMKeyEvent::DOM_VK_QUOTE, GDK_apostrophe }, + + // context menu key, keysym 0xff67, typically keycode 117 on 105-key (Microsoft) + // x86 keyboards, located between right 'Windows' key and right Ctrl key + { nsIDOMKeyEvent::DOM_VK_CONTEXT_MENU, GDK_Menu }, +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + { nsIDOMKeyEvent::DOM_VK_SLEEP, GDK_Sleep }, +#endif + + // NS doesn't have dash or equals distinct from the numeric keypad ones, + // so we'll use those for now. See bug 17008: + { nsIDOMKeyEvent::DOM_VK_SUBTRACT, GDK_minus }, + { nsIDOMKeyEvent::DOM_VK_EQUALS, GDK_equal }, + + // Some shifted keys, see bug 15463 as well as 17008. + // These should be subject to different keyboard mappings. + { nsIDOMKeyEvent::DOM_VK_QUOTE, GDK_quotedbl }, + { nsIDOMKeyEvent::DOM_VK_OPEN_BRACKET, GDK_braceleft }, + { nsIDOMKeyEvent::DOM_VK_CLOSE_BRACKET, GDK_braceright }, + { nsIDOMKeyEvent::DOM_VK_BACK_SLASH, GDK_bar }, + { nsIDOMKeyEvent::DOM_VK_SEMICOLON, GDK_semicolon }, + { nsIDOMKeyEvent::DOM_VK_BACK_QUOTE, GDK_asciitilde }, + { nsIDOMKeyEvent::DOM_VK_COMMA, GDK_less }, + { nsIDOMKeyEvent::DOM_VK_PERIOD, GDK_greater }, + { nsIDOMKeyEvent::DOM_VK_SLASH, GDK_question }, + { nsIDOMKeyEvent::DOM_VK_1, GDK_exclam }, + { nsIDOMKeyEvent::DOM_VK_2, GDK_at }, + { nsIDOMKeyEvent::DOM_VK_3, GDK_numbersign }, + { nsIDOMKeyEvent::DOM_VK_4, GDK_dollar }, + { nsIDOMKeyEvent::DOM_VK_5, GDK_percent }, + { nsIDOMKeyEvent::DOM_VK_6, GDK_asciicircum }, + { nsIDOMKeyEvent::DOM_VK_7, GDK_ampersand }, + { nsIDOMKeyEvent::DOM_VK_8, GDK_asterisk }, + { nsIDOMKeyEvent::DOM_VK_9, GDK_parenleft }, + { nsIDOMKeyEvent::DOM_VK_0, GDK_parenright }, + { nsIDOMKeyEvent::DOM_VK_SUBTRACT, GDK_underscore }, + { nsIDOMKeyEvent::DOM_VK_EQUALS, GDK_plus } +}; + +PRUint32 +uGlobalMenuItem::MozKeyCodeToGdkKeyCode(PRUint32 aMozKeyCode) +{ + if (aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_A && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_Z) + return aMozKeyCode; + + if (aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_0 && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_9) + return aMozKeyCode; + + if (aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_NUMPAD0 && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_NUMPAD9) + return aMozKeyCode - nsIDOMKeyEvent::DOM_VK_NUMPAD0 + GDK_0; + + if (aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_F1 && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_F24) + return aMozKeyCode - nsIDOMKeyEvent::DOM_VK_F1 + GDK_KEY_F1; + + for (PRUint32 i = 0; i < NS_ARRAY_LENGTH(nsKeycodes); i++) { + if (nsKeycodes[i].vkCode == aMozKeyCode) + return nsKeycodes[i].keysym; + } + + return GDK_VoidSymbol; +} + +void +uGlobalMenuItem::SyncAccelFromContent() +{ + nsAutoString modStr; + mKeyContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::modifiers, modStr); + + PRUint32 modifier = 0; + + if (!modStr.IsEmpty()) { + char* str = ToNewUTF8String(modStr); + char *token = strtok(str, ", \t"); + while(token) { + if (strcmp(token, "shift") == 0) { + modifier |= GDK_SHIFT_MASK; + } else if (strcmp(token, "alt") == 0) { + modifier |= GDK_MOD1_MASK; + } else if (strcmp(token, "meta") == 0) { + modifier |= GDK_META_MASK; + } else if (strcmp(token, "control") == 0) { + modifier |= GDK_CONTROL_MASK; + } else if (strcmp(token, "accel") == 0) { + nsCOMPtr prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); + if (prefs) { + PRInt32 accel; + prefs->GetIntPref("ui.key.accelKey", &accel); + if (accel == nsIDOMKeyEvent::DOM_VK_META) { + modifier |= GDK_META_MASK; + } else if (accel == nsIDOMKeyEvent::DOM_VK_ALT) { + modifier |= GDK_MOD1_MASK; + } else { + modifier |= GDK_CONTROL_MASK; + } + } else { + // This is the default, see layout/xul/base/src/nsMenuFrame.cpp + modifier |= GDK_CONTROL_MASK; + } + } + + token = strtok(nsnull, ", \t"); + } + + nsMemory::Free(str); + } + + nsAutoString keyStr; + guint key = 0; + mKeyContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::key, keyStr); + + nsCAutoString cKeyStr; + CopyUTF16toUTF8(keyStr, cKeyStr); + + if (!cKeyStr.IsEmpty()) { + key = gdk_keyval_from_name(cKeyStr.get()); + } + + if (key == 0 && !keyStr.IsEmpty()) { + key = gdk_unicode_to_keyval(*keyStr.BeginReading()); + } + + if (key == 0) { + mKeyContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::keycode, keyStr); + if (!keyStr.IsEmpty()) + key = MozKeyCodeToGdkKeyCode(GetKeyCode(keyStr)); + } + + if (key == 0) { + key = GDK_VoidSymbol; + } + + if (key != GDK_VoidSymbol) { + dbusmenu_menuitem_property_set_shortcut(mDbusMenuItem, key, + static_cast(modifier)); + } else { + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_SHORTCUT); + } +} + +void +uGlobalMenuItem::SyncTypeAndStateFromContent() +{ + static nsIContent::AttrValuesArray attrs[] = + { &uWidgetAtoms::checkbox, &uWidgetAtoms::radio, nsnull }; + PRInt32 type = mContent->FindAttrValueIn(kNameSpaceID_None, + uWidgetAtoms::type, + attrs, eCaseMatters); + + if (type >= 0 && type < 2) { + if (type == 0) { + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE, + DBUSMENU_MENUITEM_TOGGLE_CHECK); + mType = CheckBox; + } else if (type == 1) { + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE, + DBUSMENU_MENUITEM_TOGGLE_RADIO); + mType = Radio; + } + + nsIContent *content = mCommandContent ? mCommandContent : mContent; + PRBool lastToggleState = mToggleState; + mToggleState = content->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::checked, + uWidgetAtoms::_true, + eCaseMatters); + dbusmenu_menuitem_property_set_int(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, + mToggleState ? + DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : + DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); + + if (mCommandContent && lastToggleState != mToggleState) { + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::checked, + mToggleState ? NS_LITERAL_STRING("true") : + NS_LITERAL_STRING("false"), PR_TRUE); + } + + mIsToggle = PR_TRUE; + } else { + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE); + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE); + mIsToggle = PR_FALSE; + mType = Normal; + } +} + +void +uGlobalMenuItem::SyncProperties() +{ + SyncVisibilityFromContent(); + SyncSensitivityFromContent(mCommandContent); + SyncLabelFromContent(mCommandContent); + SyncTypeAndStateFromContent(); + if (mKeyContent) { + SyncAccelFromContent(); + } else { + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_SHORTCUT); + } + SyncIconFromContent(); + UpdateInfoFromContentClass(); +} + +/*static*/ void +uGlobalMenuItem::ItemActivatedCallback(DbusmenuMenuitem *menuItem, + PRUint32 timeStamp, + void *data) +{ + uGlobalMenuItem *self = static_cast(data); + self->Activate(); +} + +void +uGlobalMenuItem::Activate() +{ + // This first bit seems backwards, but it's not really. If autocheck is + // not set or autocheck==true, then the checkbox state is usually updated + // by the input event that clicked on the menu item. In this case, we need + // to manually update the checkbox state. If autocheck==false, then the input + // event doesn't toggle the checkbox state, and it is up to the handler on + // this node to do it instead. In this case, we leave it alone + + // XXX: it is important to update the checkbox state before dispatching + // the event, as the handler might check the new state + if (!mContent->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::autocheck, + uWidgetAtoms::_false, eCaseMatters) && + mType != Normal) { + if (!mToggleState) { + // We're currently not checked, so check now + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::checked, + NS_LITERAL_STRING("true"), PR_TRUE); + } else if (mToggleState && mType == CheckBox) { + // We're currently checked, so uncheck now. Don't do this for radio buttons + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::checked, PR_TRUE); + } + } + + nsIDocument *doc = mContent->GetOwnerDoc(); + if (doc) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr domDoc = do_QueryInterface(doc); + if (domDoc) { + nsCOMPtr event; + domDoc->CreateEvent(NS_LITERAL_STRING("xulcommandevent"), + getter_AddRefs(event)); +#else + nsCOMPtr docEvent = do_QueryInterface(doc); + if (docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("xulcommandevent"), + getter_AddRefs(event)); +#endif + if (event) { + nsCOMPtr cmdEvent = do_QueryInterface(event); + if (cmdEvent) { +#if MOZILLA_BRANCH_MAJOR_VERSION >= 6 + nsCOMPtr window; + domDoc->GetDefaultView(getter_AddRefs(window)); +#else + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); +#endif + if (window) { + cmdEvent->InitCommandEvent(NS_LITERAL_STRING("command"), + PR_TRUE, PR_TRUE, window, 0, + PR_FALSE, PR_FALSE, PR_FALSE, + PR_FALSE, nsnull); + nsCOMPtr target = do_QueryInterface(mContent); + if (target) { + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } +} + +nsresult +uGlobalMenuItem::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if (!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + mHandlerID = g_signal_connect(G_OBJECT(mDbusMenuItem), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK(ItemActivatedCallback), + this); + + SyncProperties(); + + return NS_OK; +} + +nsresult +uGlobalMenuItem::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + NS_ENSURE_ARG(aMenuBar); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + mMenuBar = aMenuBar; + + nsIDocument *doc = mContent->GetCurrentDoc(); + if (doc) { + nsAutoString attr; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::command, attr); +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; +#endif + if (!attr.IsEmpty()) { +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + if (domDoc) { + domDoc->GetElementById(attr, getter_AddRefs(domElmt)); + } + + mCommandContent = do_QueryInterface(domElmt); +#else + mCommandContent = doc->GetElementById(attr); +#endif + } + + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::key, attr); + if (!attr.IsEmpty()) { +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + if (domDoc) { + domDoc->GetElementById(attr, getter_AddRefs(domElmt)); + } + + mKeyContent = do_QueryInterface(domElmt); +#else + mKeyContent = doc->GetElementById(attr); +#endif + } + } + + mListener->RegisterForContentChanges(mContent, this); + if (mCommandContent) { + mListener->RegisterForContentChanges(mCommandContent, this); + } + if (mKeyContent) { + mListener->RegisterForContentChanges(mKeyContent, this); + } + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + return NS_OK; +} + +void +uGlobalMenuItem::UncheckSiblings() +{ + if (mType != Radio) { + // If we're not a radio button, we don't care + return; + } + + nsAutoString name; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::name, name); + if (name.IsEmpty()) { + // If we don't have a name, then we can't find our siblings + return; + } + + nsIContent *parent = mContent->GetParent(); + if (!parent) { + return; + } + + PRUint32 count = parent->GetChildCount(); + for (PRUint32 i = 0; i < count; i++) { + nsIContent *sibling = parent->GetChildAt(i); + if (sibling->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::name, + name, eCaseMatters) && sibling != mContent) { + if (sibling->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::type, + uWidgetAtoms::radio, eCaseMatters)) { + sibling->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::checked, PR_TRUE); + } + } + } +} + +uGlobalMenuItem::~uGlobalMenuItem() +{ + if (mListener) { + mListener->UnregisterForContentChanges(mContent); + if (mCommandContent) { + mListener->UnregisterForContentChanges(mCommandContent); + } + if (mKeyContent) { + mListener->UnregisterForContentChanges(mKeyContent); + } + } + + DestroyIconLoader(); + + if (mDbusMenuItem) { + g_signal_handler_disconnect(mDbusMenuItem, mHandlerID); + g_object_unref(mDbusMenuItem); + } +} + +/*static*/ uGlobalMenuObject* +uGlobalMenuItem::Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ + uGlobalMenuItem *menuitem = new uGlobalMenuItem(); + if (!menuitem) { + return nsnull; + } + + if (NS_FAILED(menuitem->Init(aParent, aListener, aContent, aMenuBar))) { + delete menuitem; + return nsnull; + } + + return static_cast(menuitem); +} + +void +uGlobalMenuItem::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + NS_ASSERTION(aContent == mContent || aContent == mCommandContent || + aContent == mKeyContent, + "Received an event that wasn't meant for us!"); + + nsIDocument *doc = mContent->GetCurrentDoc(); + + if (aAttribute == uWidgetAtoms::command && doc && aContent == mContent) { + if (mCommandContent) { + mListener->UnregisterForContentChanges(mCommandContent); + } + nsAutoString command; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::command, command); + if (!command.IsEmpty()) { +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; + + if (domDoc) { + domDoc->GetElementById(command, getter_AddRefs(domElmt)); + } + + mCommandContent = do_QueryInterface(domElmt); +#else + mCommandContent = doc->GetElementById(command); +#endif + if (mCommandContent) { + mListener->RegisterForContentChanges(mCommandContent, this); + } + } else { + mCommandContent = nsnull; + } + SyncProperties(); + } else if (aAttribute == uWidgetAtoms::key && doc && aContent == mContent) { + if (mKeyContent) { + mListener->UnregisterForContentChanges(mKeyContent); + } + nsAutoString key; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::key, key); + if (!key.IsEmpty()) { +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; + + if (domDoc) { + domDoc->GetElementById(key, getter_AddRefs(domElmt)); + } + + mKeyContent = do_QueryInterface(domElmt); +#else + mKeyContent = doc->GetElementById(key); +#endif + if (mKeyContent) { + mListener->RegisterForContentChanges(mKeyContent, this); + } + } else { + mKeyContent = nsnull; + } + SyncProperties(); + } else if (aAttribute == uWidgetAtoms::label || + aAttribute == uWidgetAtoms::accesskey) { + SyncLabelFromContent(mCommandContent); + } else if (aAttribute == uWidgetAtoms::hidden) { + SyncVisibilityFromContent(); + } else if (aAttribute == uWidgetAtoms::disabled) { + SyncSensitivityFromContent(mCommandContent); + } else if (aAttribute == uWidgetAtoms::keycode || + aAttribute == uWidgetAtoms::key || + aAttribute == uWidgetAtoms::modifiers) { + SyncAccelFromContent(); + } else if (aAttribute == uWidgetAtoms::checked) { + SyncTypeAndStateFromContent(); + if (mContent->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::checked, + uWidgetAtoms::_true, eCaseMatters)) { + UncheckSiblings(); + } + } else if (aAttribute == uWidgetAtoms::type) { + SyncTypeAndStateFromContent(); + } else if (aAttribute == uWidgetAtoms::image) { + SyncIconFromContent(); + } else if (aAttribute == uWidgetAtoms::_class) { + UpdateInfoFromContentClass(); + } +} + +void +uGlobalMenuItem::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(0, "We can't remove content from a menuitem!"); +} + +void +uGlobalMenuItem::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(0, "We can't insert content in to a menuitem!"); +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuService.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuService.cpp @@ -0,0 +1,421 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuService.h" +#include "uWidgetAtoms.h" + +class RegisterWindowCbData +{ +public: + RegisterWindowCbData(uGlobalMenuBar *aMenu, + uGlobalMenuRequestAutoCanceller *aCanceller): + mMenu(aMenu), + mCanceller(aCanceller) + { + mCancellable = mCanceller->GetCancellable(); + if (mCancellable) { + g_object_ref(mCancellable); + mID = g_cancellable_connect(mCancellable, G_CALLBACK(Cancelled), this, nsnull); + } + } + + static void Cancelled(GCancellable *aCancellable, + gpointer userdata) + { + RegisterWindowCbData *cbdata = + static_cast(userdata); + + // If the request was cancelled, then invalidate pointers to objects + // that might not exist anymore + + cbdata->mMenu = nsnull; + cbdata->mCanceller = nsnull; + } + + uGlobalMenuBar* GetMenuBar() { return mMenu; } + + ~RegisterWindowCbData() + { + if (mCancellable) { + g_cancellable_disconnect(mCancellable, mID); + g_object_unref(mCancellable); + } + } + +private: + uGlobalMenuBar *mMenu; + GCancellable *mCancellable; + uGlobalMenuRequestAutoCanceller *mCanceller; + PRUint32 mID; +}; + +NS_IMPL_ISUPPORTS2(uGlobalMenuService, uIGlobalMenuService, nsIWindowMediatorListener) + +/*static*/ void +uGlobalMenuService::ProxyCreatedCallback(GObject *object, + GAsyncResult *res, + gpointer userdata) +{ + uGlobalMenuService *self = static_cast(userdata); + + GError *error = NULL; + GDBusProxy *proxy = g_dbus_proxy_new_for_bus_finish(res, &error); + + if (error && g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + // We should only get cancelled if the service was destroyed. + // In this case, it is no longer safe to proceed + return; + } + + self->mCancellable->Destroy(); + self->mCancellable = nsnull; + + self->mDbusProxy = proxy; + + if (!proxy) { + NS_WARNING("Failed to create proxy for AppMenu registrar"); + self->SetOnline(PR_FALSE); + return; + } + + self->mNOCHandlerID = g_signal_connect(self->mDbusProxy, "notify::g-name-owner", + G_CALLBACK(NameOwnerChangedCallback), + userdata); + + char *owner = g_dbus_proxy_get_name_owner(self->mDbusProxy); + self->SetOnline(owner ? PR_TRUE : PR_FALSE); + + if (error) { + g_error_free(error); + } + g_free(owner); +} + +/*static*/ void +uGlobalMenuService::NameOwnerChangedCallback(GObject *object, + GParamSpec *pspec, + gpointer userdata) +{ + uGlobalMenuService *self = static_cast(userdata); + + char *owner = g_dbus_proxy_get_name_owner(self->mDbusProxy); + self->SetOnline(owner ? PR_TRUE : PR_FALSE); + g_free(owner); +} + +/*static*/ void +uGlobalMenuService::RegisterWindowCallback(GObject *object, + GAsyncResult *res, + gpointer userdata) +{ + RegisterWindowCbData *data = + static_cast(userdata); + + uGlobalMenuBar *menu = data->GetMenuBar(); + GDBusProxy *proxy = G_DBUS_PROXY(object); + + GError *error = NULL; + // RegisterWindowCbData owns a reference to the proxy + GVariant *result = g_dbus_proxy_call_finish(proxy, res, &error); + if (result) { + g_variant_unref(result); + } + + if (error && g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + // The call is cancelled if uGlobalMenuService goes away or the + // panel service goes offline. In either case, the menu has now + // been destroyed + delete data; + return; + } + + if (menu && !PR_GetEnv("GLOBAL_MENU_DEBUG")) { + // This check is probably bogus. menu should only be invalid if + // the request was cancelled, in which case, we should have + // returned already + menu->SetMenuBarRegistered(error ? PR_FALSE : PR_TRUE); + } + + if (error) { + g_error_free(error); + } + + delete data; +} + +void +uGlobalMenuService::DestroyMenus() +{ + PRUint32 count = mMenus.Length(); + for (PRUint32 j = 0; j < count; j++) { + mMenus.RemoveElementAt(0); + } +} + +void +uGlobalMenuService::DestroyMenuForWidget(nsIWidget *aWidget) +{ + for (PRUint32 i = 0; i < mMenus.Length(); i++) { + if (mMenus[i]->WidgetHasSameToplevelWindow(aWidget)) { + mMenus.RemoveElementAt(i); + return; + } + } +} + +void +uGlobalMenuService::SetOnline(PRBool aOnline) +{ + if (mOnline != aOnline) { + mOnline = aOnline; + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + if (os) { + os->NotifyObservers(nsnull, mOnline ? "menuservice-online" : "menuservice-offline", 0); + } + + if (!mOnline) { + DestroyMenus(); + } + } +} + +PRBool +uGlobalMenuService::WidgetHasGlobalMenu(nsIWidget *aWidget) +{ + for (PRUint32 i = 0; i < mMenus.Length(); i++) { + if (mMenus[i]->WidgetHasSameToplevelWindow(aWidget)) + return PR_TRUE; + } + return PR_FALSE; +} + +nsresult +uGlobalMenuService::Init() +{ + nsresult rv; + rv = uWidgetAtoms::RegisterAtoms(); + NS_ENSURE_SUCCESS(rv, rv); + + mCancellable = uGlobalMenuRequestAutoCanceller::Create(); + + GDBusProxyFlags flags = static_cast( + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | + G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS | + G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START); + + g_dbus_proxy_new_for_bus(G_BUS_TYPE_SESSION, + flags, + NULL, + "com.canonical.AppMenu.Registrar", + "/com/canonical/AppMenu/Registrar", + "com.canonical.AppMenu.Registrar", + mCancellable->GetCancellable(), + ProxyCreatedCallback, + this); + + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + NS_ENSURE_TRUE(wm, NS_ERROR_OUT_OF_MEMORY); + + wm->AddListener(this); + return rv; +} + +uGlobalMenuService::~uGlobalMenuService() +{ + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + + if (wm) { + wm->RemoveListener(this); + } + + if (mDbusProxy) { + g_signal_handler_disconnect(mDbusProxy, mNOCHandlerID); + g_object_unref(mDbusProxy); + } +} + +NS_IMETHODIMP +uGlobalMenuService::CreateGlobalMenuBar(nsIWidget *aParent, + nsIContent *aMenuBarNode) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aMenuBarNode); + + NS_ENSURE_TRUE(mOnline, NS_ERROR_FAILURE); + + // Sanity check to make sure we don't register more than one menu + // for each top-level window + if (WidgetHasGlobalMenu(aParent)) + return NS_ERROR_FAILURE; + + uGlobalMenuBar *menu = uGlobalMenuBar::Create(aParent, aMenuBarNode); + NS_ENSURE_TRUE(menu, NS_ERROR_FAILURE); + + mMenus.AppendElement(menu); + + return NS_OK; +} + +/* [noscript, notxpcom] void registerGlobalMenuBar (in uGlobalMenuBarPtr menuBar); */ +NS_IMETHODIMP_(void) +uGlobalMenuService::RegisterGlobalMenuBar(uGlobalMenuBar *aMenuBar, + uGlobalMenuRequestAutoCanceller *aCanceller) +{ + if (mOnline != PR_TRUE) + return; + + if (!aMenuBar) + return; + + if (!aCanceller) { + return; + } + + PRUint32 xid = aMenuBar->GetWindowID(); + nsCAutoString path(aMenuBar->GetMenuPath()); + if (xid == 0 || path.IsEmpty()) + return; + + RegisterWindowCbData *data = + new RegisterWindowCbData(aMenuBar, + aCanceller); + if (!data) { + return; + } + + g_dbus_proxy_call(mDbusProxy, + "RegisterWindow", + g_variant_new("(uo)", xid, path.get()), + G_DBUS_CALL_FLAGS_NONE, + -1, + aCanceller->GetCancellable(), + RegisterWindowCallback, + data); +} + +/* void registerNotification (in nsIObserver observer); */ +NS_IMETHODIMP +uGlobalMenuService::RegisterNotification(nsIObserver *aObserver) +{ + NS_ENSURE_ARG(aObserver); + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + NS_ENSURE_TRUE(os, NS_ERROR_OUT_OF_MEMORY); + + nsresult rv; + rv = os->AddObserver(aObserver, "menuservice-online", PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + + rv = os->AddObserver(aObserver, "menuservice-offline", PR_FALSE); + return rv; +} + +/* void unregisterNotification (in nsIObserver observer); */ +NS_IMETHODIMP +uGlobalMenuService::UnregisterNotification(nsIObserver *aObserver) +{ + NS_ENSURE_ARG(aObserver); + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + NS_ENSURE_TRUE(os, NS_ERROR_OUT_OF_MEMORY); + + nsresult rv; + rv = os->RemoveObserver(aObserver, "menuservice-online"); + NS_ENSURE_SUCCESS(rv, rv); + + rv = os->RemoveObserver(aObserver, "menuservice-offline"); + return rv; +} + +/* readonly attribute boolean online; */ +NS_IMETHODIMP +uGlobalMenuService::GetOnline(PRBool *online) +{ + NS_ENSURE_ARG_POINTER(online); + *online = mOnline; + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuService::OnWindowTitleChange(nsIXULWindow *window, + const PRUnichar *newTitle) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuService::OnOpenWindow(nsIXULWindow *window) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuService::OnCloseWindow(nsIXULWindow *window) +{ + nsCOMPtr baseWindow = do_QueryInterface(window); + NS_ENSURE_TRUE(baseWindow, NS_ERROR_INVALID_ARG); + + nsCOMPtr widget; + baseWindow->GetMainWidget(getter_AddRefs(widget)); + NS_ENSURE_TRUE(widget, NS_ERROR_FAILURE); + + DestroyMenuForWidget(widget); + + return NS_OK; +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuObject.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuObject.h @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUBASE_H +#define _U_GLOBALMENUBASE_H + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuDocListener.h" + +enum uMenuObjectType { + MenuBar, + Menu, + MenuItem, + MenuSeparator, + MenuDummy +}; + +class uGlobalMenuObject; +class uGlobalMenuBar; + +class uGlobalMenuIconLoader: public imgIDecoderObserver, + public nsRunnable +{ + friend class uGlobalMenuObject; +public: + NS_DECL_ISUPPORTS + NS_DECL_IMGIDECODEROBSERVER + NS_DECL_IMGICONTAINEROBSERVER + NS_DECL_NSIRUNNABLE + + void LoadIcon(); + + uGlobalMenuIconLoader(uGlobalMenuObject *aMenuItem): + mMenuItem(aMenuItem) { }; + ~uGlobalMenuIconLoader() { }; + +protected: + void Destroy(); + +private: + void ClearIcon(); + PRBool ShouldShowIcon(); + + PRBool mIconLoaded; + uGlobalMenuObject *mMenuItem; + nsCOMPtr mContent; + nsCOMPtr mIconRequest; + nsIntRect mImageRect; + static PRInt32 sImagesInMenus; + static nsCOMPtr sLoader; +}; + +class uGlobalMenuObject +{ + friend class uGlobalMenuIconLoader; +public: + uGlobalMenuObject (uMenuObjectType aType): mDbusMenuItem(nsnull), + mListener(nsnull), + mParent(nsnull), + mType(aType), + mLabelContent(nsnull), + mLabelSyncGuard(PR_FALSE), + mSensitivitySyncGuard(PR_FALSE) + { }; + DbusmenuMenuitem* GetDbusMenuItem() { return mDbusMenuItem; } + uGlobalMenuObject* GetParent() { return mParent; } + uMenuObjectType GetType() { return mType; } + void GetContent(nsIContent **_retval); + void UpdateVisibility(); + virtual ~uGlobalMenuObject() { }; + +protected: + void SyncLabelFromContent(); + void SyncLabelFromContent(nsIContent *aCommandContent); + void SyncVisibilityFromContent(); + void SyncSensitivityFromContent(); + void SyncSensitivityFromContent(nsIContent *aCommandContent); + void SyncIconFromContent(); + void UpdateInfoFromContentClass(); + void DestroyIconLoader(); + PRBool WithFavicon() { return mWithFavicon; } + + nsCOMPtr mContent; + DbusmenuMenuitem *mDbusMenuItem; + nsRefPtr mListener; + uGlobalMenuObject *mParent; + uMenuObjectType mType; + PRBool mContentVisible; + uGlobalMenuBar *mMenuBar; + +private: + nsRefPtr mIconLoader; + PRBool mWithFavicon; + PRBool mShowOnlyForKb; + nsIContent *mLabelContent; + PRBool mLabelSyncGuard; + PRBool mSensitivitySyncGuard; +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuUtils.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuUtils.cpp @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include + +#include "uGlobalMenuObject.h" +#include "uGlobalMenu.h" +#include "uGlobalMenuItem.h" +#include "uGlobalMenuSeparator.h" +#include "uGlobalMenuDummy.h" +#include "uGlobalMenuDocListener.h" +#include "uGlobalMenuBar.h" +#include "uWidgetAtoms.h" + +uGlobalMenuObject* +NewGlobalMenuItem(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + if (aContent->GetNameSpaceID() != kNameSpaceID_XUL) { +#else + if (!aContent->IsXUL()) { +#endif + return uGlobalMenuDummy::Create(aParent, aListener, aContent); + } + + if (aContent->Tag() == uWidgetAtoms::menu) { + return uGlobalMenu::Create(aParent, aListener, aContent, aMenuBar); + } else if (aContent->Tag() == uWidgetAtoms::menuitem) { + return uGlobalMenuItem::Create(aParent, aListener, aContent, aMenuBar); + } else if (aContent->Tag() == uWidgetAtoms::menuseparator) { + return uGlobalMenuSeparator::Create(aParent, aListener, aContent, aMenuBar); + } else { + // We didn't recognize the tag. We'll insert an invisible + // dummy node so that the indices between the hidden XUL menu + // and the GlobalMenu stay in sync. + return uGlobalMenuDummy::Create(aParent, aListener, aContent); + } +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenu.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenu.h @@ -0,0 +1,112 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENU_H +#define _U_GLOBALMENU_H + +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class uGlobalMenuItem; +class uGlobalMenuBar; +class uGlobalMenuDocListener; + +class uGlobalMenu: public uGlobalMenuObject, + public uMenuChangeObserver +{ + friend class uGlobalMenuItem; + friend class uGlobalMenuBar; +public: + NS_DECL_UMENUCHANGEOBSERVER + + static uGlobalMenuObject* Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); + + ~uGlobalMenu(); + + void OpenMenu(); + +private: + uGlobalMenu(): uGlobalMenuObject(Menu), mPopupBound(PR_FALSE) { }; + + // Initialize the menu structure + nsresult Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); + void InsertMenuObjectAt(uGlobalMenuObject *menuObj, + PRUint32 index); + void AppendMenuObject(uGlobalMenuObject *menuObj); + void RemoveMenuObjectAt(PRUint32 index); + nsresult ConstructDbusMenuItem(); + void Rebuild(); + nsresult Build(); + void GetMenuPopupFromMenu(nsIContent **aResult); + static PRBool MenuAboutToOpenCallback(DbusmenuMenuitem *menu, + void *data); + static PRBool MenuEventCallback(DbusmenuMenuitem *menu, + const gchar *name, + GVariant *value, + guint timestamp, + void *data); + PRBool CanOpen(); + void AboutToOpen(); + void OnOpen(); + void OnClose(); + void Activate(); + void Deactivate(); + + nsCOMPtr mPopupContent; + nsCOMPtr mCommandContent; + nsTArray< nsAutoPtr > mMenuObjects; + PRUint32 mOpenHandlerID; + PRUint32 mEventHandlerID; + PRBool mPopupBound; +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuLoader.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuLoader.h @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include + +#include "uIGlobalMenuService.h" +#include "uIGlobalMenuLoader.h" + +#define U_GLOBALMENULOADER_CID \ +{ 0x1e8f2f48, 0xe0a8, 0x4649, { 0x98, 0xef, 0x13, 0x22, 0xc0, 0x3f, 0xf0, 0x8e } } + +#define U_GLOBALMENULOADER_CONTRACTID "@canonical.com/globalmenu-loader;1" + +class nsIXULWindow; +class nsIDocShell; +class nsIWidget; + +class uGlobalMenuLoader: public nsIObserver, + public nsIWindowMediatorListener, + public uIGlobalMenuLoader, + public nsIWebProgressListener, + public nsSupportsWeakReference +{ +public: + NS_DECL_ISUPPORTS + NS_DECL_NSIOBSERVER + NS_DECL_NSIWINDOWMEDIATORLISTENER + NS_DECL_NSIWEBPROGRESSLISTENER + + uGlobalMenuLoader() { }; + ~uGlobalMenuLoader(); + nsresult Init(); + +private: + void RegisterAllMenus(); + void RegisterMenuForWindow(nsIXULWindow *aWindow); + PRBool RegisterMenu(nsIWidget *aWindow, + nsIDocShell *aDocShell); + + nsCOMPtr mService; +}; --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uMenuChangeObserver.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uMenuChangeObserver.h @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Communicator. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corp. + * Portions created by the Initial Developer are Copyright (C) 1999 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Mike Pinkerton + * Josh Aas (decomtaminate) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_MENUCHANGEOBSERVER_H +#define _U_MENUCHANGEOBSERVER_H + +class nsIContent; +class nsIDocument; +class nsIAtom; + +#define NS_DECL_UMENUCHANGEOBSERVER \ +void ObserveAttributeChanged(nsIDocument *aDocument, nsIContent *aContent, nsIAtom *aAttribute); \ +void ObserveContentRemoved(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild, PRInt32 aIndexInContainer); \ +void ObserveContentInserted(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild, PRInt32 aIndexInContainer); + +// Something that wants to be alerted to changes in attributes or changes in +// its corresponding content object. +// +// This interface is used by our menu code so we only have to have one +// nsIDocumentObserver. +// +// Any class that implements this interface must take care to unregister itself +// on deletion. +class uMenuChangeObserver +{ +public: + // XXX use dom::Element + virtual void ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute)=0; + + virtual void ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer)=0; + + virtual void ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer)=0; +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uWidgetAtomList.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uWidgetAtomList.h @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1999 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Original Author: Mike Pinkerton (pinkerton@netscape.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +WIDGET_ATOM(accesskey, "accesskey") +WIDGET_ATOM(autocheck, "autocheck") +WIDGET_ATOM(checkbox, "checkbox") +WIDGET_ATOM(checked, "checked") +WIDGET_ATOM(_class, "class") +WIDGET_ATOM(command, "command") +WIDGET_ATOM(disabled, "disabled") +WIDGET_ATOM(_false, "false") +WIDGET_ATOM(hidden, "hidden") +WIDGET_ATOM(id, "id") +WIDGET_ATOM(image, "image") +WIDGET_ATOM(key, "key") +WIDGET_ATOM(keycode, "keycode") +WIDGET_ATOM(label, "label") +WIDGET_ATOM(menu, "menu") +WIDGET_ATOM(menuactive, "_moz-menuactive") +WIDGET_ATOM(menuitem, "menuitem") +WIDGET_ATOM(menupopup, "menupopup") +WIDGET_ATOM(menuseparator, "menuseparator") +WIDGET_ATOM(modifiers, "modifiers") +WIDGET_ATOM(name, "name") +WIDGET_ATOM(open, "open") +WIDGET_ATOM(radio, "radio") +WIDGET_ATOM(toolbarspring, "toolbarspring") +WIDGET_ATOM(_true, "true") +WIDGET_ATOM(type, "type") --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuModule.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuModule.cpp @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Suresh Duddu + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either of the GNU General Public License Version 2 or later (the "GPL"), + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsIClassInfoImpl.h" +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 +#include "nsIGenericFactory.h" +#else +#include "mozilla/ModuleUtils.h" +#endif +#include "uGlobalMenuService.h" +#include "uGlobalMenuLoader.h" + +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(uGlobalMenuService, Init) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(uGlobalMenuLoader, Init) + +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + +NS_DEFINE_NAMED_CID(U_GLOBALMENUSERVICE_CID); +NS_DEFINE_NAMED_CID(U_GLOBALMENULOADER_CID); + +static const mozilla::Module::CIDEntry kGlobalMenuCIDs[] = { + { &kU_GLOBALMENUSERVICE_CID, false, NULL, uGlobalMenuServiceConstructor }, + { &kU_GLOBALMENULOADER_CID, false, NULL, uGlobalMenuLoaderConstructor }, + { NULL } +}; + +static const mozilla::Module::ContractIDEntry kGlobalMenuContracts[] = { + { U_GLOBALMENUSERVICE_CONTRACTID, &kU_GLOBALMENUSERVICE_CID }, + { U_GLOBALMENULOADER_CONTRACTID, &kU_GLOBALMENULOADER_CID }, + { NULL } +}; + +static const mozilla::Module kGlobalMenuModule = { + mozilla::Module::kVersion, + kGlobalMenuCIDs, + kGlobalMenuContracts +}; + +// The following line implements the one-and-only "NSModule" symbol exported from this +// shared library. +NSMODULE_DEFN(uGlobalMenuModule) = &kGlobalMenuModule; + +#else + +// For each class that wishes to support nsIClassInfo, add a line like this +NS_DECL_CLASSINFO(uGlobalMenuService) +NS_DECL_CLASSINFO(uGlobalMenuLoader) + +static const nsModuleComponentInfo components[] = +{ + { "Global Menu Service", + U_GLOBALMENUSERVICE_CID, + U_GLOBALMENUSERVICE_CONTRACTID, + uGlobalMenuServiceConstructor, + NULL, NULL + }, + + { "Global Menu Loader", + U_GLOBALMENULOADER_CID, + U_GLOBALMENULOADER_CONTRACTID, + uGlobalMenuLoaderConstructor, + NULL, NULL + } +}; + +NS_IMPL_NSGETMODULE(uGlobalMenuModule, components) + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDocListener.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDocListener.cpp @@ -0,0 +1,273 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Josh Aas + * Thomas K. Dyas + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 +#include +#endif +#include +#include + +#include "uGlobalMenuDocListener.h" + +NS_IMPL_ISUPPORTS1(uGlobalMenuDocListener, nsIMutationObserver) + +nsresult +uGlobalMenuDocListener::Init(nsIContent *rootNode) +{ + NS_ENSURE_ARG(rootNode); + + mDocument = rootNode->GetOwnerDoc(); + if (!mDocument) + return NS_ERROR_FAILURE; + mDocument->AddMutationObserver(this); + + return NS_OK; +} + +void +uGlobalMenuDocListener::Destroy() +{ + if (mDocument) { + mDocument->RemoveMutationObserver(this); + } +} + +uGlobalMenuDocListener::uGlobalMenuDocListener() : + mDocument(nsnull) +{ + mContentToObserverTable.Init(); +} + +void +uGlobalMenuDocListener::CharacterDataWillChange(nsIDocument *aDocument, + nsIContent *aContent, + CharacterDataChangeInfo *aInfo) +{ + +} + +void +uGlobalMenuDocListener::CharacterDataChanged(nsIDocument *aDocument, + nsIContent *aContent, + CharacterDataChangeInfo *aInfo) +{ + +} + +void +uGlobalMenuDocListener::AttributeWillChange(nsIDocument *aDocument, +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsIContent *aContent, +#else + mozilla::dom::Element *aElement, +#endif + PRInt32 aNameSpaceID, + nsIAtom *aAttribute, + PRInt32 aModType) +{ + +} + +void +uGlobalMenuDocListener::AttributeChanged(nsIDocument *aDocument, +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + nsIContent *aElement, +#else + mozilla::dom::Element *aElement, +#endif + PRInt32 aNameSpaceID, + nsIAtom *aAttribute, +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + PRInt32 aModType, + PRUint32 aStateMask) +#else + PRInt32 aModType) +#endif +{ + if (!aElement) + return; + + uMenuChangeObserver *obs = LookupContentChangeObserver(aElement); + if (obs) + obs->ObserveAttributeChanged(aDocument, aElement, aAttribute); +} + +void +uGlobalMenuDocListener::ContentAppended(nsIDocument *aDocument, + nsIContent *aContainer, +#if MOZILLA_BRANCH_MAJOR_VERSION >= 2 + nsIContent *aFirstNewContent, +#endif + PRInt32 aNewIndexInContainer) +{ +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + PRUint32 count = aContainer->GetChildCount(); + while ((PRUint32)aNewIndexInContainer < count) { + nsIContent *cur = aContainer->GetChildAt(aNewIndexInContainer); +#else + for (nsIContent* cur = aFirstNewContent; cur; cur = cur->GetNextSibling()) { +#endif + ContentInserted(aDocument, aContainer, cur, aNewIndexInContainer); + aNewIndexInContainer++; + } +} + +void +uGlobalMenuDocListener::ContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + if (!aContainer) + return; + + uMenuChangeObserver *obs = LookupContentChangeObserver(aContainer); + if (obs) + obs->ObserveContentInserted(aDocument, aContainer, aChild, + aIndexInContainer); + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i++) { + if (obs && mGlobalObservers[i] != obs) { + mGlobalObservers[i]->ObserveContentInserted(aDocument, aContainer, + aChild, aIndexInContainer); + } + } +} + +void +uGlobalMenuDocListener::ContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, +#if MOZILLA_BRANCH_MAJOR_VERSION < 2 + PRInt32 aIndexInContainer) +#else + PRInt32 aIndexInContainer, + nsIContent *aPreviousSibling) +#endif +{ + if (!aContainer) + return; + + uMenuChangeObserver *obs = LookupContentChangeObserver(aContainer); + if (obs) + obs->ObserveContentRemoved(aDocument, aContainer, aChild, + aIndexInContainer); + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i++) { + if (obs && mGlobalObservers[i] != obs) { + mGlobalObservers[i]->ObserveContentRemoved(aDocument, aContainer, aChild, + aIndexInContainer); + } + } +} + +void +uGlobalMenuDocListener::NodeWillBeDestroyed(const nsINode *aNode) +{ + mDocument = nsnull; +} + +void +uGlobalMenuDocListener::ParentChainChanged(nsIContent *aContent) +{ + +} + +void +uGlobalMenuDocListener::RegisterForContentChanges(nsIContent *aContent, + uMenuChangeObserver *aMenuObject) +{ + mContentToObserverTable.Put(aContent, aMenuObject); +} + +void +uGlobalMenuDocListener::UnregisterForContentChanges(nsIContent *aContent) +{ + mContentToObserverTable.Remove(aContent); +} + +void +uGlobalMenuDocListener::RegisterForAllChanges(uMenuChangeObserver *aMenuObject) +{ + if (!aMenuObject) { + return; + } + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i ++) { + if (mGlobalObservers[i] == aMenuObject) { + // Don't add more than once + return; + } + } + mGlobalObservers.AppendElement(aMenuObject); +} + +void +uGlobalMenuDocListener::UnregisterForAllChanges(uMenuChangeObserver *aMenuObject) +{ + if (!aMenuObject) { + return; + } + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i++) { + if (mGlobalObservers[i] == aMenuObject) { + mGlobalObservers.RemoveElementAt(i); + return; + } + } +} + +uMenuChangeObserver* +uGlobalMenuDocListener::LookupContentChangeObserver(nsIContent *aContent) +{ + uMenuChangeObserver *result; + if (mContentToObserverTable.Get(aContent, &result)) + return result; + else + return nsnull; +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDummy.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDummy.h @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * Mike Conley + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUDUMMY_H +#define _U_GLOBALMENUDUMMY_H + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class nsIContent; +class uGlobalMenuDocListener; + +class uGlobalMenuDummy: public uGlobalMenuObject, + public uMenuChangeObserver +{ +public: + NS_DECL_UMENUCHANGEOBSERVER + + static uGlobalMenuObject* Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent); + +private: + uGlobalMenuDummy(): uGlobalMenuObject(MenuDummy) { }; + + nsresult Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent); + + ~uGlobalMenuDummy(); + + nsresult ConstructDbusMenuItem(); +}; + + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuItem.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuItem.h @@ -0,0 +1,102 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUITEM_H +#define _U_GLOBALMENUITEM_H + +#include +#include +#include + +#include + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class nsIContent; +class uGlobalMenuDocListener; +class uGlobalMenuBar; + +enum uMenuItemType { + Normal, + CheckBox, + Radio +}; + +class uGlobalMenuItem: public uGlobalMenuObject, + public uMenuChangeObserver +{ +public: + NS_DECL_UMENUCHANGEOBSERVER + + static uGlobalMenuObject* Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); + +private: + uGlobalMenuItem(): uGlobalMenuObject(MenuItem) { }; + + nsresult Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar); + ~uGlobalMenuItem(); + + PRUint32 GetKeyCode(nsAString &aKeyName); + PRUint32 MozKeyCodeToGdkKeyCode(PRUint32 aMozKeyCode); + void SyncAccelFromContent(); + void SyncProperties(); + void SyncTypeAndStateFromContent(); + nsresult ConstructDbusMenuItem(); + static void ItemActivatedCallback(DbusmenuMenuitem *menuItem, + PRUint32 timeStamp, + void *data); + void Activate(); + void UncheckSiblings(); + + nsCOMPtr mCommandContent; + nsCOMPtr mKeyContent; + PRUint32 mHandlerID; + PRBool mIsToggle; + PRBool mToggleState; + uMenuItemType mType; +}; + + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuBar.h +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuBar.h @@ -0,0 +1,161 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUBAR_H +#define _U_GLOBALMENUBAR_H + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "uMenuChangeObserver.h" +#include "uGlobalMenuObject.h" +#include "uGlobalMenuUtils.h" + +class nsIObserver; +class nsIWidget; +class nsIDOMEvent; +class uGlobalMenuService; +class uGlobalMenu; +class uGlobalMenuBar; +class nsIDOMKeyEvent; + +class uGlobalMenuBarListener: public nsIDOMKeyListener, + public nsIDOMFocusListener +{ +public: + NS_DECL_ISUPPORTS + + NS_IMETHOD KeyPress(nsIDOMEvent *aKeyEvent); + NS_IMETHOD KeyUp(nsIDOMEvent *aKeyEvent); + NS_IMETHOD KeyDown(nsIDOMEvent *aKeyEvent); + + NS_IMETHOD Focus(nsIDOMEvent *aEvent); + NS_IMETHOD Blur(nsIDOMEvent *aEvent); + NS_IMETHOD HandleEvent(nsIDOMEvent *aEvent) { return NS_OK; } + + uGlobalMenuBarListener(uGlobalMenuBar *aMenuBar): + mMenuBar(aMenuBar) { }; + ~uGlobalMenuBarListener() { }; + +private: + uGlobalMenuBar *mMenuBar; +}; + +class uGlobalMenuBar: public uGlobalMenuObject, + public uMenuChangeObserver +{ + friend class uGlobalMenuBarListener; +public: + NS_DECL_UMENUCHANGEOBSERVER + + static uGlobalMenuBar* Create(nsIWidget *aWindow, + nsIContent *aMenuBar); + ~uGlobalMenuBar(); + + // Return the native ID of the window + PRUint32 GetWindowID(); + + // Returns the path of the menubar on the session bus + const char* GetMenuPath(); + + // Checks if the menubar shares the same top level window as the + // specified nsIWidget + PRBool WidgetHasSameToplevelWindow(nsIWidget *aWidget); + + PRBool OpenedByKeyboard() { return mOpenedByKeyboard; } + + // Called from the menu service. Used to hide the DOM element for the menubar + void SetMenuBarRegistered(PRBool aRegistered); + +protected: + void Focus(); + void Blur(); + nsresult KeyPress(nsIDOMEvent *aKeyEvent); + nsresult KeyUp(nsIDOMEvent *aKeyEvent); + nsresult KeyDown(nsIDOMEvent *aKeyEvent); +private: + uGlobalMenuBar(): uGlobalMenuObject(MenuBar), + mServer(nsnull), + mTopLevel(nsnull), + mOpenedByKeyboard(PR_FALSE) { }; + // Initialize the menu structure + nsresult Init(nsIWidget *aWindow, + nsIContent *aMenuBar); + + GtkWidget* WidgetToGTKWindow(nsIWidget *aWidget); + nsresult Build(); + PRUint32 GetModifiersFromEvent(nsIDOMKeyEvent *aKeyEvent); + PRBool ShouldHandleKeyEvent(nsIDOMEvent *aKeyEvent); + + void RemoveMenuObjectAt(PRUint32 index); + void InsertMenuObjectAt(uGlobalMenuObject *menu, + PRUint32 index); + void AppendMenuObject(uGlobalMenuObject *menu); + PRBool ShouldParentStayVisible(nsIContent *aContent); + PRBool IsParentOfMenuBar(nsIContent *aContent); + void SetXULMenuBarHidden(PRBool hidden); + + DbusmenuServer *mServer; + GtkWidget *mTopLevel; + nsCString mPath; + + nsCOMPtr mDOMWinTarget; + nsCOMPtr mHiddenElement; + nsCOMPtr mDocTarget; + PRBool mRestoreHidden; + PRBool mXULMenuHidden; + nsRefPtr mEventListener; + PRInt32 mAccessKey; + PRUint32 mAccessKeyMask; + PRBool mOpenedByKeyboard; + nsAutoPtr mCancellable; + + // Should probably have a container class and subclass that + nsTArray< nsAutoPtr > mMenuObjects; +}; + +#endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuSeparator.cpp +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuSeparator.cpp @@ -0,0 +1,149 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include + +#include +#include + +#include "uGlobalMenuSeparator.h" +#include "uGlobalMenuBar.h" +#include "uWidgetAtoms.h" + + +nsresult +uGlobalMenuSeparator::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if (!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TYPE, + "separator"); + + SyncVisibilityFromContent(); + UpdateInfoFromContentClass(); + + return NS_OK; +} + +nsresult +uGlobalMenuSeparator::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + NS_ENSURE_ARG(aMenuBar); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + mMenuBar = aMenuBar; + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + + return NS_OK; +} + +uGlobalMenuSeparator::~uGlobalMenuSeparator() +{ + if (mListener) { + mListener->UnregisterForContentChanges(mContent); + } + + if (mDbusMenuItem) + g_object_unref(mDbusMenuItem); +} + +/*static*/ uGlobalMenuObject* +uGlobalMenuSeparator::Create(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuBar *aMenuBar) +{ + uGlobalMenuSeparator *menuitem = new uGlobalMenuSeparator(); + if (!menuitem) { + return nsnull; + } + + if (NS_FAILED(menuitem->Init(aParent, aListener, aContent, aMenuBar))) { + delete menuitem; + return nsnull; + } + + return static_cast(menuitem); +} + +void +uGlobalMenuSeparator::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + if (aAttribute == uWidgetAtoms::hidden) { + SyncVisibilityFromContent(); + } else if (aAttribute == uWidgetAtoms::_class) { + UpdateInfoFromContentClass(); + } +} + +void +uGlobalMenuSeparator::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} + +void +uGlobalMenuSeparator::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/src/Makefile.in +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/src/Makefile.in @@ -0,0 +1,105 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +IS_COMPONENT = 1 +MODULE = globalmenu +LIBRARY_NAME = globalmenu +MODULE_NAME = uGlobalMenuModule +#USE_STATIC_LIBS = 1 +#EXPORT_LIBRARY = 1 + +XPI_NAME = globalmenu + +CPPSRCS = \ + uGlobalMenuModule.cpp \ + uGlobalMenuLoader.cpp \ + uGlobalMenuService.cpp \ + uGlobalMenuUtils.cpp \ + uGlobalMenuBar.cpp \ + uGlobalMenuSeparator.cpp \ + uGlobalMenuItem.cpp \ + uGlobalMenuDummy.cpp \ + uGlobalMenu.cpp \ + uGlobalMenuDocListener.cpp \ + uGlobalMenuObject.cpp \ + uWidgetAtoms.cpp \ + $(NULL) + +ifneq (extensions, $(MOZ_BUILD_APP)) +# Support in-tree builds where we need to figure this out for ourselves +MOZILLA_BRANCH_MAJOR_VERSION=$(shell echo $(MOZILLA_VERSION) | sed -e 's/[ab].*//' -e 's/^\([0-9]*\)\.*\([0-9]*\)\.*\([0-9]*\).*/\1/;') +MOZILLA_BRANCH_MINOR_VERSION=$(shell echo $(MOZILLA_VERSION) | sed -e 's/[ab].*//' -e 's/^\([0-9]*\)\.*\([0-9]*\)\.*\([0-9]*\).*/\2/;') +MOZILLA_BRANCH_MICRO_VERSION=$(shell echo $(MOZILLA_VERSION) | sed -e 's/[ab].*//' -e 's/^\([0-9]*\)\.*\([0-9]*\)\.*\([0-9]*\).*/\3/;') + +ifeq (,$(MOZILLA_BRANCH_MINRO_VERSION)) +MOZILLA_BRANCH_MINOR_VERSION=0 +endif +ifeq (,$(MOZILLA_BRANCH_MICRO_VERSION)) +MOZILLA_BRANCH_MICRO_VERSION=0 +endif +endif + +ifeq (1, $(MOZILLA_BRANCH_MAJOR_VERSION)) +XPCOM_GLUE_LDOPTS_REAL=$(shell echo $(XPCOM_GLUE_LDOPTS) | sed -e 's/-lmozalloc//') +else +XPCOM_GLUE_LDOPTS_REAL=$(XPCOM_GLUE_LDOPTS) +endif + +EXTRA_DSO_LDOPTS += $(XPCOM_GLUE_LDOPTS_REAL) \ + $(NSPR_LIBS) \ + $(DBUSMENU_LIBS) \ + $(MOZ_GTK2_LIBS) \ + $(NULL) + +include $(topsrcdir)/config/rules.mk + +CXXFLAGS += $(DBUSMENU_CFLAGS) \ + $(MOZ_GTK2_CFLAGS) \ + $(NULL) + +ifneq (extensions, $(MOZ_BUILD_APP)) +CXXFLAGS += -DMOZILLA_BRANCH_MAJOR_VERSION="$(MOZILLA_BRANCH_MAJOR_VERSION)" \ + -DMOZILLA_BRANCH_MINOR_VERSION="$(MOZILLA_BRANCH_MINOR_VERSION)" \ + -DMOZILLA_BRANCH_MICRO_VERSION="$(MOZILLA_BRANCH_MICRO_VERSION)" +endif --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/public/uIGlobalMenuLoader.idl +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/public/uIGlobalMenuLoader.idl @@ -0,0 +1,44 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsISupports.idl" + +[scriptable, uuid(48a2ede5-d33b-4e34-8538-7987f69db0fc)] +interface uIGlobalMenuLoader : nsISupports +{ +}; --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/public/Makefile.in +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/public/Makefile.in @@ -0,0 +1,53 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu +XPI_NAME = globalmenu + +XPIDLSRCS = \ + uIGlobalMenuLoader.idl \ + uIGlobalMenuService.idl \ + $(NULL) + +include $(topsrcdir)/config/rules.mk --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/components/public/uIGlobalMenuService.idl +++ firefox-6.0+build1+nobinonly/debian/globalmenu/components/public/uIGlobalMenuService.idl @@ -0,0 +1,71 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsISupports.idl" +#include "nsIObserver.idl" + +[ptr] native uGlobalMenuBarPtr(uGlobalMenuBar); +[ptr] native nsIWidgetPtr(nsIWidget); +[ptr] native nsIContentPtr(nsIContent); +[ptr] native uGlobalMenuRequestAutoCancellerPtr(uGlobalMenuRequestAutoCanceller); + +%{C++ +class uGlobalMenuBar; +class uGlobalMenuRequestAutoCanceller; +class nsIWidget; +class nsIContent; +%} + +[scriptable, uuid(92e2d4d4-84d6-400b-99ce-bb3b63639b5b)] +interface uIGlobalMenuService : nsISupports +{ + /* Create a menu bar from the specified DOM node and associate with the top-level + * window containing the specified DOM window */ + [noscript] void createGlobalMenuBar (in nsIWidgetPtr parent, in nsIContentPtr menuBarNode); + + /* Register a menu bar with the menu bar service */ + [noscript, notxpcom] void registerGlobalMenuBar (in uGlobalMenuBarPtr menuBar, in uGlobalMenuRequestAutoCancellerPtr canceller); + + /* Convenience functions to register to receive notification of the menu + * service online status changing */ + void registerNotification (in nsIObserver observer); + void unregisterNotification (in nsIObserver observer); + + /* Menu service online status */ + readonly attribute boolean online; +}; --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/chrome/jar.mn +++ firefox-6.0+build1+nobinonly/debian/globalmenu/chrome/jar.mn @@ -0,0 +1,8 @@ +globalmenu.jar: +% content globalmenu %content/ + content/firefoxOverlay.xul (content/firefoxOverlay.xul) + content/firefoxMenu.js (content/firefoxMenu.js) + content/thunderbirdOverlay.xul (content/thunderbirdOverlay.xul) + content/thunderbirdMenu.js (content/thunderbirdMenu.js) +% overlay chrome://browser/content/browser.xul chrome://globalmenu/content/firefoxOverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} +% overlay chrome://messenger/content/messenger.xul chrome://globalmenu/content/thunderbirdOverlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6} --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/chrome/Makefile.in +++ firefox-6.0+build1+nobinonly/debian/globalmenu/chrome/Makefile.in @@ -0,0 +1,49 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu +XPI_NAME = globalmenu +USE_EXTENSION_MANIFEST = 1 + +include $(topsrcdir)/config/rules.mk --- firefox-6.0+build1+nobinonly.orig/debian/globalmenu/chrome/content/thunderbirdOverlay.xul +++ firefox-6.0+build1+nobinonly/debian/globalmenu/chrome/content/thunderbirdOverlay.xul @@ -0,0 +1,41 @@ + + + + +