From cb1ec81904ef6a108860af069eaec1128551094b Mon Sep 17 00:00:00 2001 From: Carsten Schoenert Date: Mon, 24 Dec 2018 16:04:10 +0000 Subject: [PATCH] Import thunderbird_60.4.0-1.debian.tar.xz [dgit import tarball thunderbird 1:60.4.0-1 thunderbird_60.4.0-1.debian.tar.xz] --- README.Debian | 376 ++ README.apparmor | 30 + README.source | 105 + account-autoconfig/riseup.net.xml | 45 + apparmor/usr.bin.thunderbird | 427 ++ calendar-google-provider.dirs | 1 + calendar-google-provider.links | 1 + changelog | 5360 +++++++++++++++++ compat | 1 + control | 2352 ++++++++ copyright | 3663 +++++++++++ create-lightning-l10n-tarball.sh | 257 + create-thunderbird-l10n-tarball.sh | 328 + docs | 1 + gbp.conf | 23 + lightning.links | 1 + logo/icedove/icedove.xpm | 204 + logo/icedove/icedove_icon.svg | 1756 ++++++ logo/icedove/icedove_icon_plain.svg | 1438 +++++ logo/icedove/icedove_icon_profile.svg | 1959 ++++++ logo/icedove/icedove_icon_profile_plain.svg | 1606 +++++ logo/icedove/icedove_lettering.svg | 994 +++ logo/icedove/icedove_logo.svg | 2407 ++++++++ logo/icedove/icedove_logo_plain.svg | 1939 ++++++ logo/icedove/license.txt | 23 + logo/thunderbird/mailicon128.png | Bin 0 -> 12837 bytes logo/thunderbird/mailicon16.png | Bin 0 -> 975 bytes logo/thunderbird/mailicon22.png | Bin 0 -> 1343 bytes logo/thunderbird/mailicon24.png | Bin 0 -> 1656 bytes logo/thunderbird/mailicon256.png | Bin 0 -> 38134 bytes logo/thunderbird/mailicon32.png | Bin 0 -> 2400 bytes logo/thunderbird/mailicon48.png | Bin 0 -> 3931 bytes logo/thunderbird/mailicon512.png | Bin 0 -> 73401 bytes logo/thunderbird/mailicon64.png | Bin 0 -> 5423 bytes logo/thunderbird/pre60/mailicon128.png | Bin 0 -> 19586 bytes logo/thunderbird/pre60/mailicon16.png | Bin 0 -> 1027 bytes logo/thunderbird/pre60/mailicon22.png | Bin 0 -> 1537 bytes logo/thunderbird/pre60/mailicon24.png | Bin 0 -> 1724 bytes logo/thunderbird/pre60/mailicon256.png | Bin 0 -> 48501 bytes logo/thunderbird/pre60/mailicon32.png | Bin 0 -> 2619 bytes logo/thunderbird/pre60/mailicon48.png | Bin 0 -> 4801 bytes logo/thunderbird/pre60/mailicon512.png | Bin 0 -> 117944 bytes logo/thunderbird/pre60/mailicon64.png | Bin 0 -> 7368 bytes logo/thunderbird/pre60/thunderbird.svg | 768 +++ logo/thunderbird/thunderbird.svg | 253 + mozconfig.default | 127 + mozconfig.thunderbird | 17 + ...erences-directory-for-applications-p.patch | 30 + .../Build-against-system-libjsoncpp.patch | 91 + ...uild-testing-suites-and-stuff-part-2.patch | 453 ++ ...Don-t-build-testing-suites-and-stuff.patch | 586 ++ ...when-run-time-libsqlite-is-older-tha.patch | 30 + ...lugins-if-the-MOZILLA_DISABLE_PLUGIN.patch | 24 + ...from-application-before-installation.patch | 24 + .../changing-the-default-search-engine.patch | 48 + ...cu-use-locale.h-instead-of-xlocale.h.patch | 21 + ...py-ignore-tilde-as-special-character.patch | 25 + ...f-with-system-bz2-was-passed-but-no-.patch | 22 + ...t-b-l-.dat-depending-on-architecture.patch | 63 + ...c-fails-to-compile-against-GCC-4.6-m.patch | 21 + ...uild-also-gdata-provider-as-xpi-file.patch | 966 +++ .../fixes/Fix-big-endian-build-for-SKIA.patch | 118 + ...ibraries-with-their-real-path-to-avo.patch | 22 + ...ch-applications-set-in-HOME-.mailcap.patch | 24 + ...-C-CXXFLAGS-only-on-x86_64-platforms.patch | 29 + ...nsMsgComposeAndSend-to-respect-Replo.patch | 22 + .../Avoid-using-vmrs-vmsr-on-armel.patch | 21 + ...ve-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch | 103 + .../Allow-ipc-code-to-build-on-GNU-hurd.patch | 22 + ...ow-ipc-code-to-build-on-GNU-kfreebsd.patch | 38 + ...urd-fixing-unsupported-platform-Hurd.patch | 225 + ...x-failure-to-build-because-of-ipc-ch.patch | 31 + ...uilding-on-GNU-kFreeBSD-and-GNU-Hurd.patch | 178 + .../adding-missed-HURD-adoptions.patch | 197 + ...-fix-if-define-for-kFreeBSD-and-Hurd.patch | 50 + .../Add-m68k-support-to-Thunderbird.patch | 234 + ...build-failures-after-Bug-1425580-par.patch | 527 ++ ...out-MacroAssembler-speculationBarrie.patch | 26 + ...ix-CPU_ARCH-test-for-libjpeg-on-mips.patch | 21 + ...one-AtomicOperations-sparc.h-on-s390.patch | 24 + .../Add-sh4-support-to-Thunderbird.patch | 559 ++ ...rtup-crash-on-Linux-sparc64-in-HashI.patch | 25 + ...tion-on-alpha-for-the-url-classifier.patch | 21 + ...ble-extensions-in-system-directories.patch | 21 + ...Set-javascript.options.showInConsole.patch | 31 + patches/series | 39 + .../sl-change-Edit-Uredi-to-CTRL-E.patch | 22 + repack.py | 204 + rules | 225 + source.filter | 583 ++ source/format | 1 + source/include-binaries | 18 + source/lintian-overrides | 18 + tests/control | 14 + tests/help.sh | 13 + tests/icudatfileTest.sh | 22 + tests/idlTest.idl | 10 + tests/idlTest.sh | 51 + tests/soSymlinkTest.sh | 22 + tests/xpcshellTest.js | 1 + tests/xpcshellTest.sh | 11 + thunderbird-l10n-all.lintian-overrides | 2 + thunderbird-wrapper-helper.sh | 429 ++ thunderbird-wrapper.sh | 261 + thunderbird.1 | 205 + thunderbird.NEWS | 69 + thunderbird.bash-completion | 65 + thunderbird.desktop | 115 + thunderbird.dirs | 13 + thunderbird.docs | 1 + thunderbird.install | 33 + thunderbird.js | 42 + thunderbird.links | 11 + thunderbird.lintian-overrides | 13 + thunderbird.maintscript | 3 + thunderbird.manpages | 1 + thunderbird.pc | 12 + thunderbird.postinst | 98 + thunderbird.prerm | 11 + vendor.js | 2 + watch | 3 + 121 files changed, 34078 insertions(+) create mode 100644 README.Debian create mode 100644 README.apparmor create mode 100644 README.source create mode 100644 account-autoconfig/riseup.net.xml create mode 100644 apparmor/usr.bin.thunderbird create mode 100644 calendar-google-provider.dirs create mode 100644 calendar-google-provider.links create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100755 create-lightning-l10n-tarball.sh create mode 100755 create-thunderbird-l10n-tarball.sh create mode 100644 docs create mode 100644 gbp.conf create mode 100644 lightning.links create mode 100644 logo/icedove/icedove.xpm create mode 100644 logo/icedove/icedove_icon.svg create mode 100644 logo/icedove/icedove_icon_plain.svg create mode 100644 logo/icedove/icedove_icon_profile.svg create mode 100644 logo/icedove/icedove_icon_profile_plain.svg create mode 100644 logo/icedove/icedove_lettering.svg create mode 100644 logo/icedove/icedove_logo.svg create mode 100644 logo/icedove/icedove_logo_plain.svg create mode 100644 logo/icedove/license.txt create mode 100644 logo/thunderbird/mailicon128.png create mode 100644 logo/thunderbird/mailicon16.png create mode 100644 logo/thunderbird/mailicon22.png create mode 100644 logo/thunderbird/mailicon24.png create mode 100644 logo/thunderbird/mailicon256.png create mode 100644 logo/thunderbird/mailicon32.png create mode 100644 logo/thunderbird/mailicon48.png create mode 100644 logo/thunderbird/mailicon512.png create mode 100644 logo/thunderbird/mailicon64.png create mode 100644 logo/thunderbird/pre60/mailicon128.png create mode 100644 logo/thunderbird/pre60/mailicon16.png create mode 100644 logo/thunderbird/pre60/mailicon22.png create mode 100644 logo/thunderbird/pre60/mailicon24.png create mode 100644 logo/thunderbird/pre60/mailicon256.png create mode 100644 logo/thunderbird/pre60/mailicon32.png create mode 100644 logo/thunderbird/pre60/mailicon48.png create mode 100644 logo/thunderbird/pre60/mailicon512.png create mode 100644 logo/thunderbird/pre60/mailicon64.png create mode 100644 logo/thunderbird/pre60/thunderbird.svg create mode 100644 logo/thunderbird/thunderbird.svg create mode 100644 mozconfig.default create mode 100644 mozconfig.thunderbird create mode 100644 patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch create mode 100644 patches/debian-hacks/Build-against-system-libjsoncpp.patch create mode 100644 patches/debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch create mode 100644 patches/debian-hacks/Don-t-build-testing-suites-and-stuff.patch create mode 100644 patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch create mode 100644 patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch create mode 100644 patches/debian-hacks/Strip-version-number-from-application-before-installation.patch create mode 100644 patches/debian-hacks/changing-the-default-search-engine.patch create mode 100644 patches/debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch create mode 100644 patches/debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch create mode 100644 patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch create mode 100644 patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch create mode 100644 patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch create mode 100644 patches/fixes/Build-also-gdata-provider-as-xpi-file.patch create mode 100644 patches/fixes/Fix-big-endian-build-for-SKIA.patch create mode 100644 patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch create mode 100644 patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch create mode 100644 patches/fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch create mode 100644 patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch create mode 100644 patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch create mode 100644 patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch create mode 100644 patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch create mode 100644 patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch create mode 100644 patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch create mode 100644 patches/porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch create mode 100644 patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch create mode 100644 patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch create mode 100644 patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch create mode 100644 patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch create mode 100644 patches/porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch create mode 100644 patches/porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch create mode 100644 patches/porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch create mode 100644 patches/porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch create mode 100644 patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch create mode 100644 patches/porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch create mode 100644 patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch create mode 100644 patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch create mode 100644 patches/prefs/Set-javascript.options.showInConsole.patch create mode 100644 patches/series create mode 100644 patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch create mode 100755 repack.py create mode 100755 rules create mode 100644 source.filter create mode 100644 source/format create mode 100644 source/include-binaries create mode 100644 source/lintian-overrides create mode 100644 tests/control create mode 100755 tests/help.sh create mode 100755 tests/icudatfileTest.sh create mode 100644 tests/idlTest.idl create mode 100755 tests/idlTest.sh create mode 100755 tests/soSymlinkTest.sh create mode 100644 tests/xpcshellTest.js create mode 100755 tests/xpcshellTest.sh create mode 100644 thunderbird-l10n-all.lintian-overrides create mode 100644 thunderbird-wrapper-helper.sh create mode 100755 thunderbird-wrapper.sh create mode 100644 thunderbird.1 create mode 100644 thunderbird.NEWS create mode 100644 thunderbird.bash-completion create mode 100644 thunderbird.desktop create mode 100644 thunderbird.dirs create mode 100644 thunderbird.docs create mode 100755 thunderbird.install create mode 100644 thunderbird.js create mode 100644 thunderbird.links create mode 100644 thunderbird.lintian-overrides create mode 100644 thunderbird.maintscript create mode 100644 thunderbird.manpages create mode 100644 thunderbird.pc create mode 100644 thunderbird.postinst create mode 100644 thunderbird.prerm create mode 100644 vendor.js create mode 100644 watch diff --git a/README.Debian b/README.Debian new file mode 100644 index 0000000000..c66c412200 --- /dev/null +++ b/README.Debian @@ -0,0 +1,376 @@ +Enable l10n languages in Thunderbird >= 1:60.0~b2 +------------------------------------------------- + +Mozilla has started to move over to the WebExtensions interface with Firefox +version 51. Mozilla Thunderbird is following this way and disabled the old +legacy plugin integration with version 59. This also effects the usage of the +l10n packages for Thunderbird and Lightning as internally the usage of some +preference environments has changed. + +Thunderbird before version 57 was using the old preference of +'intl.locale.matchOS' (in /etc/thunderbird/pref/thunderbird.js) to catch up +the system locale into Thunderbird. This is now not used anymore and is +superseded by the new preference 'intl.locale.requested'. + +The old preference was of type Boolean, the new one is of type string. +This means the old was only used to enable locale detection of the system, +the new one can be used to set also explicitly a desired language for +Thunderbird and Lightning instead of only detecting the system locale setting. + +If you are happy with the locale from your user session, that is obviously the +most and the default, you need to do nothing to change. All written here is +just some extra information, no need to do anything. + +But if you want to use your Thunderbird with a different UI language than your +system locale you need to do the following steps. + + 1. Install the needed thunderbird-l10n package as usual + 2. Add a new string setting 'intl.locale.requested' to your local profile + prefs.js and set the key to your wanted language. + Can be done by using the builtin config editor. + Menu Edit -> Preferences -> Option 'Advanced- General' -> Config Editor + + For example: + set 'intl.locale.requested' to 'de' for German UI or + set 'intl.locale.requested' to 'fr' for France UI + +If you already have such an setting in your config and you want to use always +the language from your running session you need to remove this environment! + + -- Carsten Schoenert Wed, 5 Aug 2018 21:35:00 +0200 + +De-Branding of Icedove, Reintroduce Thunderbird in Debian +--------------------------------------------------------- + +Debian and Mozilla has done some new rethinking and talking about the old legal +questions about trademark issues [1]. +Based on this revaluation the Debian project got now an agreement from Mozilla +Corp. that the rebranded packages Iceweasel, Debian rebranded version for +Firefox, and Icedove, Debian rebranded version for Thunderbird are no longer +needed. + +The maintainers of the Iceweasel package followed that agreement and did a +de-branding of Iceweasel back to Firefox. More information on this process can +be found on [1]. +For Icedove the maintainers followed too the new agreement and remove the old +branding after almost 10 years for Icedove and Iceowl-Extension and switched +back to the official branding from Mozilla. The according bug for this process +can be found under [2]. + +For versions greater 1:45.6.0-2 the following packages were introduced as a +replacement. + +old package .... --> new package usage +--------------------------------------------------------------------------------- +icedove ........ --> thunderbird (Thunderbird Main application) +icedove-dev .... --> thunderbird-dev (Thunderbird Development files) +icedove-dbg .... --> thunderbird-dbg (Thunderbird with debugging symbols) +iceowl-extension --> lightning (Lightning, aka Calendar for Thunderbird) +icedove-l10n-* . --> thunderbird-l10n-* (l10n localization for Thunderbird) +iceowl-l10n-* .. --> lightning-l10n-* (l10n localization for Lightning) + +The old packages were changed to transitional packages and can be safely +removed after the automatically installation of the new packages. + += Profile Migration = +===================== + +Due the removing of the rebranding for Icedove Thunderbird will use the default +profile folder $HOME/.thunderbird for storing all the various user related +stuff! +With the new Thunderbird packages there is a wrapper script included, placed as +/usr/bin/thunderbird that will do a adoption of the existing profile folder +$HOME/.icedove into the new default folder for the user profile +$HOME/.thunderbird by setting up a symlink to the existing profile if possible. + +The automatism in the script will check the following parts: + + 1. Check if there is a folder or a symbolic link $HOME/.icedove existing and + there is NO folder or symbolic link $HOME/.thunderbird. + + 2. Create a symlink from $HOME/.thunderbird to $HOME/.icedove . + + 3. Fixing Mime type registration for' http(s)' and 'file' inside mimeTypes.rdf + if they registered for iceweasel. Before starting the fixup a backup will + be created name $FILE.backup_thunderbird_migration-${DATE}. + + 4. Also check for desktop type registrations of 'userapp-icedove*.desktop' in + '$HOME/.config/mimeapps.list' and $HOME/.local/share/applications/mimeapps.list, + but only if this file exists, users of tiling window managers won't have + this file. Read further for more information on this. + Like above, a backup of the existing file with same schema will be created + if needed. + + 7. If all was going well, starting Thunderbird. + + 8. If there is no folder $HOME/.icedove or $HOME/.thunderbird exists the + wrapper script will start Thunderbird without any extra action. + + 9. The above steps from 3.) will be also done if you already have a symlink + $HOME/.thunderbird that is pointing to $HOME/.icedove or the opposite, + $HOME/.thunderbird is pointing to $HOME/.icedove. + + So if you don't have one of the following four cases the wrapper script + will exit with a error message. + + 1. $HOME/.icedove is existing and holds valid profile data + 2. $HOME/.thunderbird points to $HOME/.icedove and 1. is true + 3. $HOME/.icedove points to $HOME/.thunderbird and 1. is true + 4. $HOME/.thunderbird is existing and holds valid profile data + (Note: Not the script, but Thunderbird will error out here if no + profiles are found!) + +If there is anything going wrong there will be splash screens displayed with +some additional notes, the logger mechanism will write some information about +what's going wrong into /var/log/syslog. + +So don't panic if there is something not working automatically. If the starter +script can't do the adoptions you will need to look by yourself and solve the +situation. Mostly there can be already a folder or symlink $HOME/.thunderbird +that prevents a automatic migration by the script. In such a case save a +existing folder $HOME/.thunderbird else where if needed and restart the +Thunderbird application. Other things like extra special mountpoints by the +system administrator can't also be handled by the script. Please ask the +service desk if you have trouble then. + +What else can you do? +You can call '/usr/bin/thunderbird --verbose' from a command line to see a +verbose output of the wrapper script. For more options of the wrapper script +and how to use them call '/usr/bin/thunderbird --help'. + +The Debian wiki is holding also extra information about the migration of +Icedove to Thunderbird. + + https://wiki.debian.org/Thunderbird + +For backward compatibility whithin the Stretch release there will be that +migration functionality until the release of Buster (aka Debian 10). +Afterwards you can still do this on your on by moving the folders manually. + += Avoid the pop-up information about migration globally = +========================================================= + +Within some use cases (e.g. bigger company environments) it can sometimes not +be useful that a user will see the dialogue window about the profile migration +as this can be more confusing than helpful. +To avoid this dialogue for all users on the system the administrator can create +a file '/etc/thunderbird/no_migration_popup' and the starting wrapper will +not pop-up the information dialogue if the migration isn't already done. + += User specific MIME Associations = +=================================== + +The desktop environment (usually Gnome, KDE, Mate etc.) is holding the +specific associations between MIME types and applications in various +places. In order the user can override system settings and adding new +ones the according place in the users home is the file +'$(HOME)/.config/mimeapps.list'. + +The migration is taking care for old 'icedove.desktop' associations and +is rewriting them to 'thunderbird.desktop'. +Like already done for the user profile, there will be always a backup +of the existing file created before the replacement can be done. In case +of problems you can safely move back to the original file. You will lost +then the needed association for the thunderbird binary. + +You can call '/usr/bin/thunderbird --show-backup' to see created backups from +the various possible modified files while the profile adoption. + +See also: + + https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html + += Migration of global configurations = +====================================== + +If you have some own special preferences files placed in '/etc/icedove/pref/' +they will be moved to '/etc/thunderbird/pref/'. +In case you have a modified file '/etc/icedove/pref/icedove.js' it will be +moved to '/etc/thunderbird/pref/icedove.js.dpkg-backup' to keep your changes. +Please adjust this file to the Thunderbird specific configuration file +'/etc/thunderbird/pref/thunderbird.js'. The old folder '/etc/icedove' is gone +be removed only if it is completely empty. + +There are still some corner cases where this automatism with configuration +files in /etc/thunderbird/pref is not fully working. Please note #806955 [4] +about such issues. + +[1] https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_Debian +[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006 +[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816679 +[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=806955 + + -- Carsten Schoenert Sun, 21 Aug 2016 10:12:00 +0200 + +Mozilla Crash Reporter for Thunderbird +-------------------------------------- + +The crash reporter for Thunderbird is enabled since version > 1:45.6.0-3. By +this a possible crash could be automatically send to Mozilla if the user is +accepting this. There is nothing send to Mozilla without a user action. More +information about the crash reporter can be found on: + +https://support.mozilla.org/en-US/kb/mozilla-crash-reporter-tb + +Please consider to use the crash reporter for getting crashes reported +upstream, this also helps the maintainers if Thunderbird to get crash reports +send upstream. +Submitted crash reports can be found, if any was send, in + + ~/.thunderbird/Crash Reports/submitted/ + + -- Carsten Schoenert Sun, 29 Jan 2017 14:15:00 +0100 + +Icedove for Debian +------------------ + +Icedove is the Thunderbird email client from Mozilla rebranded by Debian. + +Mozilla has changed the kind of developing and managing Thunderbird and make an +announcement about this on July 8 2012. Since this announcement Mozilla decided +to change the focus of there own software development and will put more action +on important web projects and of course on FirefoxOS. Mozilla plans to open the +Thunderbird development to a more community driven project but will also be +there for security and stability maintenance. There are no plans to close the +packaging of Icedove from the Debian side, but the future will see where the +upstream project will go to. +As long as Mozilla will provide ESR versions there will be packaged versions of +those inside the various release of Debian. + + -- Carsten Schoenert Sun, 2 July 2013 21:32:07 +0100 + +Downgrading TLS security +------------------------ + +If your provider doesn't support TLS 1.2 and you can't make him +upgrade you can change: + + "security.tls.version.min" + +and/or + + "security.tls.version.max" + +in about:config (available via "Edit ->> + Preferences -> Advanced -> +General -> Config Editor"). For details see +http://kb.mozillazine.org/Security.tls.version.* . + +Note that changing these values decreases your transport level +security. For more details see: + +https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS +https://bugzilla.mozilla.org/show_bug.cgi?id=480514 +https://wiki.mozilla.org/Security/Server_Side_TLS +http://en.wikipedia.org/wiki/Network_Security_Services +http://kb.mozillazine.org/Connection_errors_-_SMTP +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=761245 +https://tools.ietf.org/html/draft-ietf-tls-downgrade-scsv-00 + + -- Carsten Schoenert Wed, 15 Oct 2014 18:38:00 +0200 + +Adjusting TLS fallback strategy +------------------------------- + +Mozilla introduced a new setting with version 34.0b1: + + "security.tls.version.fallback-limit" + +The recommended (and default) value currently is: 3 (since 38.0b2) + +This means Thunderbird is doing no fall back from TLS 1.2 to 1.1 or to 1.0 at +all if the server is requesting this. +A value of '2' would mean Thunderbird is only using TLS 1.2 and TLS 1.1 as fall +back. +And with a value of '1' Thunderbird would do a fall back down to TLS 1.0 if +needed. A fall back to SSLv2/v3 isn't supported. + +Technical details can be found on: +https://bugzilla.mozilla.org/show_bug.cgi?id=1093724 +https://bugzilla.mozilla.org/show_bug.cgi?id=1084025 + +Reactivateing SSLV3 connectivity +-------------------------------- + +Due to POODLE and BEAST SSLv3 encrypted connections are not considered secure +anymore. See [1], [2] and [3] for details. If you need to reactivate SSLv3 to +use Thunderbird against legacy systems you have to change the settings for + + "security.tls.version.min" + +and set the value to '0'. + +This setting can be found in the about:config summary. +(available via "Edit ->> + Preferences -> Advanced -> General -> Config Editor"). +For details see +http://kb.mozillazine.org/Security.tls.version.* as written above. + +Please read also: +[1] http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3389 +[2] https://www.openssl.org/~bodo/ssl-poodle.pdf +[3] https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0/ + + -- Carsten Schoenert Wed, 04 Sep 2017 18:11:00 +0100 + +Plugins and Icedove settings +---------------------------- + +There are at least one known plugin that conflict with the change of the +security settings from above. +The user Brent S. Elmer has reported that the plugin 'HTTPS Everywhere' from +the Electronic Frontier Foundation is blocking a permanent change of the +setting "security.tls.version.min". Note that this behavior is no Debian +related issue. + +Please report other plugins and extensions that doesn't work well with the +security settings. + +[1] https://www.eff.org/https-everywhere +[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774790 + + -- Carsten Schoenert Sun, 18 Jan 2015 9:34:00 +0100 + +New and Changed Features with Icedove version 38.x and above +------------------------------------------------------------ + +At the Thunderbird Summit 2014 in Toronto [1] the contributors and developers +for Thunderbird decided to focus their work on some important changes that now +released with version 38.0.1. +For Icedove these changes means in detail: + * New storage backend maildir + You can now choose as backend while set up a new account to store the + emails in a maildir [2] backend. There is no migration from existing + accounts into the maildir backend format available! You have to set up a + new account for that and move your mails! + + * Removing the 4GB folder maximum + In previous versions you couldn't use more than 4GB within one folder in + your INBOX, now this limit isn't exist any longer. + + * Searching contacts across all address books + The address book now contains a folder "All Address Books" from there you + can search for any address in all of your local or remote address books. + + * Support OAuth backend for new created GMail accounts + You are now able to use the OAuth authentication while you create a new + account for a GMail address. Existing accounts can be changed to use + OAuth. + + * Opt out automatic installation of Lightning + Mozilla has changed the installation mechanism for Lightning away from a + always manually installation to a automatic installation with a option to + opt out this while the main installation of Thunderbird. + Debian is handling this slightly different as we use a package management + for such automatism. + On a Debian system the package iceowl-extensiom (the rebranded Lightning + package from Mozilla) will now installed automatically if you install or + upgrade the Icedove package through the package manager you prefer. + If you already have installed the Lightning package Icedove will use this + AddOn like before the upgrade. + But we recommend to not use the Lightning AddOn to work always with full + compatible program packages. So please remove the Lightning plugin and use + the iceowl-extension instead. No data will be lost! + +[1] https://wiki.mozilla.org/Thunderbird:Summit_2014 +[2] https://en.wikipedia.org/wiki/Maildir + + -- Carsten Schoenert Sun, 14 Jun 2015 13:13:00 +0200 diff --git a/README.apparmor b/README.apparmor new file mode 100644 index 0000000000..3974689953 --- /dev/null +++ b/README.apparmor @@ -0,0 +1,30 @@ +AppArmor policy +--------------- + +The thunderbird package includes an AppArmor profile +(/etc/apparmor.d/usr.bin.thunderbird). This profile is disabled by +default because it has to break a number of common use cases in order +to provide meaningful application confinement. + +If you want to trade additional security against potential +functionality breakage, you can enable this profile by running: + + sudo rm /etc/apparmor.d/disable/usr.bin.thunderbird && \ + sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.thunderbird + +To display the current state of the Thunderbird profile, run: + + sudo apt install jq && \ + sudo aa-status --pretty-json | jq .profiles.thunderbird + +To debug issues with this AppArmor profile, see: + + https://wiki.debian.org/AppArmor/Debug + +This AppArmor profile is maintained collaboratively, in +a cross-distribution manner, within the AppArmor upstream project. +You can report issues or propose improvements there: + + https://gitlab.com/apparmor/apparmor-profiles + + -- Carsten Schoenert Sun, 3 Dec 2017 18:03:00 +0200 diff --git a/README.source b/README.source new file mode 100644 index 0000000000..78e18d3a84 --- /dev/null +++ b/README.source @@ -0,0 +1,105 @@ +This package is maintained with git-buildpackage(1). + +It uses pristine-tar(1) to store enough information in git to generate +bit identical tarballs when building the package without having +downloaded an upstream tarball first. + +When working with patches it is recommended to use "gbp pq import" to +import the patches, modify the source and then use "gbp pq export +--commit" to commit the modifications. + +The changelog is generated using "gbp dch" so if you submit any +changes don't bother to add changelog entries but rather provide +a nice git commit message that can then end up in the changelog. + +It is recommended to build the package with pbuilder using: + + gbp builpackage --git-pbuilder + +For information on how to set up a pbuilder environment see the +git-pbuilder(1) manpage. In short: + + DIST=sid git-pbuilder create + gbp clone + cd + gbp buildpackage --git-pbuilder + +src:thunderbird uses component tarballs for the l10n packages (see below). + + +Creating a source tarball thunderbird +===================================== + +Download the source from the Mozilla CDN [1], then use debian/repack.py +to repackage the Thunderbird upstream tarball: + + debian/repack.py -p thunderbird -u 52.4.0 -c xz ../thunderbird-52.4.0.source.tar.xz + +[1] http://ftp.mozilla.org/pub/thunderbird/releases/ + + +Creating a source tarball thunderbird-l10n +========================================== + +We need to create the component tarball for the thunderbird l10n: + + thunderbird_[xx].orig-thunderbird-l10n.tar.xz + +using + + debian/create-thunderbird-l10n-tarball.sh + +You need to run the script on top of the Thunderbird Git repository. + + +Creating a source tarball lightning-l10n +======================================= + +As before we need to create the component tarball for the lightning l10n: + + thunderbird_[xx].orig-lightning-l10n.tar.xz + +The helper script + + debian/create-lightning-l10n-tarball.sh + +You need to run the script on top of the Thunderbird Git repository. + + +Importing the source tarballs +============================= + +Since version 45.0 the source package Icedove was using component +tarballs to include the l10n source for iceowl-extension and thunderbird. +The same is now also true for src:thunderbird starting with 52.4.0 with +lightning and thunderbird l10n component tarballs. + +git-buildpackage supports component tarballs since version 0.8.0 so +you can import the tarballs using "gbp import-orig". Make sure the +component tarballs are placed in the same folder as +thunderbird_[version].orig.tar.xz then import the new upstream version as +usual: + + gbp import-orig --sign-tags [--verbose] /path/to/thunderbird_[version].orig.tar.xz + + +Pre-shipped Font file(s) +======================= +The source of Firefox is shipping a pre-build font EmojiOneMozilla.ttf in +the folder + + mozilla/browser/fonts/ + +Currently this font isn't provided by any package in Debian but Thunderbird is +needing this font as well in case users are working and using the HTML modus for +email reading or writing. Thus we ship that font starting with > 52.4.0-1 in + + /usr/lib/thunderbird/font + +Once the font is provided by a package we can drop the shipped file. There is +RFP #881475 about packaging the EmojiOne font. + +See also bug reports #849602 and #881299 + + https://bugs.debian.org/849602 + https://bugs.debian.org/881299 diff --git a/account-autoconfig/riseup.net.xml b/account-autoconfig/riseup.net.xml new file mode 100644 index 0000000000..75952efad1 --- /dev/null +++ b/account-autoconfig/riseup.net.xml @@ -0,0 +1,45 @@ + + + + riseup.net + + Riseup Networks Mail + Riseup + + + imap.riseup.net + 993 + SSL + %EMAILLOCALPART% + plain + + + + pop.riseup.net + 995 + SSL + plain + %EMAILLOCALPART% + + + + mail.riseup.net + 465 + SSL + %EMAILLOCALPART% + plain + true + false + + + + + + + Configure Thunderbird for Riseup Mail + + + + + diff --git a/apparmor/usr.bin.thunderbird b/apparmor/usr.bin.thunderbird new file mode 100644 index 0000000000..06c1a9033b --- /dev/null +++ b/apparmor/usr.bin.thunderbird @@ -0,0 +1,427 @@ +# vim:syntax=apparmor +# Author: Simon Deziel +# This apparmor profile is derived from firefox profile +# by Jamie Strandboge + +# Declare an apparmor variable to help with overrides +@{MOZ_LIBDIR}=/usr/lib/thunderbird +@{thunderbird_executable} = /usr/lib/thunderbird/thunderbird{,-bin} + +#include + +profile thunderbird @{thunderbird_executable} { + #include + #include + #include + # TODO: finetune this for required accesses + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + + # Backported from the mesa abstraction, available in AppArmor >2.13 + # System files + /dev/dri/ r, # libGLX_mesa.so calls drmGetDevice2() + + # User files + owner @{HOME}/.cache/ w, # if user clears all caches + owner @{HOME}/.cache/mesa_shader_cache/ w, + owner @{HOME}/.cache/mesa_shader_cache/index rw, + owner @{HOME}/.cache/mesa_shader_cache/??/ w, + owner @{HOME}/.cache/mesa_shader_cache/??/* rw, + # End of backported mesa abstraction + + # Backported from the dri-enumerate abstraction, available in AppArmor 2.13 + /sys/devices/pci[0-9]*/**/{device,subsystem_device,subsystem_vendor,uevent,vendor} r, + + # Allow opening attachments + # TODO: create and use abstractions for opening various file formats + /{usr/local/,usr/,}bin/* Cx -> sanitized_helper, + /usr/lib/libreoffice/program/soffice Cxr -> sanitized_helper, + + # Allow opening links + /usr/lib/@{multiarch}/glib-[0-9]*/gio-launch-desktop ix, + + # For Xubuntu to launch the browser + /usr/bin/exo-open ixr, + /usr/lib/@{multiarch}/xfce4/exo-1/exo-helper-1 ixr, + /etc/xdg/xdg-xubuntu/xfce4/helpers.rc r, + /etc/xdg/xfce4/helpers.rc r, + + # for crash reports? + ptrace (read,trace) peer=@{profile_name}, + + @{thunderbird_executable} ixr, + + # Pulseaudio + /usr/bin/pulseaudio Pixr, + + owner @{HOME}/.{cache,config}/dconf/user rw, + owner @{HOME}/.cache/thumbnails/** r, + owner /run/user/[0-9]*/dconf/user rw, + owner @{HOME}/.config/gtk-3.0/bookmarks r, + deny owner @{HOME}/.local/share/gvfs-metadata/* r, + + # potentially extremely sensitive files + audit deny @{HOME}/.gnupg/** mrwkl, + audit deny @{HOME}/.ssh/** mrwkl, + + # rw access to HOME is useful when sending/receiving attachments + owner @{HOME}/[^.]** rw, + + # other commonly used locations + /{data,media,mnt,srv}/** r, + owner /{data,media,mnt,srv}/** rw, + owner @{HOME}/.signature* r, + + # Required for LVM setups + /sys/devices/virtual/block/dm-[0-9]*/uevent r, + + # Addons (too lax for thunderbird) + ##include + + # for networking + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + @{PROC}/[0-9]*/net/dev r, + @{PROC}/[0-9]*/net/wireless r, + @{PROC}/[0-9]*/net/arp 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 + /etc/xfce4/defaults.list r, + /usr/share/xubuntu/applications/defaults.list r, + owner /dev/shm/org.chromium.* rw, # for Chromium IPC + owner @{HOME}/.cache/fontconfig/*.cache-* rwk, + 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 @{HOME}/.recently-used r, + /tmp/.X[0-9]*-lock r, + /etc/udev/udev.conf r, + # Doesn't seem to be required, but noisy. Maybe allow 'r' for 'b*' if needed. + # Possibly move to an abstraction if anything else needs it. + deny /run/udev/data/** r, + + /etc/timezone r, + /etc/wildmidi/wildmidi.cfg r, + + # thunderbird specific + /etc/thunderbird/ r, + /etc/thunderbird/** 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/thunderbird-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, + + # noisy file dialog: + # + # TODO: remove these rules when file dialogs becomes "trusted helpers" that can + # read anything, or ability to override `deny` rules is implemented [0]. + # + # NOTE: modify `local/usr.bin.thunderbird` to add `deny` rules for cases not + # mentioned here when `DENIED` messages appear for dot files in kernel (or audit) + # logs. If that case is believed to be common enough, please report bug against + # package shipping this profile in order to extend this list. + # + # [0] https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/451422 + deny @{HOME}/.KiCad r, + deny @{HOME}/.abbrev_defs r, + deny @{HOME}/.aspell.*.{prepl,pws} r, + deny @{HOME}/.bashrc r, + deny @{HOME}/.bash_logout r, + deny @{HOME}/.bbdb r, + deny @{HOME}/.caffrc r, + deny @{HOME}/.colordiffrc r, + deny @{HOME}/.cvpcb r, + deny @{HOME}/.cvspass r, + deny @{HOME}/.devscripts r, + deny @{HOME}/.directory r, + deny @{HOME}/.dpt.conf r, + deny @{HOME}/.dput.cf r, + deny @{HOME}/.dupload.conf r, + deny @{HOME}/.eeschema r, + deny @{HOME}/.emacs r, + deny @{HOME}/.emacs.bmk r, + deny @{HOME}/.emacs.desktop* r, + deny @{HOME}/.fehbg r, + deny @{HOME}/.forward r, + deny @{HOME}/.gbp.conf r, + deny @{HOME}/.gerbview r, + deny @{HOME}/.gitconfig r, + deny @{HOME}/.gitk r, + deny @{HOME}/.gtk-recordmydesktop r, + deny @{HOME}/.gtkrc-2.0 r, + deny @{HOME}/.i18n r, + deny @{HOME}/.ido.last r, + deny @{HOME}/.iftoprc r, + deny @{HOME}/.inputrc r, + deny @{HOME}/.jigdo-lite r, + deny @{HOME}/.kicad r, + deny @{HOME}/.kicad_common r, + deny @{HOME}/.lesshst r, + deny @{HOME}/.listadmin.ini r, + deny @{HOME}/.minicpanrc r, + deny @{HOME}/.mostrc r, + deny @{HOME}/.mrconfig r, + deny @{HOME}/.mrlog r, + deny @{HOME}/.mrtrust r, + deny @{HOME}/.my.cnf r, + deny @{HOME}/.newsrc-dribble r, + deny @{HOME}/.newsrc.eld r, + deny @{HOME}/.notmuch-config r, + deny @{HOME}/.offlineimaprc r, + deny @{HOME}/.pam_environment r, + deny @{HOME}/.pbuilderrc r, + deny @{HOME}/.pcbnew r, + deny @{HOME}/.perldb r, + deny @{HOME}/.perltidyrc r, + deny @{HOME}/.pgadmin3 r, + deny @{HOME}/.pgadmin_histoqueries r, + deny @{HOME}/.pgpass r, + deny @{HOME}/.python_history r, + deny @{HOME}/.pythonhist r, + deny @{HOME}/.quiltrc r, + deny @{HOME}/.reportbug-ng r, + deny @{HOME}/.reportbugrc r, + deny @{HOME}/.rnd r, + deny @{HOME}/.screenrc r, + deny @{HOME}/.selected_editor r, + deny @{HOME}/.steam/bin{32,64}/steam r, # through a symlink + deny @{HOME}/.steam/steam.pid r, # through a symlink + deny @{HOME}/.steam/ubuntu12_{32,64}/steam r, # through a symlink + deny @{HOME}/.sudo_as_admin_successful r, + deny @{HOME}/.swp r, + deny @{HOME}/.taskrc r, + deny @{HOME}/.tmux.conf r, + deny @{HOME}/.vboxclient-*.pid r, + deny @{HOME}/.vimrc r, + deny @{HOME}/.wget-hsts r, + deny @{HOME}/.xchm r, + deny @{HOME}/.xfce4-session.verbose-log* r, + deny @{HOME}/.xim.template r, + deny @{HOME}/.xinitrc.template r, + deny @{HOME}/.xinputrc r, + deny @{HOME}/.xscreensaver r, + deny @{HOME}/.xsession*errors* r, + deny @{HOME}/.xsessionrc r, + deny @{HOME}/.Xresources r, + deny @{HOME}/.Xsession r, + deny @{HOME}/.zcompdump r, + deny @{HOME}/.zlogout r, + deny @{HOME}/.zshrc r, + + # TODO: investigate + deny /usr/bin/gconftool-2 x, + + # Deny proprietary NVIDIA driver optimizations + # TODO: remove once it can be disabled via conditionals set up in nvidia abstraction + deny /tmp/#[0-9][0-9][0-9][0-9][0-9][0-9][0-9] m, + deny /tmp/.gl?????? mrw, + deny @{HOME}/#[0-9][0-9][0-9][0-9][0-9][0-9][0-9]{,[0-9]} m, + deny @{HOME}/.nv/.gl?????? mrw, + + owner @{PROC}/[0-9]*/mountinfo r, + owner @{PROC}/[0-9]*/stat r, + owner @{PROC}/[0-9]*/task/[0-9]*/stat r, + /sys/devices/pci[0-9]*/**/uevent r, + /sys/devices/pci*/**/config r, + /sys/devices/system/node/node[0-9]*/meminfo r, + /etc/mtab r, + /etc/fstab r, + + # Needed for the crash reporter + owner @{PROC}/[0-9]*/environ r, + owner @{PROC}/[0-9]*/auxv r, + owner @{PROC}/[0-9]*/status r, + owner @{PROC}/[0-9]*/cmdline r, + /etc/lsb-release r, + /etc/ssl/openssl.cnf r, + /usr/lib/thunderbird/crashreporter ix, + /usr/bin/expr ix, + /sys/devices/system/cpu/ r, + /sys/devices/system/cpu/** r, + + # about:memory + owner @{PROC}/[0-9]*/statm r, + owner @{PROC}/[0-9]*/smaps r, + + # 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 and /opt + /usr/ r, + /usr/** r, + /opt/ r, + /opt/** r, + + # so browsing directories works + / r, + /**/ r, + + # per-user thunderbird configuration + owner @{HOME}/.{icedove,thunderbird}/ rw, + owner @{HOME}/.{icedove,thunderbird}/** rw, + owner @{HOME}/.{icedove,thunderbird}/**/storage.sdb k, + owner @{HOME}/.{icedove,thunderbird}/**/*.{db,parentlock,sqlite}* k, + owner @{HOME}/.{icedove,thunderbird}/plugins/** rm, + owner @{HOME}/.{icedove,thunderbird}/**/plugins/** rm, + owner @{HOME}/.cache/thunderbird/ rw, + owner @{HOME}/.cache/thunderbird/** rw, + + # system emails + owner /var/mail/* rwlk, + + # + # Extensions + # /usr/share/.../extensions/... is already covered by '/usr/** r', above. + # Allow 'x' for downloaded extensions, but inherit policy for safety + owner @{HOME}/.{icedove,thunderbird}/**/extensions/** mixrw, + owner @{HOME}/.mozilla/ rw, + owner @{HOME}/.mozilla/extensions/ rw, + owner @{HOME}/.mozilla/extensions/** mixr, + /usr/share/xul-ext/**/*.sqlite rk, + /usr/lib/mozilla/plugins/*.so rm, + /usr/lib/xul-ext/**/*.sqlite rk, + /usr/lib/thunderbird-addons/extensions/**/*.sqlite rk, + + 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, + + /usr/bin/gpg Cx -> gpg, + /usr/bin/gpg2 Cx -> gpg, + /usr/bin/gpgconf Cx -> gpg, + /usr/bin/gpg-connect-agent Cx -> gpg, + /usr/lib/gnupg/gpg-wks-client ix, + /{,usr/}bin/ps ix, + + # TB tries to create this file but has no business doing so + deny @{HOME}/.gnupg/gpg-agent.conf w, + + profile gpg { + #include + + # Required to import keys from keyservers + #include + #include + + /usr/share/xul-ext/enigmail/chrome/** r, + + # silence noise from enigmail 1.9+ + deny owner @{HOME}/.{icedove,thunderbird}/*/.parentlock w, + deny owner @{HOME}/.{icedove,thunderbird}/*/panacea.dat w, + deny owner @{HOME}/.{icedove,thunderbird}/*/*.mab w, + deny owner @{HOME}/.{icedove,thunderbird}/**/*.msf w, + deny owner @{HOME}/.cache/thunderbird/**/_CACHE_* w, + + # noise from inherited files + deny @{HOME}/.{icedove,thunderbird}/*/ImapMail/*/INBOX w, + deny /usr/{lib,share}/thunderbird/omni.ja r, + deny /usr/share/thunderbird/extensions/** r, + + # For smartcards? + /dev/bus/usb/ r, + /dev/bus/usb/[0-9]*/ r, + /dev/bus/usb/[0-9]*/[0-9]* r, + + # LDAP key servers + /etc/ldap/ldap.conf r, + + /usr/bin/gpg mr, + /usr/bin/gpg2 mr, + /usr/bin/gpgconf mr, + /usr/bin/gpg-connect-agent mr, + /usr/lib/gnupg/gpgkeys_* ix, + /usr/lib/gnupg2/gpg2keys_* ix, + owner @{HOME}/.gnupg/ rw, + owner @{HOME}/.gnupg/gpg.conf r, + owner @{HOME}/.gnupg/random_seed rwk, + owner @{HOME}/.gnupg/pubring.{gpg,kbx}{,~} rw, + owner @{HOME}/.gnupg/secring.gpg rw, + owner @{HOME}/.gnupg/trustdb.gpg rw, + owner @{HOME}/.gnupg/tofu.db{,-journal} rwk, + owner @{HOME}/.gnupg/S.gpg-agent rw, + owner @{HOME}/.gnupg/S.dirmngr rw, + owner @{HOME}/.gnupg/*.{gpg,kbx}.{lock,tmp} rwl, + owner @{HOME}/.gnupg/.gpg-*.lock rwl, + owner @{HOME}/.gnupg/gnupg_spawn_*.lock rwl, + owner @{HOME}/.gnupg/.#*[0-9] rw, + owner @{HOME}/.gnupg/.#*[0-9]x rwl, + owner @{HOME}/.gnupg/.#lk0x[0-9a-f]* rwl, + owner @{HOME}/.gnupg/.gpg-v[0-9]*-migrated rw, + owner @{HOME}/.gnupg/openpgp-revocs.d/{,[A-F0-9]*.rev} rw, + owner @{HOME}/** r, + owner @{PROC}/@{pids}/mountinfo r, + + # For gpgconf + owner @{PROC}/@{pids}/fd/ r, + + owner /run/user/[0-9]*/keyring-*/gpg rw, + + # For encryption + signature + owner /tmp/gpgOutput.* rw, + + # for inline pgp + owner /tmp/encfile rw, + owner /tmp/encfile-[0-9]* rw, + + # for key import + owner /tmp/enigmail_import/.#lk0x[0-9a-f]* rw, + owner /tmp/enigmail_import/.#lk0x[0-9a-f]*x rwl, + owner /tmp/enigmail_import/{keyring,trustdb}.lock rwl, + owner /tmp/enigmail_import/{keyring,trustdb}{,~,.tmp} rw, + /usr/bin/dirmngr ix, + owner @{PROC}/@{pids}/task/@{tid}/comm rw, + + # for revocation certificate generation in the Enigmail setup wizard + owner @{HOME}/.{icedove,thunderbird}/*/0x[A-F0-9]*_rev.asc rw, + # for revocation certificate generation in the Enigmail key manager + owner @{HOME}/*0x[A-F0-9]**.asc rw, + + # for signature generation + owner /tmp/nsemail.eml w, + owner /tmp/nsemail-[0-9]*.eml w, + + # for signature verifications + owner /tmp/data.sig r, + owner /tmp/data-[0-9]*.sig r, + + owner /tmp/gpg-[a-zA-Z0-9]*/S.gpg-agent rw, + + /usr/share/sounds/** r, + } + + # Site-specific additions and overrides. See local/README for details. + #include +} + diff --git a/calendar-google-provider.dirs b/calendar-google-provider.dirs new file mode 100644 index 0000000000..141413a3fc --- /dev/null +++ b/calendar-google-provider.dirs @@ -0,0 +1 @@ +usr/share/xul-ext/calendar-google-provider diff --git a/calendar-google-provider.links b/calendar-google-provider.links new file mode 100644 index 0000000000..2062fa4bcf --- /dev/null +++ b/calendar-google-provider.links @@ -0,0 +1 @@ +usr/share/xul-ext/calendar-google-provider usr/share/mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc} diff --git a/changelog b/changelog new file mode 100644 index 0000000000..5b789a2fca --- /dev/null +++ b/changelog @@ -0,0 +1,5360 @@ +thunderbird (1:60.4.0-1) unstable; urgency=medium + + * [2e5a9d0] d/control: don't hard code LLVM packages in B-D + (Closes: #912797) + * [3aaa4a6] New upstream version 60.4.0 + No MFSA published yet by Mozilla Security while packaging this version. + (Closes: #913645) + * [12d3be3] debian/control: increase Standards-Version to 4.3.0 + No further changes needed. + + -- Carsten Schoenert Mon, 24 Dec 2018 17:04:10 +0100 + +thunderbird (1:60.3.1-1) unstable; urgency=medium + + * [e1b489a] New upstream version 60.3.1 + * [f376b38] lightning: use ${source:Version} in Breaks and Recommends + (Closes: #914175) + * [7e560b3] Revert "lintian: adding a semi automated lintian-override" + The override about a misspelled word Synopsys isn't needed any more. + * [893c0e6] rebuild patch queue from patch-queue branch + modified patches: + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch + * [20d8827] d/source.filter: update the filter sequences + + -- Carsten Schoenert Sun, 25 Nov 2018 10:02:50 +0100 + +thunderbird (1:60.3.0-1) unstable; urgency=medium + + [ intrigeri ] + * [7949b31] AppArmor: update profile from upstream at commit f3d9a8b + (Closes: #903898) + * [e31dc14] AppArmor: update profile from upstream at commit 81c9457 + (Closes: #908206) + + [ Carsten Schoenert ] + * [0dcbe22] d/control: add xul-ext-gnome-keyring to Breaks for thunderbird + (Closes: #907979) + * [65db00d] armel: adding extra LDFLAGS so rust compiler isn't confused + The settings that are builtin within rust are conflicting with the GCC. + * [9c65884] New upstream version 60.3.0 + Fixed CVE issues in upstream version 60.3.0 (MFSA 2018-28) + CVE-2018-12392: Crash with nested event loops + CVE-2018-12393: Integer overflow during Unicode conversion while loading + JavaScript + CVE-2018-12389: Memory safety bugs fixed in Firefox ESR 60.3 and + Thunderbird 60.3 + CVE-2018-12390: Memory safety bugs fixed in Firefox 63, Firefox ESR 60.3, + and Thunderbird 60.3 + * [8726bb1] rebuild patch queue from patch-queue branch + removed patches (included upstream) + fixes/Bug-1479540-Accept-triplet-strings-with-only-two-parts-in.patch + fixes/Bug-1492064-Disable-baseline-JIT-when-SSE2-is-not-support.patch + fixes/Bug-1492065-Use-Swizzle-fallback-when-SSE2-is-not-support.patch + porting-mips/Add-struct-ucred-for-Linux-on-MIPS.patch + + -- Carsten Schoenert Thu, 01 Nov 2018 12:19:34 +0100 + +thunderbird (1:60.2.1-1) unstable; urgency=medium + + * [ba75ca3] logo: move old TB graphics into dedicated folder + * [ba47234] logo: adding new TB icon *.png graphics + Like Firefox Thunderbird has also got a reworked logo. As we use some own + icon created from a SVG graphic this commit adds the new icons in the + various sizes. The source of the SVG graphic is taken from + https://demo.identihub.co/thunderbird#/view/icon/element/612 + (Closes: #909108) + * [0b16a87] d/source.filter: don't remove react files from source + (Closes: #909046) + * [d01dfd6] rebuild patch queue from patch-queue branch + added patches: + fixes/Bug-1479540-Accept-triplet-strings-with-only-two-parts-in.patch + fixes/Bug-1482248-don-t-crash-on-empty-file-name-in-nsMsgLocalS.patch + fixes/Bug-1492064-Disable-baseline-JIT-when-SSE2-is-not-support.patch + fixes/Bug-1492065-Use-Swizzle-fallback-when-SSE2-is-not-support.patch + (Closes: #909628, #909039, #906816) + * [bf64065] New upstream version 60.2.1 + Fixed CVE issues in upstream version 60.2.1 (MFSA 2018-25) + CVE-2018-12377: Use-after-free in refresh driver timers + CVE-2018-12378: Use-after-free in IndexedDB + CVE-2018-12379: Out-of-bounds write with malicious MAR file + CVE-2018-12376: Memory safety bugs fixed in Firefox 62 and Firefox ESR 60.2 + CVE-2018-12385: Crash in TransportSecurityInfo due to cached data + CVE-2018-12383: Setting a master password post-Firefox 58 does not delete + unencrypted previously stored passwords + * [b4712af] rebuild patch queue from patch-queue branch + removed patches (fixed upstream): + fixes/Bug-1482248-don-t-crash-on-empty-file-name-in-nsMsgLocalS.patch + * [79057f6] d/control: make lightning-l10n packages transitional + The l10n content for Lightning and a specific language is now much more + related to the Thunderbird l10n content. By this the existing lightning + l10n packages are not really useful any more as we move the Lightning + l10n content into the respective Thunderbird l10n package a we need to + turn the existing Lightning l10n packages into transitional packages. + * [a0ac3b7] d/control: adding Replaces, Breaks, Provides to thunderbird-l10n-* + Related to the previous commit the Thunderbird l10n packages need some + more fields in the control file so the transition from lightning-l10n into + thunderbird-l10n can work. + * [c82ee7c] d/rules: install lightning l10n into thunderbird-l10n-* packages + The content for the lightning l10n stuff needs now to be installed into + thunderbird-l10n packages. + * [72cd535] d/control: add thunderbird-l10n-cy + Oops, seems like we never have introduced this language for Thunderbird + before. Now required to provide the l10n content for Lightning. + * [510bea6] d/thunderbird-wrapper.sh: improve GDB switch + Since TB 60 upstream isn't installing the old wrapper script + run-mozilla.sh any more. By this we need to adjust our starting wrapper + so the call to start Thunderbird within the GDB debugger is working. + + -- Carsten Schoenert Fri, 05 Oct 2018 17:43:49 +0200 + +thunderbird (1:60.0-3) unstable; urgency=medium + + * [daa0dd7] locale: use 'intl.locale.requested' correctly + Thanks to hint from Sven Joachim we can use the preference setting + 'intl.locale.requested' in way that users don't need to use this setting + within their prefs.js to control the language of the Thunderbird UI. + 'intl.locale.requested' is somehow the successor of 'intl.locale.matchOS'. + (Closes: #908034) + * [f8ac1b2] debian/control: increase Standards-Version to 4.2.1 + No further changes needed. + * [a001579] d/control: remove empty 'Replaces' in thunderbird-l10n-da + We can remove that line of Replaces without any key. + + -- Carsten Schoenert Thu, 06 Sep 2018 18:46:31 +0200 + +thunderbird (1:60.0-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [71ac5e7] rebuild patch queue from patch-queue branch + added patches: + porting-mips/Add-struct-ucred-for-Linux-on-MIPS.patch + porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch + porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch + * [d94e5dc] d/control: B-D on {lib}clang-6.0* and llvm-6.0-dev + (Closes: #906707) + + -- Carsten Schoenert Mon, 20 Aug 2018 17:57:07 +0200 + +thunderbird (1:60.0-1) unstable; urgency=medium + + [ Cyril Brulebois ] + * [4f1fcd4] Bump B-D libsqlite3-dev version + Upstream requires a more recent version that is already available in + unstable but not in Stretch later e.g. + * [5a790c2] Add libicu-dev to Build-Depends (required for icu-i18n.pc) + This package was pulled from some other package already but we need this + explicit now again as we don't use the internal ICU version any more. + * [8c86207] Bump libhunspell-dev version + The same as for libsqlite3-dev, adding the correct B-D version. + (Closes: #905465) + + [ Carsten Schoenert ] + * [901f257] New upstream version 60.0 + Fixed CVE issues in upstream version 60.0 (MFSA 2018-19) + CVE-2018-12359: Buffer overflow using computed size of canvas element + CVE-2018-12360: Use-after-free when using focus() + CVE-2018-12361: Integer overflow in SwizzleData + CVE-2018-12362: Integer overflow in SSSE3 scaler + CVE-2018-5156: Media recorder segmentation fault when track type is + changed during capture + CVE-2018-12363: Use-after-free when appending DOM nodes + CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins + CVE-2018-12365: Compromised IPC child process can list local filenames + CVE-2018-12371: Integer overflow in Skia library during edge builder + allocation + CVE-2018-12366: Invalid data handling during QCMS transformations + CVE-2018-12367: Timing attack mitigation of PerformanceNavigationTiming + CVE-2018-5187: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, + and Thunderbird 60 + CVE-2018-5188: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, + Firefox ESR 52.9, and Thunderbird 60 + * [44ab834] rebuild patch queue from patch-queue branch + removed patches (applied upstream): + porting-arm64/Bug-1453892-Only-use-SkJumper-s-arm64-half-float-optimiza.patch + porting-arm64/Bug-1463036-Use-HAVE_ARM_NEON-instead-of-BUILD_ARM_NEON-f.patch + porting-armel/Bug-1463036-Add-mfloat-abi-softfp-to-NEON_FLAGS-when-it-m.patch + * [3168b29] debian/control: increase Standards-Version to 4.2.0 + No further changes needed. + * [f2f206e] d/rules: use MOZ_LANGPACK_ID instead of hard coding + * [996352a] d/rules: ensure l10n MOZ_LANGPACK_ID matches variable from + makefile + Previous beta versions for the thunderbird-l10n data have used + '@firefox.mozilla.org' within their application.id setting. Thunderbird + now expects '@thunderbird.mozilla.org' instead. Make the build more + flexible so we can detect mismatches here. + (Closes: #906176) + + -- Carsten Schoenert Sun, 19 Aug 2018 11:32:11 +0200 + +thunderbird (1:60.0~b10-1) experimental; urgency=medium + + [ intrigeri ] + * [596869d] AppArmor: update profile from upstream (at commit edc9487) + (Closes: #901471) + + [ Carsten Schoenert ] + * [57195ff] New upstream version 60.0~b10 + * [770c9a6] rebuild patch queue from patch-queue branch + added patches: + porting-arm64/Bug-1463036-Use-HAVE_ARM_NEON-instead-of-BUILD_ARM_NEON-f.patch + porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch + porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch + porting-armel/Bug-1463036-Add-mfloat-abi-softfp-to-NEON_FLAGS-when-it-m.patch + * [7fa6ebd] debian/control: increase Standards-Version to 4.1.5 + No further changes needed. + * [22e701c] c-l-l10n-t.sh: adjust the path to the python helper + Adjust the shell script helper to use the changed path to makeversion.py. + * [90a1d9e] sticky prefs: use the new syntax in vendor.js + The syntax for locked preferences has been changed a while ago, it's + time to adjust the entry within vendor.js to disable automatic updates + for AddOns. + + -- Carsten Schoenert Thu, 12 Jul 2018 17:52:27 +0200 + +thunderbird (1:60.0~b9-2) experimental; urgency=medium + + [ intrigeri ] + * [eb7cb44] Revert "apparmor: allow access to @{HOME}/.gnupg/tofu.db" + * [4cd8baf] AppArmor: update profile from upstream + (Closes: #900840) + * [807eb99] AppArmor: update profile from upstream (at commit 104da32) + + [ Carsten Schoenert ] + * [c980546] rebuild patch queue from patch-queue branch + added patch: + porting-arm64/Bug-1453892-Only-use-SkJumper-s-arm64-half-float-optimiza.patch + + -- Carsten Schoenert Sun, 01 Jul 2018 19:15:00 +0200 + +thunderbird (1:60.0~b9-1) experimental; urgency=medium + + * [be64a3e] d/source.filter: update due upstream changes + Writing the import filter file source.filter mostly complete new from + scratch. Needed because upstream has changed the structure of the source + completely. + * [c4b9113] New upstream version 60.0~b9 + * [3dc900a] rebuild patch queue from patch-queue branch + Related to the changed source structure the patches for the patch queue + needs to be adjusted to the new folders and their structure. Thanks to + git this wasn't that painful as git did all of the job. Two new patches + are needed to add. + added patches: + fixes/Build-also-gdata-provider-as-xpi-file.patch + debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch + * [e50ae04] d/rules: remove references to folder 'mozilla' + To get the source built some targets in debian/rules are needed to be + modified. All references to the old used folder 'mozilla/' are removed + now. + * [a650500] ICU: don't build the Paragraph Layout library + Disable the build of the Paragraph Layout library, we don't need them if + we need to built the ICU stuff. Cherry-picked from current ESR 52 + packaging. + * [977b7fe] d/mozconfig.default: use the ICU package from system + The Debian packages of icu are recent enough so we don't need to build + own dedicated ICU binaries. + * [0c7ed7e] adjust the configuration of the built + Because of the modified source structure some more adjustments are needed + while going through the built targets like different paths, and built + calls of the Thunderbird source. + * [1c09011] adjust the install temporary folder + Upstream is now wrapping all internal make calls through a Python wrapper + called 'mach'. This also involves a changed behavior for installing the + Thunderbird files into the temporary folder we later use by the debhelper + sequencer. + * [bfbc9ca] d/s/lintian-overrides: update content due changed source.filter + The modified file debian/source.filter make some adjustments needed in + the lintian-overrides file for the source files related part. + * [44a4c5a] d/thunderbird.lintian-overrides: update after config changes + Like before some adjustments are needed for the lintian override rules + for the source files. + * [dd48091] d/copyright: adjust the content due folder changes + And one more file that needs to be adjusted due the changed source files. + + -- Carsten Schoenert Sun, 01 Jul 2018 16:12:33 +0200 + +thunderbird (1:60.0~b6-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [3d91710] create-lightning-l10n: adjust folder structure + To build more easy lightning-l10n packages let's modify the helper script + for building the additional tarball. Change the content structure so we + can simple copy the needed l10n stuff into the l10n packages. + * [f1d6031] New upstream version 60.0~b6 + * [6643c31] Revert the linking into /u/l/tb/d/extensions + Thunderbird in Debian won't detecting extension which are placed in + /usr/lib/thunderbird/distribution/extensions, going back to the old + folder /usr/lib/thunderbird/extensions to link extensions into + Thunderbird. + * [26549a3] lightning: turning package into Architecture all + Change the architecture for the lightning package from 'any' to 'all'. + Lightning is only build by Javascript, CSS, JSM and other text based + files and we don't need to build and install it as a architecture + dependent package. + * [86cd48f] mozconfig.default: disable webrtc build and inclusion + Let's drop the build of support for WebRTC, Thunderbird isn't able to use + this as there is no component which is depending on this. The chat + component would be a potential use case but right now it lacks any + functionality by webrtc features. + + -- Carsten Schoenert Sat, 05 May 2018 13:56:36 +0200 + +thunderbird (1:60.0~b5-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [b8625ea] New upstream version 60.0~b5 + + -- Carsten Schoenert Sat, 28 Apr 2018 19:15:07 +0200 + +thunderbird (1:60.0~b4-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [62ae939] New upstream version 60.0~b4 + + -- Carsten Schoenert Mon, 23 Apr 2018 18:19:11 +0200 + +thunderbird (1:60.0~b3-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [94f8505] debian/control: increase Standards-Version to 4.1.4 + No further changes needed.f2f206eb34a619f7a684d1216fcd918454135d41 + * [3ba10c6] rebuild patch queue from patch-queue branch + added patches: + porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch + fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch + fixes/Fix-big-endian-build-for-SKIA.patch (re-added) + Thanks Andreas Glaubitz for providing these patches! + * [dabf294] New upstream version 60.0~b3 + * [24f8a38] re-enable usage of lib{nspr4,nss3}-dev while built + The available versions of these libraries now recent enough so we can + drop the usage of the embedded code copies. + + -- Carsten Schoenert Sun, 15 Apr 2018 12:47:43 +0200 + +thunderbird (1:60.0~b2-1) experimental; urgency=medium + + [ Agustin Henze ] + * [3639717] apparmor: allow access to @{HOME}/.gnupg/tofu.db + (Closes: #894907) + + [ intrigeri ] + * [3895bba] AppArmor: fix empty black windows in Thunderbird 58+ + (Closes: #887973) + * [353ca25] AppArmor: update profile from upstream + (Closes: #882048, #882122) + + [ Carsten Schoenert ] + * [37e0bbe] New upstream version 59.0~b1 + * [d75c4be] rebuild patch queue from patch-queue branch + added patches: + fixes/Fix-build-against-libcairo2-dev-1.15.10.patch + patches/fixes/Fix-big-endian-build-for-SKIA.patch + + removed patches: + debian-hacks/Allow-usage-of-libnspr4-dev-4.16.patch + fixes/Bug-1418598-Make-cargo-linker-properly-handle-quoted-stri.patch + thunderbird/Thunderbird-fix-installdir-for-icons.patch + * [9615d6a] New upstream version 60.0~b1 + * [431006c] d/source.filter: update due upstream changes + Update the list of files we filter out, Upstream added various new files + mostly used for auto-testing we don't use. + * [2cb4635] d/s/lintian-overrides: remove entries about brace expansion + We can remove the override about brace expansion in dh sequencer files. + * [4c9f185] debian/rules: using 'rm -f' because probably non existing files + The file app.ini isn't existing in some l10n folders for lightning, + simply use '-f' for convenience. + * [ed00442] debian/rules: fix typo to grep app ID of calendar-g-p + * [4a993c5] adding additional packages to Breaks with thunderbird + The packages calendar-exchange-provider and enigmail + xul-ext-sogo-connector aren't compatible to the webextension interface + and we need to add a versioned Breaks. + * [9bd8286] adjust Breaks for enigmail + Also enigmail needs an adjusted version for Breaks. + * [24382c2] Revert "Use gcc-6 and g++-6 due broken GUI with GCC-7" + (Closes: #892404) + * [f0ac8a5] rebuild patch queue from patch-queue branch + removed patches: + debian-hacks/Allow-to-override-ICU_DATA_FILE-from-the-environment.patch + debian-hacks/remove-non-free-W3C-icon-valid.png.patch + fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch + fixes/Fix-build-against-libcairo2-dev-1.15.10.patch + + modified patches: + debian-hacks/Build-against-system-libjsoncpp.patch + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + * [6ab35ad] d/mozconfig.default: don't use nspr and nss from system + We need to switch back to the embedded source for NSS and NSPR, the + versions in unstable aren't usable. + * [055ed65] d/mozconfig.default: remove no longer alive option + The option '--enable-system-cairo' is gone with TB 60. + * [663d6f1] lightning-l10n-bn-bd: remove Bengali (Bangladesh) l10n package + * [02b21cb] lightning-l10n-pa-in: remove Punjabi (India) l10ng package + * [0cc0b5d] lightning-l10n-ta-lk: remove Tamil (Sri Lanka) l10n package + * [62f23a5] thunderbird-l10n-bn-bd: remove (Bangladesh) l10n package + * [61bfdf4] thunderbird-l10n-pa-in: remove Punjabi (India) l10n package + * [a361750] thunderbird-l10n-ta-lk: remove Tamil (Sri Lanka) l10n package + * [8ba5b0d] debian/control: add new packages for *-kk language + * [e4280ac] debian/control: add new packages for *-ms language + * [aaef9fe] adjust Vcs fields to salsa.debian.org + * [144c492, 009b145] debian/copyright: update after upstream changes + Upstream removed some files/folders, which reflects in needed adjustments + for the copyright file. + * [3623f84] d/thunderbird.lintian-overrides: add libnspr4.so and libnss3.so + We now need to ship (again) embedded libraries for NSPR and NSS. + * [0d3de65] lightning: move linking into /u/l/tb/distribution/extensions + Following upstream with the folder for the Lightning to not differ. + * [4d6cefe] New upstream version 60.0~b2 + * [e1c40a7] rebuild patch queue from patch-queue branch + removed patches: + fixes/Fix-big-endian-build-for-SKIA.patch + * [4834a1d] add entries to README and NEWS for thunderbird + Adding notes about the current situation foe the l10n packages and their + integration into the UI of Thunderbird and Lightning. + + -- Carsten Schoenert Sat, 07 Apr 2018 11:12:37 +0200 + +thunderbird (1:58.0~b3-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [d114338] d/source.filter: update due upstream changes + Update the filtering list for excluding some unwanted source files as + usual while preparing new major upstream versions. + * [91d23a9] New upstream version 58.0~b3 + * [f34e555] rebuild patch queue from patch-queue branch + added patches: + debian-hacks/Allow-usage-of-libnspr4-dev-4.16.patch + debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch + debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch + fixes/Bug-1418598-Make-cargo-linker-properly-handle-quoted-stri.patch + + modified patches: + debian-hacks/Build-against-system-libjsoncpp.patch + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + porting-m68k/Add-m68k-support-to-Thunderbird.patch + porting-sh4/Add-sh4-support-to-Thunderbird.patch + porting/Disable-optimization-on-alpha-for-the-url-classifier.patch + prefs/Don-t-auto-disable-extensions-in-system-directories.patch + prefs/Set-javascript.options.showInConsole.patch + + obsolete patches (included somehow or fixed upstream): + debian-hacks/Force-use-the-i686-rust-target.patch + porting-alpha/FTBFS-alpha-adjust-some-source-to-prevent-build-issues.patch + patches/porting-alpha/fix-FTBFS-on-alpha.patch + patches/porting-arm64/Bug-1257055-Use-jit-arm64-Architecture-arm64.h-on-non-JIT.patch + patches/porting-hppa/FTBFS-hppa-xpcshell-segfaulting-during-make-install.patch + porting-kfreebsd-hurd/FTBFS-hurd-adding-GNU-Hurd-to-the-list-of-OS-systems.patch + porting-mips/FTBFS-mips-add-missing-char-variable.patch + porting/ppc-fix-divide-page-size-in-jemalloc.patch + thunderbird-l10n/thunderbird-l10n-disable-external-extension-update.patch + * [bd45d47] debian/control: adding new Build-Depends + Since this is the first version > 52 we need now cargo, clang, rustc and + llvm development files. + * [c63a03f] d/mozconfig.default: remove no longer alive options + Some old options like --disable-gnomeui, --enable-gio, and + --with-default-mozilla-five-home are history now. + * [609dbbe] l10n lightning: modify script to work with recent version + We still need to use the shellscript create-lightning-l10n-tarball.sh + (and also *-thunderbird-l10n-*) to create the additional tarballs. + * [2f276b7] thunderbird-l10n: change tb-l10n package installation + Due the changed structure from upstream for the thunderbird l10n files + the packaging needs also to be adopted. + * [ee476f8] d/thunderbird.install: update install sequencer file + Also small adjustments are needed for the installation of the thunderbird + binary files. The old script run-mozilla.sh (which we didn't have used + within the Debian packaging) isn't shipped now, and there is now a new + folder gtk2 which includes the libmozgtk library linked against GTK2. + * [ced9d18] thunderbird-dev: remove the package and adjustments on this + The complete content that was packaged previously in thunderbird-dev + isn't created and installed now. Thus makes the old package + thunderbird-dev obsolete. + * [484a142] autopkgtests: disable tests around thunderbird-dev + Disable all autopkgtests which have used thunderbird-dev. + * [0aa2546] switch to system libraries back + We can now use the system libararies libnspr4, libnss3 and libsqlite3 + again, the version of libicu is still to old for usage within the + package build. + * [858ae82] d/control: thunderbird, remove variable ${gnome:Depends} + * [7c3a258] d/control: lightning, remove variable ${shlibs:Depends} + * [aabf0d4] debian/source/lintian-overrides: update entries + * [94b00db] debian/control: increase Standards-Version to 4.1.3 + No further changes needed. + * [245e8c2] debian/copyright: update after upstream changes + Also almost needed with new major upstream versions reflect the + changes from upstream in the copyright file. + * [72507b2] d/control: enigmail < 1.9.9 isn't working with TB > 55 + Due the new plugin interface some old plugins doesn't work with this + thunderbird version anymore, or behaving unexpected. Enigmal is one of + the this (known) plugins which needs to be at least in version 2.0a2pre + installed to work with Thunderbird. + * [6cf0133] lightning-l1on: change l10n installation + Related to [4abc7f2] the various thunderbird-l10n packages need to be + installed differently to old package installations. + * [6af7054] calendar-google-provider: tweak installation a bit + More a hack but the Mozilla plugin installation by mozilla-devscripts + isn't prepared for the new webextension logic by Mozilla. Symlinking the + c-g-p plugin for now directly from the thunderbird extension folder. + + -- Carsten Schoenert Sun, 21 Jan 2018 14:03:39 +0100 + +thunderbird (1:52.9.1-1) unstable; urgency=high + + [ intrigeri ] + * [1259eaa] AppArmor: update profile from upstream (at commit edc9487) + (Closes: #901471) + + [ Carsten Schoenert ] + * [d706f5b] debian/control: increase Standards-Version to 4.1.5 + No further changes needed. + * [f5a3eb2] New upstream version 52.9.1 + (Closes: #903160) + + -- Carsten Schoenert Tue, 10 Jul 2018 19:40:41 +0200 + +thunderbird (1:52.9.0-1) unstable; urgency=high + + [ intrigeri ] + * [c33dba2] Revert "apparmor: allow access to @{HOME}/.gnupg/tofu.db" + * [cb64397] AppArmor: update profile from upstream (Closes: #900840) + * [b5d6545] AppArmor: update profile from upstream (at commit 104da32) + + [ Carsten Schoenert ] + * [099b525] d/source.filter: add some more files to filter + There are some more files we want to filter out. + * [376e5f3] New upstream version 52.9.0 + Fixed CVE issues in upstream version 52.9 (MFSA 2018-18) + CVE-2018-12359: Buffer overflow using computed size of canvas element + CVE-2018-12360: Use-after-free when using focus() + CVE-2018-12372: S/MIME and PGP decryption oracles can be built with HTML + emails + CVE-2018-12373: S/MIME plaintext can be leaked through HTML reply/forward + CVE-2018-12362: Integer overflow in SSSE3 scaler + CVE-2018-12363: Use-after-free when appending DOM nodes + CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins + CVE-2018-12365: Compromised IPC child process can list local filenames + CVE-2018-12366: Invalid data handling during QCMS transformations + CVE-2018-12374: Using form to exfiltrate encrypted mail part by pressing + enter in form field + CVE-2018-5188: Memory safety bugs fixed in Firefox 60, Firefox ESR 60.1, + Firefox ESR 52.9, and Thunderbird 52.9 + * [83a9c9b] rebuild patch queue from patch-queue branch + As we have filtered more files out from the source we need to modify the + list of tests we won't to built while built the source too so a small + adjustment on that. + Also fixing some spelling issues which Lintian has found. + modified patches: + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + porting-alpha/fix-FTBFS-on-alpha.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + renamed patches: + Allow-to-override-ICU_DATA_FILE-from-the-environment.patch -> + Allow-one-to-override-ICU_DATA_FILE-from-the-environment.patch + fix-function-nsMsgComposeAndSend-to-to-respect-Replo.patch -> + fix-function-nsMsgComposeAndSend-to-respect-ReploToSend.patch + * [d5254e2] Removed unneded lintian override about brace expansion + + -- Carsten Schoenert Wed, 04 Jul 2018 21:44:26 +0200 + +thunderbird (1:52.8.0-1) unstable; urgency=high + + [ intrigeri ] + * [4656ebf] AppArmor: update profile from upstream + (Closes: #882048, #882122) + + [ Agustin Henze ] + * [840cbc8] apparmor: allow access to @{HOME}/.gnupg/tofu.db + (Closes: #894907) + + [ Carsten Schoenert ] + * [514e9e8] New upstream version 52.8.0 + Fixed CVE issues in upstream version 52.8 (MFSA 2018-13) + CVE-2018-5183: Backport critical security fixes in Skia + CVE-2018-5184: Full plaintext recovery in S/MIME via chosen-ciphertext + attack (aka Efail) + CVE-2018-5154: Use-after-free with SVG animations and clip paths + CVE-2018-5155: Use-after-free with SVG animations and text paths + CVE-2018-5159: Integer overflow and out-of-bounds write in Skia + CVE-2018-5161: Hang via malformed headers + CVE-2018-5162: Encrypted mail leaks plaintext through src attribute + (aka Efail) + CVE-2018-5170: Filename spoofing for external attachments + CVE-2018-5168: Lightweight themes can be installed without user + interaction + CVE-2018-5178: Buffer overflow during UTF-8 to Unicode string conversion + through legacy extension + CVE-2018-5185: Leaking plaintext through HTML forms (aka Efail) + CVE-2018-5150: Memory safety bugs fixed in Firefox 60, Firefox ESR 52.8, + and Thunderbird 52.8 + (Closes: #898631) + * [7845229] ICU: don't build the Paragraph Layout library + Disable the build of the layout library in the internal ICU build as we + don't need this and can cause build issues. + * [e0a79fc] debian/control: increase Standards-Version to 4.1.4 + No further changes needed. + + -- Carsten Schoenert Thu, 17 May 2018 21:04:15 +0200 + +thunderbird (1:52.7.0-1) unstable; urgency=medium + + * [9eb2692] New upstream version 52.7.0 + Fixed CVE issues in upstream version 52.7 (MFSA 2018-09) + CVE-2018-5127: Buffer overflow manipulating SVG animatedPathSegList + CVE-2018-5129: Out-of-bounds write with malformed IPC messages + CVE-2018-5144: Integer overflow during Unicode conversion + CVE-2018-5146: Out of bounds memory write in libvorbis + CVE-2018-5125: Memory safety bugs fixed in Firefox 59, Firefox ESR 52.7, + and Thunderbird 52.7 + CVE-2018-5145: Memory safety bugs fixed in Firefox ESR 52.7 and + Thunderbird 52.7 + * [a01cf4b] Revert "Use gcc-6 and g++-6 due broken GUI with GCC-7" + Switching now back to GCC7 as we don't have any longer issues with + broken visuals in the GUI. + (Closes: #892404) + + -- Carsten Schoenert Mon, 26 Mar 2018 17:21:40 +0200 + +thunderbird (1:52.6.0-1) unstable; urgency=high + + * [97e1cd7] New upstream version 52.6.0 + Fixed CVE issues in upstream version 52.6 (MFSA 2018-04) + CVE-2018-5095: Integer overflow in Skia library during edge builder + allocation + CVE-2018-5096: Use-after-free while editing form elements + CVE-2018-5097: Use-after-free when source document is manipulated + during XSLT + CVE-2018-5098: Use-after-free while manipulating form input elements + CVE-2018-5099: Use-after-free with widget listener + CVE-2018-5102: Use-after-free in HTML media elements + CVE-2018-5103: Use-after-free during mouse event handling + CVE-2018-5104: Use-after-free during font face manipulation + CVE-2018-5117: URL spoofing with right-to-left text aligned left-to-right + CVE-2018-5089: Memory safety bugs fixed in Firefox 58, Firefox ESR 52.6, + and Thunderbird 52.6 + * [0300242] rebuild patch queue from patch-queue branch + Added patch debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch + that fixes the build of the included ICU source against glibc 2.26. + (Closes: #887766) + * [4bf22e0] debian/control: increase Standards-Version to 4.1.3 + No further changes needed. + * [3616443] adjust Vcs fields to salsa.debian.org + The Vcs for Thunderbird packaging live now on Salsa as Alioth will be + shutdown in the future. + * [c2f3e14] lintian: ignore non multiarch install folder for thunderbird.pc + Ignore a lintian warning about unavailable pkg-config file thunderbird.pc + as the ESR versions 52.x are the last series which will have a + thunderbird-dev. The next ESR version will be 60.x which uses + webextension and makes thunderbird-dev obsolete. + + -- Carsten Schoenert Thu, 25 Jan 2018 20:21:10 +0100 + +thunderbird (1:52.5.2-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [f597157] Revert "d/thunderbird.postinst: reload AA profile on updates" + The trigger automatics for appamor already is handling the + needed reload on profile updates for the applications. + (Closes: #885158) + * [8ebdb96] debian/control: increase Standards-Version to 4.1.2 + No further changes needed. + * [81a8c00] use inverse logic on version for AA profile status check + By this change we don't enforce the disabled profile from the + previous version in some cases and can also handle possible + version strings from -security and -backports. + (Closes: #885157) + + -- Carsten Schoenert Tue, 26 Dec 2017 14:56:40 +0100 + +thunderbird (1:52.5.2-1) unstable; urgency=high + + [ intrigeri ] + * [b791221] AppArmor: support new thunderbird executable path + (Closes: #883561, #884217) + + [ Carsten Schoenert ] + * [1f46308] New upstream version 52.5.2 + Fixed CVE issues in upstream version 52.5 (MFSA 2017-30) + CVE-2017-7829: Mailsploit part 1: From address with encoded null character + is cut off in message header display + CVE-2017-7846: JavaScript Execution via RSS in mailbox:// origin + CVE-2017-7847: Local path string can be leaked from RSS feed + CVE-2017-7848: RSS Feed vulnerable to new line Injection + * [0dd21b9] d/thunderbird.postinst: reload AA profile on updates + * [8c57218] don't disable AA profile on package updates + As people want to re-enable the AA profile a update of + thunderbird doesn't have to disable this again. + (Closes: #884191) + + -- Carsten Schoenert Sun, 24 Dec 2017 11:30:09 +0100 + +thunderbird (1:52.5.0-1) unstable; urgency=high + + [ intrigeri ] + * [48e6b65] AppArmor: fix the Crash Reporter and avoid noisy denial logs + (Closes: #880953) + * [ad8b3b5] AppArmor: fix compatibility with NVIDIA hardware + (Closes: #880532) + * [d8ff6b6] Disable the AppArmor profile by default + Due the various side effects by the enabled AppArmor profile in + Thunderbird it's currently better for a user experience we + disabling the AppArmor profile for to not get people get mad with + to many broken things. + Users can always enable the profile by themselves again. + (Closes: #882672) + * [e50eac5] README.Debian: document how to opt-in for AppArmor confinement + * [860d325] README.Debian: document how one can debug the AppArmor profile + + [ Guido Günther ] + * [50a8f60] Drop myself from maintainers + Thank you Guido for always helping out if we had some questions! + + [ Carsten Schoenert ] + * [b64509b] New upstream version 52.5.0 + Fixed CVE issues in upstream version 52.5 (MFSA 2017-26) + CVE-2017-7828: Use-after-free of PressShell while restyling layout + CVE-2017-7830: Cross-origin URL information leak through Resource Timing API + CVE-2017-7826: Memory safety bugs fixed in Firefox 57, Firefox ESR 52.5, + and Thunderbird 52.5 + * [3166018] thunderbird.links: let thunderbird pointing to thunderbird-bin + (Closes: #856492) + * [6fff70c] [buster] tb-wrapper: searching the correct dbgsym package + * [4763ca6] adding a NEWS file for thunderbird package + Giving a note about the now disabled AppArmor profile. + * [0b9d656] disabling crashreporter for now + Also don't build and ship the Crashreporter any more, it's useless + until we can collect all symbols correctly. + * [a285647] move AppArmor specific things into own README file + Put all AppArmor related information into one dedicated file. + * [5d56439] d/thunderbird.js: prepare a line for extra X-Debbugs-Cc + A really old bug report ... building a compromise and put the + requested extra header config into the configuration file but keep + it deactivated as default. + (Closes: #379304) + + -- Carsten Schoenert Sun, 03 Dec 2017 19:58:57 +0100 + +thunderbird (1:52.4.0-2~exp1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [a3e73e9] disable usage of libgnomeui parts + The libgnomeui stuff (only relevant for GTK+2) is deprecated + for a long time and will be removed in buster, and we don't need + this at all. + See https://lists.debian.org/debian-devel/2017/10/msg00299.html + * [9efc5c9] debian/watch: switch to https + * [bd5a635] rebuild patch queue from patch-queue branch + Fixup for [da3c5cc], add ppc64 to the list of BE architectures. + Thanks Adrian Glaubitz for pointing the issue. (Closes: #879270) + * [42f5ab5] apparmor: update profile from upstream (Closes: #876333, #855346) + + [ intrigeri ] + * [d7febc8, b026d28] AppArmor: update profile from upstream + (Closes: #880425, #877324) + * [377e7b5] README.Debian: fixing small typo + * [3b0a63a] AppArmor: fix importing public OpenPGP keys from file + (Closes: #880715) + + [ Carsten Schoenert ] + * [241690e] d/control: s/Icedove/Thunderbird in desc's for lightning-l10n-* + The lightning-l10n package were still using the name 'Icdeove' + instead of 'Thunderbird'. + * [f17f735] debian/control: moving transitional packages at bottom + * [91f9897] autopkg: adjust icedove to thunderbird depends + Now move over to depend in favor of thunderbird for some of + the autopkg tests. + * [8ae2ad7] autopkg: adjust icedove-dev to thunderbird-dev depends + Doing the same as before for thunderbird-dev as the native + replacement for icedove-dev. + * [fa0134c] bump debhelper >= 10.2.5 + * [8752789] debian/rules: try to build extensions reproducible + The two extensions (lightning and calendar-google-provider) + don't build reproducible right now. Trying to fix this by using + the timestamp from the changelog entry for the files. May not + work correctly and we need to tune more. + * [1496368] d/thunderbird.install: also install the fonts folder + Recent versions of Thunderbird needing the font EmojiOne which + isn't provided by any other package. + (Closes: #881299) + + The following changes are take effect in removing all transitional packages + related to the old icedove packaging only for buster. We still need all the + transitional packages in wheezy, jessie and stretch! + * [54c8a9b] [buster] remove transitional iceowl-l10n-* packages + * [c338630] [buster] remove Replace, Breaks and Provides for iceowl-l10n-* + * [4311683] [buster] remove transitional icedove-l10n-* packages + * [f6e3a01] [buster] remove Replace, Breaks and Provides for icedove-l10n-* + * [a9117e4] [buster] remove transitional iceowl-extension package + * [5aed012] [buster] remove Replace, Breaks and Provides for iceowl-extension + * [27fc04b] [buster] remove transitional icedove-dbg package + * [53b4825] [buster] remove transitional icedove-dev package + * [e2d808f] [buster] remove Replace, Breaks and Provides for icedove-dev + * [97edfbe] [buster] remove transitional icedove package + * [3748054] [buster] remove Replace and Breaks for icedove + * [611a704] [buster] move thunderbird-dbg into *-dbgsym package + + -- Carsten Schoenert Sun, 12 Nov 2017 16:01:07 +0100 + +thunderbird (1:52.4.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [da3c5cc] Simplify endianness selection for ICU + Since we need to build ICU on the various Debian releases we + need to ensure the architecture detection isn't to strict. + Thanks Guido for helping out here! + + [ Carsten Schoenert ] + * [47748ca] debian/control: be more relaxed on Breaks for enigmail + * [6a54666] thunderbird-wrapper: fix small typo in help output + A small typo was happen in the example call with the JS console. + * [6d5266e] README.Debian: update info around tls fallback-limit + The default behavior on the TLS fallback has changed some + versions ago, document this accordingly. + * [24ad883] debian/control: change maintainer + Thanks Christoph for the work over the past years! + * [c78200e] debian/control: move src pkg name to thunderbird + By this version we move the source package name also back to + thunderbird. This follows the changes that are already made to + the binary package names and we can call the source package now + also again thunderbird. + (Closes: #857075) + * [c26133d] debian/gbp.conf: rename components to real used names + Due the changes of the source package the names for the + sub-folders within the additional tarballs can also be changed + to be closer on the real upstream used names. + * [a5ce4f7] New upstream version 52.4.0 + (Closes: #878845, #878870) + Fixed CVE issues in upstream version 52.4 (MFSA 2017-23) + CVE-2017-7793: Use-after-free with Fetch API + CVE-2017-7818: Use-after-free during ARIA array manipulation + CVE-2017-7819: Use-after-free while resizing images in design mode + CVE-2017-7824: Buffer overflow when drawing and validating elements with + ANGLE + CVE-2017-7805: Use-after-free in TLS 1.2 generating handshake hashes + CVE-2017-7814: Blob and data URLs bypass phishing and malware protection + warnings + CVE-2017-7825: OS X fonts render some Tibetan and Arabic unicode characters + as spaces + CVE-2017-7823: CSP sandbox directive did not create a unique origin + CVE-2017-7810: Memory safety bugs fixed in Firefox 56 and Firefox ESR 52.4, + and Thunderbird 52.4 + * [104b4e5] rebuild patch queue from patch-queue branch + * [d63662a] lintian: move oldlibs/extra -> oldlibs/optional + By moving all transitional package to oldlibs/optional we can + help deborphan to detect better not needed packages. + * [fb56001] d/rules: reflect changes from renamed component tarballs + The additional tarballs are stored in folders which reflect + the upstream names of those components. This also needs to be + respected for the build instructions of the package. + * [61288fb] debian/control: change Vcs* fields due the src name change + Addressing the changed source package name in the Git Vcs urls. + * [ef95ab5] debian/control: increase Standards-Version to 4.1.1 + No further changes needed. + * [45e8fe2] apparmor: update profile from upstream + Thanks to Simon Deziel and intrigeri we can simply use the + apparmor profile changes done for the Ubuntu releases. + * [6b1649c] lintian: adding a override for thunderbird-l10n-all + * [ceab93f] debian/README.source: reflect src package name change + + -- Carsten Schoenert Tue, 17 Oct 2017 18:20:29 +0200 + +icedove (1:52.3.0-4) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3ddf57b] rebuild patch queue from patch-queue branch + * [3bd845d] debian/control: increase Standards-Version to 4.1.0 + + -- Carsten Schoenert Tue, 29 Aug 2017 16:17:24 +0200 + +icedove (1:52.3.0-3) unstable; urgency=medium + + [ Carsten Schoenert ] + * [c08f005] rebuild patch queue from patch-queue branch + * [f658cab] debian/rules: enable verbose build for ICU + + -- Carsten Schoenert Mon, 28 Aug 2017 19:44:07 +0200 + +icedove (1:52.3.0-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [d544a01] debian/rules: correct icu build sequence + + -- Carsten Schoenert Tue, 22 Aug 2017 18:57:36 +0200 + +icedove (1:52.3.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [8e852be] New upstream version 52.3.0 + Fixed CVE issues in upstream version 52.3 (MFSA 2017-20) + CVE-2017-7800: Use-after-free in WebSockets during disconnection + CVE-2017-7801: Use-after-free with marquee during window resizing + CVE-2017-7809: Use-after-free while deleting attached editor DOM node + CVE-2017-7784: Use-after-free with image observers + CVE-2017-7802: Use-after-free resizing image elements + CVE-2017-7785: Buffer overflow manipulating ARIA attributes in DOM + CVE-2017-7786: Buffer overflow while painting non-displayable SVG + CVE-2017-7753: Out-of-bounds read with cached style data and + pseudo-elements + CVE-2017-7787: Same-origin policy bypass with iframes through page reloads + CVE-2017-7807: Domain hijacking through AppCache fallback + CVE-2017-7792: Buffer overflow viewing certificates with an extremely + long OID + CVE-2017-7804: Memory protection bypass through WindowsDllDetourPatcher + CVE-2017-7791: Spoofing following page navigation with data: protocol and + modal alerts + CVE-2017-7782: WindowsDllDetourPatcher allocates memory without DEP + protections + CVE-2017-7803: CSP containing 'sandbox' improperly applied + CVE-2017-7779: Memory safety bugs fixed in Firefox 55, Firefox ESR 52.3, + and Thunderbird 52.3 + * [0b7243b] debian/rules: build icudt5*.dat on our own if needed + If we need to use the internal sources of ICU (triggered by + using --with-system-icu) we need to build the platform depended file + icudt*[b,l].dat before we can call the configure run. + This is needed as Mozilla only ships a precompiled little endian version + of the file icudt*.dat and all platforms with big endianness are failing + later due issues related to the wrong endianness. + * [1964469] debian/mozconfig.default: enable i18n on big endian + * [6b58ac5] debian/control: increase Standards-Version to 4.0.1 + * [e59cf81] rebuild patch queue from patch-queue branch + removed patche(s) (applied upstream): + - fixes/Bug-1308908-Compare-the-whole-accessible-name-when-checki.patch + updated/refreshed patches (no changes): + - porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + + [ Simon Deziel ] + * [a574010] apparmor/usr.bin.thunderbird: small update to avoid noise + + -- Carsten Schoenert Sat, 19 Aug 2017 18:27:19 +0200 + +icedove (1:52.2.1-5) unstable; urgency=high + + [ Carsten Schoenert ] + * [133a574] Use gcc-6 and g++-6 due broken GUI with GCC-7 + The usage of the GCC-7 suite introduces a broken GUI currently that make + using thunderbird mostly impossible. + (Closes: #871629) + * [3ebacd1] d/rules: use DEB_* variables for entries from changelog + By using variables that are prepared by dpkg we don't need to manually + search for dates and versions. etc. + * [52c2b83] d/copyright: MPL-1.1 and MPL-2.0 now provided by common-licenses + Since policy 4.0.0 the two Mozilla related licenses are included and don't + need to be added extra. + * [3f37967] adjust X-Debian-Homepage to existing Thunderbird page + * [41b5c03] debian/control: increase Standards-Version to 4.0.0 + * [e3c3994] mozconfig.default: use proper disabled options + * [2d4b846] debian/control: increase Breaks for enigmail version + (Closes: #869789) + + [ John Paul Adrian Glaubitz ] + * [4879401] sh4: disable option --disable-pie (Closes: #867553) + + [ Carsten Schoenert ] + * [2646f3f] autpkgtests: disable the idlTest.sh test case + + -- Carsten Schoenert Fri, 11 Aug 2017 22:02:47 -0400 + +icedove (1:52.2.1-4) unstable; urgency=medium + + [ Guido Günther ] + * [04de899] Don't use different profile folder for jessie and wheezy + + [ Carsten Schoenert ] + * [692d3ce] rebuild patch queue from patch-queue branch (Closes: #867013) + added patch (provided by Adrian): + - porting-alpha/FTBFS-alpha-adjust-some-source-to-prevent-build-issues.patch + removed patch: + - porting-hurd/FTBFS-hurd-adding-GNU-to-the-configure-platform-detection.patch + (wrong approach, the Python wrapper around configure isn't yet smart enough) + + [ John Paul Adrian Glaubitz ] + * [5153ce2] mips: final fixups to prevent FTBFS + + -- Carsten Schoenert Thu, 06 Jul 2017 16:53:30 +0200 + +icedove (1:52.2.1-3) unstable; urgency=medium + + [ John Paul Adrian Glaubitz ] + * [99b323a] d/mozconfig.default: fixups for --without-intl-api + + -- Carsten Schoenert Sat, 01 Jul 2017 10:18:05 +0200 + +icedove (1:52.2.1-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [e8ce299] disabling ICU support on some big endian systems + This hack should enable at least successful building of all RC platforms + and needs to be solved in a not such agressive way without loosing ICU + support on the problematic platforms. + Thanks John Paul Adrian Glaubitz for catching the root of the issue. + * [a66e812] rebuild patch queue from patch-queue branch + Adding a small needed fix for getting mips* out od FTBFS. Also GNU/Hurd + should pass the configure script now. + + -- Carsten Schoenert Fri, 30 Jun 2017 19:38:28 +0200 + +icedove (1:52.2.1-1) unstable; urgency=medium + + [ Guido Günther ] + * [4e87d6b] d/rules: Make sure DIST is not passed on to configure + + [ Carsten Schoenert ] + * [35b84ef] rebuild patch queue from patch-queue branch + added patches: + - porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch + - porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch + (Closes: #864974) + * [c818874] New upstream version 52.2.1 + (Closes: #861840) + * [8c776c9] Icedove2Thunderbird: add opt out for dialogue pop-up + (Closes: #860381) + + -- Carsten Schoenert Wed, 28 Jun 2017 20:01:44 +0200 + +icedove (1:52.2.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [9ebc11d] mozconfig.default: remove configure option + '--disable-methodjit' on armel + This options isn't alive any more and was forgotten to removed on the + previous upload. + [ Simon Deziel ] + * [d8e5d42] usr.bin.thunderbird: merge gpg(1) and gpg2 subprofiles + (Closes: #859179) + * [f18884e] usr.bin.thunderbird: allow accessing gpgconf in gpg subprofile + * [e73afbb] usr.bin.thunderbird: allow accessing any gpg2keys providers + + [ Carsten Schoenert ] + * [066ddb9] mozconfig.default: switch back to internal libjpeg + Going back and using the libjpeg library that's shipped by Mozilla, the + system library probably provoking broken builds on various platforms. + As we prepare the uploads for (old-)stable-security we need to use the + internal libjpeg library at all. + * [ff92bfa] rebuild patch queue from patch-queue branch + modified patches: + - porting-m68k/Add-m68k-support-to-Thunderbird.patch + - porting-sh4/Add-sh4-support-to-Thunderbird.patch + (Closes: #859271, #859508) + * [0a89f76] New upstream version 52.2.0 + Fixed CVE issues in upstream version 52.2 (MFSA 2017-17) + CVE-2017-5472: Use-after-free using destroyed node when regenerating trees + CVE-2017-7749: Use-after-free during docshell reloading + CVE-2017-7750: Use-after-free with track elements + CVE-2017-7751: Use-after-free with content viewer listeners + CVE-2017-7752: Use-after-free with IME input + CVE-2017-7754: Out-of-bounds read in WebGL with ImageInfo object + CVE-2017-7756: Use-after-free and use-after-scope logging XHR header + errors + CVE-2017-7757: Use-after-free in IndexedDB + CVE-2017-7778: Vulnerabilities in the Graphite 2 library + CVE-2017-7758: Out-of-bounds read in Opus encoder + CVE-2017-7764: Domain spoofing with combination of Canadian Syllabics and + other unicode blocks + CVE-2017-5470: Memory safety bugs fixed in Firefox 54 and Firefox ESR 52.2, + and Thunderbird 52 + * [e03380e] rebuild patch queue from patch-queue branch + modified patch: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + + -- Carsten Schoenert Fri, 16 Jun 2017 20:37:06 +0200 + +icedove (1:52.1.1-1) experimental; urgency=medium + + [ Guido Günther ] + * [db8d0db] Tighten meta package dependencies + Be more strict on depends and add a version to all related + Thunderbird specific packages. + * [defb689] Copy-edit thunderbird-wrapper-helper.sh + * [54b35d4] Allow one to override the location of the wrapper-helper + Make $TB_HELPER more flexible and give the variable a default value, so a + user can override it with it's own. + * [a187364] dh-exec: avoid multiple spaces around filenames + * [a85bc7a] thunderbird-wrapper: robustness when sourcing helper + * [eee56ab] Drop replaces on packages no longer in any release + + [ Carsten Schoenert ] + * [1d85980] rebuild patch queue from patch-queue branch + added patches: + - porting-mk68/Add-m68k-support-to-Thunderbird.patch + - porting-sparc64/Add-sparc64-support-to-Thunderbird.patch + (Closes: #859151, #859271) + * [2717849] tb-wrapper: call thunderbird starting with exec + (Closes: #858100) + * [8afa31b] d/gbp.conf: adjust upstream branch to new ESR version + * [43d2e70] New upstream version 52.1.1 + Fixed CVE issues in upstream version 52.1 (MFSA 2017-09) + CVE-2017-5413: Segmentation fault during bidirectional operations + CVE-2017-5414: File picker can choose incorrect default directory + CVE-2017-5416: Null dereference crash in HttpChannel + CVE-2017-5426: Gecko Media Plugin sandbox is not started if seccomp-bpf + filter is running + CVE-2017-5418: Out of bounds read when parsing HTTP digest authorization + responses + CVE-2017-5419: Repeated authentication prompts lead to DOS attack + CVE-2017-5405: FTP response codes can cause use of uninitialized values + for ports + CVE-2017-5421: Print preview spoofing + CVE-2017-5422: DOS attack by using view-source: protocol repeatedly in one + hyperlink + CVE-2017-5399: Memory safety bugs fixed in Thunderbird 52 + Fixed CVE issues in upstream version 52.1 (MFSA 2017-13) + CVE-2017-5433: Use-after-free in SMIL animation functions + CVE-2017-5435: Use-after-free during transaction processing in the editor + CVE-2017-5436: Out-of-bounds write with malicious font in Graphite 2 + CVE-2017-5461: Out-of-bounds write in Base64 encoding in NSS + CVE-2017-5459: Buffer overflow in WebGL + CVE-2017-5466: Origin confusion when reloading isolated data:text/html URLs + CVE-2017-5434: Use-after-free during focus handling + CVE-2017-5432: Use-after-free in text input selection + CVE-2017-5460: Use-after-free in frame selection + CVE-2017-5438: Use-after-free in nsAutoPtr during XSLT processing + CVE-2017-5439: Use-after-free in nsTArray Length() during XSLT processing + CVE-2017-5440: Use-after-free in txExecutionState destructor during XSLT + processing + CVE-2017-5441: Use-after-free with selection during scroll events + CVE-2017-5442: Use-after-free during style changes + CVE-2017-5464: Memory corruption with accessibility and DOM manipulation + CVE-2017-5443: Out-of-bounds write during BinHex decoding + CVE-2017-5444: Buffer overflow while parsing application/http-index-format + contents + CVE-2017-5446: Out-of-bounds read when HTTP/2 DATA frames are sent with + incorrect data + CVE-2017-5447: Out-of-bounds read during glyph processing + CVE-2017-5465: Out-of-bounds read in ConvolvePixel + CVE-2016-10196: Vulnerabilities in Libevent library + CVE-2017-5454: Sandbox escape allowing file system read access through + file picker + CVE-2017-5469: Potential Buffer overflow in flex-generated code + CVE-2017-5445: Uninitialized values used while parsing + application/http-index-format content + CVE-2017-5449: Crash during bidirectional unicode manipulation with + animation + CVE-2017-5451: Addressbar spoofing with onblur event + CVE-2017-5462: DRBG flaw in NSS + CVE-2017-5467: Memory corruption when drawing Skia content + CVE-2017-5430: Memory safety bugs fixed in Firefox 53, Firefox ESR 52.1, + Thunderbird 52.1 + CVE-2017-5429: Memory safety bugs fixed in Firefox 53, Firefox ESR 45.9, + Firefox ESR 52.1, and Thunderbird 52.1 + (Closes: #855344, #495372, #861480, #682208, #698244, #859909, #857593, + #837771) + * [de561ef] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/Allow-to-override-ICU_DATA_FILE-from-the-environment.patch + - debian-hacks/Build-against-system-libjsoncpp.patch + - debian-hacks/Don-t-build-testing-suites-and-stuff.patch + - debian-hacks/Force-use-the-i686-rust-target.patch + - fixes/Bug-1308908-Compare-the-whole-accessible-name-when-checki.patch + (Closes: #826325) + - porting-sh4/Add-sh4-support-to-Thunderbird.patch + (Closes: #859508) + removed patches (obsoleted by upstream changes): + - debian-hacks/Don-t-build-example-component.patch + - debian-hacks/fix-identification-of-ObjdirMismatchException.patch + - fixes/Bug-1245076-Don-t-include-mozalloc.h-from-the-cstdlib-wra.patch + - fixes/Bug-1273020-Add-missing-null-checks-in-ApplicationAccessi.patch + - fixes/Bug-1277295-Remove-obsolete-reference-to-storage-service-.patch + - fixes/Bug-1340724-fix-SMTP-server-name-output-in-SMTP-logging.-.patch + - fixes/Bug-497488-Implement-verify-mode-in-the-subscribe-dialog-.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit-1.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit.patch + - porting-arm64/Bug-1091515-Don-t-set-64KB-page-size-on-aarch64.-r-glandi.patch + - porting-kfreebsd-hurd/CrossProcessMutex.h-fix-build-on-kfreebsd-and-GNU-hurd.patch + - porting-kfreebsd-hurd/FTBFS-hurd-adding-the-HURD-platform-to-the-configure.patch + - porting-kfreebsd-hurd/correcting-file-inclusion-for-kfreebsd-and-hurd.patch + - porting-mips/Fix-build-error-in-MIPS-SIMD-when-compiling-with-mfp.patch + - porting-mips/libyuv_disable-mips-assembly-for-MIPS64.patch + - porting-powerpcspe/FTBFS-powerpcspe-disable-AltiVec-instructions.patch + - porting-sparc64/Add-sparc64-support-to-Thunderbird.patch + (unclear state, will be added later again) + - porting/Add-xptcall-support-for-SH4-processors.patch + (Closes: #859362) + - debian-hacks/Move-profile.patch + modified or adjusted patches: + - debian-hacks/changing-the-default-search-engine.patch + - debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch + - icedove-l10n/disable-extension-update-extension-is-managed-by-apt.patch + --> icedove-l10n/thunderbird-l10n-disable-external-extension-update.patch + (renamed to and modified due new languages) + - icedove/fix-installdir.patch + --> debian-hacks/Thunderbird-fix-installdir-for-icons.patch + * [684ad58] d/source.filter: update due upstream changes + * [d005649] debian/control: modify various B-D + * [7a8a98d] debian/rules: add some extra C*FLAGS + Adding '-fno-lifetime-dse' to not enable dead store elimination of + objects within their lifetime, some parts of the source is relying + on the persistent values of such objects. + Some other distributions as Ubuntu, Fedora and Arch e.g. use this flag too + (at least with ESR52) to prevent possible segfaults. + * [56f8f4b] debian/rules: adding hack to preserve correct config.status + * [fb500a6] mozconfig.default: remove no longer existing options + * [c9a3e60] mozconfig.default: some minor adjustments to configure options + * [f584857] mozconfig.default: enable GTK3 theme explicit + (Closes: #857593) + * [3cbe1fb] debian/control: add packages for *-dsb language + * [8317735] debian/control: add packages for *-hsb language + * [39d90c1] debian/control: add packages for *-kab language + * [82b4f50] debian/control: add missing packages for *-ast language + * [0edde96] debian/rules: include also l10n folder with 3 characters + * [47f17a4] lintian-overrides: modify the list for the js files to ignore + * [8872d34] debian/copyright: update after upstream changes + * [6755547] mozconfig.default: use some internal libraries + Use libicu-dev, libnspr4-dev, libnss3-dev, libsqlite3-dev from + shipped source as Stretch versions not recent enough. + * [5b04b32] thunderbird.install: pick up icu*.dat if around + * [edf24d7] debian/control: mark thunderbird-dbg as Multi-Arch: same + * [5d5392b] apparmor/usr.bin.thunderbird: update for version 52 + (cherry-picked from upstream) + (Closes: #859179) + * [f49ad79] apparmor/usr.bin.thunderbird: grant access to commonly used + locations (cherry-picked from upstream) + * [510fd6f] debian/rules: install lightning-l10n files into correct place + * [d70ade4] lightning-l10n: adjust min/max version for ESR 52 cycle + With the new ESR version tweaking the extension version of l10n packages + for lightning > 52.0 and < 52.*. + * [c0dd18f] debian/rules: install icudt5*.dat file more flexible + * [b5136f7] autopkg: improve the output of idlTest.sh + * [7ac04f6] autopkg: add extra test icudatfileTest.sh + + [ Christoph Goehre ] + * [13f5178] lintian-overrides: we build against internal nspr and nss + * [56bbf23] rebuild patch queue from patch-queue branch + added patches: + - porting-sparc64/Add-sparc64-support-to-Thunderbird.patch + (Closes: #859151) + modified patches: + - porting-mk68/Add-m68k-support-to-Thunderbird.patch + -> porting-m68k/Add-m68k-support-to-Thunderbird.patch (renamed) + * [6a7ef60] tests/idlTest.sh: remove duplicated 'done' output + * [42bf8e1] debian/rules: remove duplicate .so files in thunderbird-dev + * [5dc08bc] tests/soSymlinkTest.sh: check for symlinked .so files + + -- Carsten Schoenert Sat, 03 Jun 2017 19:54:43 +0200 + +icedove (1:45.8.0-3) unstable; urgency=medium + + [ Carsten Schoenert ] + * [d923505] AppArmor: be more flexible on profile folders + (Closes: #858735, #858737) + * [1e04099] tb-wrapper: use readlink also on ${ID_PROFILE_FOLDER} + (Closes: #858771) + * [9f6b771] tb-wrapper: correct check for -dbg package (Closes: #858804) + * [8b5271a] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1273020-Add-missing-null-checks-in-ApplicationAccessi.patch + + -- Christoph Goehre Wed, 29 Mar 2017 19:28:32 -0400 + +icedove (1:45.8.0-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [c2a1d77] tb-helper: pass arguments correctly through tb call + (Closes: #855334) + * [5c49348] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1340724-fix-SMTP-server-name-output-in-SMTP-logging.patch + (Closes: #855470) + * [9d420c0] Revert "register MIME type application/octet-stream for + Thunderbird" (Closes: #857755) + * [c9960e5] tb-helper: pass arguments by using a array to TB call + + -- Christoph Goehre Tue, 14 Mar 2017 20:37:48 -0400 + +icedove (1:45.8.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3388899] New upstream version 45.8.0 + * [24d25e9] tb-helper*: fix up that silly comments behind the if statement + (Closes: #857029, #857032, #857098, #857112) + * [788b7fa] bash-completion: adding a completion script for /u/b/thunderbird + * [9ac9d07] rebuild patch queue from patch-queue branch + added patches: + - p-arm64/Bug-1091515-Don-t-set-64KB-page-size-on-aarch64.-r-glandi.patch + - p-arm64/Bug-1257055-Use-jit-arm64-Architecture-arm64.h-on-non-JIT.patch + * [ad0860b] copyright: small updates reflecting upstream changes + + [ Christoph Goehre ] + * [69577cf] lintian: replace hardlink in thunderbird-dev with symbolic link + + -- Christoph Goehre Thu, 09 Mar 2017 20:24:49 -0500 + +icedove (1:45.7.1-2) unstable; urgency=medium + + [ Christoph Goehre ] + * [5e2c618] crashreporter: build only on amd64, armel, armhf and i386 + * [36a922f] Apparmor: replace '·' with spaces (Closes: #855343) + * [bbbc917] rebuild patch queue from patch-queue branch + added patches: + - p-hppa/FTBFS-hppa-xpcshell-segfaulting-during-make-install.patch + * [8b5d601] icedove|thunderbird.desktop: update danish (da) translation + + [ Carsten Schoenert ] + * [f8debbd] debian/control: separate transitional mark by extra line + (Closes: #855806) + * [583c798] {tb,id}.maintscript: modify start-version (Closes: #854587) + * [94e557c] thunderbird: adding x11-utils to Depends (Closes: #854488) + * [dc878e7] thunderbird-wrapper.sh: fix command line transfer to TB + (Closes: #855334) + * [9734349] thunderbird helper: split helper function into extra file + (Closes: #855286) + * [3089a97] tb-helper*: wrapping X11 dialog calls + * [e0331e1] tb-helper*: rework option parsing for wrapper script + (Closes: #855872) + * [31d9899] thunderbird.postinst: try to remove empty profile folder + (Closes: #855228) + * [c9e5b70] tb-wrapper*: complete rework and moving over for symlinking + (Closes: #855265, #855391, #855501, #856490) + * [9ef920f] README.Debian: adopt content to current wrapper script behavior + * [4cf88e5] icedove|thunderbird.desktop: adopt binary call + * [101e0ad] tb-helper*: call subfunctions not within the case loop + * [c061107] register MIME type application/octet-stream for Thunderbird + + -- Christoph Goehre Mon, 06 Mar 2017 20:39:23 -0500 + +icedove (1:45.7.1-1) unstable; urgency=medium + + * Bye-bye Icedove (Closes: #749965, #776359, #816679, #363811) + + [ Carsten Schoenert ] + * [90c0d6f] New upstream version 45.7.1 + * [a6d21de] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-497488-Implement-verify-mode-in-the-subscribe-dialog-.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit-1.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit.patch + (Closes: #837177) + removed patches (fixed upstream): + - debian-hacks/icu.m4-adding-extra-bracket-to-not-confuse-grep.patch + * [8572e34] lintian: adding a semi automated lintian-override + * [aa2bda2] crashreporter: enable the reporter for thunderbird + * [b96ae57] move icedove.desktop into package icedove + (Closes: #850865, #851829) + * [304921f] debian/rules: set SHELL explicit to /bin/bash (Closes: #852867) + * [072b899] thunderbird: adding extra check while migration + * [284912d] debian/README.Debian: update after recent changes + * [6dc7e32] icedove-l10n-bn-bd: fix typo in Depends field (Closes: #854135) + * [c5d4bf5] {tb,id}.maintscript: modify start-version (Closes: #854587) + * [f3d64ae] thunderbird-wrapper.sh: adding extra information window + (Closes: #854488) + * [6b432c7] README.Debian: hint about issue in global configuration + + [ Douglas Bagnall ] + * [e2c8a23] Apparmor: allowing exo-open-ixr launcher (Closes: #853929) + + [ Christoph Goehre ] + * [ef36e0b] thunderbird-wrapper.sh: fix typos + * [f98d5d1] thunderbird-wrapper.sh: add small changes from Guido and Carsten + * [7dd6841] README.Debian: fix/correct spelling + * [e038694] debian/control: remove depends-on-essential-package 'sed' + + [ Jens Reyer ] + * [ea58e17] thunderbird-wrapper.sh: add extra function for migration + (Closes: #849592) + + -- Christoph Goehre Tue, 14 Feb 2017 18:46:23 -0500 + +icedove (1:45.6.0-3) experimental; urgency=medium + + [ Carsten Schoenert ] + * [78b3296] rebuild patch queue from patch-queue branch + added patch: + - debian-hacks/icu.m4-adding-extra-bracket-to-not-confuse-grep.patch + * [a272f85] thunderbird-wrapper.sh: also migrate mimeapps.list + (Closes: #850864) + * [3d4e303] icedove.desktop: don't use categories and mimetypes + (Closes: #850866) + * [db15d43] icedove: link icedove to thunderbird + * [59a9e05] debian/control: change Replaces and Breaks versions + + [ Christoph Goehre ] + * [55cce4a] thunderbird-wrapper.sh: remove 'set -e' + + -- Christoph Goehre Tue, 17 Jan 2017 18:26:06 -0500 + +icedove (1:45.6.0-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [26f8f2d] New upstream version 45.6.0 + * [15b7797] iceowl-l10n-*: rearrange Recommends field for various packages + (Closes: #824727, #824750, #824763, #824764, #824768, #824780) + * [3f75b56] debian/vendor.js: adjust to new version related wiki site + * [6bd7f89] d/c-id-l10n: adjusting download URL for stable versions + * [f15d1a2] icedove-l10n-all: change Section into metapackages + (Closes: #824785) + * [25c3ba1] debian/README.source: info about import of multitarballs + * [3ebcf59] debian/control: adding Recommends to icedove-l10n-uk + (Closes: #825806) + * [3e57d5e] debian/control: Icedove, adding dependency on libatk-adaptor + * [e19c59d] debian/control: rework Recommends for icedove-l10n-* + * [4741d80] debian/control: small fixup Recommends on iceowl-l10n-* + * [f9f5193] debian/control: sort iceowl-l10n-* alphabetical + * [5220187] de-branding: move iceowl* back to lightning* + * [6e28ce5] de-branding: remove Icedove naming from icedove-l10n* + * [3dc3b4b] de-branding: remove Icedove branding in the main binary + * [8b715cf] de-branding: remove hard name branding in addon managger + * [9f609fa] de-branding: adopting dh files for icedove package + * [caba322] de-branding: adopting dh files for icedove-dev package + * [6538f66] de-branding: change debian/rules to reflect appname change + * [871588d] de-branding: adopting dh files for iceowl-extension package + * [a0b20e7] debian/tests/*: adopt change of the binary icedove + * [29025cc] de-branding: adjust icedove-l10n installation folder + * [2b8dd99] de-branding: adjust iceowl-l10n installation folder + * [1f3043c] de-branding: remove the Debian visual branding + * [272e420] de-branding: removing icedove branding files and folder + * [093bc58] de-branding: revitalize *.desktop file with Thunderbird + * [4a35d9d] de-branding: move iceowl-l10n-* into lightning-l10n-* + * [68d8d79] de-branding: adding transitional iceowl-l10n packages + * [4b2febd] de-branding: adding 'Breaks', 'Replaces', 'Provides' to + lightning-l10n-* + * [9cdb427] de-branding: rework d/r to reflect changes for lightning-l10n + * [ec3b427] de-branding: move icedove-l10n-* into thunderbird-l10n-* + * [387bfa2] de-branding: adding transitional icedove-l10n packages + * [f3cfecb] de-branding: adding 'Breaks', 'Replaces', 'Provides' to + thunderbird-l10n-* + * [03b222e] de-branding: rework d/r to reflect changes for thunderbird-l10n + * [0c9a6ab] de-branding: (re)adding a wrapper script for TB starting + * [f9c8aef] de-branding: move icedove-dev to thunderbird-dev + * [a4313e6] de-branding: adding transitional icedove-dev package + * [0508866] de-branding: rework d/r to reflect changes for thunderbird-dev + * [048b29f] de-branding: move icedove-dbg to thunderbird-dbg + * [da01077] de-branding: adding transitional icedove-dbg package + * [a371079] de-branding: rework d/r to reflect changes for thunderbird-dbg + * [b34b8f8] de-branding: move iceowl-extension to lightning + * [fa8f9b3] de-branding: adding transitional iceowl-extension package + * [848f178] de-branding: rework d/r to reflect changes for lightning + * [a708c35] de-branding: move icedove to thunderbird + * [cccef90] de-branding: moving icedove dh files into thunderbird + * [8c2b27d] de-branding: rework icedove.1 into thunderbird.1 + * [19406fe] de-branding: transition of mozconfig.* + * [88ed684] de-branding: rework d/r to reflect changes for thunderbird + * [c8011d3] de-branding: adding transitional icedove package + * [5e399aa] de-branding: adjusting package calendar-google-provider + * [a03329c] debian/tests/help.sh: use absolute path for binary call + * [10adb34] move old icedove graphic stuff into own folder + * [abc6c8c] create various thunderbird png graphics from SVG file + * [a2067ae] debian/copyright: update copyright information + * [a9c6f9f] de-branding: add own created thunderbird icons to install + * [1d8b524] mozconfig.default: enable the official brandind + * [9f3a673] debian/control: adding dh-exec to the Build-Depends + * [cddbc63] move Thunderbird install files into thunderbird.install + * [5037bb5] de-branding: transition of apparmor profile for TB + * [14f094d] de-branding: remove extra URL for What's New inside + * [c2a06db] manpage thunderbird; adjust and correct manpage entries + * [8fa3365] debian/control: adding package dpkg to Build-Depends + * [ba84ede] thunderbird: switching dpkg-maintscript-helper to *.maintscript + * [d0e675b] debian/thunderbird.postinst: adding some moving mechanism + * [cbae415] de-branding: let helper scripts reflect thunderbird change + * [da402a4] thunderbird-wrapper.sh: adding fixing inside mimeTypes.rdf + (Closes: #837516) + * [030d49e] de-branding: adding some hints about the debranding + * [662f7af] debian/README.source: adjusting hints due name changes + * [8fbedc1] debian/thunderbird.install: install additional icedove.desktop + * [9089d9f] debian/*lintian-overrides: adopt name changes + * [b9b7665] debian/rules: use the old profile folder for wheezy and jessie + * [f9c137e] fix *.desktop files for proper GNOME app mechanism + (Closes: #817973, #832302) + * [1c85ff7] debian/rules: chmod certain *.py tb-devel files + * [356694a] thunderbird.links: linking the default TB icon to u/s/p + + [ Guido Günther ] + * [24bbee9] Wrap and sort control information (Closes: #825806) + * [fcfe4ac] Add minimalistic autopkgtest + * [f7a32e8] Add autopkgtest to test header and typelib generation + * [189d835] Add autopkgtest to smoke test xpcshell + + [ Christoph Goehre ] + * [354f836] turn the reduce of memory usage of the linker on again + * [5e48e17] don't build dbgsym packages on unreleased builds + * [09679eb] rebuild patch queue from patch-queue branch (Closes: #808183) + * [ec3a50b] debian/NEWS: change urgency to medium + + -- Christoph Goehre Sat, 31 Dec 2016 10:26:36 +0100 + +icedove (1:45.5.1-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [efe836f] New upstream version 45.5.1 + * [48999ac] rebuild patch queue from patch-queue branch + + -- Carsten Schoenert Wed, 30 Nov 2016 18:27:57 +0100 + +icedove (1:45.4.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [a159bc9] autopkgtests: let xfvb-run pick the port to avoid clashes with + already running servers + * [5384838] Snapshot 1:45.3.0-1~1.gbpa159bc + * [8d3ac18] autopkgtest: Dont print on stderr + * [8afc7be] Put test deps on a simgle line + + [ Carsten Schoenert ] + * [99e9c40] New upstream version 45.4.0 + (Closes: #835866, #836798, #837107) + * [6195d7b] debian/README.source: update instructions for importing + * [5150624] debian/icedove.js: disabling baselinejit functionality + (Closes: #837930) + + -- Carsten Schoenert Mon, 03 Oct 2016 12:18:09 +0200 + +icedove (1:45.3.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3cc29ee] Imported Upstream version 45.3.0 + * [ed8cf89] Imported icedove-l10n Upstream version 45.3.0 + * [bc20676] Imported iceowl-l10n Upstream version 45.3.0 + * [54bd9c4] debian/README.source: fix up some hints + * [756ec86] mozconfig.default: enable build of PIE binaries + * [1cef6f8] rebuild patch queue from patch-queue branch + added patch: + - porting-mips/libyuv_disable-mips-assembly-for-MIPS64.patch + (Closes: #836400) + * [7a1ec74] AppArmor: grant access to local mailboxes and enigmail(2) + (Closes: #837656) + + -- Carsten Schoenert Wed, 28 Sep 2016 22:52:03 +0200 + +icedove (1:45.2.0-4) unstable; urgency=medium + + [ Carsten Schoenert ] + * [cc8cd76] mozconfig.default: relaxe optimization on arm{64,el,hf} to -O1 + + -- Christoph Goehre Thu, 18 Aug 2016 10:45:17 -0400 + +icedove (1:45.2.0-3) unstable; urgency=medium + + [ Guido Günther ] + * [9a8f4e1] tests: Fix typo + + [ Carsten Schoenert ] + * [53aab10] AppArmor: allow self execution for -ProfileManager + (Closes: #833742) + * [a459d6a] debian/rules: adding one more CFLAGS/CXXFLAGS compiler flag + (Closes: #833864, #833532, #833591, #833635, #833698) + * [e32c460] AppArmor: grant access to local mailboxes and enigmail + (Closes: #833184) + * [f34e41e] debian/rules: fix typo CXLAGS -> CFLAGS + + -- Christoph Goehre Fri, 12 Aug 2016 12:00:44 -0400 + +icedove (1:45.2.0-2) unstable; urgency=medium + + [ Christoph Goehre ] + * [8b4f306] rebuild patch queue from patch-queue branch + added patches: + - p-kfree-hurd/CrossProcessMutex.h-fix-build-on-kfreebsd-and-GNU-hur.patch + (Closes: #808183) + + [ Carsten Schoenert ] + * [08e20a0] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1277295-Remove-obsolete-reference-to-storage-service-.patch + (Closes: #827592) + - fixes/Bug-1245076-Don-t-include-mozalloc.h-from-the-cstdlib-wra.patch + (Closes: #831192) + * [1ea97f1] debian/icedove.js: disable Icedove startup check + (Closes: #817973) + * [83bdcdf] debian/rules: adding additional CFLAGS and CXXFLAGS + * [7dc0588] debian/control: addjust breaks for xul-ext-foxyproxy-standard + (Closes: #825749) + * [50a0f1e] autopkg: fixup small type within test call + + [ Ulrike Uhlig ] + * [b24bbaa] Add rebranded apparmor profile from upstream (Closes: #829731) + * [0a28f91] apparmor/usr.bin.icedove: refresh Icedove AppArmor profile + + [ Guido Günther ] + * [6fe4897] Fix apparmor profile installation + + -- Christoph Goehre Tue, 26 Jul 2016 13:25:21 -0400 + +icedove (1:45.2.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [f777843] Wrap and sort control information + via 'wrap-and-sort -ast' to simplify backporting (Closes: #825806) + * [457dffe] Register components with gbp + * [8e73822] Rediff patches + + [ Carsten Schoenert ] + * [789ed6f] Imported Upstream version 45.1.1 + * [8b8bd3c] Imported icedove-l10n Upstream version 45.1.1 + * [23b2984] Imported iceowl-l10n Upstream version 45.1.1 + * [411b27d] Imported Upstream version 45.2.0 + * [975287a] Imported icedove-l10n Upstream version 45.2.0 + * [09b6652] Imported iceowl-l10n Upstream version 45.2.0 + * [2b99997] icedove-l10n-all: change Section into metapackages. + As Jonas Smedegaard pointed out, the icedove-l10n-all package is a + metapackage and localization. + (Closes: #824785) + * [a7eec24] debian/README.source: info about import of multitarballs. + As the VCS is using git-buildpackage for package maintenace adding some + hints on how to handle the impoert of the used mutitarballs since + version 45.0. + * [73e8b1a] debian/control: adding Recommends to icedove-l10n-uk + (Closes: #825806) + * [f118470] debian/control: Icedove, adding dependency on libatk-adaptor. + After the adding of some first small autopkg test it turns out that we + miss a dependency on libatk-adaptor. + * [e6e95c9] debian/control: rework Recommends for icedove-l10n-* + As addition to 711468b933f280fe9d6ed78bb1d7d763dede9ea7 also rework the + various Recommends for the icedove-l10n packages. + * [1275b3d] debian/control: small fixup Recommends on iceowl-l10n-* + Fix small typos for iceowl-l10n-{pt-pt,sl} + * [c4c9a02] debian/control: sort iceowl-l10n-* alphabetical + + -- Guido Günther Fri, 08 Jul 2016 15:55:46 +0200 + +icedove (1:45.2~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [68883af] rebuild patch queue from patch-queue branch + added patches: + - porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + * [ee509d2] debian/mozconfig.default: switching back to gtk2 as default + (Closes: #821744) + * [f72fe06] adding helper script create-iceowl-l10n-tarball.sh + * [28fba93] debian/README.source: adding additional info for iceowl-l10n + * [826af5b] adding iceowl-l10n related patches to the patch queue + * [1aa6f37] debian/iceowl-*.in: adding needed base files + * [a5946b4] debian/rules: adding iceowl-l10n related rules + * [b1da616] debian/control: adding the current iceowl-l10n-* packages + * [b359c95] debian/source.filter: some adjustments to the filter + * [e45ab44] debian/README.source: use recent version and reformating + * [50b3830] debian/control: increase Standards-Version to 3.9.8 + * [3a767b8] debian/rules: remove no longer needed LDFLAGS + * [29a7739] Imported Upstream version 45.2~b1 + * [15b7797] iceowl-l10n-*: rearrange Recommends field for various packages + (Closes: #824727, #824750, #824763, #824764, #824768, #824780) + * [3f75b56] debian/vendor.js: adjust to new version related wiki site + * [6bd7f89] d/c-id-l10n: adjusting download URL for stable versions + * [f15d1a2] icedove-l10n-all: change Section into metapackages + (Closes: #824785) + * [25c3ba1] debian/README.source: info about import of multitarballs + * [3ebcf59] debian/control: adding Recommends to icedove-l10n-uk + (Closes: #825806) + * [3e57d5e] debian/control: Icedove, adding dependency on libatk-adaptor + * [e19c59d] debian/control: rework Recommends for icedove-l10n-* + * [4741d80] debian/control: small fixup Recommends on iceowl-l10n-* + * [f9f5193] debian/control: sort iceowl-l10n-* alphabetical + + [ Christoph Goehre ] + * [ce58560] debian/rules: add option to dh_auto_clean + * [8cfbeca] debian/rules: export necessary DEB_ vars into environment + (Closes: #819020) + * [7512da8] debian/rules: ignore build folder and run 'build' target instead + (Closes: #819020) + * [354f836] turn the reduce of memory usage of the linker on again + * [5e48e17] don't build dbgsym packages on unreleased builds + * [09679eb] rebuild patch queue from patch-queue branch + added patches: + - p-kfree-hurd/CrossProcessMutex.h-fix-build-on-kfreebsd-and-GNU-hu.patch + (Closes: #808183) + + [ Guido Günther ] + * [24bbee9] Wrap and sort control information (Closes: #825806) + * [fcfe4ac] Add minimalistic autopkgtest + * [f7a32e8] Add autopkgtest to test header and typelib generation + * [189d835] Add autopkgtest to smoke test xpcshell + + -- Christoph Goehre Wed, 01 Jun 2016 17:56:29 -0400 + +icedove (1:45.0~b4-2) experimental; urgency=medium + + * [fa7bc47] debian/control: fix FTBFS by moving Build-Depends-Indep to + Build-Depends + + -- Christoph Goehre Sun, 10 Apr 2016 15:24:39 -0400 + +icedove (1:45.0~b4-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [3bf50c7] Imported Upstream version 45.0~b4 + * [11744a7] debian/source.filter: fixup for previous change + * [0bd3753] debian/gbp.conf: adding default filter out pattern + * [a9f6cfa] rebuild patch queue from patch-queue branch + removed patches (fixed upstream): + - fixes/Bug-1178266-Link-against-libatomic-when-necessary.patch + - p-arm64/FTBFS-arm64-Adding-configure-option-for-aarch64-platform.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-1-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-2-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-3-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-4-4.patch + modified patches: + - p-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + * [9dcb46e] debian/control: increase B-D on libnspr-dev + * [b31fba5] debian/control: increase Standards-Version to 3.9.7 + * [623250d] Icedove Branding: adopt usptream changes to branding + * [2fa9b24] debian/copyright: update copyright information + * [c5dd11d] debian/copyright: include the license text for MPL-1.0 + * [3a90ecd] debian/copyright: include the license text for MPL-1.1 + * [7291650] debian/copyright: include the license text for MPL-2.0 + * [0ebdd3f] debian/copyright: include the license text for libpng + * [9ee79fa] d/icedove.install: remove no longer existing parts + * [880c9e9] debian/rules: remove obsolet dpkg-shlibdeps call + * [e4fb8a2] adding helper script create-icedove-l10n-tarball.sh + * [8826951] debian/README.source: adding hint for creating l10n tarball + * [08f9071] debian/control: adding the current icedove-l10n-* packages + (Closes: #680488) + * [d839f37] debian/rules: adding icedove.l10n install to targets + * [5b0df21] debian/gbp.conf: use a Tuple for selecting multiple files + * [e32519f] debian/control: increase B-D on libnss-dev + * [2200691] debian/control: increase B-D on libnspr4-dev + * [0f5660e] debian/control: increase increase B-D on libnss3-dev + * [5fd8af8] mozconfig.default: adding new configure option + * [e288c6e] debian/control: adding a B-D on libpng-dev + + [ Christoph Goehre ] + * [f8c7ca5] debian/control: make depends between icedove-l10n and icedove + dynamic + * [ac760d7] debian/control: add section localization to all l10n packages + * [72ef6c7] debian/NEWS: rename to icedove.NEWS to ship only in icedove core + package + * add epoch in version number to update l10n packages smoothly + + -- Christoph Goehre Sat, 09 Apr 2016 18:56:59 -0400 + +icedove (44.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [a24f78b] Imported Upstream version 44.0~b1 + * [7f52453] rebuild patch queue from patch-queue branch + removed patches: + - d-hacks/Add-unminified-jquery-and-jquery-ui-files.patch + - d-hacks/Allow-unsigned-addons-in-usr-lib-share-mozilla-extensions.patch + - d-hacks/creating-a-dummy-.deps-directory-to-get-make-happy.patch + added patches: + - p-arm64/FTBFS-arm64-Adding-configure-option-for-aarch64-platform.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-1-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-2-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-3-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-4-4.patch + modified patches: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + * [ecf1110] debian/watch: adjust to new CDN structure + * [dd5efe8] debian/control: increase Build-Depends on libsqlite3-dev + * [57165b5] debian/control: switch URI for the Vcs fields to https + * [c9ded96] debian/source.filter: adding more filters on testings js files + * [31ce42f] debian/copyright: update due upstream/import changes + + -- Christoph Goehre Sat, 13 Feb 2016 19:08:55 -0500 + +icedove (43.0~b1-1) experimental; urgency=medium + + [ Christoph Goehre ] + * [ef5b1ef] debian/rules: split override_dh_install into arch and indep + section (Closes: #806047) + * [02d5d7c] debian/source.filter: remove filter for searchplugins + + [ Guido Günther ] + * [2008a71] Clarify relation between icedove and the calendar extensions + (Closes: #809017) + + [ Carsten Schoenert ] + * [11ffac0] debian/source.filter: modifying file list to ignore + * [926912b] Imported Upstream version 43.0~b1 + * [32cd8c0] rebuild patch queue from patch-queue branch + added patches: + - d-hacks/Allow-unsigned-addons-in-usr-lib-share-mozilla-extensions.patch + removed patches (fixed upstream): + - reproducible/Generate-sorted-libical-header-list.patch + * [a1637e4] debian/control: increase B-D on libnspr-dev and libnss3-dev + * [f9937c1] debian/source.filter: sort entries alphabetical + * [326f74d] debian/source.filter: adding new files to filter out + * [9b9d9b9] debian/copyright: update due upstream changes + * [69664c7] d/icedove.install: searchplugins isn't alive anymore + + -- Christoph Goehre Tue, 19 Jan 2016 11:41:50 -0500 + +icedove (42.0~b2-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [8842d85] Imported Upstream version 42.0~b2 + * [6d14aca] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1178266-Link-against-libatomic-when-necessary.patch + * [320c43d] add myself to the uploaders + * [797a290] lintian: remove icedove.menu file due CTTE#741573 + + [ Guido Günther ] + * [caca7c2] Add unminified jquery and jquery-ui files (Closes: #802281) + + -- Christoph Goehre Sun, 08 Nov 2015 15:30:56 -0500 + +icedove (42.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [c599b6b] Imported Upstream version 42.0~b1 + * [41285cb] debian/copyright: fixup's and update + * [6b270be] debian/control: increase various build depends + * [be75969] adopting needed changes for GTK3 into the Debian branding + * [245161e] fixup branding about.png file + + -- Christoph Goehre Sat, 10 Oct 2015 21:26:24 -0400 + +icedove (41.0~b2-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [b1d982c] Imported Upstream version 41.0~b2 + * [8389b9b] rebuild patch queue from patch-queue branch + added patches: + - porting-mips/Fix-build-error-in-MIPS-SIMD-when-compiling-with-mfp.patch + modified patches: + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + dropped patches (fixed upstream): + - fixes/Bug-1168231-Fixup-to-keep-file-type.patch + - fixes/Bug-1168231-Normalize-file-mode-in-jars.patch + - reproducible/Bug-1166243-Remove-build-function-from-js-and-xpc-sh.patch + - reproducible/Bug-1168316-Remove-build-machine-name-from-about-bui.patch + * [9ebf7b9] debian/source.filter: modifying file list to ignore + * [b25d990] debian/copyright: fixup's and update + + [ Christoph Goehre ] + * [8ebffb0] relax optimize to -O1 on s390x (Closes: #797551) + * [dea1627] debian/rules: Disable jit on mips (Closes: #797548) + + -- Christoph Goehre Fri, 25 Sep 2015 18:43:44 -0400 + +icedove (40.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [9d358dc] debian/source.filter: adjust new files + * [328cdc7] Imported Upstream version 40.0~b1 + * [8813d89] debian/rules: setting MOZ_BUILD_DATE explicitly. + This patch is based on work from Mike Hommey within the Iceweasel + package to enable reproducible builds. It defines the MOZ_BUILD_DATE + with a pre defined timezone. + * [8dd5b9f] debian/rules: add switch to skip icedove-dbg build to + speed up the build. + * [a6beec7] debian/control: Let icedove recommendiceowl-extension + * [691dfe9] add release related information + * [bdfdfd8] debian/vendor.js: adjusting WhatNew link to more dedicated URL + * [5ba6ec7] rebuild patch queue from patch-queue branch + added patches: + debian-hacks/changing-the-default-search-engine.patch + fixes/Bug-1168231-Fixup-to-keep-file-type.patch + fixes/Bug-1168231-Normalize-file-mode-in-jars.patch + reproducible/Bug-1166243-Remove-build-function-from-js-and-xpc-sh.patch + reproducible/Bug-1168316-Remove-build-machine-name-from-about-bui.patc + reproducible/Generate-sorted-libical-header-list + modified patches: + fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch + porting-kfreebsd-hurd/FTBFS-hurd-adding-the-HURD-platform-to-the-configure.patch + porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + porting/Disable-optimization-on-alpha-for-the-url-classifier.patch + deleted patches: + debian-hacks/pass-OS_LDFLAGS-to-all-ldap-libraries.patch + debian-hacks/remove-timestamps-from-c_cpp-macros-for-reproducibil.patch + debian/patches/fixes/Link-libldap-against-libpthread.patch + debian/patches/icedove/no-dynamic-nss-softokn.patch + debian/patches/porting/Remove-duplicate-SkDiscardableMemory_none.cpp-from-g.patch + * [59046ae,12d4f4b] debian/copyright: update due upstream changes + * [7c1f002] debian/iceowl-extension.lintian-overrides: remove file, no longer needed + * [23eed8c] debian/source.lintian-overrides: adding new entries. + Lintian is detecting the braces within the folder names incorrectly as + brace expansion. + * [2f95cd3] add changes due ldap restructure. + + [ Christoph Goehre ] + * [ff66528] lintian: fix spelling error in debian/README.Debian + + -- Guido Guenther Wed, 19 Aug 2015 09:39:23 +0200 + +icedove (38.7.2-1) unstable; urgency=medium + + * [397cd7a] Imported Upstream version 38.7.2 + + -- Christoph Goehre Wed, 13 Apr 2016 12:05:05 -0400 + +icedove (38.7.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [cb9c003] Imported Upstream version 38.7.0 + * [7273cb9] bump up standards version to 3.9.7 (no changes needed) + + [ Carsten Schoenert ] + * [0341a8c] debian/control: switch URI for the Vcs fields to https + + -- Christoph Goehre Wed, 16 Mar 2016 13:22:57 +0100 + +icedove (38.6.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [195730d] Clarify relation between icedove and the calendar extensions + (Closes: #809017) + + [ Christoph Goehre ] + * [988ce5b] Imported Upstream version 38.6.0 + * [6763f6f] debian/source.filter: remove evil-licensed jshint.js + (Closes: #813053) + + -- Christoph Goehre Sun, 14 Feb 2016 16:08:13 -0500 + +icedove (38.5.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [6d45b0b] Imported Upstream version 38.5.0 + * [316798f] debian/rules: split override_dh_install into arch and indep + section (Closes: #806047) + + [ Carsten Schoenert ] + * [5b3cb7a] add myself to the uploaders + + -- Christoph Goehre Thu, 24 Dec 2015 22:36:37 -0500 + +icedove (38.4.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [754392e] Imported Upstream version 38.4.0 + * [ef4b733] debian/watch: adjust download url + + [ Carsten Schoenert ] + * [f3f5455] lintian: remove icedove.menu file due CTTE#741573 + + -- Christoph Goehre Fri, 27 Nov 2015 12:54:27 -0500 + +icedove (38.3.0-2) unstable; urgency=medium + + * [c988747] Add unminified jquery and jquery-ui files with the exact + version as used by upstream thunderbird. + We don't want to use the minified versions mozilla ships and can't use + what is currently packaged in Jessie or Stretch since these are too + recent. + (Closes: #802281) + + -- Guido Günther Sun, 01 Nov 2015 18:06:33 +0100 + +icedove (38.3.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [0f8b6a4] Imported Upstream version 38.3.0 + * [566273a] debian/copyright: fixup's and update + + -- Christoph Goehre Sat, 10 Oct 2015 13:21:05 -0400 + +icedove (38.2.0-2) unstable; urgency=medium + + * [8bcb08b] relax optimize to -O1 on s390x (Closes: #797551) + * [6aa0915] debian/rules: Disable jit on mips (Closes: #797548) + + -- Christoph Goehre Thu, 24 Sep 2015 19:09:54 -0400 + +icedove (38.2.0-1) unstable; urgency=medium + + * [d46d5f6] rebuild patch queue from patch-queue branch + added patches: + - porting-mips/Fix-build-error-in-MIPS-SIMD-when-compiling-with-mfp.patch + + -- Christoph Goehre Mon, 21 Sep 2015 19:42:03 -0400 + +icedove (38.2.0-1~stretch) stretch; urgency=medium + + [ Carsten Schoenert ] + * [05b245f] Imported Upstream version 38.2.0 (Closes: #796323) + - MFSA 2015-59 aka CVE-2015-2724, CVE-2015-2725, CVE-2015-2726 + - MFSA 2015-63 aka CVE-2015-2731 + - MFSA 2015-66 aka CVE-2015-2734, CVE-2015-2735, CVE-2015-2736, + CVE-2015-2737, CVE-2015-2738, CVE-2015-2739, CVE-2015-2740 + - MFSA 2015-70 aka CVE-2015-4000 + - MFSA 2015-71 aka CVE-2015-2721 + - MFSA 2015-65 aka CVE-2015-2741 + - MFSA 2015-79 aka CVE-2015-4474 + * [43c8195] rebuild patch queue from patch-queue branch + * [c75bdad] debian/control: increase B-D on libnss3-dev + * [942bcbe] debian/iceowl-extension.lintian-overrides: remove file + * [7131e4d] debian/source.lintian-overrides: adding new entries + * [8882360] mozconfig.default: don't use icu from system + + -- Carsten Schoenert Fri, 21 Aug 2015 12:29:42 +0200 + +icedove (38.1.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3d27760] Imported Upstream version 38.1.0 (Closes: #790651) + * [2cb6cd7] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1165654-Cleanup-how-libjpeg-turbo-assembly-build.patch + - reproducible/Generate-sorted-libical-header-list (Closes: #794456) + + -- Christoph Goehre Tue, 04 Aug 2015 20:20:53 -0400 + +icedove (38.0.1-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [5acef6a] debian/gbp.conf: adopt new upstream branch + * [6f88792] Imported Upstream version 38.0.1 (Closes: #358680, #472601, + #634316, #691176, #751786, #777908) + * [18bba9d] debian/gbp.conf: respect new git-buildpackage behaviour + * [26bbdac] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/changing-the-default-search-engine.patch (Closes: #780595) + - fixes/Bug-1168231-Fixup-to-keep-file-type.patch + - fixes/Bug-1168231-Normalize-file-mode-in-jars.patch + - reproducible/Bug-1166243-Remove-build-function-from-js-and-xpc-sh.patch + - reproducible/Bug-1168316-Remove-build-machine-name-from-about-bui.patc + deleted patches: + - debian-hacks/remove-timestamps-from-c_cpp-macros-for-reproducibil.patch + * [71938b9] debian/rules: setting MOZ_BUILD_DATE explicitly + * [e50d708] debian/copyright: more minor updates to the copyright file + * [b232895] debian/rules: adding switch for no icedove-dbg build + * [bcc15aa] debian/control: icedove is now recommending iceowl-extension + * [564a19e] adding release related information + * [2ec0053] debian/vendor.js: adjusting WhatNew link to more dedicated URL + + [ Christoph Goehre ] + * [a9c25b6] lintian: fix spelling error in debian/README.Debian + * [2cc2c07] debian/rules: fix icedove-dbg build switch + + -- Christoph Goehre Mon, 27 Jul 2015 17:46:40 -0400 + +icedove (38.0~b5-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [7e3cab4] Imported Upstream version 38.0~b5 + * [3edbafc] Revert "debian/control: remove build-dep on libnotify-dev" + * [5e69bab] debian/control: increase b-d versions + * [6e6ae36] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/remove-timestamps-from-c_cpp-macros-for-reproducibil.patch + obsolete patches (fixed in Debian): + - adopting-SQLITE3-version.patch + * [ac7b760] mozconfig.default: adding some explicit configure options + * [81fd6e6] complete rewrite of copyright information + * [327dd45] switching to libgstreamer1.0* + + [ Christoph Goehre ] + * [9877ea3] lintian: add override for libpng + + -- Christoph Goehre Fri, 22 May 2015 20:42:19 -0400 + +icedove (38.0~b2-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [b08d966] debian/source.filter: modifying file list to ignore + * [88fd018] Imported Upstream version 38.0~b2 + * [e9da8f8] icedove branding: adopt upstream changes + * [3610daa] debian/control: increase b-d versions + * [950fae7] rebuild patch queue from patch-queue branch + modified patches: + - system-libs/Allow-to-build-against-system-libffi.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + obsolete patches (fixed upstream): + - porting/Reintroduce-pixman-code-path-removed-in-bug-1097776-.patch + * [1820d7c] debian/control: adding xul-ext-compactheader to Breaks field + + [ Dominik George ] + * [4181126] debian/control: Upgrade Breaks relation to enigmail + (Closes: #782686) + + -- Christoph Goehre Tue, 28 Apr 2015 18:19:00 -0400 + +icedove (36.0~b1-2) experimental; urgency=medium + + * [26c0027] rebuild patch queue from patch-queue branch + added patches: + - porting/Reintroduce-pixman-code-path-removed-in-bug-1097776-.patch + - porting/Remove-duplicate-SkDiscardableMemory_none.cpp-from-g.patch + - porting/ppc-fix-divide-page-size-in-jemalloc.patch (Closes: #780404) + + -- Christoph Goehre Sat, 28 Mar 2015 15:35:58 -0400 + +icedove (36.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [68112a3] Imported Upstream version 36.0~b1 + * [3120361] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + - debian-hacks/fixing-various-FTBFS-due-different-datatype-char-beh.patch + - porting-arm/FTBFS-armhf-fixing-ARM-CPU-detection.patch + modified patches: + - debian-hacks/Strip-version-number.patch + - p-kfree-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - p-kfree-hurd/correcting-file-inclusion-for-kfreebsd.patch + - p-kfree-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + * [ee185a2] d/icedove.install: mozilla-xremote-client was removed + * [64adc44] debian/source.filter: modifying file list to ignore + * [dbdd152] debian/control: increase package versions + * [fb3307c] lintian: adding one more source override + * [2a07495] lintian: adding new override for the icedove package + * [38c21ad] debian/README.Debian: adding note around HTTPS Everythere + (Closes: #774790) + + [ Christoph Goehre ] + * [3dce89c] debian/icedove.desktop: correct StartupWMClass to 'Icedove' + (Closes: #773876) + * [deb3f58] debian/icedove.desktop: add MimeType text/calendar + (Closes: #762190) + * [4dd96fe] rebuild patch queue from patch-queue branch + added patches: + - p-kfree-hurd/FTBFS-hurd-adding-the-HURD-platform-to-the-configure.patch + - p-powerpcspe/FTBFS-powerpcspe-disable-AltiVec-instructions.patch + (Closes: #772933) + modified patches: + - p-kfree-hurd/FTBFS-hurd-adding-GNU-Hurd-to-the-list-of-OS-systems.patch + - p-kfree-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - p-kfree-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - p-kfree-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + * [373ed05] add missing epoch in libnss3-dev build depends + + -- Christoph Goehre Wed, 11 Mar 2015 19:19:28 -0400 + +icedove (34.0~b1-2) experimental; urgency=low + + [ Carsten Schoenert ] + * [7a4edc4] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/fixing-various-FTBFS-due-different-datatype-char-beh.patch + - porting-arm/FTBFS-armhf-fixing-ARM-CPU-detection.patch + + -- Christoph Goehre Mon, 24 Nov 2014 18:56:21 -0500 + +icedove (34.0~b1-1) experimental; urgency=low + + [ Carsten Schoenert ] + * [1be8ab1] debian/source.filter: more files to ignore + * [66e6488] debian/README.source: adjust description for beta versions + * [e63d375] Imported Upstream version 34.0~b1 (Closes: #770180) + * [1cb54d2] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + - porting-armel/disable-some-libopus-feature-for-ARCH-ARMv6.patch + * [ad29bb1] debian/rules: be more flexible on *.xpi files + * [b055e78] debian/NEWS: fixing default SSL/TLS behavior description + * [d64a847] debian/NEWS: adding notes around new security changes + + -- Christoph Goehre Wed, 19 Nov 2014 19:15:46 -0500 + +icedove (33.0~b1-1) experimental; urgency=low + + [ Carsten Schoenert ] + * [5029c8b] debian/source.filter: more files to ignore + * [d4b03d9] README.source: let's use xz while creating the orig.tar.xz + * [ebd442f] debian/gbp.conf: some instructions for git-dch + * [cc594ea] Imported Upstream version 33.0~b1 + * [23b57cf] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/fix-identification-of-ObjdirMismatchException.patch + - debian-hacks/pass-OS_LDFLAGS-to-all-ldap-libraries.patch + modified patches: + - debian-hacks/Strip-version-number.patch + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - obsolete patches (fixed upstream): + - fixes/Include-cstdlib-in-gfx-angle-src-compiler-Types.h-fo.patch + - porting-alpha/fix-FTBFS-on-alpha.patch + * [a5a2a1b] adding additional config options for hppa and ppc64 + Both platforms failing on running xpcshell. + + [ Christoph Goehre ] + * [5a0ba43] linitan: bump up standards version to 3.9.6 + * [aaca6a7] debian/NEWS: adding note around increased default TLS version 1.2 + (Closes: #761245) + + -- Christoph Goehre Sat, 25 Oct 2014 12:47:37 -0400 + +icedove (32.0~b1-1) experimental; urgency=low + + [ Christoph Goehre ] + * [65ad797] icedove.postinst: remove obsolete symlink handling + + [ Carsten Schoenert ] + * [baef95a] debian/gbp.conf: adopting experimental branch + * [8384eee] Imported Upstream version 32.0~b1 + * [75145f3] rebuild patch queue from patch-queue branch + modified patches: + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - debian-hacks/remove-non-free-W3C-icon-valid.png.patch + obsolete patches (fixed upstream): + - porting-armel/fix-skia-for-ARMv4.patch + + [ Christoph Goehre ] + * [51c3cee] cleanup branding patch + + -- Christoph Goehre Thu, 28 Aug 2014 15:52:51 -0700 + +icedove (31.0-2) unstable; urgency=low + + [ Carsten Schoenert ] + * [d2bc0ef] armel: correcting #if statement for skia fix + * [959b801] adding GNU/Hurd to gyp.mozbuild + * [215bc7d] kfreebsd*: adding CrossProcessMutex_posix.cpp to list + * [892c39c] d/icedove.links: remove unneeded link to /u/s/i/e + (Closes: #638489) + * [928158c] debian/source.filter: more files to ignore + * [b81c238] fixing lintian warning 'unused-override' + * [7bc2568] fixing lintian warning 'jar-not-in-usr-share' + * [cd0d289] fixing lintian warning 'image-file-in-usr-lib' + * [045a960] fixing lintian error 'source-is-missing' + * [1fe016a] correcting FTBFS patch for alpha + + [ Christoph Goehre ] + * [c827d81] iceowl-extension: replace skin and icon dir with symlink + + -- Christoph Goehre Sat, 23 Aug 2014 18:42:23 -0700 + +icedove (31.0-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [b7cdeb4] Imported Upstream version 31.0 (Closes: #756769) + * [1f2ff0b] debian/rules: fixing file permissions in iceowl-extension + * [c8d2036] adding fix for skia on armel + * [77093e2] fixing FTBFS on armel (Closes: #754633) + * [a458959] debian/control: increase b-d on libsqlite-dev + * [a98ebca] fix runtime error on alpha while jemalloc run + * [6f6b576] disable optimization on alpha while linking + + -- Christoph Goehre Mon, 04 Aug 2014 10:23:09 -0400 + +icedove (31.0~b2-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [76059a9] debian/source.filter: more files to ignore + * [5067b0e] Imported Upstream version 31.0~b2 (Closes: #754464) + * [e31ac79] debian/control: remove build-dep on libnotify-dev + * [35324a5] debian/control: increase build-depends on libnss3-dev to 3.16.2~ + + -- Christoph Goehre Fri, 18 Jul 2014 21:47:06 +0200 + +icedove (31.0~b1-2) unstable; urgency=low + + * [7ba4d01] lintian: add override for embedded srtp library + + -- Christoph Goehre Sun, 22 Jun 2014 18:18:04 -0400 + +icedove (31.0~b1-1) unstable; urgency=low + + * [02dc94c] remove example file, which cause git-archive to change the + source tree + * [ba233b1] Imported Upstream version 31.0~b1 + * [4c2380f] rebuild patch queue from patch-queue branch + modified patches: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-.patch + obsolete patches (fixed upstream): + - fixes/unbreak-with-system-pixman-in-mailnews.patch + - porting-hppa/FTBFS-hppa-correcting-code-inside-JS_STACK_GROWTH_DI.patch + + -- Christoph Goehre Sun, 22 Jun 2014 11:50:07 -0400 + +icedove (30.0~b1-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [b3eadf1] debian/source.filter: more files to ignore + * [fb71012] debian/control: bumping build-depends for debhelper + * [dc4ad0c] debian/control: add libpulse-dev build dependency + * [b8d3ee7] debian/control: bumping some version of build dependencies + * [3443df9] debian/icedove-dev.install: adopt upstream changes + * [d0f9d0e] icedove.lintian-overrides: adding libtheora + * [982c8a6] debian/rules: adding removing for temporary files + + [ Christoph Goehre ] + * [f6292d5] Imported Upstream version 30.0~b1 (Closes: #743421) + * [dacd658] rebuild patch queue from patch-queue branch + modified patches: + - porting-hppa/FTBFS-hppa-correcting-code-inside-JS_STACK_GROWTH_DI.patch + - porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch + - porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-.patch + - prefs/Set-javascript.options.showInConsole.patch + - debian-hacks/Icedove-branding.patch + - fixes/unbreak-with-system-pixman-in-mailnews.patch + obsolete patches (fixed upstream): + - debian-hacks/Do-build-time-detection-of-2-bytes-wchar_t-and-char1.patch + - debian-hacks/Fix-build-failure-for-header.py-and-typelib.py.patch + - fixes/Make-system-cairo-work-again.patch + - porting-powerpcspe/FTBFS-Altivec-is-not-available-on-powerpcspe.patch + * [df93d26] branding: add jar.mn to moz.build + * [648853d] only copy debian/mozconfig.default into mozilla subdir + * [4f9dc9e] MOZ_OBJDIR need a absolute path, $(pwd) didn't work + * [33794c3] icedove.pc: remove non-existent library mozjs (Closes: #748746) + * [dcbce5c] iceowl-extension: use breaks instead of conflicts against + calendar-timezones (Closes: #747532) + * [545415a] add breaks to enigmail (<< 2:1.6-4~deb7u1) which won't work with + us (Closes: #747546) + + -- Christoph Goehre Fri, 30 May 2014 12:11:53 -0400 + +icedove (24.5.0-2) unstable; urgency=low + + * [e4a43ed] debian/rules: remove duplicate LDFLAGS += -Wl,--stats + * [f9dba4b] debian/rules: export all compiler flags into build environment + * [8dc0712] debian/rules: run autoconf for all configue files + * [95d4b48] debian/rules: export MOZCONFIG onces + * [577bd03] debian/rules: update config.sub and config.guess before autoconf + run + * [7f958c7] parse DEB_BUILD_OPTIONS for how many parallel buildjobs to start + (Closes: #746984) + * [0f8b062] debian/rules: export MOZILLA_OFFICIAL + * [1c3d277] run configure with --build and --host + * [f190e19] don't build a shared js library (Closes: #724688, #729073, + #745593) + + -- Christoph Goehre Thu, 08 May 2014 20:07:06 -0400 + +icedove (24.5.0-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [7c13dbf] calender-timezones: remove no longer needed helper files + * [2d4328c] debian/control: sort various fields alphabetically + * [436c212] debian/control: remove build-depens on cdbs + * [dae8b3e] icedove branding: adopt current Makefile.in style to upstream + * [045be10] debian/rules: switch to debhelper + * [b852c8c] debian/mozconfig*: adding mozconfig files + * [7bac68c] debian/icedove.configopts: Remove no longer needed file + * [6c597b9] Switch the old thunderbird*.in files to icedove.* + * [9781e61] debian/icedove.links: adding /u/b/i link + * [f325194] debian/icedove.dirs: add helper file for needed directories + * [fe0376a] debian/icedove.install: sort entrys alphabetical + * [0111ccc] debian/icedove.js: fix small typo and reformat + * [a7e5b05] debian/rules: add override for dh_fixperms + * [8e44df2] debian/rules: add override for dh_install + * [24fa03a] debian/rules: add override for dh_shlibdeps + * [2f22ed0] debian/rules: add override for dh_strip + * [259a6f4] debian/control: remove ${shlibs:Depends} from c-g-p depends + * [cdc9272] debian/rules: add additional LDFLAGS + * [9d620d5] debian/rules: correct Icedove version inside icedove.pc during + install + + [ Christoph Goehre ] + * [460818b] Imported Upstream version 24.5.0 + * [4c65ecc] rebuild patch queue from patch-queue branch + added patches: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + obsolete patches: + - porting-kfreebsd-hurd/Another-fix-to-build-ipc-code-on-GNU-hurd-an.patch + + -- Christoph Goehre Tue, 29 Apr 2014 17:56:40 -0400 + +icedove (24.4.0-1) unstable; urgency=low + + * [a2b13c0] Imported Upstream version 24.4.0 + * [fd90463] rebuild patch queue from patch-queue branch + added patches: + - porting-hppa/FTBFS-hppa-correcting-code-inside-JS_STACK_GROWTH_DI.patch + (Closes: #741245) + + -- Christoph Goehre Sat, 22 Mar 2014 11:10:18 -0400 + +icedove (24.3.0-2) unstable; urgency=low + + [ Christoph Goehre ] + * [122ffe9] remove ldif60 from pkgconfig file (Closes: #732652) + * [b64ccac] rebuild patch queue from patch-queue branch + added patches: + - porting-powerpcspe/FTBFS-Altivec-is-not-available-on-powerpcspe.patch + (Closes: #734859) + + [ Carsten Schoenert ] + * [aa4f5b1] thunderbird.install.in: shipping all files in /u/l/i/components + (Closes: #737811) + * [3bf4738] debian/rules: fix *.js file-permissions for iceowl-extension + * [50ab7a5] debian/rules: remove -Wl,--as-needed linker option + (Closes: #732652, #730450, #724688) + + -- Christoph Goehre Sun, 09 Mar 2014 15:33:05 -0400 + +icedove (24.3.0-1) unstable; urgency=low + + * [a656560] lintian: remove non-free w3c valid.png icon (Closes: #735119) + * [f4e6c08] lintian: remove prebuild javascript objects from upstream + tarball (Closes: #735234) + * [adf9c96] Imported Upstream version 24.3.0 + * [8419e65] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/remove-non-free-W3C-icon-valid.png.patch + - debian-hacks/use-system-jquery-jquery-ui.patch + * [948af3e] a newer icedove will break iceowl-extension (Closes: #732742) + + -- Christoph Goehre Mon, 10 Feb 2014 19:44:36 -0500 + +icedove (24.2.0-1) unstable; urgency=low + + [ Christoph Goehre ] + * [963a61e] Imported Upstream version 24.2.0 + * [852abe3] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + - fixes/Wrap-non-prefixed-freetype-headers-from-newer-freety.patch + - porting/Don-t-hardcode-page-size-on-ia64-sparc-or-mipsel.patch + (Closes: #734074) + * [a9d6680] lintian: remove prebuild-binaries from upstream tarball + * [fc25943] linitan: remove prebuilt-windows-binary from upstream tarball + * [faa24eb] lintian: fix comma separated files copyright + * [835790d] lintian: declare public-domain license at the beginning + + [ Carsten Schoenert ] + * [c583a2f] debian/copyright: fix indentation for 'public domain' license + * [78ddee2] linitan: bump up standards version to 3.9.5 + + -- Christoph Goehre Sat, 11 Jan 2014 20:17:24 -0500 + +icedove (24.1.1-1) experimental; urgency=low + + [ Carsten Schoenert ] + * [e8cbac4] debian/copyright: correcting wrong comma usage. + * [d24a6be] debian/copyright: adjusting copyright infos + * [51a32a1] debian/copyright: correcting various lintian warning. + * [50874e0] debian/control: expanding icedove-dev dependency on python + * [2996a33] debian/control: adding a more specific description for + iceowl-extension and google-cal-prov. + * [85b4400] debian/control: adjust proper version dependencies. + (Closes: #729712) + * [4d6b204] debian/control: adding metadata for mozilla-devscripts. + (Closes: #562984) + + [ Christoph Goehre ] + * [aa7782b] Imported Upstream version 24.1.1 (Closes: #720931, #723630) + * [e4ca9cd] rebuild patch queue from patch-queue branch + added patches: + - fixes/Wrap-non-prefixed-freetype-headers-from-newer-freety.patch + - porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and.patch + * [849988b] make python scripts in /usr/lib/icedove-devel/sdk/bin executable + * [9890b1c] ship python config scripts to make building of extensions easier + (Closes: #729431) + * [8b08106] remove libxpcom.so from pkgconfig file (Closes: #729168) + * [4759bde] add libldif60 to pkgconfig file + * [db575b4] lintian: remove unsafe symlink from upstream tarball + + -- Christoph Goehre Sun, 08 Dec 2013 10:08:19 -0500 + +icedove (24.0-1) experimental; urgency=low + + [ Guido Günther ] + * [6f9d98e] New upstream version 24.0 + * [ef58a98] Refresh patches + * [435516d] Switch to xz compressed upstream tarball + * [f529a99] repack.py: port to python3 + * [50423d9] repack.py: allow to specify compression + + [ Christoph Goehre ] + * [b45b2b9] remove superfluous gstreamer build depends + * [96ac1d0] Reduce memory usage of the linker. Thanks to Mike Hommey + * [af55374] ia64 don't like LDFLAG --no-keep-memory + * [c3cb093] remove export-subst in mozilla/addon-sdk/source/.gitattributes. + + [ Carsten Schoenert ] + * [ac4caea] debian/copyright: correcting out-of-date-copyright-format-uri. + * [585bf84] debian/copyright: remove obsolete field 'Name:' + + -- Christoph Goehre Tue, 15 Oct 2013 18:51:16 -0400 + +icedove (24.0~b3-2) experimental; urgency=low + + * [47fe004] Add lintian override for our use of the embedded libjpeg + * [3c103e6] Make sure xpcshell is executable so dh_shlibdeps picks it up to + calculate lib dependencies + + -- Guido Günther Tue, 24 Sep 2013 20:03:33 +0200 + +icedove (24.0~b3-1) experimental; urgency=low + + [ Guido Günther ] + * Upload to experimental + * [eae533c] Adjust watch file once again + * [5280050] Invoke repack.py directly + * [0f4e8de] New upstream version 24.0~b3 + (Closes: #706859, #720931, #723630) + * [3b6374b] Don't use system jpeg + since it doesn't have the needed features + * [f6aeba2] Don't try to remove nonexistent libxpcom.so + + [ Carsten Schoenert ] + * [04844ae] icedove-branding: adopt new build schema to Debian branding + by using moz.build. + * [11c4677] icedove-branding: change the target directory for preview.png. + * [55f6762] debian/control: remove package calendar-timezones. + The calendar-timezones related files are now inside the lightning + package. + * [6f4948d] debian/rules: catch any gdata-provider*.xpi file. + The gdata-provider XPI file now has a version appended. + * [d5a63c9] debian/rules: catch any lightning*.xpi file. + The lightning XPI file now has a version appended. + * [e77e911] debian/thunderbird.install.in: + remove mozilla/components/binary.manifest since it no longer exists. + * [ef3f3b1] debian/control: Build-Depend on gstreamer an yasm now used by + icedove. + * [9f5fe3e] Drop patches fixed upstream. + Bug-720682-Don-t-crash-an-app-using-libxul-because-o.patch + Bug-723497-Saving-message-to-disk-fails-silently-fai.patch + Bug-746112-Don-t-decommit-if-page-size-is-too-large.patch + Bug-814693-Allow-webrtc-to-build-on-more-architectur.patch + Bug-840242-Use-the-runtime-page-size-to-control-aren.patch + virtualenv-changing-the-path-to-virtualenv.py.patch + * [4503610] Adjust to build system changes: + debian-hacks/Don-t-build-example-component.patch + * [290f1e0] Partially applied upstream: + Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + * [2eaf6ae] Rediff remaining patches + * [4217c0e] Create missing .deps dir. + Workaround to make build complete + * [f95db9c] Drop autoconf.mk mangling since it confuses the build system + + -- Guido Günther Thu, 19 Sep 2013 20:10:24 +0200 + +icedove (17.0.8-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [af98dad] The vendorShortName is of course "Mozilla" and not "Icedove" The + packages in icedove-l10n already use the correct substition. + (Closes: #707207, #715326) + * [8ceae38] Sawfish: fix wrong size of resized window. + Backported from the TB20 release. + https://bugzilla.mozilla.org/show_bug.cgi?id=813997 (Closes: #715464) + * [b69cb68] Fix error while saving a message to disk or network. + If the user tries to save a message to disk or network share without + enough user rights to write the message Icedove fails silently. This + backport from TB 21 fixes this. + * [fd8f588] Desktop file: shorten the icon name to 'Icedove' (Closes: #507962) + * [24b1b45] fix JS compiler segfault errors for various platforms + (Closes: #708331) + + [ Christoph Goehre ] + * [01f6b7a] add README.Debian to describe upstream status of Thunderbird + (Closes: #710888) + * [7fa36d6] rebuild patch queue from patch-queue branch added patches: + - porting/Fix-ipc-chromium-on-kFreeBSD-and-Hurd.patch + + [ Guido Günther ] + * [455bfe7] New upstream version 17.0.8 + + -- Guido Günther Tue, 20 Aug 2013 16:12:17 +0200 + +icedove (17.0.7-1) unstable; urgency=low + + * [b8fd345] Imported Upstream version 17.0.7 + * [3133999] rebuild patch queue from patch-queue branch + modified patches: + - porting/Don-t-hardcode-page-size-on-ia64-sparc-or-mipsel.patch + * [3332f92] lintian: change url to version control system + * [534e2d1] linitan: bump up standards version to 3.9.4 + * [2b511d2] lintian: remove obsolete thunderbird dependency in + iceowl-extension + * [2081e7e] lintian: add Keywords to icedove desktop file + * [7f8333c] lintian: mask minus signs in manpage with a backslash + + -- Christoph Goehre Sun, 30 Jun 2013 18:46:16 -0400 + +icedove (17.0.5-2) unstable; urgency=low + + [ Guido Günther ] + * [4c7a88a] Install calendar-google-provider to /u/s/xul-ext + (Closes: #638480) + * [4c97096] Move calendar-timezones to /u/s/xul-ext (Closes: #638481) + * [e9d0085] Move arch indep parts to common-install-indep + + [ Carsten Schoenert ] + * [40d68d5] Fix build error on IA64 and Sparc + * [59939c3] manpage: add example section and convert to UTF-8 + * [10647cf] fixing build failure depended on python-2.7 changes + + [ Christoph Goehre ] + * [0a7bb8b] create links for extension in + /usr/share/mozilla/extensions/APPID + * [5047e6b] remove + icedove/save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + (Closes: #695323) + + -- Christoph Goehre Sat, 18 May 2013 17:53:21 -0400 + +icedove (17.0.5-1) experimental; urgency=low + + [ Guido Günther ] + * [894ea6d] Include all needed libs to link against icedove's libxpcom + (Closes: #477747) + + [ Carsten Schoenert ] + * [6e00625] Point "Help->What's new" to the Debian Wiki (Closes: #570577) + + [ Christoph Goehre ] + * [4766bc9] replace icon in searchplugin (bing, twitter) with download url + * [e3dc726] Imported Upstream version 17.0.5 + + -- Christoph Goehre Sat, 13 Apr 2013 12:19:06 -0400 + +icedove (17.0.4-1) experimental; urgency=low + + [ Guido Günther ] + * [9ed54cb] Add Homepage + * [bd41337] Add X-Debian-Homepage + + [ Carsten Schoenert ] + * [1fba87f] New patch + fix-function-nsMsgComposeAndSend-to-to-respect-Replo.patch fix function + nsMsgComposeAndSend to respect ReploToSend + Thanks to Emilio Pozuelo Monfort for the patch (Closes: #565903) + + [ Christoph Goehre ] + * [7a1071b] update debug section in icedove manpage (Closes: #698163) + * [017f5b5] Imported Upstream version 17.0.4 (Closes: #702927) + * [7c35529] compress debian packages with xz + + -- Christoph Goehre Wed, 13 Mar 2013 19:00:07 -0400 + +icedove (17.0.2-1) experimental; urgency=low + + * [8911b88] Finally set Christoph as Maintainer. + Thanks for your work Alexander. + * [d456018] parallel build: Use number or available cores by default + * [daeee47] Don't refer to paths containing thunderbird (Closes: #486617) + * [52a202a] New upstream version 17.0.2 + * [fa07537] Allow webrtc to build on more architectures. + Thanks to Mike Hommey and Christoph Göhre + + -- Guido Günther Fri, 11 Jan 2013 17:37:46 +0100 + +icedove (17.0.2-1~1) experimental; urgency=low + + * [8911b88] Finally set Christoph as Maintainer. Thanks for your work + Alexander. + * [d456018] parallel build: Use number or available cores by default + * [daeee47] Don't refer to paths containing thunderbird (Closes: #486617) + * [52a202a] New upstream version 17.0.2 + * [fa07537] Allow webrtc to build on more architectures. + Thanks to Mike Hommey and Christoph Göhre + + -- Guido Günther Fri, 11 Jan 2013 17:35:22 +0100 + +icedove (17.0-1) experimental; urgency=low + + [ Christoph Goehre ] + * [0b8ac79] replace transitional depens ttf-lyx with fonts-lyx + (Closes: #676505) + * [4473d67] fix typo in calendar-google-provider description + * [b3a57c0] rebuild patch queue from patch-queue branch + added patches: + porting/Another-fix-to-build-ipc-code-on-GNU-hurd-and-kfreeb.patch + + [ Jens Reyer ] + * [c0e30b6] clarify the relation between iceowl, lightning and sunbird + (Closes: #686206) + + [ Guido Günther ] + * [394b6a1] New upstream version 17.0 + * [a17c23f] Update patches. + The thunderbird-3-profile.patch got split into three since it + addresses different issues: + * Strip-version-number.patch + * Icedove-branding.patch + * Move-profile.patch + * [01eef04] Don't overwrite DEB_BUILD_OPTIONS + and drop dependency on essential package + + [ Ritesh Raj Sarraf ] + * [1ab9095] Add parallel build support + + -- Guido Günther Sat, 24 Nov 2012 19:26:19 +0100 + +icedove (16.0.2-1) experimental; urgency=low + + [ Christoph Goehre ] + * [e94445f] cleanup source.filer file + * [33b9f4c] Imported Upstream version 12.0.1 + + [ Guido Günther ] + * [88a39e3] watch: only look for two digit versions since 3.1.20 lacks the + source/ dir + * [eb4f5c3] New upstream version 14.0 + * [b451442] Update patches for 14.0 + obsolete patches: + Avoid-libxpcom-being-excluded-from-linked-libraries-.patch + Bug-515232-Try-getting-general.useragent.locale-as-a.patch + Bug-696636-Block-OpenGL-1-drivers-explicitly-to-stee.patch + Bug-710972-Define-G_VARIANT_TYPE_STRING_ARRAY-when-b.patch + Bug-722127-Bump-required-libvpx-version-to-1.0.0.-r-.patch + Bug-728136-Port-bug-528687-to-comm-central.patch + Bug-728229-Allow-to-build-with-system-python-ply-lib.patch + Bug-729817-Allow-the-Nouveau-driver-with-Mesa-8.0.1-.patch + Bug-729817-Block-the-Nouveau-3D-driver-as-it-s-insta.patch + Bug-734335-Only-build-SPS-on-supported-platforms.patch + Revert-investigation-patch-for-bug-621446.patch + Bug-698923-Don-t-require-16-bytes-alignment-for-VMFr.patch + Bug-711353-Add-support-for-GNU-kFreeBSD-and-GNU-Hurd.patch + modified patches: + Add-another-preferences-directory-for-applications-p.patch + Do-build-time-detection-of-2-bytes-wchar_t-and-char1.patch + Don-t-build-example-component.patch + Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch + Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch + Gross-workaround-to-avoid-installing-test-idl-and-in.patch + Ignore-system-libjpeg-libpng-and-zlib-version-checki.patch + stop-configure-if-with-system-bz2-was-passed-but-no-.patch + Allow-.js-preference-files-to-set-locked-prefs-with-.patch + Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + Bug-720682-Don-t-crash-an-app-using-libxul-because-o.patch + Include-cstdlib-in-gfx-angle-src-compiler-Types.h-fo.patch + Link-libldap-against-libpthread.patch + Load-dependent-libraries-with-their-real-path-to-avo.patch + Properly-launch-applications-set-in-HOME-.mailcap.patch + Remove-the-js-shell-from-the-build-directory-during-.patch + fix-branding-in-migration-wizard-and-the-addon-manag.patch + fix-installdir.patch + save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + thunderbird-3-profile.patch + Change-extension-s-name-to-Iceowl.patch + Add-xptcall-support-for-SH4-processors.patch + Allow-ipc-code-to-build-on-GNU-hurd.patch + Allow-ipc-code-to-build-on-GNU-kfreebsd.patch + Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + Disable-optimization-on-alpha-for-the-url-classifier.patch + Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + Don-t-auto-disable-extensions-in-system-directories.patch + Set-javascript.options.showInConsole.patch + Allow-to-build-against-system-libffi.patch + * [907be61] Make sure we only match the generated files. Patch taken from + iceowl 1.5 package + * [772b9a0] Make system cairo work again. Patch taken from iceweasel. + * [0b6a8b3] Update + Add-another-preferences-directory-for-applications-p.patch to new method + name. + * [3395f21] Don't use APP_UA_NAME in application.ini since the replacement + fails and isn't needed. + * [6dea9fb] New upstream version 16.0.1 + * [664153d] Add README.source describing howto import new upstream versions + * [a653bd0] Adjust to upstream changes: + * stop-configure-if-with-system-bz2-was-passed-but-no-.patch + * [f088193] Add a proper patch header + * to Fix-build-failure-for-header.py-and-typelib.py.patch + so we don't lose the patch description. + * [268cca5] New upstream version 16.0.2 + * [a453a92] Rediff patches - no content changes + * [263bbeb] BUILD_OFFICIAL is now MOZILLA_OFFICIAL + * [a798e6b] Install dependentlibs.list to fix dlopen() of XPCOM + + [ Ritesh Raj Sarraf ] + * [f871ba9] Refresh patches. + Droped patches: + * fixes/Remove-the-js-shell-from-the-build-directory-during-.patch + * porting/Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + * fixes/Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + * debian-hacks/Make-sure-we-only-match-the-generated-files.patch + * [9b02e4c] Refreshed patches for TB16 + * [dc83dd7] Fix build failure for header.py and typelib.py. + Earlier builds were passing the --cachedir option + Sometime during TB15, Mozilla changed that to variables. + This change was not passing the --cachedir option, hence the build + failure. This patch just hacks the build by passing the cachedir option + manually + + -- Guido Günther Tue, 30 Oct 2012 22:05:49 +0100 + +icedove (11.0-1) experimental; urgency=low + + * [ffb767a] Imported Upstream version 11.0 (Closes: #663897) + * [2b75f48] relax optimize to -O1 on sparc to fix FTBFS + * [fa9a610] update build dependencies (Thanks to Mike) (Closes: #666722) + * [5b552f2] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-710972-Define-G_VARIANT_TYPE_STRING_ARRAY-when-b.patch + - fixes/Bug-734335-Only-build-SPS-on-supported-platforms.patch + - fixes/Revert-investigation-patch-for-bug-621446.patch + modified patches: + - fixes/Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - icedove/save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + obsolete patches (fixed upstream): + - debian-hacks/Fix-tracejit-to-build-against-nanojit-headers-in-dis.patch + - debian-hacks/Install-missing-nanojit-and-.tbl-headers-from-js-src.patch + - fixes/Bug-710268-Sign-NSS-libraries-only-when-they-exist-r.patch + - fixes/Fixup-bz-730195-for-Linux-ARM-use-_URC_FOREIGN_EXCEP.patch + - fixes/mozilla-config.h-was-renamed-js-confdefs.h-in-js-src.patch + - fixes/Remove-generated-files-from-js-src-during-make-distc.patch + - porting/Bug-703531-Fix-ARMAssembler-getOp2RegScale-on-ARMv5.patch + - porting/Bug-703534-Fix-build-failure-on-platforms-without-YA.patch + - porting/Bug-703842-Avoid-R_SPARC_WDISP22-relocation-in-Tramp.patch + + -- Christoph Goehre Wed, 18 Apr 2012 18:36:31 +0200 + +icedove (10.0.3-2) unstable; urgency=low + + [ Christoph Goehre ] + * [1223204] bump up standards version to 3.9.3 + + [ Guido Günther ] + * [7d7b5f5] Don't put symlinks into iceowl/extensions + + [ Christoph Goehre ] + * [94c07e5] update copyright file + * [88098a8] GNOME 3 integration: Use GIO instead of deprecated GnomeVFS. + Thanks to Michael Biebl (Closes: #658688) + * [9543fd1] add build depends python + * [ec62dcb] build a debug package, if DEB_BUILD_OPTIONS contains 'debug' + + -- Christoph Goehre Tue, 27 Mar 2012 18:21:52 +0200 + +icedove (10.0.3-1) unstable; urgency=low + + [ Christoph Goehre ] + * [ee4b49c] adjust source.filter list + * [b5f3064] New Upstream version 10.0.3 (Closes: #661115, #663897) + * [fd35da8] build against system python-ply + * [4964bb2] build against system libreadline + * [5412685] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/Don-t-build-example-component.patch + - fixes/Bug-515232-Try-getting-general.useragent.locale-as-a.patch + - fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch + - fixes/Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + - fixes/Bug-696636-Block-OpenGL-1-drivers-explicitly-to-stee.patch + - fixes/Bug-710268-Sign-NSS-libraries-only-when-they-exist-r.patch + - fixes/Bug-720682-Don-t-crash-an-app-using-libxul-because-o.patch + - fixes/Bug-722127-Bump-required-libvpx-version-to-1.0.0.-r-.patch + - fixes/Bug-728136-Port-bug-528687-to-comm-central.patch + - fixes/Bug-728229-Allow-to-build-with-system-python-ply-lib.patch + - fixes/Bug-729817-Allow-the-Nouveau-driver-with-Mesa-8.0.1-.patch + - fixes/Bug-729817-Block-the-Nouveau-3D-driver-as-it-s-insta.patch + - fixes/Fixup-bz-730195-for-Linux-ARM-use-_URC_FOREIGN_EXCEP.patch + - fixes/Include-cstdlib-in-gfx-angle-src-compiler-Types.h-fo.patch + - fixes/Link-libldap-against-libpthread.patch + - fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch + - porting/Bug-703534-Fix-build-failure-on-platforms-without-YA.patch + - prefs/Don-t-auto-disable-extensions-in-system-directories.patch + (Closes: #648712) + modified patches: + - debian-hacks/Install-missing-nanojit-and-.tbl-headers-from-js-src.patch + - fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch + - fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - porting/Allow-ipc-code-to-build-on-GNU-hurd.patch + - porting/Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + - prefs/Set-javascript.options.showInConsole.patch + obsolete patches (fixed upstream): + - debian-hacks/get-ride-of-default-debian-hardering-options.patch + - iceowl/Install-calendar-timezones-mode-0644-not-0755.patch + - porting/Add-mips-hppa-ia64-s390-and-sparc-defines-in-ipc-chr.patch + - porting/Bug-680917-Use-a-pool-size-of-16kB-on-ia64-for-bump-.patch + - porting/Bug-694533-LDRH-STRH-LDRSB-STRSB-are-supported-on-AR.patch + - porting/Bug-696393-Reimplement-NS_InvokeByIndex-in-C-on-S390.patch + - porting/Revert-bz-164580.patch + + [ Michael Biebl ] + * [c0a3ee2] Install chrome.manifest file to ensure the various components + (like GNOME support module) are correctly loaded. (Closes: #658479) + + [ Christoph Goehre ] + * [02687fc] adjust install/link files for new upstream + * [b551d6a] omni.jar was renamed to omni.ja + + -- Christoph Goehre Sat, 24 Mar 2012 23:10:47 +0100 + +icedove (9.0.1-1) experimental; urgency=low + + * [e2002b8] New Upstream version 9.0.1 (Closes: #653266, #653556) + * [9c14e8b] replace dfsg cleanup script with Mike's repack.py + * [2a34bd8] rebuild patch queue from patch-queue branch + added patches: + - porting/Bug-698923-Don-t-require-16-bytes-alignment-for-VMFr.patch + - porting/Bug-703531-Fix-ARMAssembler-getOp2RegScale-on-ARMv5.patch + - porting/Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + - porting/Bug-703842-Avoid-R_SPARC_WDISP22-relocation-in-Tramp.patch + - porting/Bug-711353-Add-support-for-GNU-kFreeBSD-and-GNU-Hurd.patch + - porting/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + * [03ed85d] remove Build-Depends python-ply, it's shipped and searched in + mozilla/other-licenses + + -- Christoph Goehre Tue, 24 Jan 2012 19:13:30 +0100 + +icedove (8.0-2) unstable; urgency=low + + * Upload to unstable + * [b02c21d] fix crash in xpcshell on sparc linux + + -- Christoph Goehre Wed, 04 Jan 2012 18:09:14 +0100 + +icedove (8.0-1) experimental; urgency=low + + [ Guido Günther ] + * [17a7a80] Add x-scheme-handler/mailto to. Thanks to Michael Biebl for the + patch (Closes: #645556) + + [ Christoph Goehre ] + * [4066038] New Upstream version 8.0 + * [aa9105e] update autoconfig for e-mail accounts from riseup.net + (Closes: #648907) + * [decc1ac] fix wrong description text in iceowl-extension (Closes: #649073) + * [c97dda6] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/Statically-link-jemalloc-to-all-programs.patch + - fixes/Bug-670719-Only-add-DENABLE_JIT-1-to-CXXFLAGS-if-any.patch + - fixes/Bug-680642-Don-t-enable-YARR-JIT-on-MIPS-as-the-impl.patch + - porting/Bug-589735-Allocate-memory-with-an-address-with-high.patch + - porting/Bug-589735-Allow-static-JS-strings-to-be-turned-off-.patch + - porting/Bug-680917-Use-a-pool-size-of-16kB-on-ia64-for-bump-.patch + - porting/Bug-694533-LDRH-STRH-LDRSB-STRSB-are-supported-on-AR.patch + - porting/Bug-696393-Reimplement-NS_InvokeByIndex-in-C-on-S390.patch + - porting/Revert-bz-164580.patch + + -- Christoph Goehre Sun, 20 Nov 2011 19:58:37 +0100 + +icedove (8.0~b4-2) experimental; urgency=low + + [ Guido Günther ] + * [5d043ec] Install calendar extension + * [07feb49] Change extension's name to Iceowl + * [c597212] iceowl-extension: don't ignore errors in postinst + * [30ec51d] Disable patch numbers + * [73f80ed] Don't install timezones file mode 0755 + + [ Christoph Goehre ] + * [0fa13be] remove duplicate build depends unzip + + -- Christoph Goehre Tue, 08 Nov 2011 22:29:19 +0100 + +icedove (8.0~b4-1) experimental; urgency=low + + * [4e90977] New Upstream Version 8.0b4 (Closes: #591771, #638161) + * [955423a] replace duplicate .so files in icedove and icedove-dev with + symlinks + * [6ffb325] remove obsolete cdbs rule to extract tarball + * [f98837b] build against libnotify4 (libnotify-dev >= 0.7)(Closes: #637194) + * [66f72bc] Build-depend on libjpeg-dev instead of libjpeg62-dev + * [8af21a2] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/get-ride-of-default-debian-hardering-options.patch + - fixes/packager-fails-when-MOZILLA_DIR-is-a-relative-path.patch + modified patches: + - icedove/save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + obsolete patches (fixed upstream): + - debian-hacks/bzXXX-ftbfs-static-with-system-hunspell.patch + - fixes/Bug-626035-Modify-the-way-arm-compiler-flags-are-set.patch + - fixes/Bug-639554-Install-sdk-bin-with-make-install.-r-bsme.patch + - fixes/Bug-640494-part-1-Get-rid-of-STL-algorithm-use-in-js.patch + - fixes/Bug-640494-part-2-Use-bitwise-operations-in-JSDOUBLE.patch + - fixes/Bug-652139-Use-an-integer-type-in-DocumentViewerImpl.patch + - fixes/Bug-662224-Define-NS_ATTR_MALLOC-and-NS_WARN_UNUSED_.patch + - fixes/Bug-668906-Do-not-call-openUnsharedDatabase-with-a-n.patch + - fixes/Bug-671564-Initialize-NS_XPCOM_LIBRARY_FILE-from-NS_.patch + - fixes/Disable-building-embedded-libjpeg-turbo-when-buildin.patch + - porting/Allow-to-build-yuv_convert_arm.cpp-on-armv4t.patch + - porting/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch + - porting/Fix-FTBFS-in-IPC-on-Linux-PPC.patch + - porting/Fix-FTBFS-in-xpcom-base-on-armv4t.patch + - system-libs/libxul-linking-error-with-enable-system-ffi-and-stat.patch + * [5f6e50f] add Japanese translation for desktop menu entry. Thanks to + Hideki Yamane (Closes: #640679) + * [591f76c] add build depends unzip + * [0af372f] remove upstream integrated CFLAGS and CXXFLAGS '-g -std=gnu++0x' + * [a4c8b2f] adjust install and links file to new upstream + * [332b7a8] Revert "override libtheora embedded-library error" no longer + needed + + -- Christoph Goehre Sat, 05 Nov 2011 20:31:29 +0100 + +icedove (5.0-2) experimental; urgency=low + + * [7f92927] fix FTBFS on ia64: use gcc with -O2 instead of -Os + * [b6b8dea] Disable methodjit on armel + * [5b45336] remove obsolete conffiles with dpkg-maintscript-helper + (Closes: #636819) + * [868cfa3] rebuild patch queue from patch-queue branch + added patches: + - porting/Allow-ipc-code-to-build-on-GNU-hurd.patch - fix building on + GNU/hurd - Thanks to Pino Toscano + + -- Christoph Goehre Sun, 07 Aug 2011 15:35:09 +0200 + +icedove (5.0-1) experimental; urgency=low + + * New Upstream Version (Closes: #632037) + * [98c5a8f] build against libffi and libvpx + * [52dff12] build javascript lib as shared library + * [6f1c24d] build against mozilla png library + * [9e16beb] c-sdk moved from directory/sdks/c-sdk to ldap/sdks/c-sdk + * [57763a0] override libtheora embedded-library error + * [fc71b62] adjust install/links files for new upstream version + * [6e83a58] Revert "lintian: override ancient-libtool warning" override no + longer needed + * [d65b463] change hardcoded list of non-Linux build depends into linux-any + (Closes: #634301) + * [ff3a8f3] remove file compare in build run + * [a21efa9] add branding for icedove 5.0 + * [7023939] update porting/Fix-FTBFS-in-xpcom-base-on-armv4t.patch - fix + building on armhf + + -- Christoph Goehre Wed, 03 Aug 2011 18:25:17 +0200 + +icedove (3.1.11-1) unstable; urgency=high + + * New Upstream Version + - MFSA 2011-19 aka CVE-2011-2364, CVE-2011-2365, CVE-2011-2374, + CVE-2011-2376: + Miscellaneous memory safety hazards (rv:3.0/1.9.2.18) + - MFSA 2011-20 aka CVE-2011-2373: Use-after-free vulnerability when + viewing XUL document with script disabled + - MFSA 2011-21 aka CVE-2011-2377: Memory corruption due to + multipart/x-mixed-replace images + - MFSA 2011-22 aka CVE-2011-2371: Integer overflow and arbitrary code + execution in Array.reduceRight() + - MFSA 2011-23 aka CVE-2011-0083, CVE-2011-0085, CVE-2011-2363: + Multiple dangling pointer vulnerabilities + - MFSA 2011-24 aka CVE-2011-2362: Cookie isolation error + * [2a82ce8] DM-Upload-Allowed is superfluous since I'm DD + + -- Christoph Goehre Sun, 26 Jun 2011 10:35:31 +0200 + +icedove (3.1.10-2) unstable; urgency=low + + * [de81b7f] remove obsolete build depends libxp-dev (Closes: #623668) + * [633782d] change DEB_HOST_MULTIARCH back to DEB_HOST_GNU_TYPE and + downgrade sqlite version (Closes: #627598) + + -- Christoph Goehre Mon, 06 Jun 2011 20:53:54 +0200 + +icedove (3.1.10-1) unstable; urgency=high + + * New Upstream Version (Closes: #625207) + - MFSA 2011-12 aka CVE-2011-0069, CVE-2011-0070, CVE-2011-0072, + CVE-2011-0074, CVE-2011-0075, CVE-2011-0077, + CVE-2011-0078, CVE-2011-0080, CVE-2011-0081: + Miscellaneous memory safety hazards (rv:2.0.1/ 1.9.2.17/ 1.9.1.19) + - MFSA 2011-16 aka CVE-2011-0071: Directory traversal in resource: protocol + * [78e0217] build against system libbz2 + * [e6af761] build against system libpng + * [4b57c30] build against system libhunspell + * [937f0bd] double check to build against most system libraries + * [d6de723] rebuild patch queue from patch-queue branch + added patches (Closes: #624969): + - 0072-fix-building-with-gcc-4.6-Add-constructor-to-placate.patch + - 0073-fix-building-with-gcc-4.6-os2.cc-missing-include-cst.patch + - 0074-Add-constructor-for-nsCaseInsensitiveStringComparato.patch + - 0075-Add-constructor-for-nsXULAppInfo-which-inherits-from.patch + - 0076-Add-constructor-for-GTKEmbedDirectoryProvider.patch + modified patches: + - 0056-Disable-APNG-support-when-system-libpng-doesn-t-supp.patch + obsolete patches (fixed upstream): + - 0051-Do-exec-instead-of-uselessly-forking-in-xulrunner-la.patch + - 0072-Add-support-for-libnotify-0.7.patch + * [e190ef1] bump up standards version to 3.9.2 (change DEB_HOST_GNU_TYPE to + DEB_HOST_MULTIARCH) + + -- Christoph Goehre Tue, 10 May 2011 20:03:04 +0200 + +icedove (3.1.9-2) unstable; urgency=low + + * Upload to unstable + * [ace3b6f] rebuild patch queue from patch-queue branch + added patches: + - 0072-Add-support-for-libnotify-0.7.patch + * [910f213] use DEP5 for copyright file + * [3ae4c8b] set global section to 'mail' + * [42c9c89] icedove.1: icedove is derived from Thunderbird instead of + Mozilla suite + + -- Christoph Goehre Sat, 02 Apr 2011 09:43:04 +0200 + +icedove (3.1.9-1) experimental; urgency=low + + * New Upstream Version + - MFSA 2011-01 aka CVE-2011-0053, CVE-2011-0062: Miscellaneous memory + safety hazards (rv:1.9.2.14/ 1.9.1.17) + - MFSA 2011-08 aka CVE-2010-1585: ParanoidFragmentSink allows javascript: + URLs in chrome documents + - MFSA 2011-09 aka CVE-2011-0061: Crash caused by corrupted JPEG image + * [699536a] rebuild patch queue from patch-queue branch + added patches: + - 0069-save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + (Closes: #505875) + - 0070-News-article-is-empty-if-selected-during-download-fr.patch + (Closes: #487494) + - 0071-restore-icedove-on-login-by-session-management.patch + (Closes: #403458) + modified patches: + - 0003-no_dynamic_nss_softokn.patch + - 0010-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0030-Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch + * [98d8ac0] c-sdk move to sdks/c-sdk - adjust + debian/{copyright,remove.nonfree,rules} + + -- Christoph Goehre Wed, 09 Mar 2011 20:21:59 +0100 + +icedove (3.1.7-1) experimental; urgency=low + + * New Upstream Version (Closes: #606977) + - MFSA 2010-74 aka CVE-2010-3776, CVE-2010-3777: Miscellaneous memory + safety hazards (rv:1.9.2.13/ 1.9.1.16) + - MFSA 2010-75 aka CVE-2010-3769: Buffer overflow while line breaking + after document.write with long string + - MFSA 2010-78 aka CVE-2010-3768: Add support for OTS font sanitizer + * [46e3e8a] rebuild patch queue from patch-queue branch + added patches: + - 0068-fix-forwarding-of-Simple-HTML-email.patch + obsolete patches (fixed upstream): + - 0017-Implement-sync_instruction_memory-for-sparc-linux.patch + - 0059-Fix-startup-problem-with-symlinked-components-e.g.-e.patch + * [9fcce0c] add license info for gfx/ots + + -- Christoph Goehre Mon, 13 Dec 2010 17:59:50 +0100 + +icedove (3.1.6-1) experimental; urgency=low + + * New Upstream Version (Closes: #601334) + - MFSA 2010-64 aka CVE-2010-3175, CVE-2010-3176: Miscellaneous memory + safety hazards (rv:1.9.2.11/ 1.9.1.14) + - MFSA 2010-65 aka CVE-2010-3179: Buffer overflow and memory corruption + using document.write + - MFSA 2010-66 aka CVE-2010-3180: Use-after-free error in nsBarProp + - MFSA 2010-67 aka CVE-2010-3183: Dangling pointer vulnerability in + LookupGetterOrSetter + - MFSA 2010-69 aka CVE-2010-3178: Cross-site information disclosure via + modal calls + - MFSA 2010-71 aka CVE-2010-3182: Unsafe library loading vulnerabilities + - MFSA 2010-73 aka CVE-2010-3765: Heap buffer overflow mixing + document.write and DOM insertion + * [270fd51] rebuild patch queue from patch-queue branch + added patches: + - 0069-Use-errno.ENOENT-instead-of-2-in-JarMaker.py.patch + modified patches: + - 0009-fix-branding-in-migration-wizard-and-the-addon-manag.patch + * [24421f4] bump build depends for libnspr4-dev, libnss3-dev and + libsqlite3-dev + + -- Christoph Goehre Wed, 10 Nov 2010 07:11:17 +0100 + +icedove (3.1.4-1) experimental; urgency=low + + * New Upstream Version + + -- Christoph Goehre Sat, 18 Sep 2010 18:25:37 +0200 + +icedove (3.1.3-1) experimental; urgency=low + + * New Upstream Version + - MFSA 2010-49 aka CVE-2010-3169: Miscellaneous memory safety hazards + (rv:1.9.2.9/ 1.9.1.12) + - MFSA 2010-50 aka CVE-2010-2765: Frameset integer overflow vulnerability + - MFSA 2010-51 aka CVE-2010-2767: Dangling pointer vulnerability using DOM + plugin array + - MFSA 2010-53 aka CVE-2010-3166: Heap buffer overflow in + nsTextFrameUtils::TransformText + - MFSA 2010-54 aka CVE-2010-2760: Dangling pointer vulnerability in + nsTreeSelection + - MFSA 2010-55 aka CVE-2010-3168: XUL tree removal crash and remote code + execution + - MFSA 2010-56 aka CVE-2010-3167: Dangling pointer vulnerability in + nsTreeContentView + - MFSA 2010-57 aka CVE-2010-2766: Crash and remote code execution in + normalizeDocument + - MFSA 2010-59 aka CVE-2010-2762: SJOW creates scope chains ending in + outer object + - MFSA 2010-61 aka CVE-2010-2768: UTF-7 XSS by overriding document charset + using type attribute + - MFSA 2010-62 aka CVE-2010-2769: Copy-and-paste or drag-and-drop into + designMode document allows XSS + - MFSA 2010-63 aka CVE-2010-2764: Information leak via XMLHttpRequest + statusText + * [9a03eb1] rebuild patch queue from patch-queue branch + added patches: + - 0060-fix-FTBFS-on-hurd.patch (Closes: #595665) + - 0061-Enable-x64-JIT-backend-by-default.patch + - 0062-Fix-unaligned-reads-in-qcms.patch + - 0063-Import-js-src-nanojit-njcpudetect.h.patch + - 0064-Use-clz-on-android-even-for-armv5-target.patch + - 0065-Fix-ARM-verbose-assembly-output-for-BLX.patch + - 0066-Get-rid-of-blx_lr_bug.patch + - 0067-Avoid-some-ARM-CPU-arch-related-runtime-tests-depend.patch + - 0068-ARMv4T-support-for-nanojit.patch + + -- Christoph Goehre Tue, 14 Sep 2010 13:41:19 +0200 + +icedove (3.1.2-2) experimental; urgency=low + + * [e1435dc] rebuild patch queue from patch-queue branch + added patches: + - 0060-Fix-startup-problem-with-symlinked-components-e.g.-e.patch + (Closes: #592531) + modified patches: + - 0048-Add-nanojit-support-for-ARMv4T.patch - Fix FTBFS on armel + + -- Christoph Goehre Sat, 21 Aug 2010 14:51:03 +0200 + +icedove (3.1.2-1) experimental; urgency=low + + * New Upstream Version (Closes: #589666, #591899) + - MFSA 2010-34 aka CVE-2010-1211, CVE-2010-1212: Miscellaneous memory + safety hazards (rv:1.9.2.7/ 1.9.1.11) + - MFSA 2010-38 aka CVE-2010-1215: Arbitrary code execution using SJOW and + fast native function + - MFSA 2010-39 aka CVE-2010-2752: nsCSSValue::Array index integer overflow + - MFSA 2010-40 aka CVE-2010-2753: nsTreeSelection dangling pointer remote + code execution vulnerability + - MFSA 2010-41 aka CVE-2010-1205: Remote code execution using malformed PNG + image + - MFSA 2010-42 aka CVE-2010-1213: Cross-origin data disclosure via Web + Workers and importScripts + - MFSA 2010-43 aka CVE-2010-1207: Same-origin bypass using canvas context + - MFSA 2010-44 aka CVE-2010-1210: Characters mapped to U+FFFD in 8 bit + encodings cause subsequent character to vanish + - MFSA 2010-46 aka CVE-2010-0654: Cross-domain data theft using CSS + - MFSA 2010-47 aka CVE-2010-2754: Cross-origin data leakage from script + filename in error messages + * [6b9976e] rebuild patch queue from patch-queue branch + modified patches: + - 0010-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0015-Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch + - 0018-Work-around-FTBFS-on-mips-by-disabling-TLS-support.patch + - 0034-Fix-compiler-errors-with-g-4.4-with-std-gnu-0x.patch + - 0045-Expose-fullpath-from-nsIPluginTag.patch + - 0047-Use-syscall-for-mmap-and-munmap-and-disable-ncpus-in.patch + - 0050-Set-javascript.options.showInConsole.patch + - 0057-Allow-to-build-against-system-libffi.patch + - 0058-Ignore-system-libjpeg-libpng-and-zlib-version-checki.patch + - 0059-Disable-APNG-support-when-system-libpng-doesn-t-supp.patch + * [16b0e7e] fix FTBFS on kfreebsd-* and hurd-i386 by passing + --disable-necko-wifi to configure (Closes: #589476) + * [15a02c7] bump up standards version to 3.9.1 + + -- Christoph Goehre Fri, 13 Aug 2010 12:18:21 +0200 + +icedove (3.1-1) experimental; urgency=low + + * New Upstream Version + * [124a316] add additional build depends libnotify-dev + * [5ed6a72] adjust branding for Icedove 3.1 + * [bed8969] install further js files shipped with Icedove 3.1 + * [02456e6] replace blue icedove icons with green version + * [036921f] regenerate patch queue for 3.1 Icedove release + * [a7fa393] build with system ffi + * [d8650f7] ship icedove svg file for low resolution icons too + * [7718c55] bump Standards Version to 3.9.0 and downgrade Conflicts to + Breaks + * [9621fc6] lintian: override ancient-libtool warning + + -- Christoph Goehre Sat, 17 Jul 2010 17:19:58 +0200 + +icedove (3.0.5-1) unstable; urgency=low + + * New Upstream Version + - MFSA 2010-25 aka CVE-2010-1121: Re-use of freed object due to scope + confusion + - MFSA 2010-26 aka CVE-2010-1200, CVE-2010-1201, CVE-2010-1202: Crashes + with evidence of memory corruption (rv:1.9.2.4/ 1.9.1.10) + - MFSA 2010-29 aka CVE-2010-1196: Heap buffer overflow in + nsGenericDOMDataNode::SetTextInternal + - MFSA 2010-30 aka CVE-2010-1199: Integer Overflow in XSLT Node Sorting + * [9774410] rebuild patch queue from patch-queue branch + added patches: + - 0045-Fix-misalignments-in-help-command-line.patch + - 0046-Fix-misalignments-in-help-command-line.patch + - 0047-KDE-Gnome-startup-notification-not-disappearing-when.patch + - 0048-KDE-Gnome-startup-notification-not-disappearing-for-.patch + - 0049-Use-char16_t-when-available-and-when-it-is-don-t-tes.patch + - 0050-Fix-compiler-errors-with-g-4.4-with-std-gnu-0x.patch + - 0051-Add-xptcall-support-for-SH4-processors.patch + modified patches: + - 0028-Avoid-crashing-when-trying-to-kill-a-nsProcess-that-.patch + obsolete patches (fixed upstream): + - 0021-Avoid-creating-the-updates-directory-when-update-ser.patch + - 0035-Fix-stack-alignment-on-function-calls-in-JIT-on-ARM.patch + * [3b98c84] avoid unneeded package depends by building with + '-Wl,--as-needed' + * [0067020] Build with -std=gnu++0x + * [72d4300] add pkg-config file for icedove (Closes: #577740) + * [e6af35d] enlarge package description with specification from icedove 2.0 + (Closes: #565887) + * [ef0bc10] add support for new Debian arch: powerpcspe (Closes: #586100) - + thanks to Sebastian Andrzej Siewior + * [5ae6099] use high bandwidth server in watch file to get new upstream + release + * [5e6d641] remove obsolete build depends libkrb5-dev + * [8ed7848] remove unused DEBIAN_VERSION vars in rules file + * [9959bd5] DEB_HOST_GNU_TYPE, DEB_BUILD_GNU_TYPE and DEB_BUILD_ARCH are + defined by cdbs too + * [9f6c088] Fix misalignments in --help command line + + -- Christoph Goehre Sat, 19 Jun 2010 23:26:55 +0200 + +icedove (3.0.4-3) unstable; urgency=low + + * [4026b50] icedove-dev need depend on libnspr4-dev and libnss3-dev + (Closes: #455725) + * [1fee936] don't run configure with --enable-optimize and --disable- + optimize if DEB_BUILD_OPTIONS contains noopt + * [02c0ea3] ship account autoconfig file for Riseup Networks (riseup.net) + (Closes: #577616) + * [e710d08] suggest libgssapi-krb5-2 for Kerberos login possibility + * [7609291] build a shared icedove binary. This avoid crashes because of + mixed functions from system and icedove itself (e.g. str2charray from + libldap_r-2.4.so.2 and libldap60.so). (Closes: #578916) + * [68f4b49] downgrade gnome stuff from Recommends to Suggests + (Closes: #579714) + * [bcff10b] install mailViews.dat into usr/share/icedove/defaults/messenger + + -- Christoph Goehre Fri, 14 May 2010 22:21:32 +0200 + +icedove (3.0.4-2) unstable; urgency=low + + * [57f0a8b] remove icedove-3.0 transitional package (Closes: #576741) + * [8008231] remove wrong mime types in desktop file + * [a12edde] set StartupWMClass in desktop file to Icedove-bin + * [7512224] extend package description of icedove, icedove-dev and + icedove-dbg + * [7e725b9] fix FTBFS on alpha by passing '-Wl,--no-relax' to gcc + * [92d3515] Switch to dpkg-source 3.0 (quilt) format + * [14d5894] rebuild patch queue from patch-queue branch + added patches: + - 0046-add-missing-headers-for-icedove-dev-package.patch (Closes: #577021) + modified patches: + - 0012-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0020-Work-around-FTBFS-on-mips-by-disabling-TLS-support.patch + * [2cdd850] remove obsolete thunderbird 3.0a1pre postinst stuff + * [443f44b] process directory/c-sdk/configure with autoconf too + * [66c2f65] remove obsolete build depends librsvg2-bin and patchutils + + -- Christoph Goehre Sun, 11 Apr 2010 12:44:26 +0200 + +icedove (3.0.4-1) unstable; urgency=low + + [ Guido Günther ] + * [01983a4] Add missing message/rfc822 mime type for eml files + (Closes: #574528) + + [ Christoph Goehre ] + * New Upstream Version fixes: + - MFSA 2010-16 aka CVE-2010-0173, CVE-2010-0174: Crashes with evidence of + memory corruption (rv:1.9.2.2/ 1.9.1.9/ 1.9.0.19) + - MFSA 2010-17 aka CVE-2010-0175: Remote code execution with + use-after-free in nsTreeSelection + - MFSA 2010-18 aka CVE-2010-0176: Dangling pointer vulnerability in + nsTreeContentView + - MFSA 2010-22 aka CVE-2009-3555: Update NSS to support TLS renegotiation + indication + - MFSA 2010-24 aka CVE-2010-0182: XMLDocument::load() doesn't check + nsIContentPolicy + * upload icedove 3 to unstable (Closes: #401848, #422886, #425497, #430644, + #483550, #495522, #501113, #552617, #574188) + * rebuild patch queue from patch-queue branch: + added patches: + - 0044-don-t-remove-xpt-tools.patch + - 0045-Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch + modified patches: + - 0011-fix-branding-in-migration-wizard-and-the-addon-manag.patch + - 0012-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0030-Force-better-nsAutoT-Ptr-Array-buffer-alignment.patch + - 0035-Fix-stack-alignment-on-function-calls-in-JIT-on-ARM.patch + obsolete patches (fixed upstream): + - 0021-Fix-crash-with-SwitchProxy-installed.patch + - 0023-Don-t-remove-build-automationutils.py-on-make-clean.patch + - 0039-Don-t-show-the-SVG-output-option-in-the-print-dialog.patch + * [a7f3529] Revert "disable prefetch service". This bug was already fixed in + 3.0.2 (CVE-2009-4629) and 'network.prefetch-next' has no effect in + icedove. + * [fecc0b4] install versioned build depends instead of checking on build + time + * [4806890] enable building of icedove-dev package + * [412b8ac] be more explicit on installing file into icedove package + * [23b1d4b] depends on newer version of libnspr4-dev and libnss3-dev + * [809c723] lintian: idl files didn't need to be executable + * [ecd284e] lintian: add ${shlibs:Depends} to icedove-dev package + * [da75ee2] replace/remove non-free searchplugin icons and doubtful + origin file in mozilla folder (Closes: #567917) + * [eaf405e] update /usr/lib/icedove/dictionaries symlink to point to + /usr/share/hunspell + * [fe362ba] describe profile renaming on update to icedove 3.0 + (Closes: #566329) + + -- Christoph Goehre Mon, 05 Apr 2010 21:11:42 +0200 + +icedove (3.0.3-1) experimental; urgency=low + + * New Upstream Version fixes: + - missing folders or empty folder pane after updating to version 3.0.2 + * [a69cdfd] rebuild patches from patch-queue: + - additional fix for FTBFS on kfreeBSD + * [e4bffd4] disable prefetch service (Closes: #572789) + * [3838bbe] branding files shouldn't be executable + * [3dc6688] add missing newline in logo license file + + -- Christoph Goehre Sat, 06 Mar 2010 21:48:50 +0100 + +icedove (3.0.2-1) experimental; urgency=low + + * New Upstream Version fixes: + - MFSA 2010-01 aka CVE-2010-0159: Crashes with evidence of memory + corruption (rv:1.9.1.8/ 1.9.0.18) + - MFSA 2010-03 aka CVE-2009-1571: Use-after-free crash in HTML parser + * [1fd705f] install menu file (Closes: #569166) + * [8df3f99] generate desktop files at build process + * [5b0bb84] add icedove branding logos + * [1ef1c10] copyright explanation of icedove artwork (Closes: #406849) + * [6cdc0b0] remove forgotten firefox branding icons (Closes: #567917) + * [cec6a38] swedish translation for desktop file (Closes: #420050) + * [0256328] readd translation for desktop file + * [20311f4] rebuild patches (most patches from Mike Hommey) + - fix FTBFS on kFreeBSD, hppa, mips + - stability patched for mips, alpha, sparc, ppc and arm + - really cleanup build directory on 'make clean/distclean' + - allow intl.locale.matchOS to be modified in user profile + * [0098f90] write manpage for icedove (Closes: #425490, #487493) + * [fbccfaa] no longer suggest libthai0 (Closes: #524436) + * [26d3e39] change suggests from transitional package latex-xft-fonts + to ttf-lyx (Closes: #539535) + * [e24801a] improve desktop file (remove deprecated items and + warnings/errors) + * [68885c4] bump up standards version to 3.8.4 + * [df39ede] use xpm icon in menu file to calm lintian + * [8303887] adjust sqlite version to new upstream dependency + + -- Christoph Goehre Sun, 28 Feb 2010 18:19:13 +0100 + +icedove (3.0.1-2) experimental; urgency=low + + [ Guido Günther ] + * [7ea7367] Explicitly pass build and host type to configure (Closes: + #546011) - thanks to Sven Joachim for the patch + * [7fca9e1] Add back icedove changelog of earlier versions + + [ Christoph Goehre ] + * [72b78cc] Support both - and _ separators in dictionary names - patch from + Reed Loden + * [9a96759] fix branding in migration wizard and the addon manager (Closes: + #565559)- patch from Edward J. Shornock + + -- Christoph Goehre Tue, 02 Feb 2010 20:32:24 +0100 + +icedove (3.0.1-1) experimental; urgency=low + + * New Upstream Version + * [8a2f5dc] define default options for git-import-orig + * [ac65b1b] refresh debian patches + * [851c5dc] rename binary packages to icedove (without version number) + * [6e12d1b] adjust cairo version to 1.8.8 + * [cd7cd6f] moving the old profile dir instead of copy + * [c342380] replace theme directory always by link to /usr/share if we + update to version 3 + * [c88eaa7] expansion of lib{dbusservice,mozgnome,nkgnomevfs}.so didn't work + with dpkg-shlibdeps - lets use the '-e' switch + + -- Christoph Goehre Thu, 21 Jan 2010 20:53:57 +0100 + +icedove (3.0-2) experimental; urgency=low + + * [f07e702] Add Replaces for icedove-gnome-support + * [72e66e7] Fix typo + + -- Guido Günther Fri, 08 Jan 2010 16:05:10 +0100 + +icedove (3.0-1) experimental; urgency=low + + * Final upstream version without any source code changes against RC2 + + [ Guido Günther ] + * [77d611e] Add Vcs-{Git,Browser} + * [ec7ddd6] Move VCS to where they belong + + [ Christoph Goehre ] + * [524d1f5] don't hardcode $MOZ_APP_NAME in Makefile.in file + * [0407ff3] mailclient bin called now $DEB_MOZ_APPLICATION + * [e6040b5] merge icedove-3.0-gnome-support into icedove-3.0 package + * [07417e0] install default theme and components/*.js into + /usr/share/icedove-3.0 + * [3d37478] add missed components files + * [f09cfad] add another preferences directory for applications: + preferences/syspref - thanks to Mike Hommey + * [d92e265] install debian config into /etc/icedove-3.0/pref and link + into defaults/syspref + * [18a886b] disable application update + * [76ea38a] let lockPref() in .js files work - thanks to Mike Hommey + * [e44133e] gnome-default-mail-client: check for MOZ_APP_NAME instead + for hardcoded 'thunderbird' + * [8573c8d] set DM-Upload-Allowed to yes + * [1c63920] install modules directory into /usr/share/icedove-3.0 + * [3a85ac6] add gbp.conf for easier package build with + git-buildpackage + * [7feb54a] add watch file + * [e0a1624] document how to clean upstream source code + + -- Christoph Goehre Fri, 08 Jan 2010 10:42:09 +0100 + +icedove (3.0~rc2-2) experimental; urgency=low + + [ Christoph Goehre ] + * [5b7992b] rename source package to unversioned name + * [cde3507] change Maintainer back to asac, add Uploaders Guido and me + * [978c58d] disable icedove-3.0-dev package build for now until it is fixed + upstream + * Upstream is identical to 3.0 final + + -- Guido Günther Thu, 17 Dec 2009 18:36:58 +0100 + +icedove-3.0 (3.0~rc2-1) experimental; urgency=low + + [ Christoph Goehre ] + * New Upstream Version (RC2) + - fixes 494014, 516950, 531278, 531502 in Mozilla Bugzilla + * [fc3fa5c] Revert "mark icedove-3.0-dev as transitional package for + xulrunner-dev" + + [ Guido Günther ] + * [51c1cca] Bump standards version + * [5e2a53c] Refer to versioned license + * [171f382] s/explicitely/explicitly/ + + -- Christoph Goehre Tue, 08 Dec 2009 18:46:28 +0100 + +icedove-3.0 (3.0~rc1-1) experimental; urgency=low + + * New Upstream Version (RC1) + * [cce57db] ship extracted upstream tarball in orig file + * [ee7677f] remove obsolet licence fix + * [7051ca8] install TB_ICON only once + * [4f20bb1] add unbranded preview theme icon + * [0002285] install non-binary stuff in /usr/share and link it into + /usr/lib + * [c9ce50f] get right of system myspell + * [5c96edf] remove version check for hunspell in debian/rules + * [13b57a3] mark icedove-3.0-dev as transitional package for + xulrunner-dev + * [8ecaec9] all packages need ${misc:Depends} as depends, if we use + debhelper + * [fc0dd78] dbg package must have section debug and priority extra + * [3a00f22] enable more config options and add build depends (filched from + iceape 2.0) + * [fd8e3ca] build against system sqlite if available + * [81165e1] build with 'export BUILD_OFFICIAL=1' + + -- Christoph Goehre Thu, 03 Dec 2009 10:16:46 +0100 + +icedove-3.0 (3.0~b3~hg20090713r3057-1~gbp253e4ab) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 14 Jul 2009 10:24:57 +0200 + +icedove-3.0 (3.0~b3~hg20090713r3057-1~gbpefd0706) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 14 Jul 2009 10:24:50 +0200 + +icedove-3.0 (3.0~b3~hg20090713r3057-1~gbpfeeee47) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 14 Jul 2009 10:11:10 +0200 + +icedove-3.0 (3.0~b3~hg20090505r2552-1~gbp595a0b7) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 05 May 2009 18:03:25 +0200 + +icedove-3.0 (3.0~b3~hg20090427r2499-1~gbpbeb7cd6) sid; urgency=low + + * New snapshot. + + -- Guido Günther Mon, 27 Apr 2009 20:05:51 +0200 + +icedove-3.0 (3.0~b3~hg20090427r2499-1~gbp80a8829) sid; urgency=low + + * New snapshot. + + -- Guido Günther Mon, 27 Apr 2009 19:56:09 +0200 + +icedove-3.0 (3.0~b3~hg20090422r2448-1~gbpd4ee3b3) pkg-mozext; urgency=low + + * New snapshot. + + -- Guido Günther Wed, 22 Apr 2009 09:14:54 +0200 + +icedove-3.0 (3.0~b3~hg20090421r2441-1~gbp66d9bed) pkg-mozext; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 21 Apr 2009 19:35:09 +0200 + +icedove-3.0 (3.0~b3~hg20090420r2424-1~gbp47b25b8) pkg-mozext; urgency=low + + * New snapshot. + + -- Guido Günther Mon, 20 Apr 2009 11:28:56 +0200 + +icedove-3.0 (3.0~b3~hg20090418r2418+nobinonly-1~0~gbpa19783) pkg-mozext; urgency=low + + * Initial release + + -- Guido Günther Sun, 19 Apr 2009 13:44:33 +0200 + +icedove (2.0.0.22-1.1) unstable; urgency=low + + * Non-maintainer upload. + * update /usr/lib/icedove/dictionaries symlink to point to + /usr/share/hunspell (closes: #549876) + * add $[shlibs:Depends} to iceape-dev + + -- Rene Engelhard Mon, 09 Nov 2009 17:11:50 +0100 + +icedove (2.0.0.22-1) unstable; urgency=low + + * New upstream security/stability update (v2.0.0.21/v2.0.0.22) (Closes: 535124) + * MFSA 2009-33: Crash viewing multipart/alternative message with text/enhanced part + * MFSA 2009-32 aka CVE-2009-1841: JavaScript chrome privilege escalation + * MFSA 2009-29 aka CVE-2009-1838: Arbitrary code execution using event listeners + attached to an element whose owner document is null + * MFSA 2009-27 aka CVE-2009-1836: SSL tampering via non-200 responses to proxy + CONNECT requests + * MFSA 2009-24 aka CVE-2009-1832+CVE-2009-1831: Crashes with evidence of memory + corruption (rv:1.9.0.11) + * MFSA 2009-17 aka CVE-2009-1307: Same-origin violations when Adobe Flash loaded + via view-source: scheme + * MFSA 2009-14 aka CVE-2009-1303+CVE-2009-1302: Crashes with evidence of memory + corruption (rv:1.9.0.9) + * MFSA 2009-15 aka CVE-2009-0652: URL spoofing with box drawing character + * MFSA 2009-10 aka CVE-2009-0040: Upgrade PNG library to fix memory safety hazards + * MFSA 2009-09 aka CVE-2009-0776: XML data theft via RDFXMLDataSource and cross-domain + redirect + * MFSA 2009-07 aka CVE-2009-0771,-0772,-0773,-0774: Crashes with evidence of memory + corruption (rv:1.9.0.7) + * MFSA 2009-01 aka CVE-2009-0352,CVE-2009-0353 Crashes with evidence of memory + corruption (rv:1.9.0.6) + * adjust patches to changed codebase + - update debian/patches/ubuntu-mail-app-xre-name + + -- Alexander Sack Wed, 01 Jul 2009 12:18:03 +0200 + +icedove (2.0.0.19-1) unstable; urgency=medium + + * New upstream security/stability update (v.2.0.0.18/2.0.0.19) Closes: 505563 + 2.0.0.18: + * MFSA 2008-48 aka CVE-2008-5012 - Image stealing via canvas and HTTP + redirect + * MFSA 2008-50 aka CVE-2008-5014 - Crash and remote code execution via + __proto__ tampering + * MFSA 2008-52 aka CVE-2008-5017 - Crashes with evidence of memory + corruption (rv:1.9.0.4/1.8.1.18); Browser engine crash in "Firefox 2 + and 3" + * MFSA 2008-52 aka CVE-2008-5018 - Crashes with evidence of memory + corruption (rv:1.9.0.4/1.8.1.18); JavaScript engine crash - "Firefox 2 + and 3" + * MFSA 2008-55 aka CVE-2008-5021 - Crash and remote code execution in + nsFrameManager + * MFSA 2008-56 aka CVE-2008-5022 - nsXMLHttpRequest::NotifyEventListeners() + same-origin violation + * MFSA 2008-58 aka CVE-2008-5024 - Parsing error in E4X default namespace + * MFSA 2008-59 aka CVE-2008-4582 - Script access to .documentURI and + .textContent in mail + 2.0.0.19: + * MFSA 2008-60 aka CVE-2008-5500 - Crashes with evidence of memory + corruption (rv:1.9.0.5/1.8.1.19); Layout engine crashes - Firefox 2 and 3 + * MFSA 2008-61 aka CVE-2008-5503 - Information stealing via + loadBindingDocument + * MFSA 2008-64 aka CVE-2008-5506 - XMLHttpRequest 302 response disclosure + * MFSA 2008-65 aka CVE-2008-5507 - Cross-domain data theft via script + redirect error message + * MFSA 2008-66 aka CVE-2008-5508 - Errors parsing URLs with leading + whitespace and control characters + * MFSA 2008-67 aka CVE-2008-5510 - Escaped null characters ignored by CSS + parser + * apply Maintainers, Uploaders changes done in 2.0.0.17 upload to + debian/control + - update debian/control + * adjust/refresh patches to changed upstream code + - update debian/patches/moz-app-name-as-mail-binary-name + - update debian/patches/autoconf2.13-rerun + + -- Alexander Sack Sat, 03 Jan 2009 16:27:42 +0100 + +icedove (2.0.0.17-1) unstable; urgency=low + + * New upstream security/stability update (v.2.0.0.17), Closes: #500721 + * MFSA 2008-37 aka CVE-2008-0016 - UTF-8 URL stack buffer overflow + * MFSA 2008-38 aka CVE-2008-3835 - nsXMLDocument::OnChannelRedirect() + same-origin violation + * MFSA 2008-41 aka CVE-2008-4058, CVE-2008-4059, CVE-2008-4060 - Privilege + escalation via XPCnativeWrapper pollution + * MFSA 2008-42 aka CVE-2008-4061, CVE-2008-4062, CVE-2008-4063, + CVE-2008-4064 - Crashes with evidence of memory corruption + (rv:1.9.0.2/1.8.1.17) + * MFSA 2008-43 aka CVE-2008-4065, CVE-2008-4066 - BOM characters, low + surrogates stripped from JavaScript before execution + * MFSA 2008-44 aka CVE-2008-4067, CVE-2008-4068 - resource: traversal + vulnerabilities + * MFSA 2008-46 aka CVE-2008-4070 - Heap overflow when canceling newsgroup + message + + [ Michael Casadevall ] + * debian/control: + - Changed maintainer to Ubuntu Mozillateam + - Added Uploaders to the team + - Set DM-Upload-Allowed + - Bumped standards version to 3.8.0 + + [ Alexander Sack ] + * Closes: #497491 - Icedove inappropriately sets file-/MIME-type + associations in .desktop database; we drop the Mime-Type= entry + from debian/icedove.desktop + - update debian/icedove.desktop + + -- Michael Casadevall Sat, 18 Oct 2008 09:07:20 -0400 + +icedove (2.0.0.16-1) unstable; urgency=low + + * New upstream security/stability update (v2.0.0.16) fixes: + * MFSA 2008-21 aka CVE-2008-2798 - Crashes with evidence of memory + corruption + * MFSA 2008-21 aka CVE-2008-2799 - Crashes with evidence of memory + corruption + * MFSA 2008-24 aka CVE-2008-2802 - Chrome script loading from fastload file + * MFSA 2008-25 aka CVE-2008-2803 - Arbitrary code execution in + mozIJSSubScriptLoader.loadSubScript() + * MFSA 2008-26 aka CVE-2008-0304 - (followup) Buffer length checks in MIME + processing + * MFSA 2008-29 aka CVE-2008-2807 - Faulty .properties file results in + uninitialized memory being used + * MFSA 2008-31 aka CVE-2008-2809 - Peer-trusted certs can use alt names to + spoof + * MFSA 2008-33 aka CVE-2008-2811 - Crash and remote code execution in block + reflow + * MFSA 2008-34 aka CVE-2008-2785 - Remote code execution by overflowing CSS + reference counter + + * Closes: #483938 - add .desktop file translations (contributed by Timo + Jyrinki ) + - update debian/icedove.desktop + + (cherry pick rev77 from lp:~mozillateam/thunderbird/thunderbird.dev branch) + * drop patches applied upstream + - drop debian/patches/bz419350_attachment_306066.patch + - update debian/patches/series + + (cherry pick rev78 from lp:~mozillateam/thunderbird/thunderbird.dev branch) + * adjust patches diverged upstream + - update debian/patches/ubuntu-look-and-feel-report-a-bug-menuitem + + (cherry pick rev80 from lp:~mozillateam/thunderbird/thunderbird.dev branch) + * Closes: #489093 - add explicit -lfontconfig to linker flags used for gfx/ps + module to fix ftbfs in intrepid + - add debian/patches/bzXXX_ftbfs_fontconfig.patch + - update debian/patches/series + + -- Alexander Sack Thu, 24 Jul 2008 17:38:51 +0200 + +icedove (2.0.0.14-1) unstable; urgency=medium + + * Upstream stability/security release, fixes + + MFSA 2008-15 aka CVE-2008-1236 - Crashes with evidence of memory corruption + (rv:1.8.1.13) - browser engine + + MFSA 2008-15 aka CVE-2008-1237 - Crashes with evidence of memory corruption + (rv:1.8.1.13) - javascript engine + + MFSA 2008-14 aka CVE-2008-1233, CVE-2008-1234, CVE-2008-1235 - JavaScript + privilege escalation and arbitrary code execution + * update debian/remove.nonfree script to pull branding from bzr branch hosted + at https://code.edge.launchpad.net/~mozillateam/thunderbird/icedove-branding-2.0.0.x + - update debian/remove.nonfree + * fix fallback https handler by adding pref("network.protocol-handler.app.https", + "x-www-browser") to default system preference file. (Closes: #460954) + - update debian/icedove.js + * drop patches applied upstream: + - delete debian/patches/bz399589_fix_missing_symbol_with_new_nss.patch + - update debian/patches/series + * fix broken reply-to-list extension (Closes: #439369) + - add debian/patches/replytolist_2.x.patch + - update debian/patches/series + * fix ftbfs on ia64 (Closes: #477281) + - add debian/patches/bz419350_attachment_306066.patch + - update debian/patches/series + * drop forced use of gcc/g++ 4.2 and use default compiler again; in turn we + drop gcc-4.2 and g++-4.2 from Build-Depends + - update debian/control + - update debian/rules + + -- Alexander Sack Fri, 09 May 2008 17:57:55 +0200 + +icedove (2.0.0.12-1) unstable; urgency=low + + * New Upstream stability/security release, fixes various advisories: + + CVE-2008-0416 aka MFSA 2008-13 Multiple XSS vulnerabilities from + character encoding + + CVE-2008-0304 aka MFSA 2008-12 Heap buffer overflow in external MIME + bodies + + CVE-2008-0418 aka MFSA 2008-05 Directory traversal via chrome: URI + + CVE-2008-0415 aka MFSA 2008-03 Privilege escalation, XSS, Remote Code + Execution + + CVE-2008-0412 and CVE-2008-0413 aka MFSA 2008-01 Crashes with evidence + of memory corruption (rv:1.8.1.12) - layout and javascript + * Fix severe problems for powerpc architecture, by reverting arch-detect + patch to introduce special behaviour only when FORCE_USE_HOST_OS is set in + environment. For now only s390 is special cased in rules - as thats the + architecture we introduced this patch for (Closes: #461981). + - update debian/rules + - debian/patches/arch-detect + * fix "FTBFS with libnss3-dev=3.12.0~beta2-1" by introducing symbols not + exported by new nss anymore. Reuse thunderbird patch from ubuntu. + (Closes: #470128) + - added debian/patches/bz399589_fix_missing_symbol_with_new_nss.patch + - update debian/patches/series + * add Vcs-Bzr: header to control pointing to the mozillateam packaging + branch https://code.launchpad.net/~mozillateam/thunderbird/icedove-2.0.0.x + - update debian/control + * introduce .autoreg feature and touch /usr/lib/icedove/.autoreg in + icedove-gnome-support.postinst and icedove-gnome-support.prerm iif that + file exists. + - update debian/rules + - added debian/icedove-gnome-support.postinst + - added debian/icedove-gnome-support.prerm + * Adjust multiple patches because of changed upstream code base + - update debian/patches/ubuntu-mail-app-xre-name + - update debian/patches/autoconf2.13-rerun + + -- Alexander Sack Sat, 05 Apr 2008 23:05:11 +0200 + +icedove (2.0.0.9-3) unstable; urgency=low + + * drop network.protocol-handler.external.http setting as it caused + regressions (Closes: 459564) + - update debian/icedove.js + + -- Alexander Sack Wed, 09 Jan 2008 18:56:28 +0100 + +icedove (2.0.0.9-2) unstable; urgency=low + + * pass host arch information to configure and trust the supplied architecture + information. Thanks to Bastian Blank. (Closes: 445959) + - update debian/rules + - add debian/patches/arch-detect + - update debian/patches/autoconf2.13-rerun + - update debian/patches/series + * use /usr/lib/icedove/icedove as gnome integration command used to update + gconf protocol handler. (Closes: 452919) + - add debian/patches/icedove_gnome_command + - update debian/patches/series + * prefer gnome registry to lookup protocol handler if we are in a gnome + session; in turn we enable x-www-browser as the http protocol by default + (Closes: 452882) + - add debian/patches/prefer_gnome_registry_in_gnome_session + - update debian/patches/series + - update debian/icedove.js + + -- Alexander Sack Sun, 30 Dec 2007 20:21:26 +0100 + +icedove (2.0.0.9-1) unstable; urgency=medium + + * new upstream stability/security update (v2.0.0.9): + - MFSA 2007-36 aka CVE-2007-4841: "URIs with invalid %-encoding mishandled + by Windows" + - MFSA 2007-29 aka CVE-2007-5339: "Crashes with evidence of memory + corruption (rv:1.8.1.8) - browser engine" + - MFSA 2007-29 aka CVE-2007-5340: "Crashes with evidence of memory + corruption (rv:1.8.1.8) - javascript engine" + * adapt adapt patches to new upstream codebase: + - drop debian/patches/bz389801_deb443454_fix_gtk_theme_crashes.patch + - update debian/patches/68_mips_performance.dpatch + - update debian/patches/series + - update debian/patches/autoconf2.13-rerun + * fix ftbfs due to changed cairo pc Requires: (Closes: 453179) + - add debian/patches/bz344818_att264996.patch + - update debian/patches/autoconf2.13-rerun + - update debian/patches/series + * add copyright file (Closes: 453365) + - add debian/copyright + * quote some if test ! ... lines to fix preinst errors (Closes: 427336) + - update debian/icedove.preinst + * update icedove menu section - use "Applications/Network/Communication" + (Closes: 444903) + - update debian/icedove.menu + * don't try to install debian/tmp/usr/lib/icedove/defaults/isp as its not + shipped by make install anymore + - update debian/icedove.install + + -- Alexander Sack Fri, 28 Dec 2007 16:05:05 +0100 + +icedove (2.0.0.6-1) unstable; urgency=low + + * new upstream release 2.0.0.6-1 fixes various security issues + (Closes: #444010): + - MFSA 2007-18 aka CVE-2007-3734, CVE-2007-3735 - Crashes with evidence of + memory corruption (rv:1.8.1.5). + - MFSA 2007-23 aka CVE-2007-3670 - Remote code execution by launching + Firefox from Internet Explorer (doesn't apply to linux). + - MFSA 2007-26 aka CVE-2007-3844 - Privilege escalation through + chrome-loaded about:blank windows. + - MFSA 2007-27 aka # CVE-2007-3845 - Unescaped URIs passed to external + programs. + * debian/patches/debian/patches/credits-rebranding: refresh patch because of + code-base change in new upstream release. + * debian/patche/bz389801_deb443454_fix_gtk_theme_crashes.patch,series: + import fix for theme crashes from bugzilla (Closes: 443454). + + -- Alexander Sack Mon, 08 Oct 2007 12:09:42 +0000 + +icedove (2.0.0.4.dfsg1-2) unstable; urgency=low + + * debian/patches/autoconf2.13-rerun: rerun to apply last commits + configure.in patch addition to configure. + * debian/patches/force-no-pragma-visibility-for-gcc-4.2_4.3, + debian/patches/series: don't use pragma for visibility as visibility + hints are not perfect yet in mozilla code base. + * debian/icedove.desktop: drop explicit .png extension from desktop icon name + * debian/icedove.desktop, debian/icedove.links, debian/icedove.menu: fix various + icon issues, by using /usr/share/icedove/icons/default.png instead of + mozicon128.png as source for standard icedove pixmaps link + (Closes: #427076, #437064, #437090). + * debian/control, debian/rules: use gcc-4.2 and g++-4.2 on all archs; add gcc-4.2 + and g++-4.2 to build-depends in control file. + * debian/icedove.links: provide usr/share/icedove/chrome/icons/default/messengerWindow16.png + as a link to usr/share/icedove/icons/mozicon16.png (Closes: #427723). + * debian/icedove.install, debian/icedove.links: install isp directories + /usr/share/icedove/isp and /usr/share/icedove/defaults/isp and link them to + pkglibdir accordingly (Closes: #428421). + + -- Alexander Sack Mon, 27 Aug 2007 23:48:53 +0200 + +icedove (2.0.0.4.dfsg1-1) unstable; urgency=low + + * debian/remove.nonfree: update list of non-free/binary-only file from + latest iceape updates" debian/remove.nonfree; update orig + tarball accordingly. (Closes: 400340) + * debian/control[.in]: icedove package now provides mail-reader, + imap-client, news-reader instead of www-browser (Closes: 425167) + + -- Alexander Sack Tue, 19 Jun 2007 15:00:12 +0200 + +icedove (2.0.0.4-1) unstable; urgency=low + + * stability/security upstream release 2.0.0.4 + - CVE-2007-2867 aka MFSA 2007-12 (l): Crashes with evidence of memory + corruption (rv:1.8.0.12/1.8.1.4) - layout engine + - CVE-2007-2868 aka MFSA 2007-12 (j): Crashes with evidence of memory + corruption (rv:1.8.0.12/1.8.1.4) - javascript engine + - CVE-2007-1558 aka MFSA 2007-15: Security Vulnerability in APOP + Authentication + * debian/patches/gcc-workaround-visibility-hidden, debian/patches/series: + applied upstream -> dropped visibility workaround patch + * debian/patches/gnome-mime-handling: updated patch for bz273524 in + response to upstream landing of bz373955 + * debian/patches/autoconf-regen: rerun autoconf accordingly + * debian/patches/82_prefs.dpatch|series: import default font fixes + from xulrunner 1.8.1.4-1 patchset (thanks to Mike Hommey + ) + * debian/control[.in]: libnss3-dev build-depend is now versioned + (Closes: 429202) + + -- Alexander Sack Mon, 18 Jun 2007 16:50:34 +0200 + +icedove (2.0.0.0-4) unstable; urgency=low + + * One that fix them all release - maybe. + * fix symlinks for chrome/greprefs/defaults in .preinst + (Closes: 425390, 425438, 425476, 425479, 425550, 425552, 425559, 425564, 425672, 425727, 426019) + * debian/control[.in]: fix section -> s/web/mail/ + + -- Alexander Sack Fri, 1 Jun 2007 13:13:13 +0200 + +icedove (2.0.0.0-3) unstable; urgency=low + + * fixing links in preinst (Closes: 424963, 425061, 425223) + greprefs, chrome and defaults need to point to + /usr/share/icedove/* + * drop searchplugin link which even had a typo :) + * debian/icedove.menu: ship debian menu entry + (Closes: 425224) + + -- Alexander Sack Sat, 20 May 2007 16:48:00 +0200 + +icedove (2.0.0.0-2) unstable; urgency=low + + * adding icedove-dbg package + + -- Alexander Sack Sat, 19 May 2007 17:33:00 +0200 + +icedove (2.0.0.0-1) unstable; urgency=low + + * icedovising + * add debian/remove.nonfree + * set upstream application fixed to 'thunderbird' in update-orig, + so you can just drop thunderbird tarball and produce new orig + * fix debian/control.in, drop transition packages. update debian/control + for these modifications. + * no autogen of configure and debian/control for release + + -- Alexander Sack Thu, 17 May 2007 14:00:00 +0200 + +thunderbird (1.99.rc1+2.0-1) feisty; urgency=low + + * branch firefox-trunk package for 2.0 thunderbird package + * debian/control.in, debian/control: add transition packages: + mozilla-thunderbird, mozilla-thunderbird-dev; disable dom-inspector + package as there is nearly no hope that it ever will get maintained + upstream again. + * debian/rules: remove inspector extension from configure; add excludes + to dh_install of thunderbird and thunderbird-dev package: + - + DEB_DH_INSTALL_ARGS_thunderbird := -Xgnome -Ximgicon -Xmozlibthai + DEB_DH_INSTALL_ARGS_thunderbird-dev := -Xnspr -Xnss + + -- Alexander Sack Wed, 18 Apr 2007 13:35:34 +0200 + +icedove (1.5.0.10.dfsg1-3) unstable; urgency=low + + * debian/icedove*.xpm updated to use correct icon + (Closes: 413976, 416476) + * debian/patches/25_gnome_helpers_with_params.dpatch: + Make helper applications with parameters work (bz#273524); + this is an improved version of bugzilla patch by Mike Hommey + + + -- Alexander Sack Wed, 28 Mar 2007 21:55:08 +0200 + +icedove (1.5.0.10.dfsg1-2) unstable; urgency=low + + * debian/tmpls-typeaheadfind/install.rdf: fix version depends of + typeaheadfind (Closes: 413770) + + -- Alexander Sack Wed, 7 Mar 2007 13:13:13 +0100 + +icedove (1.5.0.10.dfsg1-1) unstable; urgency=low + + * new upstream release fixing security issues: + - CVE-2007-0008, MFSA 2006-06: SSLv2 Client Integer Underflow + Vulnerability + - CVE-2007-0009, MFSA 2006-06: SSLv2 Server Stack Overflow + Vulnerability + - CVE-2007-0775, CVE-2007-0776, CVE-2007-0777, MFSA 2007-01: + Crashes with evidence of memory corruption + * 91_credits_icedove.dpatch: dump new xml entities from + credits dialog (Closes: 404984, 412423) + * 50_kbsd_nspr.dpatch, 50_kbsd.dpatch: adapt kbsd patches to apply to + latest upstream code-base + + [ Christian Perrier ] + + * Rewrite debconf templates to fit the current Developer's Reference + recommendations + * Correct the name of the debconf templates file in debian/po/POTFILES.in + Closes: #407220 + * Debconf translations: + - Bulgarian added. Closes: #410627 + - Basque updated. Closes: #410633 + - German updated. Closes: #410672 + - Catalan updated. Closes: #410676 + - Spanish updated. Closes: #410709 + - Galician updated. Closes: #410720, #407944 + - Japanese updated. Closes: #410753 + - Tamil added. Closes: #410892 + - Portuguese updated. Closes: #409562 + - Vietnamese updated. + - Malayalam added. Closes: #408109 + - Russian updated. Closes: #411064, #405741 + - Swedish. Closes: #410632 + - Polish. Closes: #411302 + - Fix typo in Italian translation. Closes: #363806 + - Romanian. Closes: #411361 + - Czech. Closes: #411409 + - Danish. Closes: #411402 + - Dutch. Closes: #411406 + - Italian. Closes: #411452 + - Brazilian Portuguese. Closes: #411538 + - Korean. Closes: #411624, #411581 + - Malayalam. Closes: #411647 + - Finnish. Closes: #411765 + + -- Alexander Sack Fri, 23 Feb 2007 09:00:00 +0100 + +icedove (1.5.0.10.dfsg1-1.1) unstable; urgency=low + + * Non-maintainer upload to fix pending l10n issues. + * Debconf translations: + - Italian fixed. Closes: #363806 + - Russian added. Closes: #405741 + - Galician added. Closes: #407944 + - Malayalam added. Closes: #408109 + - Portuguese updated. Closes: #409562 + + -- Christian Perrier Tue, 6 Feb 2007 06:55:08 +0100 + +icedove (1.5.0.9.dfsg1-1) unstable; urgency=high + + * new upstream version, fixes various security issues: + - CVE-2006-6497 mfsa2006-68 layout engine + - CVE-2006-6498 mfsa2006-68 javascript engine + - CVE-2006-6499 mfsa2006-68 floating point + - CVE-2006-6500 mfsa2006-69 + - CVE-2006-6501 mfsa2006-70 + - CVE-2006-6502 mfsa2006-71 + - CVE-2006-6503 mfsa2006-72 + - CVE-2006-6504 mfsa2006-73 + - CVE-2006-6505 mfsa2006-74 + - CVE-2006-6506 mfsa2006-75 + - CVE-2006-6507 mfsa2006-76 + * landing icedove artwork contributed by Ricardo Fernández + ; svgs are in debian/branding. xpms and some + pngs are generated with rsvg-convert and convert -> adding + build-depends to librsvg2-bin, imagemagick + * including es.po translation contributed by Felipe Caminos + (Closes: 402928) + * updateing pt_BR.po provided by André Luís Lopes + (Closes: 403827) + * adapting credits dialog and Icedove Motto in 91_credits_icedove.dpatch + * fix bad link in icedove manpage (icedove.sgml) (Closes: 398344) + * rebranding install.rdf of default theme for icedove in + 91_rebranding_theme.dpatch (Closes: 393134) + * adapt README.Debian to new icedove directories and name + * clean old/not-needed files from debian/ directory: + theme.part.defaultclassic, mail-jar.mn, messenger_jar_includes.csv + * disabling patch: 99_bz360409_deb400383, which is applied + upstream now. + + -- Alexander Sack Tue, 19 Dec 2006 12:00:00 +0100 + +icedove (1.5.0.8.dfsg1-1) unstable; urgency=medium + + * removing all currently known non-free and sourceless binaries + from source package by running the script included for + reference in debian/remove.nonfree from the gnuzilla project + (Closes: 400340) + * added upstream approved quickfix for grave bug in + debian/patches/99_bz360409_deb400383.dpatch (Closes: 400383) + * last chance kbsd upload ... reenabling kbsd patch with fix + by Petr Salinger (Closes: 399692) + * remove missed non-free icons from + debian/fhunderbird-branding.tmpl/ : background.png.uu, disk.icns.uu + + -- Alexander Sack Sun, 26 Nov 2006 19:00:00 +0100 + +icedove (1.5.0.8-3) unstable; urgency=low + + * disable kbsd patches in 00list because they appear to break + build on other platforms. In consequence, 399692 and 363865 + will be reopened. Reenable 90_ppc64-build-fix (Closes: 400090) + + -- Alexander Sack Mon, 22 Nov 2006 15:10:00 +0100 + +icedove (1.5.0.8-2) unstable; urgency=low + + * fix mozilla.in for real (for transitional thunderbird link + (Closes: 393123, 398037) + * apply basque debconf translation (eu.po) for real + (Closes: 398468) + * included nl.po provided by Nick Niktaris + renaming as icedove first (Closes: 378360) + * include greek translation in icedove.desktop provided by + Nick Niktaris (Closes: 384359) + * include updated de.po translation provided by + Alwin Meschede (Closes: 399083) + * apply FTBFS on GNU/kFreeBSD porters patch provided by + Petr Salinger (Closes: 399692), + which is claimed to provide a fix for ppc64 ftbfs too + (Closes: 363865) + * remove debug echo from icedove.preinst (Closes: 399723) + + -- Alexander Sack Mon, 21 Nov 2006 19:35:00 +0100 + +icedove (1.5.0.8-1) unstable; urgency=medium + + * new upstream version fixes various security issues + * added transition package: thunderbird-gnome-support + -> icedove-gnome-support as well as thunderbird-dbg + -> icedove-dbg (Closes: 393105) + * fix typo in postinst to fix browser integration scheme + recognition as selected by debconf (Closes: 393765, 398427) + * apply patch by Ted Percival to fix broken + transitional thunderbird symlink (Closes: 393123, 398037) + * apply patch by Andre Lehovich that fixes + icedove package description typos (Closes: 398468) + * add basque debconf translation (eu.po) provided by Piarres + Beobide (Closes: 398719) + * remove non-free rfc files from source tarball (Closes: 395095) + + -- Alexander Sack Wed, 15 Nov 2006 18:00:00 +0100 + +icedove (1.5.0.7-3) unstable; urgency=medium + + * unbrand thunderbird mail -> Icedove Mail/News due + to trademark issues (Closes: 354622) + + -- Alexander Sack Thu, 12 Oct 2006 13:00:00 +0100 + +thunderbird (1.5.0.7-2) unstable; urgency=low + + * go through new upload ... reenable thunderbird-dbg + * increase reference count for fontconfig charset + 91_fontconfig_reference_increment_388739 (Closes: 388739) + + -- Alexander Sack Wed, 27 Sep 2006 02:00:00 +0100 + +thunderbird (1.5.0.7-1) unstable; urgency=high + + * disabled new package to avoid queue new: thunderbird-dbg + * new upstream release fixes security issues: + + MFSA 2006-64 - CVE-2006-4571 + + MFSA 2006-63 - CVE-2006-4570 + + MFSA 2006-62 - CVE-2006-4569 + + MFSA 2006-61 - CVE-2006-4568 + + MFSA 2006-60 - CVE-2006-4340 (related to CVE-2006-4339) + + MFSA 2006-59 - CVE-2006-4253 + + MFSA 2006-58 - CVE-2006-4567 + + MFSA 2006-57 - CVE-2006-4565, CVE-2006-4566 + * disable patch 90_gcc-extern-fix, because it has been pulled in upstream + * disable 91_271815.overthespot.v1.2, because applied upstream + + -- Alexander Sack Fri, 15 Sep 2006 16:00:00 +0100 + +thunderbird (1.5.0.5-2) unstable; urgency=low + + * new package: thunderbird-dbg + + improve configure options + + enable svg + + use debian build options to determine optimization flags + * added build depends on libcairo-dev + + -- Alexander Sack Sat, 12 Aug 2006 15:00:00 +0100 + +thunderbird (1.5.0.5-1) unstable; urgency=high + + * new upstream release fixes various security flaws: + + MFSA 2006-44, CVE-2006-3801 + + MFSA 2006-46, CVE-2006-3113 + + MFSA 2006-47, CVE-2006-3802 + + MFSA 2006-48, CVE-2006-3803 + + MFSA 2006-49, CVE-2006-3804 + + MFSA 2006-50, CVE-2006-3805, CVE-2006-3806 + + MFSA 2006-51, CVE-2006-3807 + + MFSA 2006-52, CVE-2006-3808 + + MFSA 2006-53, CVE-2006-3809 + + MFSA 2006-54, CVE-2006-3810 + + MFSA 2006-55, CVE-2006-3811 + * including patch 91_271815.overthespot.v1.2.dpatch + (Closes: 379936, 363814) + * improve manpage: Document -g, --debug options (Closes: 381096) + * update for ja.po, contributed by Kenshi Muto + (Closes: 379946) + * update for pt.po, contributed by Rui Branco + (Closes: 381444) + * Provide virtual package news-reader (Closes: 363834) + * Apply patch which introduces ReplyToList MessageType. This is + the base to allow extensions that provide ReplyToList button to + get installed. Thanks to Armin Berres + for pointing out this unintrusive patch. (Closes: 381273) + * fix README.Debian for firefox integration as well as example of + global pref.js (firefox.js.tmpl) (Closes: 363723) + * further improvements for README.Debian + * fix gnome integration program path in a hard-coded fashion + in 91_gnome_path_fix.dpatch (Closes: 365610) + + -- Alexander Sack Sat, 12 Aug 2006 15:00:00 +0100 + +thunderbird (1.5.0.4-3) unstable; urgency=critical + + * fixing gcc-4.1 ftbfs (Closes: 377176) + * improved manpage by Bastian Kleineidam + documenting -safe-mode option (Closes: 370254) + * include *no xgot* patch for mips/mipsel contributed by + Thiemo Seufer (Closes: 374882) + + -- Alexander Sack Thu, 13 Jul 2006 15:00:00 +0100 + +thunderbird (1.5.0.4-2) unstable; urgency=critical + + * fix version in install.rdf for inspector and + typeaheafind (Closes: 374382) + * (last one was a new upstream release fixing + various security issues (Closes: 373878, 373553) + * urgency=critical + + -- Alexander Sack Mon, 19 Jun 2006 10:00:00 +0100 + +thunderbird (1.5.0.4-1) unstable; urgency=low + + * new upstream release fixing various security issues: + MFSA 2006-42, CVE-2006-2783: Web site XSS using BOM on UTF-8 pages + MFSA 2006-40, CVE-2006-2781: Double-free on malformed VCard + MFSA 2006-38, CVE-2006-2778: Buffer overflow in crypto.signText() + MFSA 2006-37, CVE-2006-2776: Remote compromise via content-defined + setter on object prototypes + MFSA 2006-35, CVE-2006-2775: Privilege escalation through XUL persist + MFSA 2006-33, CVE-2006-2786: HTTP response smuggling + MFSA 2006-32, CVE-2006-2779, CVE-2006-2780: Fixes for crashes with + potential memory corruption + MFSA 2006-31, CVE-2006-2787: EvalInSandbox escape (Proxy Autoconfig, + Greasemonkey) + * build depends: + + xorg-dev -> libx11-dev, libxt-dev, libxinerama-dev, + libxft-dev, libfreetype6-dev, libxrender-dev + + removed binutils, coreutils and po-debconf + * enable xinerama in debian/rules + * fixed lintian errors: + + do not depend on xorg dev meta package + + debhelper depend is now versioned + + changed package description(s) to not start with 'thunderbird' + + -- Alexander Sack Tue, 23 May 2006 15:00:00 +0100 + +thunderbird (1.5.0.2-3) unstable; urgency=low + + * patch-robbery from firefox package: + + removed old mips and arm patches + + added 50_arch_arm_fix + + added 50_arch_alpha_fix + + added 50_arch_m68k_fix + + added 50_arch_mips_Makefile_fix + + added 50_arch_mips_fix (Closes: 357755) + + added 50_arch_parisc_Makefile_fix + + added 50_arch_parisc_fix + * included install.rdf for default theme in extensions dir + (Closes: 363956) + * removed chrome.d locales.d extensions.d from var/lib/thunderbird + + -- Alexander Sack Tue, 16 May 2006 19:45:00 +0100 + +thunderbird (1.5.0.2-2) unstable; urgency=critical + + * debian/thunderbird.sgml. Greatly improved manpage for thunderbird, + thanks to Sam Morris for contributing this + (Closes: 361069) + * add missing build depend to sharutils to fix ftbfs (Closes: 365539) + * fix gnome-support package removing gnome dependencies from + pure thunderbird package. + * set urgency to critical which I forgot to set properly + for the last upload + + -- Alexander Sack Sat, 29 Apr 2006 14:00:00 +0100 + +thunderbird (1.5.0.2-1) unstable; urgency=low + + * removed enable xprint in order to build after X11R7 transition. + * removed xprint recommends from control file. + * 91_fontsfix_359763.dpatch: fix for 'thunderbird shows text illegibly' + for some encodings. (Closes: 359763) + * myspell is now depends (Closes: 357623) + * (re-)including 10_mips_optimization_patch + * debian/patches/90_ppc64-build-fix.dpatch: patch for + 'FTBFS (ppc64)', thanks to Andreas Jochens + for adding the final patch to the report. (Closes: 361036) + * Thanks to Bastian Kleineidam for + contributing: + * Standards version 3.6.2.1 + * Use debhelper v5 with debian/compat + * Remove unneeded thunderbird.conffiles now that debhelper v5 is used + * Remove CVS directories in debian/ + * Fix debian/changelog syntax errors, and convert to UTF-8 + * Fix bashism in debian/thunderbird.postrm, using 2> instead of &>. + * Add ${misc:Depends} to thunderbird* dependencies, fixing a missing + dependency on debconf + * Move db_input commands from postinst into a separate thunderbird.config + file. + * distinct gnome-support package added. adds a good bunch + of gnome build depends to allow module linking against + gnome libs. + * added new fhunderbird-branding in debian/fhunderbird-branding.tmpl + (Closes: 358198) + * use only one profile directory in configure + (Closes: 358378) + * Various security issues are fixed in this release. Namely: + CVE-2006-1741 CVE-2006-1742 CVE-2006-1737 CVE-2006-1738 + CVE-2006-1739 CVE-2006-1740 CVE-2006-1736 CVE-2006-1735 + CVE-2006-1734 CVE-2006-1733 CVE-2006-1732 CVE-2006-0749 + CVE-2006-1731 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 + CVE-2006-1529 CVE-2006-1530 CVE-2006-1531 CVE-2006-1723 + CVE-2006-0292/CVE-2006-0293 (Closes: 349242) + CVE-2006-0294 CVE-2006-0295 CVE-2006-0296 CVE-2006-0297 + CVE-2006-0298 CVE-2006-0299 + + -- Alexander Sack Thu, 20 Mar 2006 21:00:00 +0100 + +thunderbird (1.5-4) unstable; urgency=low + + * great package renaming release: mozilla-thunderbird -> thunderbird + * removed not maintained and not needed update-mozilla-thunderbird + facilities. Extensions/locales etc. don't need to call this anymore + in order to install themselves globally. + * added -fno-strict-aliasing -fno-unsigned-char as parameters to build + * patch: 10_visibility_hidden_patch.dpatch - by Adam Conrad + * new upstream version fixes various bugs + (Closes: 288601, 291912, 295662) + * included new fr.po translation by Mohammed Adnène Trojette + (Closes: 323367) + * included new cs.po translation by Jan Outrata + (Closes: 321736, 335354) + * included new pt.po translation by Traduz! + (Closes: 348440) + * included new da.po translation by Claus Hindsgaul + (Closes: 350687) + * added intl.locale.matchOS, true to debian/global-config.js instead + of hacking startup script + + -- Alexander Sack Tue, 28 Feb 2006 15:00:00 +0100 + +mozilla-thunderbird (1.5-2) experimental; urgency=low + + * reenable patch 20_mailnews_mime_makefile_in.dpatch + to export proper headers to -dev package for enigmail + * last upload with old package name + + -- Alexander Sack Thu, 12 Jan 2006 15:00:00 +0100 + +mozilla-thunderbird (1.5-1) experimental; urgency=low + + * experimental upload of 1.5 (Closes: 348007) + * major package housekeeping + + removed extension template pieces + + bye -offline extension release - this is now completely + integrated in thunderbird default install + + disable all patches ... but those that are obviously + needed - please shout if you got struck by a regression + due to this :). + + use upstream startup script in the hope that they + did fix it! + + branding removed again. Keep it white labeled - for + now. + + -- Alexander Sack Thu, 12 Jan 2006 15:00:00 +0100 + +mozilla-thunderbird (1.0.7-3) unstable; urgency=high + + * apply backported patch for amd64 (Closes: 332481,332484) + Thanks to Martin Sarsale + for testing and preparing the patch + + debian/patches/91_gcc4_imgLoader.fix.dpatch + * updated vietnam translation contributed by Clytie Siddall + (Closes: 324224) + * added swedish translation contributed by Daniel Nylander + (Closes: 331606) + + -- Alexander Sack Mon, 17 Oct 2005 23:30:00 +0100 + +mozilla-thunderbird (1.0.7-2) unstable; urgency=high + + * still high to indicate that security bugs have not been + fixed in etch. + * apply debian/patches/90_xptcinvoke_arm.dpatch to fix ftbfs on + arm/sid + + -- Alexander Sack Mon, 10 Oct 2005 19:00:00 +0100 + +mozilla-thunderbird (1.0.7-1) unstable; urgency=high + * MFSA-2005-57: IDN heap overrun + Summary: Tom Ferris reported a Firefox crash when processing a domain + name consisting solely of soft-hyphen characters. + Closes: - + CVE-Ids: CAN-2005-2871 + Bugzilla: 307259 + Issues addressed: + + CAN-2005-2871 - IDN heap overrun + * MFSA-2005-58: Accumulated vendor advisory for multiple vulnerabilities + Summary: Fixes for multiple vulnerabilities with an overall severity + of "critical" have been released in Mozilla Firefox 1.0.7 and + the Mozilla Suite 1.7.12 + Closes: - + CVE-Ids: CAN-2005-2701 CAN-2005-2702 CAN-2005-2703 CAN-2005-2704 + CAN-2005-2705 CAN-2005-2706 CAN-2005-2707 + Bugzilla: 300936 296134 297078 302263 299518 303213 304754 306261 + 306804 291178 300853 301180 302100 + Issues addressed: + + CAN-2005-2701 - Heap overrun in XBM image processing + + CAN-2005-2702 - Crash on "zero-width non-joiner" sequence + + CAN-2005-2703 - XMLHttpRequest header spoofing + + CAN-2005-2704 - Object spoofing using XBL + + CAN-2005-2705 - JavaScript integer overflow + + CAN-2005-2706 - Privilege escalation using about: scheme + + CAN-2005-2707 - Chrome window spoofing + + Regression fixes + * MFSA-2005-59: Command-line handling on Linux allows shell execution + -> was addressed in 1.0.6-4 already. Reverting upstream changes + to mozilla/mail/mozilla.in by copying debian/mozilla.in_1.0.6 over + to allow our patches to still apply. debian/patches/01_old_mozilla.in.dpatch + + -- Alexander Sack Sat, 1 Oct 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-4) unstable; urgency=high + + * now using bash to overcome possible security flaws of + our thunderbird start script (mozilla-thunderbird). Patch + by Florian Weimer + debian/mfsa_2005-59.debian.patch (Closes: 329664, 329667) + * added patch 50_ftbfs_alpha+arm+ia64_325536_fix.dpatch + to build on alpha, arm, and ia64 that now uses + __attribute__((used)) instead of ((unused)) by + Steve Langasek + (Closes: 325536) + * fix debsums error reported by Y Giridhar Appaji Nag + . Now removing files in postrm. + Further moved /usr/lib/mozilla-thunderbird/chrome/chrome.rdf + to the /var/... adding a link to the new location. + (Closes: 292475) + * added depends for system libs: mng, png, jpeg to not build with + unmaintained image included libs. + * modified 21_mozilla_in-patch.dpatch to recognize -mail as a -compose + alias. This makes thunderbird work well with current gnome default + mailto: command for thunderbird. Thanks to Sam Morris + for the workaround patch (Closes: 330168) + * still work left: fix window.open(); overlay problem. + added rejar-chrome.sh util script below debian. It + rejars .jar files by extracting paths given in + _jar_includes.csv from the .jar zip file + and zipping only those files to a new jar file again. Anyway, still + broken, thus disabled for this build. + (See: 306522) + + -- Alexander Sack Mon, 23 Sep 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-3) unstable; urgency=low + + * remove gcc-3.4 from amd64 build ... this time for sure + (Closes: 320723) + * remove special optimization flags for other archs too + + -- Alexander Sack Mon, 2 Aug 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-2) unstable; urgency=low + + * remove gcc-3.4 from amd64 build (Closes: 320723) + * added arabic po translation by Mohammed Adnène Trojette + (Closes: 320771) + + -- Alexander Sack Mon, 1 Aug 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-1) unstable; urgency=high + + * GCC/G++ 4.0 API transition upload. + * include 90_new_freetype_fix.dpatch to fix new freetype API + (Closes: 301481, 301481) - consumed from mozilla-firefox packages ... + thx to Eric Dorland + * include 90_gcc4_fix.dpatch + * fixes multiple security bugs (Closes: 318728) + CAN-2005-2270: Code execution through shared function objects + CAN-2005-2269: XHTML node spoofing + CAN-2005-2266: Same origin violation: frame calling top.focus() + CAN-2005-2265: Possible exploitable crash in InstallVersion.compareTo() + CAN-2005-2261: XML scripts ran even when Javascript disabled + CAN-2005-1532: Privilege escalation via non-DOM property overrides + CAN-2005-1160: Privilege escalation via DOM property overrides + CAN-2005-1159: Missing Install object instance checks + CAN-2005-0989: Javascript "lambda" replace exposes memory contents + * fix gdk_property_get problem that might cause a segfault (Closes: 317937) + patch by Loic Minier + debian/patches/gdk_property_get.dpatch + * fix CAN-2005-2353: insecure tmp file usage in run-mozilla.sh (Closes: 306893) + debian/patches/20_run-mozilla_sh_306893_fix.dpatch + * include german de.po translation (Closes: 318747) + by Alwin Meschede + * fixed whitespace in mozilla-thunderbird.templates (Closes: 308961) + hint by Clytie Siddall + * apply fix for seamonkey migration crash (Closes: 285728) + 90_mail_components_miration_src_nsSeamonkeyProfileMigrator_cpp + * fix 'find' in update-mozilla-thunderbird-chrome (Closes: 315588) + patch by Michael Spang + + -- Alexander Sack Thu, 21 Jul 2005 21:00:00 +0100 + +mozilla-thunderbird (1.0.2-3) unstable; urgency=high + + * last maybe sarge upload with urgency high, contains only + translations (po files + gnome .desktop file lines) + + cs translation by Jan Outrata + (Closes: 309023) + + fi translation by Matti Pöllä + (Closes: 303805) + + ja translation by Kenshi Muto + (Closes: 307005) + + pt_BR translation by Andre Luis Lopes + (Closes: 304261) + + vi translation by Clytie Siddall + (Closes: 308959) + + added missed translation entries in gnome .desktop files + for it, ko, pl + + -- Alexander Sack Thu, 02 Jun 2005 22:00:00 +0100 + +mozilla-thunderbird (1.0.2-2) unstable; urgency=low + + * fixed TYPO in 71_extensionManagerAutoReRegister.dpatch, + probably causing #302218 (Closes: 302218) + * extended patch 71_extensionManagerAutoReRegister.dpatch, + now checking components.ini timestamp instead of + compreg.dat timestamp. removing components.ini compreg.dat + and XUL.mfasl if global Extensions.rdf file is newer then + components.ini. Probably helping to fix #302218 too. + * renamed xprt-xprintorg recommends to xprint (Closes: 300975) + * (re-)enabled pref extension (Closes: 302130) + + -- Alexander Sack Thu, 31 Mar 2005 07:00:00 +0100 + +mozilla-thunderbird (1.0.2-1) unstable; urgency=medium + * new upstream version (Closes: 301542) fixes some + security issues according to upstream + (http://www.mozilla.org/projects/security/known-vulnerabilities.html) + 1.0.2 fixes the following security related issues. + + MFSA 2005-30 GIF heap overflow parsing Netscape extension 2 + MFSA 2005-25 Image drag and drop executable spoofing + MFSA 2005-21 Overwrite arbitrary files downloading .lnk twice + MFSA 2005-18 Memory overwrite in string library + MFSA 2005-17 Install source spoofing with user:pass@host + MFSA 2005-15 Heap overflow possible in UTF8 to Unicode conversion + + -- Alexander Sack Sun, 27 Mar 2005 16:00:00 +0100 + +mozilla-thunderbird (1.0-4) unstable; urgency=low + + * removed not needed build-deps: csh + * included debconf (and gnome .desktop file) translations for + various languages: (Closes: 292072, 294622, 291477, 292507) + + debian/po/fr.po (Mohammed Adnène TROJETTE , + Aurelien Jarno ) + + debian/po/nl.po (Luk Claes ) + + debian/po/ca.po (Jordi Mallach ) + + debian/po/ko.po (Yooseong Yang ) + + debian/po/it.po (Vittorio Palmisano ) + + debian/po/pl.po (Robert Luberda ) + * fixed startscript problem + - updated 21_mozilla_in-patch.dpatch - thanks to + Kevin B. McCarty + * moved code of component debCleanComp.js to + nsExtensionManager, so it can automatically restart the + application if needed. + This should again lower the probabilty that + some upgrade, downgrade of thunderbird or extensions + breaks the chrome or component registry in your profile + dir. + + -- Alexander Sack Sun, 13 Mar 2005 13:00:00 +0100 + +mozilla-thunderbird (1.0-3) unstable; urgency=low + + * first upload to official archive for tbird 1.0 + (first since 0.9-6) + * finally I decided to upload this package to unstable, + though there is a debian-legal discussion going on + about the mozilla trademark. Since it might take some + time until a solution is found, I decided to upload + as usual. + * started to debrand the app to 'Debian Thunderbird' + + -- Alexander Sack Sun, 16 Jan 2005 14:00:00 +0100 + +mozilla-thunderbird (1.0-2) unstable; urgency=low + + * Uninstall file and dummy-empty-file must not be empty + * Included latest patch for extension manager + * Included Jaap Haitsma icons (Closes: 257640) + * fixed regression compared to 0.9-6 official package + that had problems to build because empty files where + not included in diff.gz + + -- Alexander Sack Fri, 10 Dec 2004 23:00:00 +0100 + +mozilla-thunderbird (1.0-1) unstable; urgency=low + + * new upstream release - 1.0 (Closes: 284560) + * includes new icons as default theme + * changed start.html page to not use the mozilla partical + in the package naming. This app is now officially called + 'Debian Thunderbird' + * removed -O from sparch arch (See: 284532) + * README.Debian improved + * adapted new manpage inspired by Ralf Katz + + -- Alexander Sack Tue, 08 Dec 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-7) unstable; urgency=low + + * added debconf capability to define what browser + integration is wanted + -> added /etc/mozilla-thunderbird/auto-config.js + to store automatically generated configs by debconf + + -- Alexander Sack Thu, 24 Nov 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-6) unstable; urgency=low + + * fixed bug in preinst script by strictly testing + the existance of files before invoking mv + operations (Closes: 282186) + * fixed stupid upgrade bug in preinst script. + ls uses now -d to produce no garbage when + used as source for moving. This closes + a bug reported against enigmail, but is a + bug of the thunderbird package. This release + fixes it (Closes: 282505) + * still missing reply for current grave bug + 282506. I think this is due to the initial + upgrade problems. Those problem should not + occur anymore with the fixes of this packages + upgrade mechanism (Closes: 282506) + + -- Alexander Sack Thu, 24 Nov 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-5) unstable; urgency=low + + * added patch by Kevin B. McCarty + adds In-Reply-To mailto: link capability (Closes: 268055) + * late verification of bug fixed by preview package: + fixes: message editor steals keyboard focus (Closes: 274313) + + -- Alexander Sack Thu, 18 Nov 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-4) unstable; urgency=low + + * fixed upgrade bug - when /usr/lib/mozilla-thunderbird/extensions + is a link, remove it and create a directory for it! After that + move all extensions from /var/lib/mozilla-thunderbird/extensions + to the new folder. + * added example firefox-config.js.tmpl to use the new wrapper + script. This config should only be used if you are in a non + gconf capable window environment, e.g. pure openbox, etc. + See the README.Debian for further details on howto integrate + thunderbird properly. + * added uninstall and extension directory for default theme + extension. This should make it possible to remove the package + cleanly. + * Bug#280254: mozilla-thunderbird: Please package + thunderbird 0.9 (Closes: 280076) + * patch by Kevin McCarty , fixes + Subject munging if thunderbird is running (Closes: 263971) + * fixed: typo in welcome message for preview pane (Closes: 278690) + * thx to bug submitters that verified the fix of the following + bugs in my preview package at people.debian.org: + + Bug#277304: mozilla-thunderbird: thunderbird dies silently on + some mails (Closes: 277304) + + no sound when new mail arrives (Closes: 274044) + + Focus Problem when a filter is selected (Closes: 272157) + + "Get Mail" button fails intermittently on additional accounts + (Closes: 280482) + * added patch to fix /tmp/ file permissions during processing of + imap directory (Closes: 280363) + * cleaning up compreg.dat on Extensions.rdf change, so after + restart all troubles with this issue are gone (Closes: 273213) + * Already since 0.9-1, but I forgot to mention: + + set default smtp server option should work now + (Closes: 274177) + + with view filter: unread on, newly read messages are + not removed from the message list anymore (Closes: 275708) + * other bugs resolved by upstream: + + problems while threads refresh (Closes: 239203) + + Shortcuts conflict with ISO 14755 (Closes: 246916) + + -- Alexander Sack Mon, 15 Nov 2004 22:45:00 +0100 + +mozilla-thunderbird (0.9-3) unstable; urgency=low + + * rm -f /usr/lib/mozilla-thunderbird/extensions + in postinst if it is a link! After that move + stuff from /var/lib/mozilla-thunderbird/extensions + to /usr/lib/mozilla-thunderbird/extensions. + The rest will be done by update-mozilla-thunderbird-chrome + + -- Alexander Sack Thu, 11 Nov 2004 22:45:00 +0100 + +mozilla-thunderbird (0.9-2) unstable; urgency=low + + * fixed bad bug in mozilla-thunderbird.install, + that removed the fulls extensions dir + * fixed broken upgrade problem due to + mozilla-thunderbird-inspector that tried to + install resource files under /usr/lib/.../res, + but that is a link. Now storing under /usr/share/ + + -- Alexander Sack Wed, 10 Nov 2004 22:00:00 +0100 + +mozilla-thunderbird (0.9-1) unstable; urgency=low + + * new upstream version (0.9) + * include patch amd64: + by Frederik Schueler + -> use gcc-3.4,g++3.4 (Closes: 261365) + * pasting issues partially fixed (See: 279656) + * Local Folders needed, cannot be deleted anymore + (Closes: 226253) + * including great patch of Mike Hommey + who brought the final fix for the extension manager + problems; changed update-mozilla-thunderbird-chrome + according to the new -register capability + + -- Alexander Sack Wed, 10 Nov 2004 20:00:00 +0100 + +mozilla-thunderbird (0.8-3) unstable; urgency=medium + + * respin for new binutils version (Closes: 273354) + * removing essential and build-essential build + dependencies to: base-files, libc6-dev + * update-mozilla-thunderbird-chrome: output of find(s) + to /dev/null (Closes: 267661) + * included mozilla-thunderbird-compose script in docs + section + + -- Alexander Sack Sat, 26 Sep 2004 13:00:00 +0100 + +mozilla-thunderbird (0.8-2) unstable; urgency=medium + + * include good build_id during build fixes + upgrade problems + (Closes: 272175, 272182) + * fixed some startup-script regressions. Remote + commands are almost ready by upstream. Only + -compose argument is interpreted in a debian + specific way. Of course, locale settings + are still debian specific too. + * improved changelog to list important notes + for upgrading to 0.8 + * 10_mips_optimization_patch.dpatch: + thiemo seufers mips(el) workaround + removing CFLAGS="$CFLAGS -Wa,-xgot" and + CXXFLAGS="$CXXFLAGS -Wa,-xgot" and adding + inline when DEBUG is true (Closes: 272162). + + -- Alexander Sack Sat, 18 Sep 2004 21:00:00 +0100 + +mozilla-thunderbird (0.8-1) unstable; urgency=medium + + * new upstream version 0.8 + * fixes various security issues in sarge and sid + (Closes: 263752) + * hacked a tiny patch for nsExtensionManager.js.in bug that + lets thunderbird (and firefox) loop on startup if + launched with non-root account. + + -- Alexander Sack Fri, 17 Sep 2004 10:00:00 +0100 + +mozilla-thunderbird (0.7.3-6) unstable; urgency=high + + * still fixes the security bug in sarge (see #263752) + ... thus urgency=high + * applied 50_mozilla-thunderbird-xpcom-xptcall-mips.dpatch + provided by Thiemo Seufer + (Closes: 267017) + * removed as Uploader as he expressed + that he has no more time to co-maintaining this package. + Thanks for your work! + + -- Alexander Sack Sun, 12 Sep 2004 17:30:00 +0100 + +mozilla-thunderbird (0.7.3-5) unstable; urgency=high + + * ping tbird to find a running instance instead of searching + for lock file that could still be there after a crash (redone) + (Closes: 267144) + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Thu, 21 Aug 2004 14:00:00 +0100 + +mozilla-thunderbird (0.7.3-4) unstable; urgency=high + + * ping tbird to find a running instance instead of searching + for lock file that could still be there after a crash + (Closes: 267144) + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Thu, 21 Aug 2004 14:00:00 +0100 + +mozilla-thunderbird (0.7.3-3) unstable; urgency=high + + * extended patch for mips: 50_xpcom_xptcall_xptcstubs_asm_mips_s + (Closes: 266851) + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Thu, 19 Aug 2004 17:00:00 +0100 + +mozilla-thunderbird (0.7.3-2) unstable; urgency=high + + * included patch for mips: 50_xpcom_xptcall_xptcstubs_asm_mips_s + * made global-config.js more up to date (Closes: 261815) + * recommend myspell-en-us | myspell-dictionary (Closes: 265272) + * enigmail is now suggested and not recommended anymore + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Wed, 18 Aug 2004 16:00:00 +0100 + +mozilla-thunderbird (0.7.3-1) unstable; urgency=high + + * new upstream release 0.7.3 - fixes security issues + (Closes: 263752) + * changed maintainer email to debian address + * removing /var/lib/mozilla-thunderbird dir on purge + (Closes: 260212). + * reverting gcc-3.2 and g++-3.2 for hppa architecture to back to + default gcc/g++ compiler + * fixed package description of mozilla-thunderbird-inspector and + mozilla-thunderbird-offline (Closes: 260374, 260376) + * plain mozilla-thunderbird now opens Inbox window to front + instead of profile manager when already running (Closes: 259476) + + -- Alexander Sack Wed, 04 Aug 2004 20:00:00 +0100 + +mozilla-thunderbird (0.7.1-3) unstable; urgency=low + + * updated README.Debian to be more specific + on the lost profile workaround! + * added 10_profile_migration.dpatch to fix + profile migration issues (Closes: 258741, 258747) + * updated .desktop file Comment (Closes: 257596) + * trying gcc-3.2 and g++-3.2 for hppa architecture + + -- Alexander Sack Tue, 13 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7.1-2) unstable; urgency=low + + * added 10_profile_migration.dpatch to fix + profile migration issues (Closes: 258741, 258747) + * updated .desktop file Comment (Closes: 257596) + * trying gcc-3.2 and g++-3.2 for alpha and amd64 + architecture + + -- Alexander Sack Mon, 12 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7.1-1) unstable; urgency=low + + * new upstream source 0.7.1 (Closes: 257320, 256843) + * fixed broken theme ID + * include extension descriptions and set them + to locked + * fixed typo in branding patch ( Hompage ->Homepage ) + * included movemail for handling local mail (Closes: 219893) + * provides new mozilla-thunderbird-dev + * does not build enigmail anymore. enigmail has got its + own source package for now. Hopefully this package will + build soon against mozilla-mailnews and mozilla-thunderbird, + so only one package is needed for both. + * update-mozilla-thunderbird-chrome: LD_LIBRARY_PATH bug fixed + (Closes: 254144) + * verified that -compose mailto:email@host.com works (Closes: 252261) + * include upgrade info in README.debian. Documented + new global-config.js file in README.debian too (Closes: 253315) + * crash on corrupt bmp fixed by upstream (Closes: 248857) + * added Provides: mail-reader, imap-client (Closes: 257199) + * renamed menu entry to 'Thunderbird Mail' (Closes: 257596) + + -- Alexander Sack Mon, 5 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7.1-0.0.asac1) unstable; urgency=low + + * new upstream source 0.7.1 + * fixed broken theme ID + * include extension descriptions and set them + to locked + * fixed typo in branding patch ( Hompage ->Homepage ) + * included movemail for handling local mail + + -- Alexander Sack Thu, 1 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7-0.0.asac1) unstable; urgency=low + + * new upstream source 0.7 + * provides new mozilla-thunderbird-dev + * does not build enigmail anymore. enigmail has got its + own source package for now. Hopefully this package will + build soon against mozilla-mailnews and mozilla-thunderbird, + so only one package is needed for both. + * update-mozilla-thunderbird-chrome: LD_LIBRARY_PATH bug fixed + (Closes: 254144) + * verified that -compose mailto:email@host.com works (Closes: 252261) + * include upgrade info in README.debian (Closes: 253315) + * crash on corrupt bmp fixed by upstream (Closes: 248857) + + -- Alexander Sack Wed, 23 Jun 2004 11:00:00 +0100 + +mozilla-thunderbird (0.6-asac1) unstable; urgency=low + + * new binary package for development files + mozilla-thunderbird-dev + * mozilla-thunderbird now Provides: mail-reader and imap-client + + -- Alexander Sack Tue, 08 Jun 2004 15:00:00 +0100 + +mozilla-thunderbird (0.6-3) unstable; urgency=low + + * added libx11-dev, libxp-dev, libxt-dev to Build-Depends + * removed xlibs-dev from Build-Depends + * fixed typo in starting screen (Closes: 249850) + * removed duplicate readme file (Closes: 247162) + * added readme file upgrade note to remove the + chrome.rdf in the users profile directory after + upgrade. + + -- Alexander Sack Thu, 03 Jun 2004 00:20:00 +0100 + +mozilla-thunderbird (0.6-2) unstable; urgency=low + + * Fix missing build-dep on xlibs-dev, causing FTBFS errors + (closes: Bug#251166) + + -- Soeren Boll Overgaard Fri, 28 May 2004 11:02:07 +0000 + +mozilla-thunderbird (0.6-1) unstable; urgency=low + * accumulated changelog: 0.6-0.1rc1 + 0.6-0.1rc2 + * repackaged upstream source tarball to not-include + non-free icons of the trademarked new branding + * changed menu icon size to 32x32 + * added suggestions for mozilla-thunderbird-typeaheadfind + mozilla-thunderbird-offline and mozilla-thunderbird-inspector + * new upstream version: 0.6 + * MAP users can now benefit from support for the IMAP IDLE command + which allows the mail server to push notifications such as new + mail arriving as soon as it arrives (Closes: 232544) + * Thunderbird supports server wide news filters that apply to all + news groups on a server + * Mail filters can now mark messages as junk + * Offline support is now available as an extension package + (Closes: 231920) + * Command line parsing problems fixed (Closes: 232342) + * Find broken in view source is fixed (Closes: 232580) + * Alerts and crash when deleting multiple nested + folders inside the trash folder is fixed (Closes: 237705, 244414) + * shift-c selects all as read (Closes: 245039) + * menu hint changed to mail (Closes: 246211) + * Alt-A selects all messages (Closes: 229518) + * typeahead find extension added as extra package + (Closes: 232562) + * suggesting mozilla-firefox now (Closes: 240708, 234918) + * changed mozilla-thunderbird.xpm to envelope with flames + (Closes: 243028) + * new enigmail upstream version included (0.86.6), + (Closes: 235553) + * now bulding with -O2 on all platforms, but ia64, arm, + sparc, alpha, powerpc + * global enigmail config file now in + /etc/mozilla-thunderbird/pref/enigmail.js + * new binary targets: + mozilla-thunderbird-inspector, + mozilla-thunderbird-offline, + mozilla-thunderbird-typeaheadfind + * restructured conffiles: now a single global config + file exists: /etc/mozilla-thunderbird/global-config.js, + which may be used by admins to make their + preconfigurations. + Old config files in /etc/mozilla-thunderbird/pref + will be reserved till next --purge + + -- Alexander Sack Sat, 08 May 2004 08:45:00 +0100 + +mozilla-thunderbird (0.5+.040427-1) unstable; urgency=low + + * new snapshot of 040427 + * added build depend: libgnomevfs2-dev + * increased debian policy standard version to 3.6.1 + + -- Alexander Sack Tue, 27 Apr 2004 12:45:00 +0100 + +mozilla-thunderbird (0.5+.040418-1) unstable; urgency=low + + * new snapshot of 040418 + * changed desktop icon to envelope with flames (Closes: 243028) + + -- Alexander Sack Sun, 18 Apr 2004 12:45:00 +0100 + +mozilla-thunderbird (0.5+.040412-1) unstable; urgency=low + + * new snapshot of 040412 + * Updated enigmail to 0.83.6 + + -- Alexander Sack Mon, 12 Apr 2004 01:37:00 +0100 + +mozilla-thunderbird (0.5+.040330-1) unstable; urgency=low + + * new snapshot of 040320 + * Updated enigmail to 0.83.5 (Closes: 235553) + + -- Alexander Sack Tue, 30 Mar 2004 17:30:20 +0100 + +mozilla-thunderbird (0.5-4) unstable; urgency=low + + * reenabled hppa patch, which apparently led to FTBFS on hppa + + -- Alexander Sack Thu, 04 Mar 2004 21:30:20 +0100 + +mozilla-thunderbird (0.5-3) unstable; urgency=medium + + * preinst added to allow clean upgrade path to this + (Closes: 234118, Closes: 234267) + * added prerm script to allow a clean remove of package + + -- Alexander Sack Sun, 29 Feb 2004 10:30:20 +0100 + +mozilla-thunderbird (0.5-2) unstable; urgency=low + + * new source package layout!! Now using orig.tar.gz with diff.gz + (Closes: 232055) + * moved arch-indep chrome stuff to /usr/share/mozilla-thunderbird/chrome + * moved images to /usr/share/mozilla-thunderbird/res + /usr/share/mozilla-thunderbird/icons + /usr/share/mozilla-thunderbird/chrome/icons + + -- Alexander Sack Thu, 19 Feb 2004 19:30:20 +0100 + +mozilla-thunderbird (0.5-1.1) unstable; urgency=low + + * new source package layout!! Now using orig.tar.gz with diff.gz + + -- Alexander Sack Mon, 11 Feb 2003 19:30:20 +0100 + +mozilla-thunderbird (0.5-1) unstable; urgency=low + + * Aggregated changes since 0.4-1: + * new upstream release 0.5 included + * added xprt-xprintorg to Recommends (Closes: 226626) + * upgraded enigmail to 0.83.2 (Closes: 228678) + + includes a workaround for mozilla bug + leading to a crash in rare situations + (fixed in 0.82.6) + * improved package structure. Sources now are included as original archives + & are extracted to build-dir. (Closes: 225033) + * Minor wording changes in package description, pointed out by + Mark Stevenson. + * New debianization of appearance (branding) + * added switches for pref.js config entries for + individual doubleclick timeout & drag threshold + settings in gtk2 (Closes: 229146) + + -- Alexander Sack Mon, 09 Feb 2003 19:30:20 +0100 + +mozilla-thunderbird (0.5-0.1) unstable; urgency=low + + * preview of thunderbird-0.5 rc2 + + -- Alexander Sack Mon, 07 Feb 2003 19:30:20 +0100 + +mozilla-thunderbird (0.4-1.6) unstable; urgency=low + + * added basic gtk settings as mozilla prefs: + + widget.gtk2.dnd.threshold - treshold in pixel before a drag starts + + widget.gtk2.double_click_timeout - + maximum time in milliseconds between two clicks + to become recognized as double-click e.g. to get + rid of unexpected folder moves, etc. + * upgraded enigmail to 0.83.2 + + -- Alexander Sack Mon, 05 Feb 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.5) unstable; urgency=low + + * added xprt-xprintorg to Recommends + * upgraded enigmail to 0.83.1 + + -- Alexander Sack Mon, 04 Feb 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.4) unstable; urgency=low + + * improved package structure. Sources now are included as original archives + & are extracted to build-dir. (Closes: 225033) + * late checkin. Already uploaded to mentors + + -- Alexander Sack Mon, 27 Jan 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.31) unstable; urgency=low + + * Minor wording changes in package description, pointed out by + Mark Stevenson. + + -- Soeren Boll Overgaard Wed, 14 Jan 2004 12:46:23 +0000 + +mozilla-thunderbird (0.4-1.3) unstable; urgency=low + + * further debinized branding. updated 10_debian-branding patch + * do not use MOZILLA_FIVE_HOME. Always set the MOZILLA_FIVE_HOME + correctly. -> This is not anymore mozilla suite, so it is obsolete. + + -- Alexander Sack Mon, 06 Jan 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.2) unstable; urgency=low + + * updated enigmail to 0.82.6 - includes a workaround for mozilla bug + leading to a crash. + + -- Alexander Sack Mon, 30 Dec 2003 20:30:20 +0100 + +mozilla-thunderbird (0.4-1.1) unstable; urgency=low + + * switched to .orig.tgz file approach + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-1) unstable; urgency=low + + * version for first debian official upload of 0.4 + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-0.3) unstable; urgency=low + + * updated latest enigmail source to version 0.82.5 + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-0.2) unstable; urgency=low + + * added locale support: default locale is en-US + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-0.1) unstable; urgency=low + + * upgraded official 0.4 release + * browser integration works on gnome/kde + * new mozilla-theme + * latest engimail included + + -- Alexander Sack Mon, 10 Nov 2003 00:30:20 +0100 + +mozilla-thunderbird (0.3-7) unstable; urgency=low + + * added patches for hppa & alpha, arm & mips specfic stuff. took the patches from + the debian mozilla package + + -- Alexander Sack Mon, 10 Nov 2003 00:30:20 +0100 + +mozilla-thunderbird (0.3-6) unstable; urgency=low + + * added patch to switch from ex to sed which certainly won't + have terminal problems + * added .desktop file for menu integration in gnome, kde, etc. + + -- Alexander Sack Sun, 2 Nov 2003 22:23:40 +0100 + + +mozilla-thunderbird (0.3-5) unstable; urgency=low + + * Alexander Sack: + - added build depend nvi. + * Soeren Boll Overgaard + - added dependency on gnupg for enigmail. + + -- Alexander Sack Thu, 29 Oct 2003 21:00:59 +0200 + +mozilla-thunderbird (0.3-4) unstable; urgency=low + + * Soeren Boll Overgaard: + - Improve wording in long descriptions. + - Fix dependency problem of the enigmail-package. + + -- Soeren Boll Overgaard Tue, 28 Oct 2003 17:08:55 +0100 + +mozilla-thunderbird (0.3-3) unstable; urgency=low + + * Build-depend on m4 + * Actually do something in binary-arch + * asac: Applied Patch for myspell issue (closes: Bug#217555) + * fixed mozilla-thunderbird.sgml according to docbook DTD (closes: Bug#217708) + + -- Soeren Boll Overgaard Sun, 26 Oct 2003 23:24:25 +0100 + +mozilla-thunderbird (0.3-2) unstable; urgency=low + + * Build-depend on dpatch. + + -- Soeren Boll Overgaard Sun, 26 Oct 2003 13:26:31 +0100 + +mozilla-thunderbird (0.3-1) unstable; urgency=low + + * Make my name look right in Uploaders. + * Change version to one suited to Debian. + * Update standards version to 3.6.1 (No changes). + + -- Soeren Boll Overgaard Sun, 26 Oct 2003 09:38:24 +0000 + +mozilla-thunderbird (0.3-0.3) unstable; urgency=low + + * readded forgotten patch hunks + + -- Alexander Sack Thu, 24 Oct 2003 09:00:59 +0200 + +mozilla-thunderbird (0.3-0.2) unstable; urgency=low + + * New upstream release + * latest patches of mozilla-thunderbird-0.2-3 are included + + -- Alexander Sack Thu, 21 Oct 2003 20:55:59 +0200 + +mozilla-thunderbird (0.2-3) unstable; urgency=low + + * fixed sudo bug (closes: Bug#216469) + * repackaging because of enigmail build exception + + -- Alexander Sack Wed, 15 Oct 2003 17:56:59 +0200 + +mozilla-thunderbird (0.2-2) unstable; urgency=low + + * Don't limit archs to i386. + + -- Soeren Boll Overgaard Sat, 18 Oct 2003 10:27:05 +0000 + +mozilla-thunderbird (0.2-1) unstable; urgency=low + + * restarted versioning for official debian upload + * Uploaded by S. Boll Overgaard + - Closes thunderbird ITP (closes: Bug#196504) + + -- Alexander Sack Wed, 15 Oct 2003 17:56:59 +0200 + +mozilla-thunderbird (0.3-0.1) unstable; urgency=low + + * New upstream release + + -- Alexander Sack Thu, 16 Oct 2003 10:51:59 +0200 + +mozilla-thunderbird (0.2asac-5) unstable; urgency=low + + * some more lintian cleaning of source package + * added boll@debian.org as co-maintainer + * reduction of build depends redundancy + + -- Alexander Sack Wed, 15 Oct 2003 17:56:50 +0000 + +mozilla-thunderbird (0.2asac-4) unstable; urgency=low + + * minimized build-depends & removed version constraints from build-deps to ease backporting + * added lintian override + * added long description for enigmail + * adjusted preference directory to $HOME/.mozilla-thunderbird + + -- Alexander Sack Mon, 13 Oct 2003 20:53:45 +0000 + +mozilla-thunderbird (0.2asac-3) unstable; urgency=low + + * needed to get the the source archive up again :( + + -- Alexander Sack Thu, 9 Oct 2003 18:51:01 +0200 + +mozilla-thunderbird (0.2asac-2) unstable; urgency=high + + * fixed the build procedure for enigmail binary package + + -- Alexander Sack Tue, 7 Oct 2003 23:04:01 +0200 + +mozilla-thunderbird (0.2asac-1) unstable; urgency=low + + * New upstream release + * added binary package mozilla-thunderbird-enigmail + * now update-chrome enabled + * startup hooks (currently for enigmail) allowed in + /var/lib/mozilla-thunderbird/startup-hooks.d + + -- Alexander Sack Fri, 3 Oct 2003 22:16:05 +0200 + +mozilla-thunderbird (0.2-5) unstable; urgency=low + + * changed menu entry image to gif image of size 32x32 -> lintian --check + tested + * added manual pages for mozilla-thunderbird & thunderbird + * remove mozilla-thunderbird-config from binary package + + -- Alexander Sack Thu, 2 Oct 2003 02:30:44 +0200 + +mozilla-thunderbird (0.2-4) unstable; urgency=low + + * fixed conflict with snapshot build + + + -- Alexander Sack Wed, 1 Oct 2003 16:50:33 +0200 + +mozilla-thunderbird (0.2-3) unstable; urgency=low + + * apply quickfix for bug #212604 (bugzilla.mozilla.org) + -> firebird ist remote startable even if thunderbird is + running + * added basic man pages + + -- Alexander Sack Wed, 1 Oct 2003 12:21:04 +0200 + +mozilla-thunderbird (0.2-2) unstable; urgency=low + + * corrected menu entry command to thunderbird + + -- Alexander Sack Thu, 25 Sep 2003 12:00:36 +0200 + +mozilla-thunderbird (0.2-1) unstable; urgency=low + + * Initial Release. + + -- Alexander Sack Wed, 24 Sep 2003 18:55:50 +0200 diff --git a/compat b/compat new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 0000000000..b6724ef730 --- /dev/null +++ b/control @@ -0,0 +1,2352 @@ +Source: thunderbird +Section: mail +Priority: optional +Maintainer: Carsten Schoenert +Uploaders: + Christoph Goehre , +Build-Depends: + autoconf2.13, + bash-completion, + bzip2, + cargo (>= 0.20), + clang, + debhelper (>= 10.2.5~), + dh-apparmor, + dh-exec, + dpkg (>= 1.16.18~), + dpkg-dev (>= 1.16.18~), + libasound2-dev [linux-any], + libatk-adaptor, + libbz2-dev, + libcairo2-dev (>= 1.10.2-1.1~), + libclang-6.0-dev, + libdbus-glib-1-dev (>= 0.60), + libevent-dev (>= 1.4.1), + libffi-dev, + libfontconfig1-dev, + libglib2.0-dev (>= 2.22.0), + libglib2.0-dev, + libgtk2.0-dev, + libgtk-3-dev (>= 3.4), + libhunspell-dev (>= 1.5.1~), + libicu-dev (>= 59.1~), + libjsoncpp-dev, + libidl-dev (>= 0.8.0), + libiw-dev [linux-any], + libnotify-dev, + libnspr4-dev (>= 2:4.19~), + libnss3-dev (>= 2:3.36.1~), + libpng-dev, + libpulse-dev, + libreadline-dev, + libstartup-notification0-dev, + libsqlite3-dev (>= 3.22.0~), + libvpx-dev (>= 1.5.0), + libx11-dev, + libx11-xcb-dev, + libxau-dev, + libxft-dev, + libxt-dev, + llvm-dev, + mesa-common-dev, + mozilla-devscripts, + python-minimal (>= 2.6.6-13~), + python-ply, + python2.7, + rustc (>= 1.19), + unzip, + yasm (>= 1.1), + zip, + zlib1g-dev, +Vcs-Git: https://salsa.debian.org/mozilla-team/thunderbird.git +Vcs-Browser: https://salsa.debian.org/mozilla-team/thunderbird +Homepage: http://www.mozilla.org/thunderbird/ +X-Debian-Homepage: http://wiki.debian.org/Thunderbird +Standards-Version: 4.3.0 + +Package: thunderbird +Architecture: any +Depends: + debianutils (>= 1.16), + fontconfig, + psmisc, + x11-utils, + ${misc:Depends}, + ${shlibs:Depends}, +Recommends: + lightning (= ${source:Version}), + myspell-en-us | hunspell-dictionary | myspell-dictionary, +Suggests: + apparmor, + fonts-lyx, + libgssapi-krb5-2, +Provides: + mail-reader, +Xb-Xul-AppId: {3550f703-e582-4d05-9a08-453d09bdfdc6} +Breaks: + calendar-exchange-provider (<< 4.0.0~beta4-1~), + enigmail (<< 2:2~), + hunspell-ar (<< 0.0.0+20080110-1.1), + hunspell-da (<< 1:3.1.0-3), + hunspell-de-at (<< 20071211-2), + hunspell-de-ch (<< 20071211-2), + hunspell-de-de (<< 20071211-2), + hunspell-de-med (<< 20090825-1), + hunspell-en-ca (<< 1:3.1.0-3), + hunspell-en-us (<< 20070829-3), + hunspell-fr (<< 1:3.1.0-3), + hunspell-gl-es (<< 2.2a-6), + hunspell-hu (<< 1:3.1.0-3), + hunspell-ko (<< 0.3.3-1), + hunspell-ne (<< 1:3.1.0-3), + hunspell-se (<< 1.0~beta6.20081222-1.1), + hunspell-sh (<< 1:3.1.0-3), + hunspell-sr (<< 1:3.1.0-3), + hunspell-uz (<< 0.6-3.1), + hunspell-vi (<< 1:3.1.0-3), + lightning (<< ${source:Version}), + myspell-af (<< 1:3.1.0-3), + myspell-ca (<< 0.6-8), + myspell-cs-cz (<< 20040229-4.1), + myspell-da (<< 1.6.18-1.1), + myspell-de-at (<< 20071211-2), + myspell-de-ch (<< 20071211-2), + myspell-de-de (<< 20071211-2), + myspell-de-de-oldspell (<< 1:2-25.1), + myspell-el-gr (<< 0.3-1.1), + myspell-en-au (<< 2.1-5), + myspell-en-gb (<< 1:3.1.0-3), + myspell-en-us (<< 1:3.1.0-3), + myspell-en-za (<< 1:3.1.0-3), + myspell-eo (<< 2.1.2000.02.25-41), + myspell-es (<< 1.10-7), + myspell-et (<< 1:20030606-12.1), + myspell-fa (<< 0.20070816-2), + myspell-fi (<< 0.7-17.2), + myspell-fo (<< 0.2.36-3), + myspell-fr (<< 1.4-25), + myspell-fr-gut (<< 1:1.0-26.1), + myspell-ga (<< 2.0-19), + myspell-gd (<< 0.50-7), + myspell-gv (<< 0.50-8), + myspell-hr (<< 20060617-2), + myspell-hu (<< 0.99.4-1.2), + myspell-hy (<< 0.10.1-1.1), + myspell-it (<< 1:3.1.0-3), + myspell-ku (<< 0.20.0-1.1), + myspell-lv (<< 0.7.3-3.1), + myspell-nb (<< 2.0.10-3.1), + myspell-ne (<< 1.0-4.1), + myspell-nl (<< 1:1.10-3), + myspell-nn (<< 2.0.10-3.1), + myspell-pl (<< 20090830-1), + myspell-pt-br (<< 2009.03.30-1.1), + myspell-pt-pt (<< 20090309-1.1), + myspell-ru (<< 0.99g5-8.1), + myspell-sk (<< 0.5.5a-2.1), + myspell-sv-se (<< 1.3.8-6-2.2), + myspell-sw (<< 1:3.1.0-3), + myspell-th (<< 1:3.1.0-3), + myspell-tl (<< 0.4-0-5), + xul-ext-compactheader (<< 2.1.0~), + xul-ext-foxyproxy-standard (<< 4.5.6-debian-2~), + xul-ext-gnome-keyring (<< 0.12-1~), + xul-ext-sogo-connector (<< 31.0.5-2~), +Description: mail/news client with RSS, chat and integrated spam filter support + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + It supports different mail accounts, no matter of the used protocol like + POP(s) or IMAP(s), has an integrated learning Spam filter, and offers easy + organization of mails with tagging and virtual folders. Also, more features + can be added by installing extensions. + . + The goal of Thunderbird is to produce a cross platform standalone mail + application using the XUL user interface language. + +Package: lightning +Architecture: all +Depends: + thunderbird (>= ${binary:Version}), + ${misc:Depends}, +Suggests: + calendar-google-provider, + fonts-lyx, +Provides: + calendar-timezones, +Breaks: + calendar-timezones, +Replaces: + calendar-timezones, +Description: Calendar Extension for Thunderbird + Lightning is a calendar extension for Thunderbird. It can handle events, + event invitations and tasks in multiple calendars. + . + It supports local calendars, CalDAV and plain ics files on CardDAV and WebDAV. + +Package: calendar-google-provider +Architecture: all +Depends: + lightning (>= ${binary:Version}), + ${misc:Depends}, +Enhances: + thunderbird, + lightning, +Description: Google Calendar support for lightning + This extension adds support for accessing google calendars in Thunderbird + via lightning. + . + It's a recommended component if you want to connect Thunderbird to your + Google calendar. + +Package: thunderbird-l10n-all +Architecture: all +Section: metapackages +Depends: + thunderbird-l10n-ar (>= ${binary:Version}), + thunderbird-l10n-ast (>= ${binary:Version}), + thunderbird-l10n-be (>= ${binary:Version}), + thunderbird-l10n-bg (>= ${binary:Version}), + thunderbird-l10n-br (>= ${binary:Version}), + thunderbird-l10n-ca (>= ${binary:Version}), + thunderbird-l10n-cs (>= ${binary:Version}), + thunderbird-l10n-da (>= ${binary:Version}), + thunderbird-l10n-de (>= ${binary:Version}), + thunderbird-l10n-dsb (>= ${binary:Version}), + thunderbird-l10n-el (>= ${binary:Version}), + thunderbird-l10n-en-gb (>= ${binary:Version}), + thunderbird-l10n-es-ar (>= ${binary:Version}), + thunderbird-l10n-es-es (>= ${binary:Version}), + thunderbird-l10n-et (>= ${binary:Version}), + thunderbird-l10n-eu (>= ${binary:Version}), + thunderbird-l10n-fi (>= ${binary:Version}), + thunderbird-l10n-fr (>= ${binary:Version}), + thunderbird-l10n-fy-nl (>= ${binary:Version}), + thunderbird-l10n-ga-ie (>= ${binary:Version}), + thunderbird-l10n-gd (>= ${binary:Version}), + thunderbird-l10n-gl (>= ${binary:Version}), + thunderbird-l10n-he (>= ${binary:Version}), + thunderbird-l10n-hr (>= ${binary:Version}), + thunderbird-l10n-hsb (>= ${binary:Version}), + thunderbird-l10n-hu (>= ${binary:Version}), + thunderbird-l10n-hy-am (>= ${binary:Version}), + thunderbird-l10n-id (>= ${binary:Version}), + thunderbird-l10n-is (>= ${binary:Version}), + thunderbird-l10n-it (>= ${binary:Version}), + thunderbird-l10n-ja (>= ${binary:Version}), + thunderbird-l10n-kab (>= ${binary:Version}), + thunderbird-l10n-kk (>= ${binary:Version}), + thunderbird-l10n-ko (>= ${binary:Version}), + thunderbird-l10n-lt (>= ${binary:Version}), + thunderbird-l10n-ms (>= ${binary:Version}), + thunderbird-l10n-nb-no (>= ${binary:Version}), + thunderbird-l10n-nl (>= ${binary:Version}), + thunderbird-l10n-nn-no (>= ${binary:Version}), + thunderbird-l10n-pl (>= ${binary:Version}), + thunderbird-l10n-pt-br (>= ${binary:Version}), + thunderbird-l10n-pt-pt (>= ${binary:Version}), + thunderbird-l10n-rm (>= ${binary:Version}), + thunderbird-l10n-ro (>= ${binary:Version}), + thunderbird-l10n-ru (>= ${binary:Version}), + thunderbird-l10n-si (>= ${binary:Version}), + thunderbird-l10n-sk (>= ${binary:Version}), + thunderbird-l10n-sl (>= ${binary:Version}), + thunderbird-l10n-sq (>= ${binary:Version}), + thunderbird-l10n-sr (>= ${binary:Version}), + thunderbird-l10n-sv-se (>= ${binary:Version}), + thunderbird-l10n-tr (>= ${binary:Version}), + thunderbird-l10n-uk (>= ${binary:Version}), + thunderbird-l10n-vi (>= ${binary:Version}), + thunderbird-l10n-zh-cn (>= ${binary:Version}), + thunderbird-l10n-zh-tw (>= ${binary:Version}), + ${misc:Depends}, +Description: All language packages for Thunderbird (meta) + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package is a metapackage depending on all available localization of + Thunderbird. + +Package: thunderbird-l10n-ar +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ar +Replaces: + lightning-l10n-ar (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ar (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ar, +Recommends: + hunspell-ar, +Description: Arabic language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Arabic. + +Package: thunderbird-l10n-ast +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ast +Replaces: + lightning-l10n-ast (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ast (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ast, +Description: Asturian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Asturian. + +Package: thunderbird-l10n-be +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:be +Replaces: + lightning-l10n-be (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-be (<< 1:60.2.1-1~), +Provides: + lightning-l10n-be, +Recommends: + hunspell-be, +Description: Belarusian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Belarusian. + +Package: thunderbird-l10n-bg +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:bg +Replaces: + lightning-l10n-bg (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-bg (<< 1:60.2.1-1~), +Provides: + lightning-l10n-bg, +Recommends: + hunspell-bg | myspell-bg, +Description: Bulgarian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Bulgarian. + +Package: thunderbird-l10n-br +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:br +Replaces: + lightning-l10n-br (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-br (<< 1:60.2.1-1~), +Provides: + lightning-l10n-br, +Recommends: + hunspell-br, +Description: Breton language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Breton. + +Package: thunderbird-l10n-ca +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ca +Replaces: + lightning-l10n-ca (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ca (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ca, +Recommends: + hunspell-ca | myspell-ca, +Description: Catalan/Valencian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Catalan/Valencian. + +Package: thunderbird-l10n-cs +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:cs +Replaces: + lightning-l10n-cs (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-cs (<< 1:60.2.1-1~), +Provides: + lightning-l10n-cs, +Recommends: + hunspell-cs | myspell-cs-cz, +Description: Czech language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Czech. + +Package: thunderbird-l10n-cy +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:cy +Replaces: + lightning-l10n-cy (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-cy (<< 1:60.2.1-1~), +Provides: + lightning-l10n-cy, +Description: Welsh language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Welsh. + +Package: thunderbird-l10n-da +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:da +Replaces: + lightning-l10n-da (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-da (<< 1:60.2.1-1~), +Provides: + lightning-l10n-da, +Recommends: + myspell-da | hunspell-da, +Description: Danish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Danish. + +Package: thunderbird-l10n-de +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:de +Replaces: + lightning-l10n-de (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-de (<< 1:60.2.1-1~), +Provides: + lightning-l10n-de, +Recommends: + hunspell-de-de | hunspell-de-at | hunspell-de-ch | myspell-de-de | myspell-de-at | myspell-de-ch, +Description: German language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in German. + +Package: thunderbird-l10n-dsb +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:dsb +Replaces: + lightning-l10n-dsb (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-dsb (<< 1:60.2.1-1~), +Provides: + lightning-l10n-dsb, +Description: Lower Sorbian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Lower Sorbian. + +Package: thunderbird-l10n-el +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:el +Replaces: + lightning-l10n-el (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-el (<< 1:60.2.1-1~), +Provides: + lightning-l10n-el, +Recommends: + hunspell-el | myspell-el-gr, +Description: Greek language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Greek. + +Package: thunderbird-l10n-en-gb +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:en-GB +Replaces: + lightning-l10n-en-gb (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-en-gb (<< 1:60.2.1-1~), +Provides: + lightning-l10n-en-gb, +Recommends: + hunspell-en-gb | hunspell-en-au | hunspell-en-ca | hunspell-en-za, +Description: English (Great Britain) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in English (Great + Britain). + +Package: thunderbird-l10n-es-ar +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:es-AR +Replaces: + lightning-l10n-es-ar (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-es-ar (<< 1:60.2.1-1~), +Provides: + lightning-l10n-es-ar, +Recommends: + hunspell-es | myspell-es, +Description: Spanish (Argentina) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Spanish (Argentina). + +Package: thunderbird-l10n-es-es +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:es-ES +Replaces: + lightning-l10n-es-es (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-es-es (<< 1:60.2.1-1~), +Provides: + lightning-l10n-es-es, +Recommends: + hunspell-es | myspell-es, +Description: Spanish (Spain) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Spanish (Spain). + +Package: thunderbird-l10n-et +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:et +Replaces: + lightning-l10n-et (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-et (<< 1:60.2.1-1~), +Provides: + lightning-l10n-et, +Recommends: + myspell-et, +Description: Estonian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Estonian. + +Package: thunderbird-l10n-eu +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:eu +Replaces: + lightning-l10n-eu (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-eu (<< 1:60.2.1-1~), +Provides: + lightning-l10n-eu, +Recommends: + hunspell-eu, +Description: Basque language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Basque. + +Package: thunderbird-l10n-fi +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:fi +Replaces: + lightning-l10n-fi (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-fi (<< 1:60.2.1-1~), +Provides: + lightning-l10n-fi, +Recommends: + myspell-fi, + xul-ext-mozvoikko, +Description: Finnish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Finnish. + +Package: thunderbird-l10n-fr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:fr +Replaces: + lightning-l10n-fr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-fr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-fr, +Recommends: + hunspell-fr | myspell-fr | myspell-fr-gut, +Description: French language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in French. + +Package: thunderbird-l10n-fy-nl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:fy-NL +Replaces: + lightning-l10n-fy-nl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-fy-nl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-fy-nl, +Description: Frisian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Frisian. + +Package: thunderbird-l10n-ga-ie +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ga-IE +Replaces: + lightning-l10n-ga-ie (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ga-ie (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ga-ie, +Description: Irish (Ireland) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Irish (Ireland). + +Package: thunderbird-l10n-gd +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:gd +Replaces: + lightning-l10n-gd (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-gd (<< 1:60.2.1-1~), +Provides: + lightning-l10n-gd, +Recommends: + hunspell-gd | myspell-gd, +Description: Gaelic (Scottish) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Gaelic (Scottish). + +Package: thunderbird-l10n-gl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:gl +Replaces: + lightning-l10n-gl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-gl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-gl, +Recommends: + hunspell-gl | hunspell-gl-es, +Description: Galician language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Galician. + +Package: thunderbird-l10n-he +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:he +Replaces: + lightning-l10n-he (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-he (<< 1:60.2.1-1~), +Provides: + lightning-l10n-he, +Recommends: + hunspell-he | myspell-he, +Description: Hebrew language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Hebrew. + +Package: thunderbird-l10n-hr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hr +Replaces: + lightning-l10n-hr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hr, +Recommends: + hunspell-hr | myspell-hr, +Description: Croatian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Croatian. + +Package: thunderbird-l10n-hsb +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hsb +Replaces: + lightning-l10n-hsb (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hsb (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hsb, +Recommends: + aspell-hsb, +Description: Upper Sorbian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Upper Sorbian. + +Package: thunderbird-l10n-hu +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hu +Replaces: + lightning-l10n-hu (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hu (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hu, +Recommends: + hunspell-hu | myspell-hu, +Description: Hungarian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Hungarian. + +Package: thunderbird-l10n-hy-am +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hy-AM +Replaces: + lightning-l10n-hy-am (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hy-am (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hy-am, +Recommends: + myspell-hy, +Description: Armenian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Armenian. + +Package: thunderbird-l10n-id +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:id +Replaces: + lightning-l10n-id (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-id (<< 1:60.2.1-1~), +Provides: + lightning-l10n-id, +Description: Indonesian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Indonesian. + +Package: thunderbird-l10n-is +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:is +Replaces: + lightning-l10n-is (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-is (<< 1:60.2.1-1~), +Provides: + lightning-l10n-is, +Recommends: + hunspell-is, +Description: Icelandic language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Icelandic. + +Package: thunderbird-l10n-it +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:it +Replaces: + lightning-l10n-it (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-it (<< 1:60.2.1-1~), +Provides: + lightning-l10n-it, +Recommends: + hunspell-it | myspell-it, +Description: Italian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Italian. + +Package: thunderbird-l10n-ja +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ja +Replaces: + lightning-l10n-ja (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ja (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ja, +Description: Japanese language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Japanese. + +Package: thunderbird-l10n-kab +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:kab +Replaces: + lightning-l10n-kab (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-kab (<< 1:60.2.1-1~), +Provides: + lightning-l10n-kab, +Description: Kabyle language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Kabyle. + +Package: thunderbird-l10n-kk +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:kk +Replaces: + lightning-l10n-kk (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-kk (<< 1:60.2.1-1~), +Provides: + lightning-l10n-kk, +Recommends: + hunspell-kk, +Description: Kazakh language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Kazakh. + +Package: thunderbird-l10n-ko +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ko +Replaces: + lightning-l10n-ko (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ko (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ko, +Recommends: + hunspell-ko, +Description: Korean language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Korean. + +Package: thunderbird-l10n-lt +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:lt +Replaces: + lightning-l10n-lt (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-lt (<< 1:60.2.1-1~), +Provides: + lightning-l10n-lt, +Recommends: + hunspell-lt | myspell-lt, +Description: Lithuanian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Lithuanian. + +Package: thunderbird-l10n-ms +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ms +Replaces: + lightning-l10n-ms (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ms (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ms, +Description: Malay language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Malay. + +Package: thunderbird-l10n-nb-no +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:nb-NO +Replaces: + lightning-l10n-nb-no (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-nb-no (<< 1:60.2.1-1~), +Provides: + lightning-l10n-nb-no, +Recommends: + hunspell-no | myspell-nb, +Description: Bokmaal (Norway) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Bokmaal (Norway). + +Package: thunderbird-l10n-nl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:nl +Replaces: + lightning-l10n-nl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-nl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-nl, +Recommends: + hunspell-nl | myspell-nl, +Description: Dutch language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Dutch. + +Package: thunderbird-l10n-nn-no +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:nn-NO +Replaces: + lightning-l10n-nn-no (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-nn-no (<< 1:60.2.1-1~), +Provides: + lightning-l10n-nn-no, +Recommends: + hunspell-no | myspell-nn, +Description: Nynorsk (Norway) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Nynorsk (Norway). + +Package: thunderbird-l10n-pl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:pl +Replaces: + lightning-l10n-pl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-pl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-pl, +Recommends: + hunspell-pl | myspell-pl, +Description: Polish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Polish. + +Package: thunderbird-l10n-pt-br +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:pt-BR +Replaces: + lightning-l10n-pt-br (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-pt-br (<< 1:60.2.1-1~), +Provides: + lightning-l10n-pt-br, +Recommends: + hunspell-pt-br | myspell-pt-br | myspell-pt, +Description: Portuguese (Brazil) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Portuguese (Brazil). + +Package: thunderbird-l10n-pt-pt +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:pt-PT +Replaces: + lightning-l10n-pt-pt (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-pt-pt (<< 1:60.2.1-1~), +Provides: + lightning-l10n-pt-pt, +Recommends: + hunspell-pt-pt | myspell-pt-pt | myspell-pt, +Description: Portuguese (Portugal) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Portuguese (Portugal). + +Package: thunderbird-l10n-rm +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:rm +Replaces: + lightning-l10n-rm (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-rm (<< 1:60.2.1-1~), +Provides: + lightning-l10n-rm, +Description: Romansh language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Romansh. + +Package: thunderbird-l10n-ro +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ro +Replaces: + lightning-l10n-ro (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ro (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ro, +Recommends: + hunspell-ro, +Description: Romania language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Romania. + +Package: thunderbird-l10n-ru +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ru +Replaces: + lightning-l10n-ru (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ru (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ru, +Recommends: + hunspell-ru | myspell-ru, +Description: Russian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Russian. + +Package: thunderbird-l10n-si +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:si +Replaces: + lightning-l10n-si (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-si (<< 1:60.2.1-1~), +Provides: + lightning-l10n-si, +Recommends: + hunspell-si, +Description: Sinhala language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Sinhala. + +Package: thunderbird-l10n-sk +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sk +Replaces: + lightning-l10n-sk (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sk (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sk, +Recommends: + hunspell-sk | myspell-sk, +Description: Slovak language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Slovak. + +Package: thunderbird-l10n-sl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sl +Replaces: + lightning-l10n-sl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sl, +Recommends: + hunspell-sl | myspell-sl, +Description: Slovenian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Slovenian. + +Package: thunderbird-l10n-sq +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sq +Replaces: + lightning-l10n-sq (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sq (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sq, +Description: Albanian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Albanian. + +Package: thunderbird-l10n-sr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sr +Replaces: + lightning-l10n-sr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sr, +Recommends: + hunspell-sr, +Description: Serbian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Serbian. + +Package: thunderbird-l10n-sv-se +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sv-SE +Replaces: + lightning-l10n-sv-se (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sv-se (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sv-se, +Recommends: + hunspell-sv | myspell-sv-se, +Description: Swedish (Sweden) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Swedish (Sweden). + +Package: thunderbird-l10n-tr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:tr +Replaces: + lightning-l10n-tr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-tr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-tr, +Description: Turkish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Turkish. + +Package: thunderbird-l10n-uk +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:uk +Replaces: + lightning-l10n-uk (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-uk (<< 1:60.2.1-1~), +Provides: + lightning-l10n-uk, +Recommends: + hunspell-uk | myspell-uk +Description: Ukrainian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Ukrainian. + +Package: thunderbird-l10n-vi +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:vi +Replaces: + lightning-l10n-vi (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-vi (<< 1:60.2.1-1~), +Provides: + lightning-l10n-vi, +Recommends: + hunspell-vi, +Description: Vietnamese language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Vietnamese. + +Package: thunderbird-l10n-zh-cn +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:zh-CN +Replaces: + lightning-l10n-zh-cn (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-zh-cn (<< 1:60.2.1-1~), +Provides: + lightning-l10n-zh-cn, +Description: Chinese (China) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Chinese (China). + +Package: thunderbird-l10n-zh-tw +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:zh-TW +Replaces: + lightning-l10n-zh-tw (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-zh-tw (<< 1:60.2.1-1~), +Provides: + lightning-l10n-zh-tw, +Description: Chinese (Taiwan) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Chinese (Taiwan). + +Package: lightning-l10n-ar +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ar (>= ${binary:Version}), + ${misc:Depends}, +Description: Arabic language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Arabic. It can be safely removed. + +Package: lightning-l10n-ast +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ast (>= ${binary:Version}), + ${misc:Depends}, +Description: Asturian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Asturian. It can be safely removed. + +Package: lightning-l10n-be +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-be (>= ${binary:Version}), + ${misc:Depends}, +Description: Belarusian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Belarusian. It can be safely removed. + +Package: lightning-l10n-bg +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-bg (>= ${binary:Version}), + ${misc:Depends}, +Description: Bulgarian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Bulgarian. It can be safely removed. + +Package: lightning-l10n-br +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-br (>= ${binary:Version}), + ${misc:Depends}, +Description: Breton language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Breton. It can be safely removed. + +Package: lightning-l10n-ca +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ca (>= ${binary:Version}), + ${misc:Depends}, +Description: Catalan/Valencian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Catalan/Valencian. It can be safely removed. + +Package: lightning-l10n-cs +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-cs (>= ${binary:Version}), + ${misc:Depends}, +Description: Czech language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Czech. It can be safely removed. + +Package: lightning-l10n-cy +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-cy (>= ${binary:Version}), + ${misc:Depends}, +Description: Welsh language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Welsh. It can be safely removed. + +Package: lightning-l10n-da +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-da (>= ${binary:Version}), + ${misc:Depends}, +Description: Danish language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Danish. It can be safely removed. + +Package: lightning-l10n-de +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-de (>= ${binary:Version}), + ${misc:Depends}, +Description: German language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in German. It can be safely removed. + +Package: lightning-l10n-dsb +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-dsb (>= ${binary:Version}), + ${misc:Depends}, +Description: Lower Sorbian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Lower Sorbian. It can be safely removed. + +Package: lightning-l10n-el +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-el (>= ${binary:Version}), + ${misc:Depends}, +Description: Greek language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Greek. It can be safely removed. + +Package: lightning-l10n-es-ar +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-es-ar (>= ${binary:Version}), + ${misc:Depends}, +Description: Spanish (Argentina) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Spanish (Argentina). It can be safely removed. + +Package: lightning-l10n-es-es +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-es-es (>= ${binary:Version}), + ${misc:Depends}, +Description: Spanish (Spain) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Spanish (Spain). It can be safely removed. + +Package: lightning-l10n-en-gb +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-en-gb (>= ${binary:Version}), + ${misc:Depends}, +Description: British English language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in British English. It can be safely removed. + +Package: lightning-l10n-et +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-et (>= ${binary:Version}), + ${misc:Depends}, +Description: Estonian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Estonian. It can be safely removed. + +Package: lightning-l10n-eu +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-eu (>= ${binary:Version}), + ${misc:Depends}, +Description: Basque language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Basque. It can be safely removed. + +Package: lightning-l10n-fi +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-fi (>= ${binary:Version}), + ${misc:Depends}, +Description: Finnish language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Finnish. It can be safely removed. + +Package: lightning-l10n-fr +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-fr (>= ${binary:Version}), + ${misc:Depends}, +Description: French language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in French. It can be safely removed. + +Package: lightning-l10n-fy-nl +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-fy-nl (>= ${binary:Version}), + ${misc:Depends}, +Description: Western Frisian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Western Frisian. It can be safely removed. + +Package: lightning-l10n-ga-ie +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ga-ie (>= ${binary:Version}), + ${misc:Depends}, +Description: Irish (Ireland) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Irish (Ireland). It can be safely removed. + +Package: lightning-l10n-gd +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-gd (>= ${binary:Version}), + ${misc:Depends}, +Description: Scottish Gaelic language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Scottish Gaelic. It can be safely removed. + +Package: lightning-l10n-gl +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-gl (>= ${binary:Version}), + ${misc:Depends}, +Description: Galician language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Galician. It can be safely removed. + +Package: lightning-l10n-he +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-he (>= ${binary:Version}), + ${misc:Depends}, +Description: Hebrew language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Hebrew. It can be safely removed. + +Package: lightning-l10n-hr +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-hr (>= ${binary:Version}), + ${misc:Depends}, +Description: Croatian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Croatian. It can be safely removed. + +Package: lightning-l10n-hsb +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-hsb (>= ${binary:Version}), + ${misc:Depends}, +Description: Upper Sorbian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Upper Sorbian. It can be safely removed. + +Package: lightning-l10n-hu +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-hu (>= ${binary:Version}), + ${misc:Depends}, +Description: Hungarian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Hungarian. It can be safely removed. + +Package: lightning-l10n-hy-am +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-hy-am (>= ${binary:Version}), + ${misc:Depends}, +Description: Armenian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Armenian (Armenia). It can be safely removed. + +Package: lightning-l10n-id +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-id (>= ${binary:Version}), + ${misc:Depends}, +Description: Indonesian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Indonesian. It can be safely removed. + +Package: lightning-l10n-is +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-is (>= ${binary:Version}), + ${misc:Depends}, +Description: Icelandic language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Icelandic. It can be safely removed. + +Package: lightning-l10n-it +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-it (>= ${binary:Version}), + ${misc:Depends}, +Description: Italian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Italian. It can be safely removed. + +Package: lightning-l10n-ja +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ja (>= ${binary:Version}), + ${misc:Depends}, +Description: Japanese language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Japanese. It can be safely removed. + +Package: lightning-l10n-kab +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-kab (>= ${binary:Version}), + ${misc:Depends}, +Description: Kabyle language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Kabyle. It can be safely removed. + +Package: lightning-l10n-kk +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-kk (>= ${binary:Version}), + ${misc:Depends}, +Description: Kazakh language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Kazakh. It can be safely removed. + +Package: lightning-l10n-ko +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ko (>= ${binary:Version}), + ${misc:Depends}, +Description: Korean language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Korean. It can be safely removed. + +Package: lightning-l10n-ms +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ms (>= ${binary:Version}), + ${misc:Depends}, +Description: Malay language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Malay. It can be safely removed. + +Package: lightning-l10n-lt +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-lt (>= ${binary:Version}), + ${misc:Depends}, +Description: Lithuanian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Lithuanian. It can be safely removed. + +Package: lightning-l10n-nb-no +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-nb-no (>= ${binary:Version}), + ${misc:Depends}, +Description: Bokmaal (Norway) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Bokmaal (Norway). It can be safely removed. + +Package: lightning-l10n-nl +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-nl (>= ${binary:Version}), + ${misc:Depends}, +Description: Dutch language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Dutch. It can be safely removed. + +Package: lightning-l10n-nn-no +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-nn-no (>= ${binary:Version}), + ${misc:Depends}, +Description: Nynorsk (Norway) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Nynorsk (Norway). It can be safely removed. + +Package: lightning-l10n-pl +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-pl (>= ${binary:Version}), + ${misc:Depends}, +Description: Polish language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Polish. It can be safely removed. + +Package: lightning-l10n-pt-br +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-pt-br (>= ${binary:Version}), + ${misc:Depends}, +Description: Portuguese (Brazil) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Portuguese (Brazil). It can be safely removed. + +Package: lightning-l10n-pt-pt +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-pt-pt (>= ${binary:Version}), + ${misc:Depends}, +Description: Portuguese (Portugal) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Portuguese (Portugal). It can be safely removed. + +Package: lightning-l10n-rm +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-rm (>= ${binary:Version}), + ${misc:Depends}, +Description: Romansh language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Romansh. It can be safely removed. + +Package: lightning-l10n-ro +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ro (>= ${binary:Version}), + ${misc:Depends}, +Description: Romanian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Romanian. It can be safely removed. + +Package: lightning-l10n-ru +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-ru (>= ${binary:Version}), + ${misc:Depends}, +Description: Russian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Russian. It can be safely removed. + +Package: lightning-l10n-si +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-si (>= ${binary:Version}), + ${misc:Depends}, +Description: Sinhala language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Sinhala. It can be safely removed. + +Package: lightning-l10n-sk +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-sk (>= ${binary:Version}), + ${misc:Depends}, +Description: Slovak language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Slovak. It can be safely removed. + +Package: lightning-l10n-sl +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-sl (>= ${binary:Version}), + ${misc:Depends}, +Description: Slovenian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Slovenian. It can be safely removed. + +Package: lightning-l10n-sr +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-sr (>= ${binary:Version}), + ${misc:Depends}, +Description: Serbian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Serbian. It can be safely removed. + +Package: lightning-l10n-sq +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-sq (>= ${binary:Version}), + ${misc:Depends}, +Description: Albanian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Albanian. It can be safely removed. + +Package: lightning-l10n-sv-se +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-sv-se (>= ${binary:Version}), + ${misc:Depends}, +Description: Swedish language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Swedish (Sweden). It can be safely removed. + +Package: lightning-l10n-tr +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-tr (>= ${binary:Version}), + ${misc:Depends}, +Description: Turkish language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Turkish. It can be safely removed. + +Package: lightning-l10n-uk +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-uk (>= ${binary:Version}), + ${misc:Depends}, +Description: Ukrainian language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Ukrainian. It can be safely removed. + +Package: lightning-l10n-vi +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-vi (>= ${binary:Version}), + ${misc:Depends}, +Description: Vietnamese language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Vietnamese. It can be safely removed. + +Package: lightning-l10n-zh-cn +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-zh-cn (>= ${binary:Version}), + ${misc:Depends}, +Description: Chinese (China) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in Chinese (China). It can be safely removed. + +Package: lightning-l10n-zh-tw +Architecture: all +Section: oldlibs +Depends: + thunderbird-l10n-zh-tw (>= ${binary:Version}), + ${misc:Depends}, +Description: Chinese (Taiwan) language package for lightning - Transitional package + Lightning is a Mozilla based calendar extension for Thunderbird. + It's goal is to integrate a Calendar and Task application using the XUL + user interface language. + . + This is a transitional package that pulls in the required package for the + localization of lightning in China (Taiwan). It can be safely removed. diff --git a/copyright b/copyright new file mode 100644 index 0000000000..a31fe0cb38 --- /dev/null +++ b/copyright @@ -0,0 +1,3663 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Thunderbird +Source: https://ftp.mozilla.org/pub/mozilla.org/thunderbird/ +Disclaimer: The original upstream tarball is modified from upstream by + removing a set of sourceless binary, non-free, and VCS-related files. You + can find a repack.py script in the debian directory doing this cleanup, + using filtering data present in a source.filter file in the same directory. + If this file is incomplete, which I'm pretty sure is the case, because it's + difficult not to forget anything in this huge amount of data, please file + a bug or contact me. + Some licensing terms are not included verbatim in this file on purpose, for + terms that are available in a file in subdirectories that are not used to + build the binary packages. + +Files: * +Copyright: 1998-2016, Mozilla Project +License: MPL-2.0 or GPL-2 or LGPL-2.1 + +Files: debian/* +Copyright: 2003-2009, Alexander Sack + 2008, Fabien Tassin + 2013-2018, Carsten Schoenert + 2009-2013, Guido Günther + 2010-2016, Christoph Goehre +License: MPL-1.1 or MPL-2.0 or GPL-2 or LGPL-2.1 + +Files: debian/logo/icedove/icedove_icon_plain.svg + debian/logo/icedove/icedove_icon_profile_plain.svg + debian/logo/icedove/icedove_icon_profile.svg + debian/logo/icedove/icedove_icon.svg + debian/logo/icedove/icedove_lettering.svg + debian/logo/icedove/icedove_logo_plain.svg + debian/logo/icedove/icedove_logo.svg +Copyright: 2006-2007, Ricardo Fernández Fuentes +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: debian/logo/icedove/icedove_icon_plain.svg +Copyright: 1998-2016, Mozilla Foundation +License: MPL-2.0 or GPL-2 or LGPL-2.1 + +Files: comm/build/pypng/* +Copyright: drj11 + Mel Raab, David Jones +License: Expat + +Files: comm/calendar/* +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/calendar/base/modules/* +Copyright: 2011-2012, Philipp Kewisch +License: MPL-2.0 + +Files: comm/calendar/itip/* +Copyright: 2007, Simdesk Technologies +License: MPL-1.1 + +Files: comm/calendar/libical/* +Copyright: Eric Busboom +License: MPL-1.1 or LGPL-2.1 + +Files: comm/calendar/libical/scripts/mkneticali.pl +Copyright: 1999, Eric Busboom +License: MPL-1.0 + +Files: comm/calendar/libical/scripts/mkparameterrestrictions.pl + comm/calendar/libical/scripts/mkrestrictionrecords.pl +Copyright: 1999, Graham Davison +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/astime.h + comm/calendar/libical/src/libical/caldate.c +Copyright: 1986-2000, Hiram Clawson +License: BSD-2-clause + +Files: comm/calendar/libical/src/libical/icalarray.c + comm/calendar/libical/src/libical/icalarray.h +Copyright: 2001, Ximian, Inc +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/icalattach.c +Copyright: 2000, Andrea Campi +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/icalattach.h + comm/calendar/libical/src/libical/icalattachimpl.h +Copyright: 2000, 2002, Andrea Campi +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/icalcomponent.c + comm/calendar/libical/src/libical/icalduration.c + comm/calendar/libical/src/libical/icalmime.c +Copyright: 2008, dothebart + 2000, Eric Busboom, http://www.softwarestudio.org +License: MPL-1.0 or LGPL-2.1 + +Files: comm/calendar/libical/src/libical/icalmemory.c + comm/calendar/libical/src/libical/icaltimezone.c + comm/calendar/libical/src/libical/icaltimezone.h + comm/calendar/libical/src/libical/icalparser.c + comm/calendar/libical/src/libical/sspm.c + comm/calendar/libical/src/libical/sspm.h +Copyright: 2008, dothebart +License: MPL-1.0 or LGPL-2.1 + +Files: comm/calendar/libical/src/libical/icptrholder.h + comm/calendar/libical/src/libical/vcomponent.h +Copyright: 2001, Critical Path +License: MPL-1.0 or LGPL-2.1 + +Files: comm/calendar/libical/src/libical/vsnprintf.c +Copyright: 1997, Theo de Raadt +License: BSD-2-clause + +Files: comm/chat/protocols/irc/test/test_sendBufferedCommand.js + comm/db/mork/* + comm/im/locales/en-US/all-l10n.js +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/db/mork/public/* +Copyright: 1999, Netscape Communications Coportation + Blake Ross +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/db/mork/src/mork.h + comm/db/mork/src/morkCh.h + comm/db/mork/src/morkCh.cpp + comm/db/mork/src/morkFile.h + comm/db/mork/src/morkMap.cpp + comm/db/mork/src/morkMap.h + comm/db/mork/src/morkNode.h + comm/db/mork/src/morkProbeMap.cpp + comm/db/mork/src/morkProbeMap.h + comm/db/mork/src/morkStream.h +Copyright: 1999, Netscape Communications Coportation +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/db/mork/src/morkQuickSort.cpp +Copyright: 1992-1993, University of California +License: BSD-3-clause + +Files: comm/im/app/png.py +Copyright: 2009, David Jones + 2006, Nicko van Someren + 2006, Johann C. Rocholl +License: Expat + +Files: comm/ldap/c-sdk/libraries/libldap/authzidctrl.c + comm/ldap/c-sdk/libraries/libldap/geteffectiverightsctrl.c + comm/ldap/c-sdk/libraries/libldap/pwmodext.c + comm/ldap/c-sdk/libraries/libldap/pwpctrl.c + comm/ldap/c-sdk/libraries/libldap/saslio.c + comm/ldap/c-sdk/libraries/libldap/userstatusctrl.c + comm/ldap/c-sdk/libraries/libldap/whoami.c +Copyright: 2005, Sun Microsystems +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/include/disptmpl.h + comm/ldap/c-sdk/include/ldif.h + comm/ldap/c-sdk/include/portable.h + comm/ldap/c-sdk/include/regex.h + comm/ldap/c-sdk/include/srchpref.h + comm/ldap/c-sdk/libraries/liblber/* +Copyright: 1998-1999, Netscape Communications Coportation + 1990-1996, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/abandon.c + comm/ldap/c-sdk/libraries/libldap/add.c + comm/ldap/c-sdk/libraries/libldap/cldap.c + comm/ldap/c-sdk/libraries/libldap/compare.c + comm/ldap/c-sdk/libraries/libldap/friendly.c + comm/ldap/c-sdk/libraries/libldap/getattr.c + comm/ldap/c-sdk/libraries/libldap/getentry.c + comm/ldap/c-sdk/libraries/libldap/getfilter.c + comm/ldap/c-sdk/libraries/libldap/getvalues.c + comm/ldap/c-sdk/libraries/libldap/modify.c + comm/ldap/c-sdk/libraries/libldap/open.c + comm/ldap/c-sdk/libraries/libldap/os-ip.c + comm/ldap/c-sdk/libraries/libldap/rename.c + comm/ldap/c-sdk/libraries/libldap/request.c + comm/ldap/c-sdk/libraries/libldap/reslist.c + comm/ldap/c-sdk/libraries/libldap/result.c + comm/ldap/c-sdk/libraries/libldap/sbind.c + comm/ldap/c-sdk/libraries/libldap/search.c + comm/ldap/c-sdk/libraries/libldap/ufn.c + comm/ldap/c-sdk/libraries/libldap/unbind.c +Copyright: 1998-1999, Netscape Communications Coportation + 1990, 1993-1995, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/bind.c + comm/ldap/c-sdk/libraries/libldap/delete.c +Copyright: 1998-1999, Netscape Communications Coportation + 1990, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/cache.c +Copyright: 1998-1999, Netscape Communications Coportation + 1993, The Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/charset.c + comm/ldap/c-sdk/libraries/libldap/countvalues.c + comm/ldap/c-sdk/libraries/libldap/disptmpl.c + comm/ldap/c-sdk/libraries/libldap/dsparse.c + comm/ldap/c-sdk/libraries/libldap/freevalues.c + comm/ldap/c-sdk/libraries/libldap/getdxbyname.c + comm/ldap/c-sdk/libraries/libldap/sort.c + comm/ldap/c-sdk/libraries/libldap/srchpref.c + comm/ldap/c-sdk/libraries/libldap/url.c +Copyright: 1998-1999, Netscape Communications Coportation + 1990-1996, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/compat.c + comm/ldap/c-sdk/libraries/libldap/free.c +Copyright: 1998-1999, Netscape Communications Coportation + 1994, The Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/getdn.c +Copyright: 1998-1999, Netscape Communications Coportation + 1994, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/mail/app/png.py +Copyright: 2009, David Jones + 2006, Nicko van Someren + 2006, Johann C. Rocholl +License: Expat + +Files: comm/mail/base/test/unit/resources/* + comm/mail/base/test/unit/test_alertHook.js + comm/mail/base/test/unit/test_attachmentChecker.js + comm/mail/base/test/unit/test_windows_font_migration.js + comm/mail/components/test/unit/test_about_support.js + comm/mail/locales/en-US/all-l10n.js +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/mail/test/resources/jsbridge/* + comm/mail/test/resources/jsbridge/jsbridge/__init__.py + comm/mail/test/resources/mozmill/mozmill/* + comm/mail/test/resources/mozmill/mozmill/extension/resource/stdlib/securable-module.js + comm/mail/test/resources/mozmill/scripts/sync_dependencies.py + comm/mail/test/resources/mozmill/setup.py + comm/mail/test/resources/mozmill/test/test_focus.js + comm/mail/test/resources/mozmill/test/test_property.js +Copyright: 2007-2010, Mozilla Coportation +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/mail/test/resources/mozmill/mozmill/extension/resource/stdlib/httpd.js +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/mail/test/resources/mozmill/mozmill/extension/resource/stdlib/withs.js +Copyright: 2006, Lawrence Oluyede +License: Expat + +Files: comm/mailnews/* + browser/* +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/mailnews/addrbook/src/nsVCard.cpp + comm/mailnews/addrbook/src/nsVCard.h + comm/mailnews/addrbook/src/nsVCardObj.cpp + comm/mailnews/addrbook/src/nsVCardObj.h +Copyright: 1996, Apple Computer, Inc., AT&T Corp., International +License: MPL-2.0 + +Files: comm/mailnews/base/src/nsMsgAccountManager.h + comm/mailnews/local/src/nsPop3Protocol.cpp + comm/mailnews/mime/src/mimebuf.cpp + comm/mailnews/mime/src/mimebuf.h + comm/mailnews/mime/src/mimedrft.cpp + comm/mailnews/mime/src/mimei.cpp + comm/mailnews/mime/src/mimemrel.cpp + comm/mailnews/mime/src/mimeobj.cpp + comm/mailnews/mime/src/mimetext.cpp +Copyright: 2000, International Business Machines (IBM) Corporation +License: MPL-2.0 + +Files: comm/mailnews/mime/src/modmimee.h +Copyright: 1996, Netscape Communications Corporation +License: MPL-2.0 + +Files: browser/components/translation/cld2/* +Copyright: 2013-2014, Google Inc. +License: Apache-2.0 + +Files: browser/extensions/pdfjs/test/* +Copyright: no-info-found +License: public-domain + +Files: browser/extensions/pdfjs/content/* +Copyright: 2012-2015, Mozilla Foundation +License: Apache-2.0 + +Files: config/tests/unit-mozunit.py + config/tests/unitMozZipFile.py +Copyright: no-info-found +License: MPL-2.0 + +Files: docshell/test/* +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/base/nsScriptNameSpaceManager.h + dom/base/nsPropertyTable.cpp + dom/base/nsPropertyTable.h +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: dom/canvas/WebGLTexelConversions.h +Copyright: 2010, Mozilla Corporation + 2010, Google Inc. + 2010, Apple Inc. +License: BSD-2-clause + +Files: dom/canvas/WebGLValidateStrings.h +Copyright: 2011, Mozilla Corporation + 2011, Apple Inc. +License: BSD-2-clause + +Files: dom/imptests/importTestsuite.py + dom/imptests/parseFailures.py + dom/imptests/testharnessreport.js + dom/imptests/updateTestharness.py + dom/imptests/writeBuildFiles.py + dom/indexedDB/test/browser_bug839193.js + dom/indexedDB/test/bug839193.js +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/events/PointerEvent.cpp + dom/events/PointerEvent.h +Copyright: 2013, Microsoft Open Technologies, Inc. +License: MPL-2.0 + +Files: dom/imptests/parseManifest.py +Copyright: 2011-2013, Ms2ger +License: Expat + +Files: dom/media/gmp/GMPVideoEncodedFrameImpl.h +Copyright: 2014, Mozilla Corporation +License: BSD-2-clause + +Files: dom/media/gmp/gmp-api/* +Copyright: 2014, Mozilla Foundation + 2011, The WebRTC project authors. +License: BSD-3-clause + +Files: dom/media/gmp/gmp-api/gmp-storage.h +Copyright: 2012-2014, Mozilla Foundation and contributors +License: Apache-2.0 + +Files: dom/media/gmp/gmp-api/gmp-errors.h + dom/media/gmp/gmp-api/gmp-platform.h +Copyright: 2014, Mozilla +License: BSD-3-clause + +Files: dom/media/test/graph_latency.py + dom/media/test/make-headers.sh +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/media/webaudio/FFTBlock.cpp + dom/media/webaudio/blink/* +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: dom/media/webaudio/blink/DenormalDisabler.h + dom/media/webaudio/blink/HRTFPanner.cpp + dom/media/webaudio/blink/HRTFPanner.h +Copyright: 2010-2011, Google Inc. +License: BSD-2-clause + +Files: dom/media/webaudio/blink/IRC_Composite_C_R0195-incl.cpp +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/media/webspeech/recognition/endpointer.cc + dom/media/webspeech/recognition/endpointer.h + dom/media/webspeech/recognition/energy_endpointer.cc + dom/media/webspeech/recognition/energy_endpointer.h + dom/media/webspeech/recognition/energy_endpointer_params.cc + dom/media/webspeech/recognition/energy_endpointer_params.h +Copyright: 2006-2013, The Chromium Authors +License: BSD-3-clause + +Files: dom/plugins/base/npruntime.h +Copyright: 2004, Apple Computer, Inc. and The Mozilla Foundation +License: BSD-3-clause + +Files: dom/plugins/ipc/PluginInterposeOSX.h +Copyright: 2006-2013, The Chromium Authors +License: BSD-3-clause + +Files: dom/plugins/test/testplugin/* +Copyright: 2008, 2010, Mozilla Corporation +License: BSD-3-clause + +Files: dom/plugins/test/testplugin/nptest_utils.cpp + dom/plugins/test/testplugin/nptest_utils.h +Copyright: 2006-2009, 2012, Apple Inc. +License: BSD-2-clause + +Files: dom/plugins/test/testplugin/secondplugin/* + dom/plugins/test/unit/* + dom/svg/test/matrixUtils.js + dom/tests/browser/browser_ConsoleAPITests.js + dom/tests/browser/browser_ConsoleStoragePBTest_perwindowpb.js + dom/tests/browser/browser_bug1004814.js + dom/tests/browser/browser_bug1008941_dismissGeolocationHanger.js + dom/tests/browser/browser_frame_elements.js + dom/tests/js/* + dom/tests/mochitest/dom-level1-core/* + dom/tests/mochitest/dom-level2-core/* + dom/tests/unit/test_bug319968.js + dom/tests/unit/test_bug465752.js + dom/workers/test/gtest/* +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/tests/mochitest/ajax/jquery/dist/* +Copyright: 2006-2008, John Resig (jquery.com) +License: GPL-2 or Expat + +Files: dom/tests/mochitest/ajax/prototype/test/lib/* +Copyright: 2005, Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) + 2005, Michael Schuerig (http://www.schuerig.de/michael/) + 2005, Jon Tirsen (http://www.tirsen.com) +License: Expat + +Files: dom/tests/mochitest/ajax/scriptaculous/src/scriptaculous.js +Copyright: 2005-2007, Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +License: Expat + +Files: dom/xul/nsXULElement.cpp +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: editor/libeditor/tests/* +Copyright: 2007-2008, 2010, 2012, Google Inc +License: Apache-2.0 + +Files: extensions/auth/gssapi.h +Copyright: 1993, OpenVision Technologies, Inc +License: other-1 + 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. + +Files: extensions/spellcheck/hunspell/* +Copyright: 2002-2005 Kevin B. Hendricks, Stratford, Ontario, Canada + 2002-2005 László Németh +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: extensions/spellcheck/hunspell/src/phonet.cxx + extensions/spellcheck/hunspell/src/phonet.hxx +Copyright: 2000, 2007 Bjoern Jacke + 2007, László Németh +License: LGPL-2.1 + +Files: extensions/spellcheck/locales/en-US/hunspell/* +Copyright: various contributors +License: other-2 + The complete text of the hunspell License can be found in the + `README_en_US.txt' file in the same directory as this file. + +Files: gfx/cairo/cairo/* +Copyright: 2005-2008, RedHat, Inc. + 2003, University of Southern California + 2007-2008, Carl D. Worth , + Kristian Høgsberg , + Keith Packard , + Adrian Johnson + various contributors +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-analysis-surface-private.h + gfx/cairo/cairo/src/cairo-scaled-font.c + gfx/cairo/cairo/src/cairo-wideint-private.h + gfx/cairo/cairo/src/cairo-wideint-type-private.h + gfx/cairo/cairo/src/cairo-wideint.c +Copyright: 2004-2005, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-analysis-surface.c +Copyright: 2007, Adrian Johnson + 2006, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-arc.c + gfx/cairo/cairo/src/cairo-directfb-surface.c + gfx/cairo/cairo/src/cairo-directfb.h + gfx/cairo/cairo/src/cairo-fixed.c + gfx/cairo/cairo/src/cairo-glitz.h + gfx/cairo/cairo/src/cairo-hull.c + gfx/cairo/cairo/src/cairo-matrix.c + gfx/cairo/cairo/src/cairo-path-bounds.c + gfx/cairo/cairo/src/cairo-path-fill.c + gfx/cairo/cairo/src/cairo-path-stroke.c + gfx/cairo/cairo/src/cairo-pdf.h + gfx/cairo/cairo/src/cairo-png.c + gfx/cairo/cairo/src/cairo-polygon.c + gfx/cairo/cairo/src/cairo-ps.h + gfx/cairo/cairo/src/cairo-skia.h + gfx/cairo/cairo/src/cairo-slope.c + gfx/cairo/cairo/src/cairo-spline.c + gfx/cairo/cairo/src/cairo-xcb-xrender.h + gfx/cairo/cairo/src/cairo-xlib-xrender.h + gfx/cairo/cairo/src/cairo-xlib.h +Copyright: 2002-2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-atomic-private.h +Copyright: 2010, Andrea Canciani + 2007, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-atomic.c + gfx/cairo/cairo/src/cairo-combsort-private.h + gfx/cairo/cairo/src/cairo-drm.h + gfx/cairo/cairo/src/cairo-freed-pool-private.h + gfx/cairo/cairo/src/cairo-freed-pool.c + gfx/cairo/cairo/src/cairo-list-private.h + gfx/cairo/cairo/src/cairo-path-in-fill.c + gfx/cairo/cairo/src/cairo-reference-count-private.h + gfx/cairo/cairo/src/cairo-rtree-private.h + gfx/cairo/cairo/src/cairo-rtree.c + gfx/cairo/cairo/src/cairo-script-surface.c + gfx/cairo/cairo/src/cairo-script.h + gfx/cairo/cairo/src/cairo-surface-clipper-private.h + gfx/cairo/cairo/src/cairo-surface-clipper.c + gfx/cairo/cairo/src/cairo-tee-surface-private.h + gfx/cairo/cairo/src/cairo-tee.h + gfx/cairo/cairo/src/cairo-xlib-display.c + gfx/cairo/cairo/src/cairo-xml-surface.c + gfx/cairo/cairo/src/cairo-xml.h +Copyright: 2007-2009, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-base64-stream.c +Copyright: 2009, Chris Wilson + 2005-2007, Emmanuel Pacaud +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-bentley-ottmann-rectangular.c + gfx/cairo/cairo/src/cairo-bentley-ottmann-rectilinear.c + gfx/cairo/cairo/src/cairo-bentley-ottmann.c +Copyright: 2008-2009, Chris Wilson + 2006, Red Hat, Inc + 2004, Carl Worth +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-beos-surface.cpp + gfx/cairo/cairo/src/cairo-beos.h +Copyright: 2005, Christian Biesinger +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-botor-scan-converter.c +Copyright: 2009, Intel Corporation + 2008, M Joonas Pihlaja + 2008, Chris Wilson + 2007, David Turner + 2006, Red Hat, Inc + 2004, Carl Worth +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-boxes-private.h + gfx/cairo/cairo/src/cairo-boxes.c + gfx/cairo/cairo/src/cairo-composite-rectangles-private.h + gfx/cairo/cairo/src/cairo-composite-rectangles.c + gfx/cairo/cairo/src/cairo-device-private.h + gfx/cairo/cairo/src/cairo-device.c + gfx/cairo/cairo/src/cairo-observer.c + gfx/cairo/cairo/src/cairo-rectangular-scan-converter.c + gfx/cairo/cairo/src/cairo-surface-snapshot-private.h + gfx/cairo/cairo/src/cairo-surface-subsurface-private.h + gfx/cairo/cairo/src/cairo-surface-subsurface.c +Copyright: 2009-2010, Intel Corporation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-cff-subset.c + gfx/cairo/cairo/src/cairo-deflate-stream.c + gfx/cairo/cairo/src/cairo-image-info-private.h + gfx/cairo/cairo/src/cairo-image-info.c + gfx/cairo/cairo/src/cairo-type3-glyph-surface-private.h + gfx/cairo/cairo/src/cairo-type3-glyph-surface.c + gfx/cairo/cairo/src/cairo-win32-printing-surface.c +Copyright: 2006-2008, Adrian Johnson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-clip.c + gfx/cairo/cairo/src/cairo-surface-offset-private.h + gfx/cairo/cairo/src/cairo-surface-wrapper-private.h +Copyright: 2009, Chris Wilson + 2005, Red Hat, Inc. + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-color.c + gfx/cairo/cairo/src/cairo-compiler-private.h + gfx/cairo/cairo/src/cairo-error-private.h + gfx/cairo/cairo/src/cairo-gstate.c + gfx/cairo/cairo/src/cairo-path-fixed.c + gfx/cairo/cairo/src/cairo-ps-surface-private.h + gfx/cairo/cairo/src/cairo-rectangle.c + gfx/cairo/cairo/src/cairo-scaled-font-private.h + gfx/cairo/cairo/src/cairo-slope-private.h + gfx/cairo/cairo/src/cairo-surface-fallback-private.h + gfx/cairo/cairo/src/cairo-surface-fallback.c + gfx/cairo/cairo/src/cairo-surface-private.h + gfx/cairo/cairo/src/cairo-surface.c + gfx/cairo/cairo/src/cairo-types-private.h + gfx/cairo/cairo/src/cairo-version.c + gfx/cairo/cairo/src/cairo-xlib-surface.c + gfx/cairo/cairo/src/cairo.c + gfx/cairo/cairo/src/cairo.h + gfx/cairo/cairo/src/cairoint.h +Copyright: 2005, 2006, Red Hat, Inc. + 2002, 2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-d2d-private.h + gfx/cairo/cairo/src/cairo-d2d-surface.cpp + gfx/cairo/cairo/src/cairo-dwrite-font.cpp + gfx/cairo/cairo/src/cairo-dwrite-private.h + gfx/cairo/cairo/src/cairo-win32-refptr.h +Copyright: 2010, Mozilla Foundation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-eagle-context.c + gfx/cairo/cairo/src/cairo-gl-private.h + gfx/cairo/cairo/src/cairo-gl-surface.c + gfx/cairo/cairo/src/cairo-glx-context.c +Copyright: 2009, Eric Anholt + 2009, Chris Wilson + 2005, 2010, Red Hat, Inc +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-fixed-private.h + gfx/cairo/cairo/src/cairo-fixed-type-private.h + gfx/cairo/cairo/src/cairo-malloc-private.h + gfx/cairo/cairo/src/cairo-qt-surface.cpp + gfx/cairo/cairo/src/cairo-qt.h + gfx/cairo/cairo/src/cairo-quartz-font.c + gfx/cairo/cairo/src/cairo-quartz-image-surface.c + gfx/cairo/cairo/src/cairo-quartz-image.h + gfx/cairo/cairo/src/cairo-quartz-surface.c + gfx/cairo/cairo/src/cairo-quartz.h +Copyright: 2006-2008, Mozilla Corporation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-font-face-twin.c + gfx/cairo/cairo/src/cairo-ft-font.c + gfx/cairo/cairo/src/cairo-traps.c + gfx/cairo/cairo/src/cairo-xlib-screen.c +Copyright: 2005, 2007, 2008, Red Hat, Inc + 2000, 2002, 2004, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-font-face.c + gfx/cairo/cairo/src/cairo-toy-font-face.c +Copyright: 2005, 2008, Red Hat, Inc. + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-font-options.c +Copyright: 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-fontconfig-private.h +Copyright: 2010, Intel Corporation + 2005, Red Hat, Inc. + 2000, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-gl-glyphs.c +Copyright: 2010, Red Hat, Inc., Intel Corporation + 2009, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-gl-shaders.c +Copyright: 2010, Red Hat, Inc., Eric Anholt + 2009, T. Zachary Laine +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-gl.h +Copyright: 2009, Eric Anholt + 2009, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-image-surface.c + gfx/cairo/cairo/src/cairo-xcb-surface.c + gfx/cairo/cairo/src/cairo-xcb.h +Copyright: 2009-2010, Intel Corporation + 2002, 2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-misc.c + gfx/cairo/cairo/src/cairo-ps-surface.c +Copyright: 2007, 2008, Adrian Johnson + 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-mutex-impl-private.h + gfx/cairo/cairo/src/cairo-mutex-private.h + gfx/cairo/cairo/src/cairo-mutex-type-private.h +Copyright: 2007, Mathias Hasselmann + 2005, 2007, Red Hat, Inc. + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-mutex-list-private.h + gfx/cairo/cairo/src/cairo-mutex.c +Copyright: 2007, Mathias Hasselmann +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-os2-private.h + gfx/cairo/cairo/src/cairo-os2-surface.c + gfx/cairo/cairo/src/cairo-os2.h +Copyright: 2005, 2006, netlabs.org +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-paginated-surface.c + gfx/cairo/cairo/src/cairo-pdf-operators-private.h + gfx/cairo/cairo/src/cairo-pdf-operators.c + gfx/cairo/cairo/src/cairo-pdf-surface-private.h + gfx/cairo/cairo/src/cairo-pdf-surface.c + gfx/cairo/cairo/src/cairo-recording-surface.c +Copyright: 2007, 2008, Adrian Johnson + 2004-2006, Red Hat, Inc +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-pen.c +Copyright: 2008, Chris Wilson + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-platform.h +Copyright: 2005, Mozilla Foundation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-quartz-private.h +Copyright: 2006-2007, Mozilla Corporation + 2004, Calum Robinson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-scaled-font-subsets.c +Copyright: 2006, Keith Packard + 2005, 2006, Red Hat, Inc. + 2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-spans-private.h + gfx/cairo/cairo/src/cairo-spans.c +Copyright: 2008, M Joonas Pihlaja +License: Expat + +Files: gfx/cairo/cairo/src/cairo-surface-offset.c + gfx/cairo/cairo/src/cairo-surface-wrapper.c +Copyright: 2009, Chris Wilson + 2007, Adrian Johnson + 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-surface-snapshot.c +Copyright: 2009, Intel Corporation + 2005, Red Hat, Inc + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-svg-surface-private.h + gfx/cairo/cairo/src/cairo-svg-surface.c +Copyright: 2005-2007, Emmanuel Pacaud + 2004, 2006, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-svg.h +Copyright: 2005, Emmanuel Pacaud +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-tee-surface.c +Copyright: 2009, Chris Wilson + 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-tor-scan-converter.c +Copyright: 2008, M Joonas Pihlaja + 2007, David Turner +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-unicode.c +Copyright: 2005, Red Hat, Inc + 1999, Tom Tromey +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-vg-surface.c +Copyright: 2009, Chris Wilson + 2008, Opened Hand Ltd +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-vg.h +Copyright: 2009, Chris Wilson + 2007, Mozilla Corporation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/libpixman/src/* +Copyright: 2000 Keith Packard, member of The XFree86 Project, Inc., + 2005 Lars Knoll & Zack Rusin, Trolltech + 2008 Aaron Plattner, NVIDIA Corporation + 2008 Mozilla Corporation + 1999,2004 Keith Packard + 2000 SuSE, Inc. + 2004,2005,2007,2008 Red Hat, Inc. + 2004 Nicholas Miell + 2005 Trolltech AS + 2008 Rodrigo Kumpera + 2008 André Tupinambá + 2007 Luca Barbato +License: other-3 + 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 the copyright holder not be used in + advertising or publicity pertaining to distribution of the software without + specific, written prior permission. The copyright holder makes no + representations about the suitability of this software for any purpose. It + is provided "as is" without express or implied warranty. + . + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS 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. + +Files: gfx/cairo/libpixman/src/pixman-arm-common.h + gfx/cairo/libpixman/src/pixman-arm-neon-asm.h +Copyright: 2009-2010, Nokia Corporation +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-combine-float.c +Copyright: 2010, 2012, Soren Sandmann Pedersen + 2010, 2012, Red Hat, Inc. +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-filter.c +Copyright: 2012, Soren Sandmann + 2012, Red Hat, Inc. +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-glyph.c +Copyright: 2010-2012, Red Hat, Inc. + 2010, 2012, Soren Sandmann +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-mips-dspr2-asm.h + gfx/cairo/libpixman/src/pixman-mips-dspr2.c + gfx/cairo/libpixman/src/pixman-mips-dspr2.h +Copyright: 2012, MIPS Technologies, Inc. +License: BSD-3-clause + +Files: gfx/cairo/libpixman/src/pixman-noop.c + gfx/cairo/libpixman/src/pixman-version.h +Copyright: 1996, 1998-1999, 2007-2009, 2011, 2013, Red Hat, Inc. +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-region.c +Copyright: 1998, Keith Packard + 1987-1989, Digital Equipment Coportation + 1987-1989, The Open Group +License: other-4 + 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. + . + 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. + +Files: gfx/cairo/libpixman/src/pixman.h +Copyright: 2007, Red Hat, Inc. + 1998, 2004, Keith Packard + 1987, Digital Equipment Corporation, Maynard, Massachusetts + 1987, 1998, The Open Group +License: other-5 + 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. + . + 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. + +Files: gfx/gl/ForceDiscreteGPUHelperCGL.h +Copyright: The Chromium Authors +License: MPL-2.0 + +Files: gfx/graphite2/* +Copyright: 2010-2013, SIL International +License: LGPL-2.1 + +Files: gfx/graphite2/src/MozGrMalloc.h +Copyright: no-info-found +License: MPL-2.0 + +Files: gfx/harfbuzz/* +Copyright: 1998-2004 David Turner and Werner Lemberg + 2005 David Turner + 2004, 2007-2009, 2010 Red Hat, Inc. + 2006 Behdad Esfahbod + 2007 Chris Wilson + 2009 Martin Hosken and SIL International + 2009 Keith Stribley + 2010, 2012 Mozilla Foundation + 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) + 2011 Codethink Limited + 2010,2011,2012 Google, Inc. +License: old-MIT + +Files: gfx/harfbuzz/src/hb-atomic-private.hh + gfx/harfbuzz/src/hb-mutex-private.hh + gfx/harfbuzz/src/hb-object-private.hh +Copyright: 2011-2012, Google, Inc. + 2009-2010, Red Hat, Inc. + 2007, Chris Wilson +License: Expat + +Files: gfx/harfbuzz/src/hb-blob.cc + gfx/harfbuzz/src/hb-blob.h + gfx/harfbuzz/src/hb-face.h + gfx/harfbuzz/src/hb-font.h + gfx/harfbuzz/src/hb-ft.h + gfx/harfbuzz/src/hb-ot-layout.h + gfx/harfbuzz/src/hb-ot-shape.h + gfx/harfbuzz/src/hb-ot-tag.h + gfx/harfbuzz/src/hb-ot.h + gfx/harfbuzz/src/hb.h + gfx/harfbuzz/src/main.cc +Copyright: 1996, 1998-1999, 2007-2009, 2011, 2013, Red Hat, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-buffer-private.hh + gfx/harfbuzz/src/hb-buffer.cc + gfx/harfbuzz/src/hb-buffer.h +Copyright: 2011-2012, Google, Inc. + 2004, 2007, 2009, 2010, Red Hat, Inc. + 1998-2004, David Turner and Werner Lemberg +License: Expat + +Files: gfx/harfbuzz/src/hb-common.cc + gfx/harfbuzz/src/hb-common.h + gfx/harfbuzz/src/hb-face-private.hh + gfx/harfbuzz/src/hb-face.cc + gfx/harfbuzz/src/hb-font-private.hh + gfx/harfbuzz/src/hb-font.cc + gfx/harfbuzz/src/hb-glib.cc + gfx/harfbuzz/src/hb-glib.h + gfx/harfbuzz/src/hb-icu.h + gfx/harfbuzz/src/hb-open-file-private.hh + gfx/harfbuzz/src/hb-open-type-private.hh + gfx/harfbuzz/src/hb-ot-head-table.hh + gfx/harfbuzz/src/hb-ot-layout-common-private.hh + gfx/harfbuzz/src/hb-ot-layout-gdef-table.hh + gfx/harfbuzz/src/hb-ot-layout-gpos-table.hh + gfx/harfbuzz/src/hb-ot-layout-gsub-table.hh + gfx/harfbuzz/src/hb-ot-layout-gsubgpos-private.hh + gfx/harfbuzz/src/hb-ot-layout-private.hh + gfx/harfbuzz/src/hb-ot-map-private.hh + gfx/harfbuzz/src/hb-ot-map.cc + gfx/harfbuzz/src/hb-ot-shape.cc + gfx/harfbuzz/src/hb-ot-tag.cc + gfx/harfbuzz/src/hb-private.hh + gfx/harfbuzz/src/hb-shape.cc + gfx/harfbuzz/src/hb-shape.h +Copyright: 2010-2013, Google, Inc. + 2007-2010, Red Hat, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-coretext.cc +Copyright: 2012-2013, Mozilla Foundation + 2012-2013, Google, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-coretext.h +Copyright: 2008-2014, Mozilla Foundation +License: Expat + +Files: gfx/harfbuzz/src/hb-ft.cc +Copyright: 2009, Red Hat, Inc. + 2009, Keith Stribley +License: Expat + +Files: gfx/harfbuzz/src/hb-graphite2.cc +Copyright: 2011, SIL International + 2011, Martin Hosken + 2011-2012, Google, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-graphite2.h +Copyright: 2011, SIL International + 2011, Martin Hosken +License: Expat + +Files: gfx/harfbuzz/src/hb-icu.cc +Copyright: 2011, Google, Inc. + 2009, Red Hat, Inc. + 2009, Keith Stribley +License: Expat + +Files: gfx/harfbuzz/src/hb-ot-layout.cc +Copyright: 2012-2013, Google, Inc. + 2007-2009, Red Hat, Inc. + 2006, Behdad Esfahbod + 1998-2004, David Turner and Werner Lemberg +License: Expat + +Files: gfx/harfbuzz/src/hb-ucdn.cc +Copyright: 2012, Grigori Goronzy +License: ISC + +Files: gfx/harfbuzz/src/hb-unicode-private.hh + gfx/harfbuzz/src/hb-unicode.cc + gfx/harfbuzz/src/hb-unicode.h +Copyright: 2011, Codethink Limited + 2010-2012, Google, Inc. + 2009, Red Hat, Inc. +License: Expat + +Files: gfx/ots/* +Copyright: 2009 The Chromium Authors +License: BSD-3-clause + +Files: gfx/ots/sync.sh +Copyright: no-info-found +License: MPL-2.0 + +Files: gfx/qcms/* +Copyright: 2009, Mozilla Foundation + 1998-2007, Marti Maria +License: Expat + +Files: gfx/qcms/chain.c + gfx/qcms/transform-altivec.c + gfx/qcms/transform.c +Copyright: 2009, Mozilla Corporation + 1998-2007, Marti Maria +License: Expat + +Files: gfx/qcms/qcms.h +Copyright: 1994-1996, SunSoft, Inc. +License: Expat + +Files: gfx/thebes/gfxScriptItemizer.cpp + gfx/thebes/gfxScriptItemizer.h +Copyright: 1995-2009, International Business Machines (IBM) +License: MPL-2.0 or Expat + +Files: gfx/ycbcr/* +Copyright: 2006-2008 The Chromium Authors +License: BSD-3-clause + +Files: gfx/ycbcr/YCbCrUtils.cpp + gfx/ycbcr/YCbCrUtils.h + gfx/ycbcr/chromium_types.h + gfx/ycbcr/ycbcr_to_rgb565.cpp +Copyright: no-info-found +License: MPL-2.0 + +Files: intl/icu/source/tools/tzcode/* + intl/icu/source/tools/tzcode/zic.c +Copyright: no-info-found +License: public-domain + +Files: intl/unicharutil/util/nsBidiUtils.cpp + intl/unicharutil/util/nsUnicharUtils.h +Copyright: 2000-2002, Japan Network Information Center +License: MPL-2.0 or BSD-3-clause + +Files: intl/unicharutil/util/nsUnicodePropertyData.cpp + intl/unicharutil/util/nsUnicodeScriptCodes.h +Copyright: 1991-2014, Unicode, Inc. +License: MPL-2.0 + +Files: ipc/chromium/* +Copyright: 2006-2008 The Chromium Authors +License: BSD-3-clause + +Files: ipc/chromium/src/base/atomicops_internals_mips_gcc.h +Copyright: 2006-2013, The Chromium Authors +License: BSD-3-clause + +Files: ipc/chromium/src/base/atomicops_internals_mutex.cc + ipc/chromium/src/base/atomicops_internals_mutex.h + ipc/chromium/src/chrome/common/process_watcher_posix_sigchld.cc +Copyright: no-info-found +License: MPL-2.0 + +Files: ipc/chromium/src/third_party/* +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2000-2009, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/* +Copyright: 2000-2002 Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/WIN32-Code/tree.h +Copyright: 2002, Niels Provos +License: BSD-2-clause + +Files: ipc/chromium/src/third_party/libevent/arc4random.c +Copyright: 2010-2012, Niels Provos and Nick Mathewson + 2010, Chris Davis, Niels Provos, and Nick Mathewson + 2008, Damien Miller + 1996, David Mazieres +License: ISC + +Files: ipc/chromium/src/third_party/libevent/buffer_iocp.c + ipc/chromium/src/third_party/libevent/bufferevent-internal.h + ipc/chromium/src/third_party/libevent/bufferevent_async.c + ipc/chromium/src/third_party/libevent/bufferevent_openssl.c + ipc/chromium/src/third_party/libevent/changelist-internal.h + ipc/chromium/src/third_party/libevent/defer-internal.h + ipc/chromium/src/third_party/libevent/evmap-internal.h + ipc/chromium/src/third_party/libevent/evmap.c + ipc/chromium/src/third_party/libevent/evthread_pthread.c + ipc/chromium/src/third_party/libevent/evthread_win32.c + ipc/chromium/src/third_party/libevent/evutil.c + ipc/chromium/src/third_party/libevent/evutil_rand.c + ipc/chromium/src/third_party/libevent/iocp-internal.h + ipc/chromium/src/third_party/libevent/ipv6-internal.h + ipc/chromium/src/third_party/libevent/mm-internal.h + ipc/chromium/src/third_party/libevent/ratelim-internal.h + ipc/chromium/src/third_party/libevent/util-internal.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/bufferevent.c + ipc/chromium/src/third_party/libevent/epoll.c +Copyright: 2007-2012, Niels Provos, Nick Mathewson + 2000-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/bufferevent_pair.c + ipc/chromium/src/third_party/libevent/event_iocp.c + ipc/chromium/src/third_party/libevent/evthread-internal.h + ipc/chromium/src/third_party/libevent/evthread.c + ipc/chromium/src/third_party/libevent/listener.c +Copyright: 2008-2012, Niels Provos, Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/compat/* +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/evdns.c +Copyright: 2007-2012, Nick Mathewson and Niels Provos + 2006-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/evport.c +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2007, Sun Microsystems + 2006-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/include/event2/buffer.h + ipc/chromium/src/third_party/libevent/include/event2/buffer_compat.h + ipc/chromium/src/third_party/libevent/include/event2/bufferevent_ssl.h + ipc/chromium/src/third_party/libevent/include/event2/thread.h + ipc/chromium/src/third_party/libevent/include/event2/util.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/include/event2/bufferevent_compat.h +Copyright: 2007-2012, Niels Provos, Nick Mathewson + 2000-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/include/event2/dns.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2006-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/log.c +Copyright: 2005-2012, Niels Provos and Nick Mathewson + 2000, Dug Song + 1993, University of California +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/minheap-internal.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2006, Maxim Yegorushkin +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/strlcpy.c +Copyright: 1998, Todd C. Miller +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/* +Copyright: 2007-2012, Niels Provos and Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/bench.c + ipc/chromium/src/third_party/libevent/test/regress.c + ipc/chromium/src/third_party/libevent/test/regress.h + ipc/chromium/src/third_party/libevent/test/regress_buffer.c + ipc/chromium/src/third_party/libevent/test/regress_bufferevent.c + ipc/chromium/src/third_party/libevent/test/regress_dns.c + ipc/chromium/src/third_party/libevent/test/regress_http.c + ipc/chromium/src/third_party/libevent/test/regress_main.c + ipc/chromium/src/third_party/libevent/test/regress_rpc.c + ipc/chromium/src/third_party/libevent/test/test-eof.c + ipc/chromium/src/third_party/libevent/test/test-init.c + ipc/chromium/src/third_party/libevent/test/test-time.c + ipc/chromium/src/third_party/libevent/test/test-weof.c +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2000-2009, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/regress_util.c +Copyright: 2009-2012, Nick Mathewson and Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/tinytest.c + ipc/chromium/src/third_party/libevent/test/tinytest.h + ipc/chromium/src/third_party/libevent/test/tinytest_macros.h +Copyright: 2009-2012, Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/win32select.c +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2003, Michael A. Davis + 2000-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/glue/StringUtil.cpp +Copyright: 2006-2008, The Chromium Authors. +License: MPL-2.0 + +Files: ipc/ipdl/test/cxx/IPDLUnitTestProcessChild.cpp + ipc/ipdl/test/cxx/IPDLUnitTestProcessChild.h + ipc/ipdl/test/cxx/IPDLUnitTestSubprocess.cpp + ipc/ipdl/test/cxx/IPDLUnitTestSubprocess.h + ipc/ipdl/test/cxx/IPDLUnitTestTypes.h + ipc/ipdl/test/cxx/IPDLUnitTests.h + ipc/ipdl/test/cxx/TestHighestPrio.cpp + ipc/ipdl/test/cxx/genIPDLUnitTests.py + ipc/ipdl/test/cxx/app/* +Copyright: no-info-found +License: MPL-2.0 + +Files: js/src/builtin/embedjs.py +Copyright: 2012, the V8 project authors +License: MPL-2.0 or BSD-3-clause + +Files: js/src/ctypes/libffi/ltmain.sh +Copyright: 1996-2001, 2003-2006, Free Software Foundation +License: GPL-2+ + +Files: js/src/ctypes/libffi/msvcc.sh +Copyright: 2009, Daniel Witte +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: js/src/ctypes/libffi/src/* +Copyright: 2011-2013, Anthony Green + 1996-2004, 2007, 2008, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/aarch64/* +Copyright: 2009-2012, ARM Ltd. +License: Expat + +Files: js/src/ctypes/libffi/src/arc/* +Copyright: 2013, Synopsys, Inc. (www.synopsys.com) + 2012, Anthony Green +License: Expat + +Files: js/src/ctypes/libffi/src/arc/ffi.c +Copyright: 2013, Synopsys, Inc. (www.synopsys.com) +License: Expat + +Files: js/src/ctypes/libffi/src/arm/* +Copyright: 2012, Anthony Green + 2010, CodeSourcery + 1996-2003, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/arm/ffi.c +Copyright: 2011, Timothy Wall + 2011, Plausible Labs Cooperative, Inc. + 2011, Free Software Foundation + 2011, Anthony Green + 1998, 2008, 2011, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/arm/gentramp.sh +Copyright: 2010, Plausible Labs Cooperative, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/avr32/* +Copyright: 2011-2012, Anthony Green + 2009, Bradley Smith +License: Expat + +Files: js/src/ctypes/libffi/src/bfin/* +Copyright: 2012, Alexandre K. I. de Mendonca +License: Expat + +Files: js/src/ctypes/libffi/src/closures.c +Copyright: 2011, Plausible Labs Cooperative, Inc + 2007, 2009-2010, Red Hat, Inc + 2007, 2009-2010, Free Software Foundation, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/cris/ffi.c +Copyright: 2007, Free Software Foundation, Inc. + 2005, Axis Communications AB + 2004, Simon Posnjak + 1998, Cygnus Solutions +License: Expat + +Files: js/src/ctypes/libffi/src/debug.c + js/src/ctypes/libffi/src/java_raw_api.c + js/src/ctypes/libffi/src/raw_api.c + js/src/ctypes/libffi/src/types.c +Copyright: 1996, 1998, 1999, 2007-2009, 2011, 2013, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/frv/ffi.c +Copyright: 2008, Red Hat, Inc. + 2007, Free Software Foundation, Inc. + 2004, Anthony Green +License: Expat + +Files: js/src/ctypes/libffi/src/ia64/ffi.c +Copyright: 2011, Anthony Green + 2000, Hewlett Packard Company + 1998, 2007, 2008, 2012, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/ia64/ia64_flags.h +Copyright: 2000, Hewlett Packard Company +License: Expat + +Files: js/src/ctypes/libffi/src/m32r/* +Copyright: 2008, Red Hat, Inc. + 2004, Renesas Technology +License: Expat + +Files: js/src/ctypes/libffi/src/m32r/ffitarget.h +Copyright: 2012, Anthony Green + 2004, Renesas Technology +License: Expat + +Files: js/src/ctypes/libffi/src/m88k/* +Copyright: 2013, Miodrag Vallat. +License: Expat + +Files: js/src/ctypes/libffi/src/metag/* +Copyright: 2013, Imagination Technologies Ltd. +License: Expat + +Files: js/src/ctypes/libffi/src/metag/ffi.c +Copyright: 2013, Imagination Technologies +License: Expat + +Files: js/src/ctypes/libffi/src/microblaze/* +Copyright: 2012, 2013, Xilinx, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/mips/ffi.c +Copyright: 2011, Anthony Green + 2008, David Daney + 1996, 2007, 2008, 2011, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/moxie/* +Copyright: 2012, 2013, Anthony Green +License: Expat + +Files: js/src/ctypes/libffi/src/nios2/* +Copyright: 2013, Mentor Graphics +License: Expat + +Files: js/src/ctypes/libffi/src/pa/ffi.c +Copyright: 2011, Anthony Green + 2008, Red Hat, Inc. + 2006, Free Software Foundation, Inc. + 2003, 2004, Randolph Chung +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/* +Copyright: 2013, IBM + 2011, Kyle Moffett + 2011, Anthony Green + 2008, Red Hat, Inc. + 2007, 2008, Free Software Foundation, Inc. + 1998, Geoffrey Keating +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/asm.h +Copyright: 1998, Geoffrey Keating +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/ffi_darwin.c +Copyright: 2002, 2006, 2007-2009-2010, Free Software Foundation, Inc. + 2001, John Hornkvist + 1998, Geoffrey Keating +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/ffitarget.h +Copyright: 2012, Anthony Green + 2007-2008, 2010, Free Software Foundation, Inc. + 1996-2003, 2010, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/s390/ffi.c +Copyright: 2008, Red Hat, Inc. + 2000-2007, Software AG +License: Expat + +Files: js/src/ctypes/libffi/src/sh/ffi.c +Copyright: 2008, Red Hat, Inc. + 2002-2008, 2012, Kaz Kojima +License: Expat + +Files: js/src/ctypes/libffi/src/sh64/ffi.c +Copyright: 2008, Anthony Green + 2003, 2004, 2006-2007, 2012, Kaz Kojima +License: Expat + +Files: js/src/ctypes/libffi/src/tile/* +Copyright: 2012, Tilera Corp +License: Expat + +Files: js/src/ctypes/libffi/src/vax/* +Copyright: 2013, Miodrag Vallat. +License: Expat + +Files: js/src/ctypes/libffi/src/x86/* +Copyright: 2012, Anthony Green + 2007, 2008, 2010, Free Software Foundation, Inc. + 1996-2003, 2010, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/x86/ffi.c +Copyright: 2008, 2010, Free Software Foundation, Inc. + 2002, Roger Sayle + 2002, Ranjit Mathew + 2002, Bo Thorsen + 1996, 1998-1999, 2001, 2007-2008, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/x86/ffi64.c +Copyright: 2013, The Written Word, Inc. + 2011, Anthony Green + 2008, 2010, Red Hat, Inc. + 2002, 2007, Bo Thorsen +License: Expat + +Files: js/src/ctypes/libffi/src/xtensa/* +Copyright: 2013, Tensilica, Inc. +License: Expat + +Files: js/src/ctypes/libffi/texinfo.tex +Copyright: 1985-1986, 1988, 1990-1995, +License: GPL-3 + +Files: js/src/devtools/rootAnalysis/analyze.py + js/src/devtools/vprof/testVprofMT.c + js/src/jit/BacktrackingAllocator.h +Copyright: no-info-found +License: MPL-2.0 + +Files: js/src/editline/* +Copyright: 1992-1993, Simmule Turner and Rich Salz +License: MPL-2.0 + +Files: js/src/irregexp/* +Copyright: 2006-2014, the V8 project authors +License: BSD-3-clause + +Files: js/src/jit/ExecutableAllocator.cpp + js/src/jit/ExecutableAllocator.h +Copyright: 2006-2009, 2012, Apple Inc. +License: BSD-2-clause + +Files: js/src/jit/arm/Simulator-arm.cpp + js/src/jit/arm/Simulator-arm.h + js/src/octane/* +Copyright: 2006-2014, the V8 project authors +License: BSD-3-clause + +Files: js/src/octane/code-load.js +Copyright: 2013, the Octane Benchmark project authors + 2012, The Closure Library Authors + 2012, John Resig, http://jquery.com +License: Apache-2.0 or BSD-3-clause or Expat + +Files: js/src/octane/deltablue.js +Copyright: 2008, the V8 project authors + 1996, John Maloney and Mario Wolczko +License: GPL-2+ + +Files: js/src/octane/gbemu-part1.js + js/src/octane/gbemu-part2.js +Copyright: 2013, Google, Inc. + 2010-2012, Grant Galitz +License: GPL-2 + +Files: js/src/octane/mandreel.js +Copyright: 2012, Onan Games + 2012, Google, Inc.F +License: BSD-3-clause + +Files: js/src/octane/navier-stokes.js +Copyright: 2013, the V8 project authors + 2009, Oliver Hunt +License: Expat + +Files: js/src/octane/typescript.js +Copyright: 2013, the Octane Benchmark project authors +License: BSD-3-clause + +Files: js/src/tests/lib/jittests.py + js/src/tests/shell/shell.js + js/src/tests/test262/browser.js + js/src/tests/test262/intl402/shell.js + js/src/vtune/VTuneWrapper.h + js/xpconnect/tests/unit/component-blob.js + js/xpconnect/tests/unit/component-file.js + js/xpconnect/tests/unit/component_import.js + js/xpconnect/tests/unit/head_watchdog.js + js/xpconnect/tests/unit/test_attributes.js + js/xpconnect/tests/unit/test_blob.js + js/xpconnect/tests/unit/test_blob2.js + js/xpconnect/tests/unit/test_bogus_files.js + js/xpconnect/tests/unit/test_bug1021312.js + js/xpconnect/tests/unit/test_bug408412.js + js/xpconnect/tests/unit/test_bug451678.js + js/xpconnect/tests/unit/test_bug780370.js + js/xpconnect/tests/unit/test_bug809652.js + js/xpconnect/tests/unit/test_bug809674.js + js/xpconnect/tests/unit/test_bug813901.js + js/xpconnect/tests/unit/test_bug867486.js + js/xpconnect/tests/unit/test_bug976151.js + js/xpconnect/tests/unit/test_bug_442086.js + js/xpconnect/tests/unit/test_file.js + js/xpconnect/tests/unit/test_file2.js + js/xpconnect/tests/unit/test_import.js + js/xpconnect/tests/unit/test_js_weak_references.js + js/xpconnect/tests/unit/test_nuke_sandbox.js + js/xpconnect/tests/unit/test_params.js + js/xpconnect/tests/unit/test_recursive_import.js + js/xpconnect/tests/unit/test_reflect_parse.js + js/xpconnect/tests/unit/test_returncode.js + js/xpconnect/tests/unit/test_sandbox_metadata.js + js/xpconnect/tests/unit/test_tearoffs.js + js/xpconnect/tests/unit/test_unload.js + js/xpconnect/tests/unit/test_watchdog_default.js + js/xpconnect/tests/unit/test_watchdog_disable.js + js/xpconnect/tests/unit/test_watchdog_enable.js + js/xpconnect/tests/unit/test_watchdog_hibernate.js + js/xpconnect/tests/unit/test_watchdog_toggle.js + js/xpconnect/tests/unit/test_xpcomutils.js + layout/base/tests/marionette/* + layout/reftests/border-image/* + layout/reftests/svg/* + layout/reftests/svg/smil/smil-grid.js + layout/reftests/table-dom/* + layout/reftests/w3c-css/* + media/libcubeb/include/* + media/libcubeb/src/cubeb_osx_run_loop.c +Copyright: no-info-found +License: MPL-2.0 + +Files: js/src/tests/test262/intl402/browser.js +Copyright: 2012, Mozilla Corporation +License: MPL-2.0 + +Files: js/src/vtune/* +Copyright: 2005-2013, Intel Corporation +License: BSD-3-clause or GPL-2 + +Files: layout/base/nsFrameManager.cpp + layout/base/nsFrameManager.h + layout/base/nsIPresShell.h + layout/generic/nsLineLayout.h + layout/style/nsHTMLStyleSheet.cpp +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: layout/reftests/fonts/mark-generate.py + layout/reftests/fonts/math/* +Copyright: 2008, Mozilla Corporation +License: MPL-2.0 + +Files: media/gmp-clearkey/0.1/WMFH264Decoder.cpp + media/gmp-clearkey/0.1/WMFH264Decoder.h + media/gmp-clearkey/0.1/WMFUtils.cpp + media/gmp-clearkey/0.1/WMFUtils.h +Copyright: 2012-2014, Mozilla Foundation and contributors +License: Apache-2.0 + +Files: media/gmp-clearkey/0.1/openaes/* +Copyright: 2012-2013, Nabil S. Al Ramli, www.nalramli.com +License: BSD-2-clause + +Files: media/kiss_fft/_kiss_fft_guts.h + media/kiss_fft/kiss_fft.c + media/kiss_fft/kiss_fftr.c +Copyright: 2003-2010, Mark Borgerding +License: BSD-3-clause + +Files: media/libcubeb/src/android/* + media/libcubeb/src/audiotrack_definitions.h +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: media/libjpeg/simd/jsimd_mips_dspr2_asm.h +Copyright: 2013, MIPS Technologies, Inc., California +License: Zlib + +Files: media/libjpeg/simd/jsimdext.inc +Copyright: 2010, D. R. Commander + 2009, Pierre Ossman for Cendio AB + 1999-2006, MIYASAKA Masaru +License: Zlib + +Files: media/libnestegg/* +Copyright: 2010 Mozilla Foundation +License: ISC + +Files: media/libnestegg/src/* +Copyright: 2004-2010, Alex Pankratov +License: BSD-3-clause + +Files: media/libogg/* +Copyright: 2002-2007 Xiph.org Foundation +License: BSD-3-clause + +Files: media/libopus/celt/* +Copyright: 2007-2009, Xiph.Org Foundation + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/celt/_kiss_fft_guts.h +Copyright: 2003, 2004, Mark Borgerding +License: BSD-2-clause + +Files: media/libopus/celt/arch.h + media/libopus/celt/fixed_generic.h + media/libopus/celt/mathops.c + media/libopus/celt/mathops.h +Copyright: 2007-2009, Xiph.Org Foundation + 2007-2008, CSIRO + 2002-2008, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/arm/* +Copyright: 2013, Parrot + 2010, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/celt/arm/fixed_armv4.h + media/libopus/celt/arm/kiss_fft_armv4.h + media/libopus/celt/arm/kiss_fft_armv5e.h +Copyright: 2013, Xiph.Org Foundation and contributors +License: BSD-2-clause + +Files: media/libopus/celt/arm/fixed_armv5e.h +Copyright: 2013, Parrot + 2007-2009, Xiph.Org Foundation + 2007-2008, CSIRO + 2003-2008, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/bands.c + media/libopus/celt/bands.h + media/libopus/celt/celt.c + media/libopus/celt/celt.h + media/libopus/celt/celt_decoder.c + media/libopus/celt/celt_encoder.c + media/libopus/celt/modes.c + media/libopus/celt/modes.h +Copyright: 2008-2012, Gregory Maxwell + 2007-2010, Xiph.Org Foundation + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/celt/celt_lpc.c + media/libopus/celt/celt_lpc.h +Copyright: 1994-2002, 2009-2012, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/celt/cpu_support.h +Copyright: 2013, Parrot + 2010, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/celt/cwrs.c + media/libopus/celt/cwrs.h +Copyright: 2007-2009, Xiph.Org Foundation + 2007-2009, Timothy B. Terriberry + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/celt/ecintrin.h + media/libopus/celt/entcode.h + media/libopus/celt/entdec.c + media/libopus/celt/entdec.h + media/libopus/celt/entenc.c + media/libopus/celt/entenc.h + media/libopus/celt/mfrngcod.h +Copyright: 2008-2009, Xiph.Org Foundation + 2001-2011, Timothy B. Terriberry +License: BSD-2-clause + +Files: media/libopus/celt/entcode.c +Copyright: 2001-2011, Timothy B. Terriberry +License: BSD-2-clause + +Files: media/libopus/celt/fixed_debug.h + media/libopus/celt/stack_alloc.h +Copyright: 2007-2012, Xiph.Org Foundation + 2002-2008, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/float_cast.h +Copyright: 2001, Erik de Castro Lopo +License: BSD-2-clause + +Files: media/libopus/celt/kiss_fft.c + media/libopus/celt/kiss_fft.h +Copyright: 2008, Xiph.Org Foundation, CSIRO + 2005-2007, Xiph.Org Foundation + 2003-2004, Mark Borgerding +License: BSD-2-clause + +Files: media/libopus/celt/os_support.h +Copyright: 2007, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/x86/* +Copyright: 2013, Jean-Marc Valin and John Ridges +License: BSD-2-clause + +Files: media/libopus/include/* +Copyright: 1994-2002, 2009-2012, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/include/opus.h + media/libopus/include/opus_defines.h +Copyright: 2010, 2011, Xiph.Org Foundation, Skype Limited +License: BSD-2-clause + +Files: media/libopus/include/opus_custom.h +Copyright: 2008-2012, Gregory Maxwell + 2007-2010, Xiph.Org Foundation + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/silk/* +Copyright: 2006-2011, Skype Limited +License: BSD-2-clause + +Files: media/libopus/silk/MacroDebug.h +Copyright: 2012, Xiph.Org Foundation + 2006-2011, Skype Limited +License: BSD-2-clause + +Files: media/libopus/silk/arm/* +Copyright: 2013, Parrot + 2006-2011, Skype Limited +License: BSD-2-clause + +Files: media/libopus/silk/arm/SigProc_FIX_armv4.h +Copyright: 2013, Xiph.Org Foundation and contributors + 2013, Parrot +License: BSD-2-clause + +Files: media/libopus/silk/arm/macros_armv4.h +Copyright: 2013, Xiph.Org Foundation and contributors +License: BSD-2-clause + +Files: media/libopus/src/* +Copyright: 1994-2002, 2009-2012, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/src/mlp.c + media/libopus/src/mlp.h +Copyright: 2008-2011, Octasic Inc. +License: BSD-2-clause + +Files: media/libopus/src/opus.c + media/libopus/src/opus_decoder.c + media/libopus/src/opus_encoder.c +Copyright: 2010, 2011, Xiph.Org Foundation, Skype Limited +License: BSD-2-clause + +Files: media/libpng/* +Copyright: 1998-2014, Glenn Randers-Pehrson + 1996-1997, Andreas Dilger + 1995-1996, Guy Eric Schalnat, Group 42, Inc. +License: libpng + +Files: media/libpng/arm/* +Copyright: 2014, Glenn Randers-Pehrson +License: libpng + +Files: media/libpng/pnglibconf.h +Copyright: no-info-found +License: MPL-2.0 + +Files: media/libsoundtouch/src/* +Copyright: Olli Parviainen +License: LGPL-2.1+ + +Files: media/libspeex_resampler/src/* +Copyright: 2002, 2003, 2007, Jean-Marc Valin +License: BSD-3-clause + +Files: media/libspeex_resampler/src/resample.c + media/libspeex_resampler/src/resample_sse.c +Copyright: 2008, Thorvald Natvig + 2007-2008, Jean-Marc Valin +License: BSD-3-clause + +Files: media/libspeex_resampler/src/resample_neon.c +Copyright: 2011, Texas Instruments + 2008, Thorvald Natvig + 2007-2008, Jean-Marc Valin +License: BSD-3-clause + +Files: media/libspeex_resampler/src/simd_detect.cpp + media/libspeex_resampler/src/simd_detect.h + media/libvpx/update.py +Copyright: no-info-found +License: MPL-2.0 + +Files: media/libtheora/* +Copyright: 2002-2007 Xiph.org Foundation +License: BSD-3-clause + +Files: media/libvorbis/* +Copyright: 2002-2007 Xiph.org Foundation +License: BSD-3-clause + +Files: media/libvpx/* +Copyright: 2010 Google Inc. +License: BSD-3-clause + +Files: media/mtransport/nr_socket_prsock.cpp +Copyright: 2007, Adobe Systems, Incorporated + 2001-2003, 2006, Network Resonance, Inc. +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/nr_socket_prsock.h + media/mtransport/nricectx.cpp + media/mtransport/nricectx.h + media/mtransport/nricemediastream.cpp + media/mtransport/nricemediastream.h + media/mtransport/nriceresolver.cpp + media/mtransport/nriceresolver.h + media/mtransport/nriceresolverfake.cpp + media/mtransport/nriceresolverfake.h + media/mtransport/transportlayerice.cpp +Copyright: 2007, Adobe Systems, Incorporated +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/nr_timer.cpp +Copyright: 2004, 2006, Network Resonance, Inc. +License: MPL-2.0 or BSD-2-clause + +Files: media/mtransport/test/gtest_utils.h +Copyright: 2004-2008, Google Inc. +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/test/stunserver.cpp +Copyright: 2007, Adobe Systems, Incorporated + 2001-2003, 2006, Network Resonance, Inc. +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/test/turn_unittest.cpp +Copyright: 2007, Adobe Systems, Incorporated +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/third_party/nICEr/* +Copyright: 2007, Adobe Systems, Incorporated +License: BSD-3-clause + +Files: media/mtransport/third_party/nICEr/src/net/* + media/mtransport/third_party/nICEr/src/stun/nr_socket_buffered_stun.c + media/mtransport/third_party/nICEr/src/stun/nr_socket_buffered_stun.h + media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.c + media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.h +Copyright: 2013, Mozilla + 2007, Adobe Systems, Incorporated +License: BSD-3-clause + +Files: media/mtransport/third_party/nICEr/src/net/nr_socket.c + media/mtransport/third_party/nICEr/src/net/nr_socket.h + media/mtransport/third_party/nICEr/src/net/nr_socket_local.h + media/mtransport/third_party/nICEr/src/net/transport_addr.c + media/mtransport/third_party/nICEr/src/net/transport_addr.h + media/mtransport/third_party/nICEr/src/net/transport_addr_reg.c + media/mtransport/third_party/nICEr/src/net/transport_addr_reg.h +Copyright: 2007, Adobe Systems, Incorporated +License: BSD-3-clause + +Files: media/mtransport/third_party/nrappkit/* +Copyright: 2001-2007, Network Resonance, Inc. +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/log/* +Copyright: 2002-2003, 2006, Network Resonance, Inc. + 1999-2001, RTFM, Inc +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/port/generic/* +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/* +Copyright: 2002, 2003, 2006, Network Resonance, Inc + 1999, 2000, RTFM, Inc. +License: BSD-4-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/r_assoc.c + media/mtransport/third_party/nrappkit/src/util/libekr/r_assoc.h + media/mtransport/third_party/nrappkit/src/util/libekr/r_thread.h +Copyright: 2002, 2003, 2006, Network Resonance, Inc. + 1999-2001, RTFM, Inc. +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/r_crc32.c +Copyright: 2003, RTFM, Inc. + 2002-2003, 2006, Network Resonance, Inc. +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/r_memory.c + media/mtransport/third_party/nrappkit/src/util/libekr/r_memory.h +Copyright: 2001-2007, Network Resonance, Inc. +License: BSD-2-clause + +Files: media/webrtc/signaling/src/media-conduit/VideoTypes.h + media/webrtc/signaling/src/media-conduit/WebrtcGmpVideoCodec.h +Copyright: 2012, The WebRTC project authors +License: MPL-2.0 + +Files: media/webrtc/trunk/webrtc/base/md5.cc + media/webrtc/trunk/webrtc/base/md5.h +Copyright: no-info-found +License: public-domain + +Files: media/webrtc/trunk/webrtc/modules/audio_device/linux/alsasymboltable_linux.cc + media/webrtc/trunk/webrtc/modules/audio_device/linux/alsasymboltable_linux.h + media/webrtc/trunk/webrtc/modules/audio_device/linux/pulseaudiosymboltable_linux.cc + media/webrtc/trunk/webrtc/modules/audio_device/linux/pulseaudiosymboltable_linux.h +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: media/webrtc/trunk/webrtc/modules/audio_device/mac/portaudio/* +Copyright: 1999-2000, Ross Bencina and Phil Burk +License: Expat + +Files: media/webrtc/trunk/webrtc/modules/audio_device/opensl/* + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_device_info.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_device_info.h + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_device_info_null.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/mac/desktop_device_info_mac.h + media/webrtc/trunk/webrtc/modules/desktop_capture/win/desktop_device_info_win.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/win/desktop_device_info_win.h + media/webrtc/trunk/webrtc/modules/desktop_capture/win/win_shared.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/win/win_shared.h + media/webrtc/trunk/webrtc/modules/desktop_capture/x11/desktop_device_info_x11.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/x11/desktop_device_info_x11.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/DShowTools.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.h +Copyright: no-info-found +License: MPL-2.0 + +Files: media/webrtc/trunk/webrtc/modules/audio_processing/test/android/* +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: mfbt/decimal/* +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: mfbt/decimal/moz-decimal-utils.h +Copyright: no-info-found +License: MPL-2.0 + +Files: mfbt/double-conversion/* +Copyright: 2006-2014, the V8 project authors +License: BSD-3-clause + +Files: mfbt/lz4.c + mfbt/lz4.h +Copyright: 2011-2014, Yann Collet +License: BSD-2-clause + +Files: mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/PersistentIntentService.java + mobile/android/thirdparty/ch/boye/httpclientandroidlib/androidextra/Base64.java + mobile/android/thirdparty/com/squareup/picasso/LruCache.java +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: mobile/android/thirdparty/* +Copyright: no-info-found +License: Apache-2.0 + +Files: mobile/android/thirdparty/ch/boye/httpclientandroidlib/annotation/package-info.java +Copyright: 2005, Brian Goetz and Tim Peierls +License: Apache-2.0 + +Files: mobile/android/thirdparty/com/* +Copyright: 2007-2008, 2010, 2012, Google Inc +License: Apache-2.0 + +Files: mobile/android/thirdparty/com/squareup/* +Copyright: 2013, 2014, Square, Inc. +License: Apache-2.0 + +Files: mobile/android/thirdparty/org/lucasr/* +Copyright: 2014, Lucas Rocha +License: Apache-2.0 + +Files: modules/brotli/* +Copyright: 2013, 2014, Google Inc. +License: Apache-2.0 + +Files: modules/freetype2/* +Copyright: various contributors +License: GPL-2+ + +Files: modules/freetype2/builds/unix/* +Copyright: 1996-2014, Free Software Foundation, Inc +License: GPL-2+ + +Files: modules/freetype2/src/bdf/bdf.h +Copyright: 2001-2004, 2011, Francesco Zappa Nardelli + 2000, Computing Research Labs, New Mexico State University +License: Expat + +Files: modules/freetype2/src/bdf/bdferror.h +Copyright: 2001-2002, 2012, Francesco Zappa Nardelli +License: Expat + +Files: modules/freetype2/src/bdf/bdflib.c +Copyright: 2001-2014, Francesco Zappa Nardelli + 2000, Computing Research Labs, New Mexico State University +License: Expat + +Files: modules/freetype2/src/gzip/* +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: modules/freetype2/src/gzip/inftrees.c +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: modules/freetype2/src/gzip/zutil.c + modules/freetype2/src/gzip/zutil.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: modules/freetype2/src/gzip/zlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: modules/freetype2/src/pcf/* +Copyright: 2000-2014, by David Turner +License: Expat + +Files: modules/freetype2/src/tools/ftrandom/* +Copyright: 2005, 2007-2008, 2013, George Williams +License: BSD-3-clause + +Files: modules/libbz2/src/* +Copyright: 1996-2005 Julian R Seward +License: BZIP2 + +Files: modules/libjar/test/unit/test_bug333423.js + modules/libjar/test/unit/test_bug597702.js + modules/libjar/test/unit/test_bug637286.js + modules/libjar/test/unit/test_corrupt_536911.js + modules/libjar/test/unit/test_corrupt_541828.js + modules/libjar/test/unit/test_dirjar_bug525755.js + modules/libjar/test/unit/test_jarinput_stream_zipreader_reference.js + modules/zlib/src/mozzconf.h +Copyright: no-info-found +License: MPL-2.0 + +Files: modules/zlib/* +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: modules/zlib/src/compress.c + modules/zlib/src/deflate.h + modules/zlib/src/trees.c + modules/zlib/src/uncompr.c + modules/zlib/src/zutil.c + modules/zlib/src/zutil.h + modules/zlib/src/zconf.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: modules/zlib/src/deflate.c + modules/zlib/src/zlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: modules/zlib/src/inftrees.c +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: mozglue/android/pbkdf2_sha256.c + mozglue/android/pbkdf2_sha256.h +Copyright: 2003-2005, 2007, 2009, Colin Percival +License: BSD-2-clause + +Files: netwerk/dns/nsIDNKitInterface.h +Copyright: 2000-2002, Japan Network Information Center +License: BSD-3-clause + +Files: netwerk/dns/prepare_tlds.py +Copyright: no-info-found +License: MPL-2.0 + +Files: netwerk/protocol/ftp/nsFtpProtocolHandler.cpp +Copyright: International Business Machines (IBM) +License: MPL-2.0 + +Files: netwerk/sctp/src/* +Copyright: 2011-2012, Michael Tuexen + 2011-2012, Irene Ruengeler + 2009-2010, Humaira Kamal + 2009-2010, Brad Penoff +License: BSD-2-clause + +Files: netwerk/sctp/src/LocalArray.h + netwerk/sctp/src/ScopedFd.h + netwerk/sctp/src/ifaddrs-android-ext.h +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: netwerk/sctp/src/netinet/* +Copyright: 2008-2012, Randall Stewart + 2008-2012, Michael Tuexen + 2001-2008, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/netinet/sctp_lock_userspace.h + netwerk/sctp/src/netinet/sctp_os_userspace.h +Copyright: 2008-2012, Randall Stewart + 2008-2012, Michael Tuexen + 2008-2012, Brad Penoff + 2001-2007, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/netinet/sctp_sha1.c +Copyright: 2013, Lally Singh + 2008-2013, Michael Tuexen + 2008-2012, Randall Stewart + 2001-2007, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/netinet/sctp_ss_functions.c +Copyright: 2010-2012, Robin Seggelmann + 2010-2012, Randall Stewart + 2010-2012, Michael Tuexen +License: BSD-2-clause + +Files: netwerk/sctp/src/netinet/sctp_userspace.c +Copyright: 2011, 2012, Michael Tuexen + 2011, 2012, Irene Ruengeler +License: BSD-2-clause + +Files: netwerk/sctp/src/netinet6/* +Copyright: 2008-2012, Randall Stewart + 2008-2012, Michael Tuexen + 2001-2008, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/user_inpcb.h + netwerk/sctp/src/user_socketvar.h +Copyright: 1982, 1986, 1990, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_ip6_var.h +Copyright: 1995-1997, and 1998, WIDE Project + 1982, 1986, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_ip_icmp.h +Copyright: 1982, 1986, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_malloc.h +Copyright: 2005, Robert N. M. Watson + 1987, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_mbuf.c + netwerk/sctp/src/user_mbuf.h +Copyright: 1982, 1986, 1988, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_queue.h +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_recv_thread.h +Copyright: 2011-2012, Michael Tuexen + 2011-2012, Irene Ruengeler +License: BSD-2-clause + +Files: netwerk/sctp/src/user_route.h +Copyright: 1980, 1986, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_socket.c +Copyright: 2011, 2012, Michael Tuexen + 2011, 2012, Irene Ruengeler + 2009, 2010, Humaira Kamal + 2009, 2010, Brad Penoff + 2004-2008, Robert N. M. Watson + 2004, The FreeBSD Foundation + 1982, 1986, 1988, 1990, 1993, University of California +License: BSD-2-clause + +Files: netwerk/srtp/src/* +Copyright: 2001-2006, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/srtp/src/include/config.h +Copyright: no-info-found +License: MPL-2.0 + +Files: netwerk/streamconv/nsStreamConverterService.cpp +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: netwerk/test/unit/test_NetUtil.js + netwerk/test/unit/test_about_networking.js + netwerk/test/unit/test_about_protocol.js + netwerk/test/unit/test_auth_proxy.js + netwerk/test/unit/test_bug248970_cache.js + netwerk/test/unit/test_bug248970_cookie.js + netwerk/test/unit/test_bug455598.js + netwerk/test/unit/test_bug856978.js + netwerk/test/unit/test_cookiejars.js + netwerk/test/unit/test_cookiejars_safebrowsing.js + netwerk/test/unit/test_dns_proxy_bypass.js + netwerk/test/unit/test_extract_charset_from_content_type.js + netwerk/test/unit/test_httpResponseTimeout.js + netwerk/test/unit/test_httpauth.js + netwerk/test/unit/test_mozTXTToHTMLConv.js + netwerk/test/unit/test_offlinecache_custom-directory.js + netwerk/test/unit/test_parse_content_type.js + netwerk/test/unit/test_ping_aboutnetworking.js + netwerk/test/unit/test_protocolproxyservice.js + netwerk/test/unit/test_safeoutputstream.js + netwerk/test/unit/test_speculative_connect.js + netwerk/test/unit/test_udpsocket.js + netwerk/test/unit/test_websocket_offline.js +Copyright: no-info-found +License: MPL-2.0 + +Files: netwerk/wifi/osx_wifi.h +Copyright: 2008, Google Inc. + 2006, Alf Watt +License: BSD-3-clause + +Files: nsprpub/lib/ds/plvrsion.c + nsprpub/lib/libc/src/plvrsion.c + nsprpub/lib/prstreams/plvrsion.c + nsprpub/pr/src/prvrsion.c +Copyright: 1998, Netscape Communications Corporation +License: MPL-2.0 + +Files: nsprpub/pr/include/prvrsion.h + nsprpub/pr/src/malloc/prmalloc.c +Copyright: no-info-found +License: MPL-2.0 + +Files: nsprpub/pr/src/misc/praton.c +Copyright: 2004, Internet Systems Consortium, Inc. ("ISC") + 1993, Digital Equipment Corporation + 1983, 1990, 1993, University of California +License: BSD-3-clause or ISC + +Files: nsprpub/pr/src/misc/prerrortable.c +Copyright: 1987, 1988, the Student Information Processing Board +License: MPL-2.0 + +Files: other-licenses/atk-1.0/* +Copyright: 2001-2002, Sun Microsystems Inc. +License: LGPL-2+ + +Files: other-licenses/atk-1.0/atk/atkplug.h + other-licenses/atk-1.0/atk/atksocket.h +Copyright: 2009, Novell, Inc. +License: LGPL-2+ + +Files: other-licenses/nsis/Contrib/CityHash/cityhash/* +Copyright: 2010-2014, Google, Inc. +License: Expat + +Files: other-licenses/nsis/Contrib/liteFirewall/liteFirewall.cpp +Copyright: 2007-2009, Olivier Marcoux +License: Zlib + +Files: other-licenses/ply/* +Copyright: 2001-2009, David M. Beazley +License: BSD-3-clause + +Files: other-licenses/snappy/* +Copyright: 2005, 2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: other-licenses/snappy/src/snappy-c.cc + other-licenses/snappy/src/snappy-c.h +Copyright: 2011, Martin Gieseking +License: BSD-3-clause + +Files: other-licenses/snappy/src/snappy.h + other-licenses/snappy/src/snappy_unittest.cc +Copyright: 2005, and onwards Google Inc +License: BSD-3-clause + +Files: parser/expat/* +Copyright: 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper + 2001, 2002 Expat maintainers +License: Expat + +Files: parser/expat/lib/moz_extensions.c +Copyright: no-info-found +License: MPL-2.0 + +Files: parser/html/jArray.h + parser/html/nsHtml5ArrayCopy.h + parser/html/nsHtml5AttributeName.cpp + parser/html/nsHtml5AttributeName.h + parser/html/nsHtml5ElementName.cpp + parser/html/nsHtml5ElementName.h + parser/html/nsHtml5Macros.h + parser/html/nsHtml5NamedCharacters.cpp + parser/html/nsHtml5NamedCharacters.h + parser/html/nsHtml5Portability.h + parser/html/nsHtml5StateSnapshot.cpp + parser/html/nsHtml5StateSnapshot.h + parser/html/nsHtml5UTF16Buffer.cpp + parser/html/nsHtml5UTF16Buffer.h + parser/html/javasrc/* +Copyright: 2008-2014, Mozilla Foundation +License: Expat + +Files: parser/html/javasrc/MetaScanner.java + parser/html/javasrc/StackNode.java +Copyright: 2007-2011, Mozilla Foundation + 2007, Henri Sivonen +License: Expat + +Files: parser/html/javasrc/Tokenizer.java + parser/html/javasrc/TreeBuilder.java +Copyright: 2007-2013, Mozilla Foundation + 2005-2007, Henri Sivonen + 2004-2010, Apple Computer, Inc. +License: Expat + +Files: parser/html/nsHtml5HtmlAttributes.cpp + parser/html/nsHtml5HtmlAttributes.h + parser/html/nsHtml5MetaScanner.cpp + parser/html/nsHtml5MetaScanner.h + parser/html/nsHtml5StackNode.cpp + parser/html/nsHtml5StackNode.h +Copyright: 2007-2011, Mozilla Foundation + 2007, Henri Sivonen +License: Expat + +Files: parser/html/nsHtml5Tokenizer.cpp + parser/html/nsHtml5Tokenizer.h + parser/html/nsHtml5TreeBuilder.cpp + parser/html/nsHtml5TreeBuilder.h +Copyright: 2007-2013, Mozilla Foundation + 2005-2007, Henri Sivonen + 2004-2010, Apple Computer, Inc. +License: Expat + +Files: parser/html/nsHtml5TokenizerCppSupplement.h + python/mach/* + python/mach_commands.py + python/mozboot/* + python/mozbuild/* + python/mozversioncontrol/* +Copyright: no-info-found +License: MPL-2.0 + +Files: rdf/base/nsInMemoryDataSource.cpp + rdf/base/nsRDFService.cpp + rdf/base/nsRDFService.h +Copyright: International Business Machines (IBM) +License: MPL-2.0 + +Files: security/certverifier/OCSPCache.cpp + security/certverifier/OCSPCache.h +Copyright: 2013-2015, Mozilla Contributors +License: Apache-2.0 or MPL-2.0 + +Files: security/nss/coreconf/mkdepend/imakemdep.h +Copyright: 1993-1994, X Consortium +License: Expat + +Files: security/nss/lib/dbm/* +Copyright: 1990, 1993-1994, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/include/ncompat.h + security/nss/lib/dbm/include/queue.h +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/include/extern.h +Copyright: 1991, 1993, 1994, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/include/hsearch.h + security/nss/lib/dbm/include/search.h +Copyright: 1990, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/db.c +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/h_func.c + security/nss/lib/dbm/src/memmove.c +Copyright: 1990, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/mktemp.c +Copyright: 1987, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/strerror.c +Copyright: 1988, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/tests/* +Copyright: no-info-found +License: MPL-2.0 + +Files: security/nss/lib/freebl/intel-gcm-wrap.c + security/nss/lib/freebl/intel-gcm.h +Copyright: 2013, Intel Corp. +License: MPL-2.0 + +Files: security/nss/lib/jar/jzconf.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: security/nss/lib/jar/jzlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: security/nss/lib/util/pkcs11.h + security/nss/lib/util/pkcs11f.h + security/nss/lib/util/pkcs11p.h + security/nss/lib/util/pkcs11u.h +Copyright: 1994-1999, RSA Security Inc. +License: MPL-2.0 + +Files: security/nss/lib/ssl/ssl3gthr.c + security/nss/lib/util/utilpars.c + security/nss/lib/zlib/crc32.h + security/nss/lib/zlib/inffixed.h + security/nss/lib/zlib/trees.h + security/nss/lib/zlib/patches/* + services/common/tests/unit/head_helpers.js +Copyright: no-info-found +License: MPL-2.0 + +Files: security/nss/lib/zlib/* +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: security/nss/lib/zlib/compress.c + security/nss/lib/zlib/deflate.h + security/nss/lib/zlib/example.c + security/nss/lib/zlib/minigzip.c + security/nss/lib/zlib/trees.c + security/nss/lib/zlib/uncompr.c + security/nss/lib/zlib/zutil.c + security/nss/lib/zlib/zutil.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: security/nss/lib/zlib/deflate.c + security/nss/lib/zlib/zlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: security/nss/lib/zlib/inftrees.c +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: security/nss/lib/zlib/zconf.h +Copyright: 1995-2010, Jean-loup Gailly +License: Zlib + +Files: security/pkix/* +Copyright: 2013-2015, Mozilla Contributors +License: Apache-2.0 or MPL-2.0 + +Files: security/sandbox/chromium/base/third_party/dynamic_annotations/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: security/sandbox/chromium/base/third_party/superfasthash/* +Copyright: 2010, Paul Hsieh +License: BSD-2-clause + +Files: testing/gtest/gmock/* + testing/gtest/gtest/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: testing/mochitest/pywebsocket/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: testing/mochitest/pywebsocket/mod_pywebsocket/http_header_util.py +Copyright: 2011, Google Inc. +License: BSD-3-clause + +Files: testing/mochitest/tests/SimpleTest/ChromePowers.js + testing/mochitest/tests/SimpleTest/LogController.js + testing/mochitest/tests/SimpleTest/MemoryStats.js + testing/mochitest/tests/SimpleTest/MockObjects.js + testing/mochitest/tests/SimpleTest/setup.js + testing/mozbase/manifestparser/tests/test_convert_directory.py + testing/mozbase/manifestparser/tests/test_convert_symlinks.py + testing/mozbase/manifestparser/tests/test_manifestparser.py + testing/mozbase/mozfile/tests/test_tempdir.py + testing/mozbase/mozfile/tests/test_tempfile.py + testing/web-platform/tests/resources/testharnessreport.js + toolkit/components/ctypes/tests/unit/test_jsctypes.js + toolkit/components/mediasniffer/mp3sniff.c + toolkit/components/osfile/tests/xpcshell/test_file_URL_conversion.js + toolkit/components/osfile/tests/xpcshell/test_makeDir.js + toolkit/components/osfile/tests/xpcshell/test_path.js + toolkit/components/osfile/tests/xpcshell/test_path_constants.js + toolkit/components/osfile/tests/xpcshell/test_removeDir.js + toolkit/components/osfile/tests/xpcshell/test_removeEmptyDir.js + toolkit/components/passwordmgr/test/browser/* + toolkit/components/places/tests/favicons/head_favicons.js + toolkit/components/search/tests/xpcshell/test_645970.js + toolkit/components/search/tests/xpcshell/test_init_async_multiple.js + toolkit/components/search/tests/xpcshell/test_init_async_multiple_then_sync.js + toolkit/content/tests/browser/browser_save_resend_postdata.js + toolkit/content/tests/browser/common/* + toolkit/content/tests/unit/* +Copyright: no-info-found +License: MPL-2.0 + +Files: testing/tools/screenshot/* +Copyright: 2009, The Mozilla Foundation +License: BSD-3-clause + +Files: testing/web-platform/tests/resources/webidl2/test/widlproc/* +Copyright: 2009, Aplix Corporation +License: Apache-2.0 + +Files: testing/web-platform/tests/tools/pywebsocket/* +Copyright: 1999-2013, Google Inc +License: BSD-3-clause + +Files: testing/web-platform/tests/tools/pywebsocket/src/mod_pywebsocket/http_header_util.py +Copyright: 2011, Google Inc. +License: BSD-3-clause + +Files: testing/web-platform/tests/tools/six/six.py +Copyright: 2010-2014, Benjamin Peterson +License: Expat + +Files: toolkit/components/protobuf/* +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/components/reader/Readability.js +Copyright: 2010, Arc90 Inc. +License: Apache-2.0 + +Files: toolkit/components/url-classifier/HashStore.cpp +Copyright: 2006-2013, The Chromium Authors. +License: BSD-3-clause + + +Files: toolkit/crashreporter/google-breakpad/* +Copyright: 2006-2009, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/autotools/* +Copyright: 1996-2014, Free Software Foundation, Inc. +License: GPL-2+ + +Files: toolkit/crashreporter/google-breakpad/src/common/arm_ex_reader.cc + toolkit/crashreporter/google-breakpad/src/common/arm_ex_reader.h + toolkit/crashreporter/google-breakpad/src/common/arm_ex_to_module.cc + toolkit/crashreporter/google-breakpad/src/common/arm_ex_to_module.h +Copyright: 2011, Linaro Limited + 2010-2011, Google Inc. +License: BSD-3-clause or Expat + +Files: toolkit/crashreporter/google-breakpad/src/common/dwarf/* + toolkit/crashreporter/google-breakpad/src/common/linux/elf_symbols_to_module.cc + toolkit/crashreporter/google-breakpad/src/common/linux/elf_symbols_to_module.h +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/dwarf/bytereader_unittest.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/cfi_assembler.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/cfi_assembler.h + toolkit/crashreporter/google-breakpad/src/common/dwarf/dwarf2reader_cfi_unittest.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/dwarf2reader_die_unittest.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/dwarf2reader_test_common.h +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/dwarf/types.h +Copyright: 2008, Google, Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/mac/GTMDefines.h + toolkit/crashreporter/google-breakpad/src/common/mac/GTMLogger.h + toolkit/crashreporter/google-breakpad/src/common/mac/GTMLogger.m + toolkit/crashreporter/google-breakpad/src/common/mac/testing/* +Copyright: 2007-2008, 2010, 2012, Google Inc. +License: Apache-2.0 + +Files: toolkit/crashreporter/google-breakpad/src/common/mac/testing/GTMSenTestCase.h +Copyright: 2007, 2008, Google Inc. + 1997-2005, Sen:te (Sente SA). +License: Apache-2.0 or BSD-2-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/md5.cc +Copyright: no-info-found +License: public-domain + +Files: toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc + toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/processor/disassembler_x86.cc + toolkit/crashreporter/google-breakpad/src/processor/disassembler_x86.h + toolkit/crashreporter/google-breakpad/src/processor/disassembler_x86_unittest.cc + toolkit/crashreporter/google-breakpad/src/processor/exploitability_unittest.cc +Copyright: no-info-found +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/processor/static_map-inl.h + toolkit/crashreporter/google-breakpad/src/processor/static_map.h + toolkit/crashreporter/google-breakpad/src/processor/static_map_iterator-inl.h + toolkit/crashreporter/google-breakpad/src/processor/static_map_iterator.h +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/third_party/linux/* + toolkit/crashreporter/google-breakpad/src/third_party/lss/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/test/browser/browser_clearReports.js +Copyright: no-info-found +License: MPL-2.0 + +Files: toolkit/locales/compare-locales.pl + toolkit/modules/tests/xpcshell/test_propertyListsUtils.js + toolkit/mozapps/extensions/test/browser/browser_CTP_plugins.js + toolkit/mozapps/extensions/test/browser/browser_bug562992.js + toolkit/mozapps/extensions/test/xpcshell/test_bug299716.js + toolkit/mozapps/extensions/test/xpcshell/test_bug299716_2.js + toolkit/mozapps/extensions/test/xpcshell/test_bug324121.js + toolkit/mozapps/extensions/test/xpcshell/test_bug335238.js + toolkit/mozapps/extensions/test/xpcshell/test_bug371495.js + toolkit/mozapps/extensions/test/xpcshell/test_bug393285.js + toolkit/mozapps/extensions/test/xpcshell/test_bug394300.js + toolkit/mozapps/extensions/test/xpcshell/test_bug397778.js + toolkit/mozapps/extensions/test/xpcshell/test_bug406118.js + toolkit/mozapps/extensions/test/xpcshell/test_bug425657.js + toolkit/mozapps/extensions/test/xpcshell/test_bug430120.js + toolkit/mozapps/extensions/test/xpcshell/test_bug449027.js + toolkit/mozapps/extensions/test/xpcshell/test_bug455906.js + toolkit/mozapps/extensions/test/xpcshell/test_bug465190.js + toolkit/mozapps/extensions/test/xpcshell/test_bug468528.js + toolkit/mozapps/extensions/test/xpcshell/test_bug470377_1.js + toolkit/mozapps/extensions/test/xpcshell/test_bug470377_1_strictcompat.js + toolkit/mozapps/extensions/test/xpcshell/test_bug470377_2.js + toolkit/mozapps/extensions/test/xpcshell/test_bug470377_3.js + toolkit/mozapps/extensions/test/xpcshell/test_bug470377_3_strictcompat.js + toolkit/mozapps/extensions/test/xpcshell/test_bug470377_4.js + toolkit/mozapps/extensions/test/xpcshell/test_bug514327_1.js + toolkit/mozapps/extensions/test/xpcshell/test_bug514327_2.js + toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js + toolkit/mozapps/extensions/test/xpcshell/test_bug521905.js + toolkit/mozapps/extensions/test/xpcshell/test_dataDirectory.js + toolkit/mozapps/extensions/test/xpcshell/test_isDebuggable.js + toolkit/mozapps/extensions/test/xpcshell/test_pluginBlocklistCtp.js + toolkit/mozapps/extensions/test/xpcshell/test_pluginInfoURL.js + toolkit/mozapps/update/tests/TestAUSReadStrings.cpp + toolkit/mozapps/update/tests/unit_aus_update/* + toolkit/mozapps/update/tests/unit_base_updater/marFailurePartial.js + toolkit/mozapps/update/tests/unit_base_updater/marStageFailurePartial.js + toolkit/mozapps/update/tests/unit_base_updater/marStageSuccessComplete.js + toolkit/mozapps/update/tests/unit_base_updater/marStageSuccessPartial.js + toolkit/mozapps/update/tests/unit_base_updater/marSuccessComplete.js + toolkit/mozapps/update/tests/unit_base_updater/marSuccessPartial.js + toolkit/mozapps/update/tests/unit_base_updater/marVersionDowngrade.js + toolkit/mozapps/update/tests/unit_base_updater/marWrongChannel.js + toolkit/mozapps/update/tests/unit_service_updater/marFailurePartialSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marStageFailurePartialSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marStageSuccessCompleteSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marStageSuccessPartialSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marSuccessCompleteSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marSuccessPartialSvc.js +Copyright: no-info-found +License: MPL-2.0 + +Files: toolkit/mozapps/update/updater/bspatch.cpp + toolkit/mozapps/update/updater/bspatch.h +Copyright: 2003-2005, 2007, 2009, Colin Percival +License: BSD-2-clause + +Files: tools/update-packaging/test/common.sh + tools/update-packaging/test/make_full_update.sh +Copyright: no-info-found +License: MPL-2.0 + +Files: widget/cocoa/ComplexTextInputPanel.h +Copyright: 2006-2009, 2012, Apple Inc. +License: BSD-2-clause + +Files: widget/x11/keysym2ucs.c +Copyright: Markus G. Kuhn +License: MPL-2.0 + +Files: xpcom/build/mach_override.h +Copyright: 2003-2009, Jonathan Wolf Rentzsch: +License: Expat + +Files: xpcom/components/nsComponentManager.cpp + xpcom/io/nsLocalFile.h +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: xpcom/io/SpecialSystemDirectory.cpp +Copyright: 1998 Netscape Communications Corporation, + 2007 Red Hat Inc. +License: MPL-2.0 + +Files: xpcom/tests/unit/data/* + xpcom/tests/unit/test_bug725015.js + xpcom/tests/unit/test_file_createUnique.js + xpcom/tests/unit/test_file_equality.js + xpcom/tests/unit/test_file_renameTo.js + xpcom/tests/unit/test_ioutil.js + xpcom/tests/unit/test_localfile.js + xpcom/tests/unit/test_notxpcom_scriptable.js + xpcom/tests/unit/test_nsIMutableArray.js + xpcom/tests/unit/test_nsIProcess.js + xpcom/tests/unit/test_pipe.js + xpcom/tests/unit/test_seek_multiplex.js + xpcom/tests/unit/test_storagestream.js + xpcom/tests/unit/test_stringstream.js + xpcom/tests/unit/test_systemInfo.js + xpcom/tests/unit/test_streams.js + comm/suite/browser/test/browser/browser_bug409624.js + comm/suite/browser/test/browser/browser_bug427559.js + comm/suite/browser/test/browser/browser_pluginCrashCommentAndURL.js + comm/suite/browser/test/browser/browser_pluginplaypreview.js + comm/suite/browser/test/browser/browser_popupNotification.js + comm/suite/browser/test/browser/browser_privatebrowsing_protocolhandler.js + comm/suite/browser/test/browser/browser_relatedTabs.js + comm/suite/browser/test/browser/head.js + comm/suite/locales/en-US/chrome/browser/pageInfo.dtd + comm/suite/locales/en-US/chrome/common/aboutPrivateBrowsing.dtd + comm/suite/locales/en-US/suite-l10n.js +Copyright: no-info-found +License: MPL-2.0 + +Files: xpcom/typelib/xpt/tools/* +Copyright: 2010, 2011, Mozilla Foundation +License: BSD-2-clause + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS"BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the complete text of the Apache License, + Version 2.0 can be found in '/usr/share/common-licenses/Apache-2.0'. + +License: BZIP2 + This program, "bzip2", the associated library "libbzip2", and all + documentation, are copyright (C) 1996-2006 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. +Comment: + Licensing details are available in modules/libbz2/src/LICENSE. + +License: BSD-2-clause + 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(s), this list of conditions and the following disclaimer as + the first lines of this file unmodified other than the possible + addition of one or more copyright notices. + 2. Redistributions in binary form must reproduce the above copyright + notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. + +License: BSD-3-clause + Copyright © belongs to the uploader + 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 owner 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. + +License: BSD-4-clause + Copyright (c) 1993 The Regents of the University of California. All + rights reserved. + . + This software was developed by the Computer Systems Engineering group + at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + contributed to Berkeley. + . + 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, Lawrence Berkeley + Laboratory. + . + 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. + +License: Expat + The MIT License + . + 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. + +License: GPL-2 + On Debian systems, the complete text of the GNU General Public + License can be found in the file /usr/share/common-licenses/GPL-2'. + +License: GPL-2+ + On Debian systems, the complete text of the GNU General Public + License can be found in the file /usr/share/common-licenses/GPL-2'. + +License: GPL-3 + 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; version 3 dated June, 2007. + . + On Debian systems, the complete text of version 3 of the GNU General + Public License can be found in '/usr/share/common-licenses/GPL-3'. + +License: ISC + Copyright © 2004-2012 by Internet Systems Consortium, Inc. ("ISC") + Copyright © 1995-2003 by Internet Software Consortium + . + Permission to use, copy, modify, and/or distribute this software for + any purpose with or without fee is hereby granted, provided that the + above copyright notice and this permission notice appear in all + copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY + SPECIAL, DIRECT, 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. + +License: LGPL-2+ + This program is free software; you can redistribute it and/or modify it under + the terms of the GNU Library General Public License as published by the Free + Software Foundation; version 2 of the License, or (at your option) any later + version. + . + On Debian systems, the complete text of version 2 of the GNU Library + General Public License can be found in `/usr/share/common-licenses/LGPL-2'. + +License: LGPL-2.1 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/LGPL-2.1'. + +License: LGPL-2.1+ + This program is free software; you can redistribute it and/or modify it under + the terms of the GNU Library General Public License as published by the + Free Software Foundation; version 2.1 of the License, or (at your option) any + later version. + . + On Debian systems, the complete text of version 2.1 of the GNU General + Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +License: old-MIT + Permission is hereby granted, without written agreement and without + license or royalty fees, to use, copy, modify, and distribute this + software and its documentation for any purpose, provided that the + above copyright notice and the following two paragraphs appear in + all copies of this software. + . + IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + . + THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +License: MPL-1.0 + MOZILLA PUBLIC LICENSE + Version 1.0 + . + --------------- + . + 1. Definitions. + . + 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.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.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 a + list of 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" 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 fifty percent (50%) or more 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) to use, reproduce, modify, display, perform, sublicense and + distribute the Original Code (or portions thereof) with or + without Modifications, or as part of a Larger Work; and + (b) under patents now or hereafter owned or controlled by + Initial Developer, to make, have made, use and sell + ("Utilize") the Original Code (or portions thereof), but + solely to the extent that any such patent is reasonably + necessary to enable You to Utilize the Original Code (or + portions thereof) and not to any greater extent that may be + necessary to Utilize further Modifications or combinations. + . + 2.2. Contributor Grant. + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual + property claims: + (a) 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 or as part of + a Larger Work; and + (b) under patents now or hereafter owned or controlled by + Contributor, to Utilize the Contributor Version (or portions + thereof), but solely to the extent that any such patent is + reasonably necessary to enable You to Utilize the Contributor + Version (or portions thereof), and not to any greater extent + that may be necessary to Utilize further Modifications or + combinations. + . + 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 You have knowledge that a party claims an intellectual + property right in particular functionality or code (or its + utilization under this License), you 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 you obtain such knowledge after You make Your Modification + available as described in Section 3.2, You shall promptly + modify the LEGAL file in all copies You make available + thereafter and shall take other steps (such as notifying + appropriate comm/mailing lists or newsgroups) reasonably calculated + to inform those who received the Covered Code that new + knowledge has been obtained. + (b) Contributor APIs. + If Your Modification is an application programming interface + and You own or control patents which are reasonably necessary + to implement that API, you must also include this information + in the LEGAL file. + . + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the + Source Code, and this License in any documentation for the Source + Code, where You describe recipients' rights relating to Covered + Code. If You created one or more Modification(s), You may add your + name as a Contributor to the notice described in Exhibit A. 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 file) where a user would be + likely to look for such a notice. 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 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 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", "NPL" or any confusingly similar phrase do not appear + anywhere in your 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. + . + 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. + . + 9. LIMITATION OF LIABILITY. + . + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED + CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR + ANY OTHER 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 THAT 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: (a) unless otherwise agreed in writing, + all disputes relating to this License (excepting any dispute + relating to intellectual property rights) shall be subject to final + and binding arbitration, with the losing party paying all costs of + arbitration; (b) any arbitration relating to this Agreement shall be + held in Santa Clara County, California, under the auspices of + JAMS/EndDispute; and (c) any litigation relating to this Agreement + 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. + . + Except in cases where another Contributor has failed to comply with + Section 3.4, You are responsible for damages arising, directly or + indirectly, out of Your utilization of rights under this License, + based on the number of copies of Covered Code you made available, + the revenues you received from utilizing such rights, and other + relevant factors. You agree to work with affected parties to + distribute responsibility on an equitable basis. + . + EXHIBIT A. + . + "The contents of this file are subject to the Mozilla Public License + Version 1.0 (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): ______________________________________." + . + The original content can be found on https://www.mozilla.org/MPL/1.0/ + +License: MPL-1.1 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/MPL-1.1'. + +License: MPL-2.0 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/MPL-2.0'. + +License: Zlib + The zlib License + . + 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. + +License: libpng + 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. + . + This code is released under the libpng license. + . + libpng versions 1.2.6, August 15, 2004, through 1.6.17, March 26, 2015, are + Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are + 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 at users.sourceforge.net + March 26, 2015 + . + The original content can be found on + http://www.libpng.org/pub/png/src/libpng-LICENSE.txt + +License: public-domain + They may be distributed freely and/or modified as long as the original + Author is mentioned! diff --git a/create-lightning-l10n-tarball.sh b/create-lightning-l10n-tarball.sh new file mode 100755 index 0000000000..1d8cc0f834 --- /dev/null +++ b/create-lightning-l10n-tarball.sh @@ -0,0 +1,257 @@ +#!/bin/sh +# +# create-lightning-l10n-tarball.sh +# Porpose: +# Create an upstream tarball from the Lightning xpi language packs. +# Current stable and beta version can be found on +# https://addons.mozilla.org/de/thunderbird/addon/lightning/versions/ + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +# Initialize our own variables: +VERBOSE=0 +FILE="" +ARG_COUNT=0 +LANG_COUNT=0 +CURDIR_FULL=`pwd` +CURDIR=$(basename `pwd`) +MOZILLA_CDN_PROTO="https://" +MOZILLA_CDN_BASE="download-origin.cdn.mozilla.net/pub/thunderbird" + +# default package name +XPI=lightning.xpi +BASE_PKG="lightning-l10n" + +# local functions +usage () { +cat << EOF + +Usage: ${0##*/} [-h|-vd] [-e BETA_VER] VERSION + + -h display this help and exit + -v verbose mode, increase the output messages + -d download given [VERSION] + -e download [BETA_VER] from the beta versions + (Used in combination with '-d' to get beta marked upstream + versions.) + + [BETA_VER] given beta version of the upstream TB version, it will be re + calculated into the correct Lightning version + + [VERSION] given version in Debian format for downloading and/or creating + the *.orig.tar.xz + +Examples: + ${0##*/} -d 45.1 + Download version '45.1' of the Lightning l10n packages from Mozilla and creates + a file 'thunderbird-45.1.orig-lightning-l10n.tar.xz' that can be imported with + 'git-import-orig'. + + ${0##*/} -de 45.1b1 45.1~b1 + Download the beta version '45.1b1' of the Lightning l10n packages from Mozilla + and created a file 'thunderbird-45.1~b1.orig-lightning-l10n.tar.xz'. This file can be + automatically imported with 'git-import-orig'. + +EOF +} + +debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +fail () { + echo $* + exit ${EXIT_FAILURE} +} + +######################## +# We are starting here # +######################## + +# check for wget, curl and python2 +test -f /usr/bin/wget || fail "wget is missing, please install first!" +test -f /usr/bin/curl || fail "curl is missing, please install first!" +test -f /usr/bin/python || fail "python2 is missing, please install first!" + +# check if we are inside icedove/ and have a git environment +if [ "${CURDIR}" != "thunderbird" ]; then + echo "Not in thunderbird/.." + exit ${EXIT_FAILURE} +else + if [ ! -d .git ]; then + echo "no directory .git/ found! You are in the correct directory?" + exit ${EXIT_FAILURE} + fi +fi + +# we have no options found? +if [ "$#" -le 1 ]; then + echo "You need at least one option!" >&2 + echo + usage ${EXIT_FAILURE} +fi + +OPTIND=1 # Reset is necessary if getopts was used previously in the script. It is a good idea to make this local in a function. +while getopts "hvde:" opt; do + case "${opt}" in + h) HELP=1 + usage + exit + ;; + v) echo "[[ ... using verbose mode ... ]]" + VERBOSE=1 + debug "found option '-v'" + ;; + d) DOWNLOAD=yes + debug "found option '-d'" + ;; + e) BETA_VER=${OPTARG} + EXPERIMENTAL=1 + debug "found option '-e' with given BETA_VER: ${BETA_VER}" + ;; + :) "Option -${OPTARG} requires an argument." >&2 + exit 1 + ;; + '?') + usage >&2 + exit 1 + ;; + esac +done + +# shift found options +shift $(( OPTIND - 1 )) + +# looping the arguments, we should have at least only one without an option! +for ARG; do + ARG_COUNT=`expr ${ARG_COUNT} + 1` + debug "given argument: ${ARG}" + debug "ARG_COUNT = ${ARG_COUNT}" +done +if [ "${ARG_COUNT}" = "0" ]; then + echo "missing argument for VERSION!" + exit ${EXIT_FAILURE} +elif [ "${ARG_COUNT}" != "1" ]; then + echo "more than one argument for VERSION given!" + exit ${EXIT_FAILURE} +fi + +# o.k. the last argument should be the version +VERSION=${ARG} +TB_VERSION=${VERSION} + +debug "Download xpi: ........ ${DOWNLOAD:-off}" +if [ "${BETA_VER}" != "" ]; then + debug "Upstream TB version: . ${BETA_VER}" + TB_VERSION=${BETA_VER} +fi +LN_VERSION=`echo $(python comm/calendar/lightning/build/makeversion.py ${TB_VERSION})` +debug "Debian version: ...... ${VERSION}" +debug "Lightning version: ... ${LN_VERSION}" + +# creating temporary directories inside /tmp +# UNPACKDIR -> the directory there the original '${lightning-l10n}.xpi' or the single +# 'lightning-${LN_VERSION}.$LANG.linux-i686.xpi' will be extracted, it +# contains the complete content of the lightning.xpi +# ORIGDIR -> the directory for the plain needed content of the ${LANG}, +# will be used for the debian.orig.tar.xz + +export TMPDIR="${HOME}/tmp/tb-lightning-tmp" + UNPACKDIR="${TMPDIR}/${TB_VERSION}/unpack/" + TBARCHIVEDIR="${TMPDIR}" + ORIGDIR="${TMPDIR}${BASE_PKG}-${VERSION}/${BASE_PKG}" +echo ${TMPDIR} +# download Thunderbird precompiled archives from the CDN of Mozilla +if [ -n "${DOWNLOAD}" ]; then + rm -f ${XPI} + if [ -n "${EXPERIMENTAL}" ]; then + debug "${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/releases/${TB_VERSION}/linux-i686" + debug "creating ${UNPACKDIR}" + mkdir -p ${UNPACKDIR}lightning-l10n + debug "going downloading Thunderbird archives from ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/releases/${TB_VERSION}/linux-i686/" + cd ${TMPDIR} + # going to download the files + LIST=`curl -L --silent "${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/releases/${TB_VERSION}/linux-i686/" | grep " this wont with version 4.0 or greater <-- needs to be fixed + # with the release of 4.0 + unzip -q -d ${UNPACKDIR} ${XPI} || fail "Oops! Failed to unzip ${XPI}" +fi + +# getting the versions +TB_VER=$(grep -A2 '{3550f703-e582-4d05-9a08-453d09bdfdc6}' ${UNPACKDIR}en-US-step2/install.rdf) +if [ "$?" != "0" ]; then + debug "error" + debug "UNPACKDIR: ${UNPACKDIR}" + exit 1 +fi + +# shipped with lightning already, removing the folder 'en-US' +debug "removing language 'en-US' ${UNPACKDIR}lightning-l10n/en-US" +rm -rf ${UNPACKDIR}lightning-l10n/en-US* +mv ${UNPACKDIR}lightning-l10n/* ${ORIGDIR} + +debug "creating 'thunderbird_${VERSION}.orig-${BASE_PKG}.tar.xz'" +TARBALL="../thunderbird_${VERSION}.orig-${BASE_PKG}.tar.xz" +cd ${ORIGDIR}/.. +tar Jcf ${TARBALL} ${BASE_PKG} +TARBALL=$(readlink -f ${TARBALL}) + +echo +echo "Lightning version information" +echo ${TB_VER} + +# counting languages +LANG_COUNT=`ls -l ${ORIGDIR} | wc -l` + +# moving *-orig-*.tar.xz back +cd ${CURDIR_FULL} +mv $TARBALL ../ +TARBALL=$(readlink -f ../thunderbird_${VERSION}.orig-${BASE_PKG}.tar.xz) +echo +echo "Tarball created in:" +echo " -> ${TARBALL} <-" +echo " (language count: ${LANG_COUNT})" + +# always remove temporary things +debug "cleanup ..." +rm -rf ${TMPDIR}/* + +echo "done." + +exit $EXIT_SUCCESS diff --git a/create-thunderbird-l10n-tarball.sh b/create-thunderbird-l10n-tarball.sh new file mode 100755 index 0000000000..ad371f95ab --- /dev/null +++ b/create-thunderbird-l10n-tarball.sh @@ -0,0 +1,328 @@ +#!/bin/sh +# +# create-thunderbird-l10n-tarball.sh +# Porpose: create an upstream tarball from the language pack xpi files +# Current stable and beta versions of the l10n files can be found on +# https://download-origin.cdn.mozilla.net/pub/thunderbird +# +# The script can handle both versions. The option for automatically import the +# *.orig.tar.xz may be broken and isn't tested! + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +# Initialize our own variables: +VERBOSE=0 +FILE="" +ARG_COUNT=0 +LANG_COUNT=0 +CURDIR_FULL=`pwd` +CURDIR=$(basename `pwd`) +MOZILLA_CDN_PROTO="https://" +MOZILLA_CDN_BASE="download-origin.cdn.mozilla.net/pub/thunderbird/" + +# default package name in case the have a local file +XPI=lightning.xpi +# base package name +BASE_PKG="thunderbird" + +# local functions +usage () { +cat << EOF + +Usage: ${0##*/} [-h|-vd] [-e BETA_VER] VERSION +The options have to be used in the correct order! + + -h display this help and exit + -v verbose mode, increase the output messages + -d download given [VERSION] + -e download [BETA_VER] from the beta versions + (Used in combination with '-d' to get beta marked upstream + versions.) + [VERSION] given version in Debian format for downloading and/or creating + the *.orig.tar.xz + +Examples: + ${0##*/} -d 45.0 + + Download version '45.0' of the locales for Thunderbird from Mozilla and + creates a file 'thunderbird_45.0.orig-thunderbird-l10n.tar.xz'. + + + ${0##*/} -de 45.0b1 45.0~b1 + + Download the beta version '45.0b1' of the locales for Thunderbird from + Mozilla and create a file 'thunderbird_45.0~b1.orig-thunderbird-l10n.tar.xz'. + + + ${0##*/} -vde 45.0b1 45.0~b1 + + Same as above, download the beta version '45.0b1' of the locales for + Thunderbird from Mozilla and create a file + 'thunderbird_45.0~b1.orig-thunderbird-l10n.tar.xz'. + But this is done with some verbose output messages to see what's going + on inside. Mostly useful for debugging the script. + +EOF +} + +debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +fail () { + echo $* + exit ${EXIT_FAILURE} +} + +######################## +# We are starting here # +######################## + +# check for wget and curl +test -f /usr/bin/wget || fail "wget is missing, please install first!" +test -f /usr/bin/curl || fail "curl is missing, please install first!" + +# check if we are inside icedove/ and have a git environment +if [ "${CURDIR}" != "thunderbird" ]; then + echo "Not in thunderbird/.." + exit ${EXIT_FAILURE} +else + if [ ! -d .git ]; then + echo "no directory .git/ found! You are in the correct directory?" + exit ${EXIT_FAILURE} + fi +fi + +# we have no options found? +if [ $(($#)) -lt 1 ]; then + echo "You need at least one option!" >&2 + echo + usage ${EXIT_FAILURE} +fi + +OPTIND=1 # Reset is necessary if getopts was used previously in the script. It is a good idea to make this local in a function. +while getopts "hvde:" opt; do + case "$opt" in + h) HELP=1 + usage + exit + ;; + v) echo "[[ ... using verbose mode ... ]]" + VERBOSE=1 + ;; + d) DOWNLOAD=yes + debug "found option '-d'" + ;; + e) BETA_VER=${OPTARG} + EXPERIMENTAL=1 + debug "found option '-e' with given BETA_VER: ${BETA_VER}" + ;; + :) "Option -${OPTARG} requires an argument." >&2 + exit 1 + ;; + '?') + usage >&2 + exit 1 + ;; + esac +done + +# shift found options +shift $(( OPTIND - 1 )) + +# looping the arguments, we should have at least only one without an option! +for ARG; do + ARG_COUNT=`expr ${ARG_COUNT} + 1` + debug "given argument: ${ARG}" + debug "ARG_COUNT = ${ARG_COUNT}" +done + +# there is no argument left that should be the Debian version, error out! +if [ "${ARG_COUNT}" = "0" ]; then + echo "missing argument for VERSION!" + exit ${EXIT_FAILURE} + +# we have to many arguments, error out +elif [ "${ARG_COUNT}" != "1" ]; then + echo "more than one argument for VERSION given!" + exit ${EXIT_FAILURE} +fi + +# o.k. the last argument should be the version +VERSION=${ARG} + +debug "Download xpi: ........ ${DOWNLOAD:-off}" +debug "Run git-import-orig: . ${GIT_IMPORT:-off}" +if [ -n ${BETA_VER} ]; then + debug "Upstream beta version: ${BETA_VER}" +fi +debug "Debian version: ...... ${VERSION}" + +# creating temporary directories inside /tmp +# TMPDIR -> the 'base' directory there we build all the stuff +# UPSTREAMDIR -> the directory there the original '*.xpi' will be extracted, +# it contains the complete content of the various *.xpi files, +# we also unpack here the *.xpi files +# ORIGDIR -> the directory for the plain needed content of the ${LANG}.jar, +# will be used for the debian.orig.tar.xz + +export TMPDIR=$(mktemp --tmpdir=/tmp -d)/ + UPSTREAMDIR=${TMPDIR}upstream/ + ORIGDIR="${TMPDIR}${BASE_PKG}-${VERSION}/" + +# download Lightning from the CDN of Mozilla +if [ -n "${DOWNLOAD}" ]; then + # remove a lightning.xpi if present + rm -f ${XPI} + if [ -n "${EXPERIMENTAL}" ]; then + + ######################################################################### + # The beta Lightning packages can have various builds for one version, # + # we want at least the last build of a beta version. Also there are # + # packages for every single language instead of one single file without # + # all languages. # + ######################################################################### + + # getting the latest build inside a release candidates + debug "try at ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}candidates/${BETA_VER}-candidates/ " + RET=`curl ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}candidates/${BETA_VER}-candidates/ \ + | grep ">build" | awk '{print $2}' | tr '<>/"' ' ' | awk '{print $6}' | tail -n 1` + + # going further if we found something useful + if [ "$?" = "0" -a "${RET}" != "" ]; then + # DIRECTORY is the 'build[x]' directory on the CDN, e.g. 'build1', 'build2', ... + DIRECTORY=`echo ${RET} | tr ' ' '\n' | head -1` + # DATE is the date of the DIRECTORY folder + DATE=`echo ${RET} | tr ' ' '\n' | tail -1` + debug "found directory '${BETA_VER}-candidates/${DIRECTORY}' from '${DATE}'" + debug "creating ${UPSTREAMDIR}" + mkdir ${UPSTREAMDIR} + cd /tmp + # checking if there is already some download + if [ ! -d ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi ]; then + DO_DOWNLOAD="1" + fi + + if [ -d ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi ]; then + if [ "$(`ls -l ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi | wc -l`)" = "0" ]; then + debug "found old download folder, but it's empty" + DO_DOWNLOAD="1" + fi + fi + if [ "${DO_DOWNLOAD}" = "1" ]; then + debug "going downloading *.xpi files from ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/" + wget -m -r -l 1 -A xpi ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi/ + debug "copy *xpi files from donwload folder to workspace" + fi + # finally copy the *.xpi files to ${UPSTREAMDIR} + cp ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi/*.xpi ${UPSTREAMDIR} + cd ${TMPDIR} + # uhh, we couldn't find the given BETA_VER on the FTP server + else + fail "Couldn't find version ${BETA_VER}, correct version for option '-e' selected?" + fi + else + + ####################################################################### + # If we are here the user want to get a version for unstable/testing. # + # It's the same as for beta versions, the only difference is the # + # download URL. # + ####################################################################### + + debug "creating ${UPSTREAMDIR}" + mkdir ${UPSTREAMDIR} + cd /tmp + # checking if there is already some download + if [ ! -d ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi ]; then + DO_DOWNLOAD="1" + fi + if [ -d ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi ]; then + DL_COUNT=`ls -l ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi/*.xpi | wc -l` + if [ "${DL_COUNT}" = "0" ]; then + debug "found old download folder, but it's empty" + DO_DOWNLOAD="1" + else + echo "nothing to download, all needed *.xpi are here" + debug "found ${DL_COUNT} files already downloaded" + fi + fi + if [ "${DO_DOWNLOAD}" = "1" ]; then + # getting files for the stable version + wget -m -r -l 1 -A xpi ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi/ + fi + # finally copy the *.xpi files to $(UPSTREAMDIR}) + cp ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi/*.xpi ${UPSTREAMDIR} + fi +else + if [ "${FILE}" != "" ]; then + # DUMMY! option '-f' isn't currently implemented! + # we should have a local *.xpi file if option -f is given + XPI=${FILE} + fi +fi + +debug "removing language 'en_US'" +rm -f ${UPSTREAMDIR}/en-US.xpi +debug "creating workspace for extracted upstream sources in '${ORIGDIR}'" +mkdir ${ORIGDIR} + +# extract l10n files +debug "extracting \"\$LANG*.jar\" in \"${UPSTREAMDIR}chrome\" into \"${ORIGDIR}\$LANG\"" +#LANG_COUNT_LIG=`ls -l ${UPSTREAMDIR}chrome/lightning*.jar | wc -l` + +for XPI in `ls ${UPSTREAMDIR}`; do + LOCALE=`basename ${XPI} .xpi` + debug "creating ${UPSTREAMDIR}/${LOCALE}" + mkdir ${UPSTREAMDIR}/${LOCALE} + unzip -o -q -d $UPSTREAMDIR/$LOCALE $UPSTREAMDIR/$XPI + # use more verbose mode if we do some debugging, comment the line above if needed + #unzip -o -d $UPSTREAMDIR/$LOCALE $UPSTREAMDIR/$XPI + cd $UPSTREAMDIR/$LOCALE + if [ -f chrome/$LOCALE.jar ]; then + JAR=$LOCALE.jar + else + JAR=`echo $XPI | sed --posix 's|-.*||'`.jar + fi + if [ -f chrome/$JAR ]; then + unzip -o -q -d chrome chrome/$JAR + rm -f chrome/$JAR + fi + # removing the not needed any longer *.xpi files + rm $UPSTREAMDIR/$XPI +done + +cd ${TMPDIR} +mv upstream ${BASE_PKG}-${VERSION}/${BASE_PKG}-l10n +# counting languages +LANG_COUNT=`ls ${BASE_PKG}-${VERSION}/${BASE_PKG}-l10n/ | wc -l` + +# doing the *.orig.tar.xz archive stuff +TARBALL="${BASE_PKG}_${VERSION}.orig-${BASE_PKG}-l10n.tar.xz" +debug "creating archive: '${TARBALL}' in '${TMPDIR}'" +cd ${BASE_PKG}-${VERSION} +tar caf ${TARBALL} ${BASE_PKG}-l10n +TARBALL=$(readlink -f ${TARBALL}) + +# moving orig.tar.xz back to the users working dir +cd ${CURDIR_FULL} +debug "moving ${TARBALL} to ${CURDIR_FULL}/../" +mv ${TARBALL} ../ +TARBALL_FINAL=$(readlink -f ../${BASE_PKG}_${VERSION}.orig-${BASE_PKG}-l10n.tar.xz) +echo +echo "Tarball created in:" +echo " -> ${TARBALL_FINAL} <- (containing ${LANG_COUNT} languages)" + +# remove temporary things if no verbose mode +if [ ${VERBOSE} = "" ]; then + debug "cleanup ${TMPDIR} ..." + rm -rf ${TMPDIR} +else + debug "NOT cleaning up ${TMPDIR}" +fi + +echo "done." + +exit $EXIT_SUCCESS diff --git a/docs b/docs new file mode 100644 index 0000000000..5c24349bfa --- /dev/null +++ b/docs @@ -0,0 +1 @@ +mozilla/extensions/spellcheck/locales/en-US/hunspell/README_en_US.txt diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000000..3609ee564c --- /dev/null +++ b/gbp.conf @@ -0,0 +1,23 @@ +# Configuration file for git-buildpackage and friends + +[DEFAULT] +# use pristine-tar: +pristine-tar = True +# generate xz compressed orig file +compression = xz +debian-branch = debian/sid +# default branch for upstream sources: +upstream-branch = upstream-60.x +components = [ 'thunderbird-l10n', 'lightning-l10n' ] + +[pq] +patch-numbers = False + +[dch] +id-length = 7 + +[import-orig] +# filter out unwanted files/dirs from upstream +filter = [ '*.orig', '*.rej' ] +# filter the files out of the tarball passed to pristine-tar +filter-pristine-tar = True diff --git a/lightning.links b/lightning.links new file mode 100644 index 0000000000..2053955f7c --- /dev/null +++ b/lightning.links @@ -0,0 +1 @@ +usr/share/lightning usr/lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103} diff --git a/logo/icedove/icedove.xpm b/logo/icedove/icedove.xpm new file mode 100644 index 0000000000..bf12bae8eb --- /dev/null +++ b/logo/icedove/icedove.xpm @@ -0,0 +1,204 @@ +/* XPM */ +static char *icedove[] = { +/* columns rows colors chars-per-pixel */ +"32 32 166 2 ", +" c #53575C", +". c #71787F", +"X c #55A30C", +"o c #58A60E", +"O c #5AA612", +"+ c #5CAA12", +"@ c #64AD1E", +"# c #61B115", +"$ c #66B21C", +"% c #69BB1A", +"& c #519A29", +"* c #66AF22", +"= c #69AF26", +"- c #67B021", +"; c #6AB324", +": c #6EBA24", +"> c #67B52B", +", c #6DB32A", +"< c #6FBA29", +"1 c #71B62E", +"2 c #70B82C", +"3 c #66B23A", +"4 c #6BB03A", +"5 c #73B632", +"6 c #75B934", +"7 c #75B639", +"8 c #77B838", +"9 c #7BBB3D", +"0 c #71C420", +"q c #75C924", +"w c #79CE27", +"e c #72C32E", +"r c #5A9D44", +"t c #5A985B", +"y c #69AD4A", +"u c #7EBC43", +"i c #77B548", +"p c #66A25B", +"a c #68A45C", +"s c #6CA95F", +"d c #74BB52", +"f c #5A9664", +"g c #619E6D", +"h c #6FA966", +"j c #74AA6B", +"k c #75B366", +"l c #77AB71", +"z c #79AD73", +"x c #7DB275", +"c c #7FB479", +"v c #81BD47", +"b c #84BE4E", +"n c #87BF51", +"m c #88BC74", +"M c #81B37D", +"N c #84BB7D", +"B c #81C046", +"V c #85C14B", +"C c #87C251", +"Z c #8BC355", +"A c #8EC55A", +"S c #95C766", +"D c #95CA63", +"F c #98CC67", +"G c #91C569", +"H c #9ACB6C", +"J c #9ECD70", +"K c #A2D076", +"L c #A6D37B", +"P c #727B82", +"I c #649A83", +"U c #6F9C9A", +"Y c #73A586", +"T c #73A19E", +"R c #7EAA9B", +"E c #719EA7", +"W c #759FB2", +"Q c #799FBB", +"! c #7EA8B5", +"~ c #7CA2BD", +"^ c #7B9FC1", +"/ c #7FA1C6", +"( c #83B583", +") c #8696A8", +"_ c #93B7A4", +"` c #80A6B8", +"' c #88AEBF", +"] c #9CBABB", +"[ c #98C681", +"{ c #9BC884", +"} c #ADD684", +"| c #AFD68C", +" . c #B0D989", +".. c #B7DB95", +"X. c #BCDE9B", +"o. c #A2C6A1", +"O. c #C0DEA4", +"+. c #C2E1A4", +"@. c #C7E4AB", +"#. c #C8E5AC", +"$. c #CBE5B3", +"%. c #C7E0BD", +"&. c #81A4C0", +"*. c #85A8C3", +"=. c #8CACC4", +"-. c #86A7C8", +";. c #86A8CF", +":. c #8EADCC", +">. c #92AFCB", +",. c #94B3D3", +"<. c #99B5D4", +"1. c #9DBAD2", +"2. c #A9B4C0", +"3. c #A3BBD7", +"4. c #A1BDDA", +"5. c #ABBFDB", +"6. c #ABC6C5", +"7. c #A8C1CA", +"8. c #B5CDC8", +"9. c #A7C0DA", +"0. c #B3C7DE", +"q. c #B3C9DC", +"w. c #AFC6E0", +"e. c #B3C7E1", +"r. c #B5CBE2", +"t. c #B9CCE2", +"y. c #BFD1E6", +"u. c #CCCDC9", +"i. c #CED0CB", +"p. c #D1D3CE", +"a. c #D2D4D0", +"s. c #D7D8D5", +"d. c #D8DAD6", +"f. c #DBDDD9", +"g. c #D4E9C0", +"h. c #D8ECC6", +"j. c #DEE0DD", +"k. c #E0E1DE", +"l. c #E0F1D0", +"z. c #C3D3E6", +"x. c #CDD8E6", +"c. c #C1D4E8", +"v. c #CEDDEC", +"b. c #D4DCE5", +"n. c #D2DDEB", +"m. c #D5E0ED", +"M. c #D9E2EE", +"N. c #D4E2F0", +"B. c #DBE6F1", +"V. c #DEE9F4", +"C. c #E4E5E2", +"Z. c #E7E8E6", +"A. c #E8E9E7", +"S. c #EBECEA", +"D. c #EFF1ED", +"F. c #F0F8EA", +"G. c #E4ECF5", +"H. c #E9EEF4", +"J. c #ECF1F6", +"K. c #ECF3F9", +"L. c #F3F4F3", +"P. c #F5FAF0", +"I. c #F2F5F9", +"U. c #F6F9FC", +"Y. c #FEFEFE", +"T. c None", +/* pixels */ +"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.", +"T.T.d.U.d.Y.d.U.d.P.k.L.Z.S.S.Z.L.f.L.f.U.d.Y.d.U.f.L.k.L.Z.T.T.", +"T.T.S.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.T.T.", +"T.T.a.Y.3.q._ N N M M z z z z z z z z z >.q.=.Y N M 7.3.U.C.T.T.", +"T.T.L.Y.] : w 0 $ # # @ X X X X X X X X f G.Y.1.> e q j L.U.T.T.", +"T.T.p.Y.k q % # O o O X X X X X X X X X X r.Y.U.,.t.3 d I.j.T.T.", +"T.T.L.Y.k % # o X O @ X X X X X X X X X X U U.Y.y.U.<.y U.Y.T.T.", +"T.T.p.Y.a + o o O.@ X X X X O O X o o O X & v.Y.Y.K.m.t I.k.T.T.", +"T.T.L.Y.a o o + O.+ O O @ , 7 u u u 7 = + + 3.Y.Y.Y.U.;.U.Y.T.T.", +"T.T.a.Y.a + o 1 = O.$.H A Z n n n n A S J S ' Y.Y.Y.Y.4.I.k.T.T.", +"T.T.S.Y.a * v 8 H F.P.| , @ @ * = * * @ = , T Y.Y.Y.Y.t.L.U.T.T.", +"T.T.s.Y.a g.F.A 9 O.g.A = = , , , , , ; ; * f K.Y.Y.Y.n.I.Z.T.T.", +"T.T.A.Y.j $.h., @ ; 9 Z 1 5 6 6 5 5 5 1 1 , r G.Y.Y.Y.n.I.L.T.T.", +"T.T.f.Y.j V $ $ ; , 2 D Z 9 9 9 u 7 9 8 6 2 f H.Y.Y.Y.n.I.S.T.T.", +"T.T.C.Y.z 9 $ ; , 2 6 C K Z b V V V v u 9 8 ! Y.Y.Y.Y.n.U.S.T.T.", +"T.T.k.Y.( 2 ; < 2 6 9 v L } A A A A Z V B i r.Y.Y.Y.Y.n.I.D.T.T.", +"T.T.f.Y.( ; ; 2 6 9 B V J ..} F F D D A C *.U.Y.Y.Y.Y.n.I.A.T.T.", +"T.T.S.Y.( : 2 5 p I h Z F X.+.} L K H S -.J.Y.Y.Y.Y.Y.n.I.P.T.T.", +"T.T.a.Y.M : 4 Q v.U.v.:.G | $.#. .} [ 1.U.Y.Y.Y.Y.Y.Y.n.I.Z.T.T.", +"T.T.D.Y.x < ~ H.Y.Y.Y.Y.,.{ $.h.@.o.w.Y.Y.Y.Y.Y.Y.Y.Y.n.I.U.T.T.", +"T.T.i.Y.x g V. x.Y.U.) G.R X.l.8.r.Y.Y.Y.Y.Y.Y.Y.Y.Y.z.I.j.T.T.", +"T.T.L.Y.x E Y.H.K.Y.V.P H.W @.6.r.Y.Y.Y.K.Y.Y.Y.Y.v.v.e.I.U.T.T.", +"T.T.u.Y.Y ` Y.Y.2.P S.U.K./ %.e.Y.Y.Y.J.Y.Y.Y.Y.Y.K.n.z.U.f.T.T.", +"T.T.L.Y.<.9.Y.Y.Y.I.Y.U.J./ ` U.Y.Y.G.Y.Y.Y.Y.Y.Y.Y.U.z.I.Y.T.T.", +"T.T.i.Y.t.B.Y.Y.Y.Y.Y.U.K.-.1.Y.Y.U.B.Y.Y.Y.Y.Y.Y.Y.V.n.I.j.T.T.", +"T.T.L.Y.t.m.Y.Y.Y.Y.Y.Y.U.y.3.Y.Y.I.K.Y.Y.Y.Y.Y.J.V.Y.n.I.U.T.T.", +"T.T.p.Y.5.y.J.J.J.J.J.J.J.J.c.J.J.J.J.J.H.n.v.v.G.J.J.r.U.k.T.T.", +"T.T.S.Y.b.b.M.b.b.b.M.b.b.b.m.m.b.b.M.b.M.b.b.b.b.m.b.b.Y.U.T.T.", +"T.T.d.Y.f.f.Y.j.f.k.Y.Z.C.Z.L.L.Z.A.Y.j.Y.j.j.j.j.Y.k.k.Y.Z.T.T.", +"T.T.A.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.L.T.T.", +"T.T.j.Y.j.Y.k.Y.C.U.Z.L.A.S.L.Z.P.Z.U.k.Y.f.Y.j.Y.k.U.Z.L.S.T.T.", +"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T." +}; diff --git a/logo/icedove/icedove_icon.svg b/logo/icedove/icedove_icon.svg new file mode 100644 index 0000000000..dab3a99da8 --- /dev/null +++ b/logo/icedove/icedove_icon.svg @@ -0,0 +1,1756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Icedove Icon + + + Ricardo Fernández Fuentes + + + + + Ricardo Fernández Fuentes + + + icedove icon + + + + icedove + ico + icon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_icon_plain.svg b/logo/icedove/icedove_icon_plain.svg new file mode 100644 index 0000000000..7733517d35 --- /dev/null +++ b/logo/icedove/icedove_icon_plain.svg @@ -0,0 +1,1438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_icon_profile.svg b/logo/icedove/icedove_icon_profile.svg new file mode 100644 index 0000000000..f4d9829eae --- /dev/null +++ b/logo/icedove/icedove_icon_profile.svg @@ -0,0 +1,1959 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Icedove Icon + + + Ricardo Fernández Fuentes + + + + + Ricardo Fernández Fuentes + + + icedove icon + + + + icedove + ico + icon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_icon_profile_plain.svg b/logo/icedove/icedove_icon_profile_plain.svg new file mode 100644 index 0000000000..586ce11255 --- /dev/null +++ b/logo/icedove/icedove_icon_profile_plain.svg @@ -0,0 +1,1606 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_lettering.svg b/logo/icedove/icedove_lettering.svg new file mode 100644 index 0000000000..a2f9216210 --- /dev/null +++ b/logo/icedove/icedove_lettering.svg @@ -0,0 +1,994 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_logo.svg b/logo/icedove/icedove_logo.svg new file mode 100644 index 0000000000..885bb14685 --- /dev/null +++ b/logo/icedove/icedove_logo.svg @@ -0,0 +1,2407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Icedove Logo + + + Ricardo Fernández Fuentes + + + + + Ricardo Fernández Fuentes + + + icedove logo + + + + icedove + logo + logotipo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_logo_plain.svg b/logo/icedove/icedove_logo_plain.svg new file mode 100644 index 0000000000..7804a86f36 --- /dev/null +++ b/logo/icedove/icedove_logo_plain.svg @@ -0,0 +1,1939 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/license.txt b/logo/icedove/license.txt new file mode 100644 index 0000000000..55c6d2df09 --- /dev/null +++ b/logo/icedove/license.txt @@ -0,0 +1,23 @@ +License for iceweasel_icon/logo - icedove_icon/logo - iceape_icon/logo artworks. + +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/ + +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. + +Ricardo Fernández Fuentes. +ricardoffmadrid@gmail.com diff --git a/logo/thunderbird/mailicon128.png b/logo/thunderbird/mailicon128.png new file mode 100644 index 0000000000000000000000000000000000000000..82d06bdc8798121c409d140ff3d24a68b56d0758 GIT binary patch literal 12837 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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon16.png b/logo/thunderbird/mailicon16.png new file mode 100644 index 0000000000000000000000000000000000000000..e909e84e0ba0af60c43c0a8d68ea1a5bafe42cb5 GIT binary patch literal 975 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 BTFd|d literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon24.png b/logo/thunderbird/mailicon24.png new file mode 100644 index 0000000000000000000000000000000000000000..1b04f8da4b41271debe171273c14f2384be61e8c GIT binary patch literal 1656 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%0DL@=`xLIPy$#Y>9VL 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 LNkvXXu0mjfOkBR? literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon32.png b/logo/thunderbird/mailicon32.png new file mode 100644 index 0000000000000000000000000000000000000000..94513b13e113597b58a8f27beedfb598cb662914 GIT binary patch literal 2400 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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon512.png b/logo/thunderbird/mailicon512.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1ae331365946ff4d23dffad9c195e441160c5e GIT binary patch literal 73401 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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon64.png b/logo/thunderbird/mailicon64.png new file mode 100644 index 0000000000000000000000000000000000000000..d4dac76d4778e6d36f46c448002e9fc951698941 GIT binary patch literal 5423 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 + + + + Mozilla Thunderbird Logo + + + + image/svg+xml + + Mozilla Thunderbird Logo + + + + + + https://de.wikipedia.org/wiki/Datei:Mozilla_Thunderbird_Logo.svg + + + Mozilla Foundation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/thunderbird/thunderbird.svg b/logo/thunderbird/thunderbird.svg new file mode 100644 index 0000000000..3b587718ed --- /dev/null +++ b/logo/thunderbird/thunderbird.svg @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mozconfig.default b/mozconfig.default new file mode 100644 index 0000000000..9593f39c01 --- /dev/null +++ b/mozconfig.default @@ -0,0 +1,127 @@ +# -*- mode: makefile; coding: utf-8 -*- + +# mozconfig.default +# default settings for the various builds of Mozilla applications +# +# This file is needed to build multiple applications from the source. +# It set up some variables that are used in all builds, or they will be +# overriden later by some builds. The Mozilla buildsystem supports various +# builds from the same source by seperate obj-$directorys. +# Further informations around the multiple applications build can be found +# on +# +# https://developer.mozilla.org/en-US/docs/Configuring_Build_Options#Building_with_an_Objdir +# +# The application specific obj-dir is setup within the seperate +# mozconfig.$APPLICATION file! + +# use/use not packaged software instead of preshipped +ac_add_options --without-system-jpeg # Debian version causes issues on mips* +ac_add_options --with-system-bz2 +ac_add_options --with-system-icu +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-zlib + +# other packaged software +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx + +# disabled features +ac_add_options --disable-gconf +ac_add_options --disable-install-strip +ac_add_options --disable-strip +ac_add_options --disable-tests +ac_add_options --disable-updater +ac_add_options --disable-webrtc + +# enabled features +ac_add_options --enable-default-toolkit=cairo-gtk3 +ac_add_options --enable-extensions=default +ac_add_options --enable-official-branding # use the official artwork +ac_add_options --enable-optimize +ac_add_options --enable-pie +ac_add_options --enable-readline +ac_add_options --enable-startup-notification +ac_add_options --enable-system-ffi +ac_add_options --enable-system-hunspell +ac_add_options --enable-system-sqlite + +# Debian specific things +PARALLEL_BUILD=$(echo $DEB_BUILD_OPTIONS | sed -e '/parallel=/!s/.*/1/;s/.*parallel=\([0-9]\+\).*/\1/g') +mk_add_options MOZ_MAKE_FLAGS="-j$PARALLEL_BUILD" +ac_add_options --with-distribution-id=org.debian +ac_add_options --with-user-appdir=.mozilla +ac_add_options --with-pthreads +ac_add_options --disable-debug +ac_add_options --host=$DEB_HOST_GNU_TYPE + +# some platform depended things +case `dpkg --print-architecture` in + alpha) + ac_add_options --enable-optimize=-O1 + ;; +# amd64) +# ac_add_options --enable-crashreporter +# ;; + arm64) + ac_add_options --enable-optimize=-O1 + ;; + armel) + ac_add_options --enable-optimize=-O1 +# ac_add_options --enable-crashreporter + ;; + armhf) + ac_add_options --enable-optimize=-O1 +# ac_add_options --enable-crashreporter + ;; + hurd-i386) + ac_add_options --disable-necko-wifi + ;; + hppa) + ac_add_options --disable-optimize + ac_add_options --with-intl-api + ;; + i386) +# ac_add_options --enable-crashreporter + ;; + ia64) + ac_add_options --enable-optimize=-O2 + ;; + kfreebsd-i386) + ac_add_options --disable-necko-wifi + ;; + kfreebsd-amd64) + ac_add_options --disable-necko-wifi + ;; + m68k) + ac_add_options --with-intl-api + ;; + mips) + ac_add_options --with-intl-api + ;; + powerpc) + ac_add_options --with-intl-api + ;; + powerpcspe) + ac_add_options --with-intl-api + ;; + ppc64) + ac_add_options --disable-optimize + ac_add_options --with-intl-api + ;; + sh4) + ac_add_options --disable-pie + ;; + sparc) + ac_add_options --enable-optimize=-O1 + ac_add_options --with-intl-api + ;; + sparc64) + ac_add_options --with-intl-api + ;; + s390x) + ac_add_options --enable-optimize=-O1 + ac_add_options --with-intl-api + ;; +esac diff --git a/mozconfig.thunderbird b/mozconfig.thunderbird new file mode 100644 index 0000000000..9f42bf43bc --- /dev/null +++ b/mozconfig.thunderbird @@ -0,0 +1,17 @@ +# -*- mode: makefile; coding: utf-8 -*- + +# mozconfig.thunderbird +# settings for the build of Icedove +# +# This file set up extra config options for the build of the Thunderbird +# application. +# Remember, options here will be overriden by sourcing any file later! + +# sourcing the default common settings +. $topsrcdir/mozconfig.default + +# Debian specific things +ac_add_options --enable-application=comm/mail # enable Thunderbird +ac_add_options --enable-calendar # enable Lightning + +# setting the obj-dir (build directory, filled in by debian/rules) diff --git a/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch b/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch new file mode 100644 index 0000000000..50b51527e9 --- /dev/null +++ b/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch @@ -0,0 +1,30 @@ +From: Mike Hommey +Date: Sat, 21 Jun 2008 03:09:21 +0200 +Subject: Add another preferences directory for applications: + preferences/syspref + +This can be used to symlink to /etc/ice*/pref. +--- + toolkit/xre/nsXREDirProvider.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp +index 54e3410..aa05914 100644 +--- a/toolkit/xre/nsXREDirProvider.cpp ++++ b/toolkit/xre/nsXREDirProvider.cpp +@@ -837,6 +837,7 @@ DeleteDirIfExists(nsIFile* dir) + #endif // defined(MOZ_CONTENT_SANDBOX) + + static const char *const kAppendPrefDir[] = { "defaults", "preferences", nullptr }; ++static const char *const kAppendSysPrefDir[] = { "defaults", "syspref", nullptr }; + + #ifdef DEBUG_bsmedberg + static void +@@ -878,6 +879,7 @@ nsXREDirProvider::GetFilesInternal(const char* aProperty, + LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); + LoadDirsIntoArray(mAppBundleDirectories, + kAppendPrefDir, directories); ++ LoadDirIntoArray(mXULAppDir, kAppendSysPrefDir, directories); + + rv = NS_NewArrayEnumerator(aResult, directories); + } diff --git a/patches/debian-hacks/Build-against-system-libjsoncpp.patch b/patches/debian-hacks/Build-against-system-libjsoncpp.patch new file mode 100644 index 0000000000..51880d05d0 --- /dev/null +++ b/patches/debian-hacks/Build-against-system-libjsoncpp.patch @@ -0,0 +1,91 @@ +From: Mike Hommey +Date: Tue, 9 May 2017 10:41:13 +0200 +Subject: Build against system libjsoncpp + +--- + config/system-headers.mozbuild | 1 + + toolkit/components/jsoncpp/src/lib_json/moz.build | 46 +---------------------- + toolkit/crashreporter/minidump-analyzer/moz.build | 2 +- + 3 files changed, 3 insertions(+), 46 deletions(-) + +diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild +index 0872969..ac7c268 100644 +--- a/config/system-headers.mozbuild ++++ b/config/system-headers.mozbuild +@@ -363,6 +363,7 @@ system_headers = [ + 'jar-ds.h', + 'jarfile.h', + 'jar.h', ++ 'json/json.h', + 'JavaControl.h', + 'JavaEmbedding/JavaControl.h', + 'JavaVM/jni.h', +diff --git a/toolkit/components/jsoncpp/src/lib_json/moz.build b/toolkit/components/jsoncpp/src/lib_json/moz.build +index 6920229..5e20a3d 100644 +--- a/toolkit/components/jsoncpp/src/lib_json/moz.build ++++ b/toolkit/components/jsoncpp/src/lib_json/moz.build +@@ -4,50 +4,6 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-UNIFIED_SOURCES += [ +- 'json_reader.cpp', +- 'json_value.cpp', +- 'json_writer.cpp' +-] +- +-LOCAL_INCLUDES += [ +- '/toolkit/components/jsoncpp/include', +-] +- +-# This code is only used in the stand-alone minidump analyzer executable so +-# enabling exceptions should be fine. +-if CONFIG['CC_TYPE'] == 'clang-cl': +- CXXFLAGS += [ +- '-Xclang', +- '-fcxx-exceptions', +- ] +-elif CONFIG['CC_TYPE'] not in ('msvc', 'clang-cl'): +- CXXFLAGS += [ +- '-fexceptions', +- ] +- +-# Required to build with exceptions enabled +-DisableStlWrapping() +- + Library('jsoncpp') + +-# Suppress warnings in third-party code. +-if CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'): +- CXXFLAGS += [ +- '-wd4005', # macro redefinition +- ] +-elif CONFIG['CC_TYPE'] in ('clang', 'gcc'): +- CXXFLAGS += [ +- '-Wno-unused-local-typedefs', +- '-Wno-shadow', +- ] +- +-if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): +- CXXFLAGS += [ +- '-Wno-c++11-narrowing', +- ] +- +-if CONFIG['CC_TYPE'] in ('clang', 'clang-cl', 'gcc'): +- CXXFLAGS += [ +- '-Wno-implicit-fallthrough', +- ] ++OS_LIBS += ['jsoncpp'] +diff --git a/toolkit/crashreporter/minidump-analyzer/moz.build b/toolkit/crashreporter/minidump-analyzer/moz.build +index 50852ba..df8e415 100644 +--- a/toolkit/crashreporter/minidump-analyzer/moz.build ++++ b/toolkit/crashreporter/minidump-analyzer/moz.build +@@ -52,7 +52,7 @@ USE_LIBS += [ + ] + + LOCAL_INCLUDES += [ +- '/toolkit/components/jsoncpp/include', ++ '%/usr/include/jsoncpp', + ] + + if CONFIG['OS_TARGET'] != 'WINNT': diff --git a/patches/debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch b/patches/debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch new file mode 100644 index 0000000000..f801dbc709 --- /dev/null +++ b/patches/debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch @@ -0,0 +1,453 @@ +From: Carsten Schoenert +Date: Sat, 30 Jun 2018 20:51:11 +0200 +Subject: Don't build testing suites and stuff part 2 + +Some more testsuites which are not buildable due the cleaning out of +some DFSG non compatible files, mostly HTML (with JS) or JS files. +--- + devtools/client/shared/moz.build | 2 +- + devtools/client/shared/source-map/moz.build | 10 ++++--- + devtools/client/shared/vendor/moz.build | 10 +++---- + devtools/client/sourceeditor/tern/moz.build | 2 +- + .../test/fixtures/stubs/moz.build | 6 ++-- + devtools/server/actors/utils/moz.build | 2 +- + devtools/shared/acorn/moz.build | 12 ++++---- + devtools/shared/sourcemap/moz.build | 4 ++- + dom/canvas/moz.build | 16 ++++++----- + dom/html/moz.build | 8 +++--- + dom/indexedDB/moz.build | 20 ++++++++------ + dom/media/moz.build | 10 ++++--- + dom/push/moz.build | 14 ++++++---- + editor/libeditor/moz.build | 10 ++++--- + layout/base/moz.build | 2 +- + services/common/moz.build | 6 ++-- + toolkit/components/extensions/moz.build | 32 ++++++++++++---------- + toolkit/components/passwordmgr/moz.build | 18 ++++++------ + toolkit/components/prompts/moz.build | 4 ++- + toolkit/components/search/moz.build | 4 ++- + 20 files changed, 109 insertions(+), 83 deletions(-) + +diff --git a/devtools/client/shared/moz.build b/devtools/client/shared/moz.build +index 5a08e1d..61d3f4e 100644 +--- a/devtools/client/shared/moz.build ++++ b/devtools/client/shared/moz.build +@@ -27,7 +27,7 @@ DevToolsModules( + 'browser-loader.js', + 'css-angle.js', + 'curl.js', +- 'demangle.js', ++# 'demangle.js', + 'developer-toolbar.js', + 'devices.js', + 'DOMHelpers.jsm', +diff --git a/devtools/client/shared/source-map/moz.build b/devtools/client/shared/source-map/moz.build +index 21f634c..e5fd35f 100644 +--- a/devtools/client/shared/source-map/moz.build ++++ b/devtools/client/shared/source-map/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-DevToolsModules( +- 'index.js', +- 'worker.js', +-) ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#DevToolsModules( ++# 'index.js', ++# 'worker.js', ++#) +diff --git a/devtools/client/shared/vendor/moz.build b/devtools/client/shared/vendor/moz.build +index 0775cfa..7260aa3 100644 +--- a/devtools/client/shared/vendor/moz.build ++++ b/devtools/client/shared/vendor/moz.build +@@ -11,21 +11,21 @@ DIRS += [ + DevToolsModules( + 'immutable.js', + 'jsol.js', +- 'jszip.js', ++# 'jszip.js', + 'lodash.js', + 'react-dom-factories.js', + 'react-dom-server.js', + 'react-dom-test-utils.js', + 'react-dom.js', +- 'react-prop-types.js', ++# 'react-prop-types.js', + 'react-redux.js', +- 'react-test-renderer-shallow.js', ++# 'react-test-renderer-shallow.js', + 'react.js', +- 'redux.js', ++# 'redux.js', + 'reselect.js', + 'seamless-immutable.js', + 'WasmDis.js', +- 'WasmParser.js', ++# 'WasmParser.js', + ) + + # react dev versions are used if either debug mode is enabled, +diff --git a/devtools/client/sourceeditor/tern/moz.build b/devtools/client/sourceeditor/tern/moz.build +index cba3f5a..4553da7 100644 +--- a/devtools/client/sourceeditor/tern/moz.build ++++ b/devtools/client/sourceeditor/tern/moz.build +@@ -11,7 +11,7 @@ DevToolsModules( + 'comment.js', + 'condense.js', + 'def.js', +- 'ecma5.js', ++# 'ecma5.js', + 'infer.js', + 'signal.js', + 'tern.js', +diff --git a/devtools/client/webconsole/new-console-output/test/fixtures/stubs/moz.build b/devtools/client/webconsole/new-console-output/test/fixtures/stubs/moz.build +index ae0f9dc..d053f66 100644 +--- a/devtools/client/webconsole/new-console-output/test/fixtures/stubs/moz.build ++++ b/devtools/client/webconsole/new-console-output/test/fixtures/stubs/moz.build +@@ -3,10 +3,10 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + DevToolsModules( +- 'consoleApi.js', ++# 'consoleApi.js', + 'cssMessage.js', +- 'evaluationResult.js', ++# 'evaluationResult.js', + 'index.js', + 'networkEvent.js', +- 'pageError.js', ++# 'pageError.js', + ) +diff --git a/devtools/server/actors/utils/moz.build b/devtools/server/actors/utils/moz.build +index 45f4e57..26ba1ae 100644 +--- a/devtools/server/actors/utils/moz.build ++++ b/devtools/server/actors/utils/moz.build +@@ -7,7 +7,7 @@ + DevToolsModules( + 'actor-registry-utils.js', + 'audionodes.json', +- 'automation-timeline.js', ++# 'automation-timeline.js', + 'breakpoint-actor-map.js', + 'css-grid-utils.js', + 'event-loop.js', +diff --git a/devtools/shared/acorn/moz.build b/devtools/shared/acorn/moz.build +index 8fd5375..78c5701 100644 +--- a/devtools/shared/acorn/moz.build ++++ b/devtools/shared/acorn/moz.build +@@ -6,8 +6,10 @@ + + XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] + +-DevToolsModules( +- 'acorn.js', +- 'acorn_loose.js', +- 'walk.js', +-) ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#DevToolsModules( ++# 'acorn.js', ++# 'acorn_loose.js', ++# 'walk.js', ++#) +diff --git a/devtools/shared/sourcemap/moz.build b/devtools/shared/sourcemap/moz.build +index 4597496..0ee9931 100644 +--- a/devtools/shared/sourcemap/moz.build ++++ b/devtools/shared/sourcemap/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] + + DevToolsModules( + 'source-map.js' +diff --git a/dom/canvas/moz.build b/dom/canvas/moz.build +index e1bd521..1e4b81d 100644 +--- a/dom/canvas/moz.build ++++ b/dom/canvas/moz.build +@@ -35,13 +35,15 @@ TEST_DIRS += [ + # Change the following line(s) to avoid bug 1081323 (clobber after changing a manifest): + # * Adjust failure errata for webgl-conf. + +-MOCHITEST_MANIFESTS += [ +- 'test/crash/mochitest.ini', +- 'test/crossorigin/mochitest.ini', +- 'test/mochitest.ini', +- 'test/webgl-conf/generated-mochitest.ini', +- 'test/webgl-mochitest/mochitest.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += [ ++# 'test/crash/mochitest.ini', ++# 'test/crossorigin/mochitest.ini', ++# 'test/mochitest.ini', ++# 'test/webgl-conf/generated-mochitest.ini', ++# 'test/webgl-mochitest/mochitest.ini', ++#] + + MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini'] + +diff --git a/dom/html/moz.build b/dom/html/moz.build +index 93551d6..ca70c3e 100644 +--- a/dom/html/moz.build ++++ b/dom/html/moz.build +@@ -9,10 +9,10 @@ with Files("**"): + + DIRS += ['input'] + +-MOCHITEST_MANIFESTS += [ +- 'test/forms/mochitest.ini', +- 'test/mochitest.ini', +-] ++#MOCHITEST_MANIFESTS += [ ++# 'test/forms/mochitest.ini', ++# 'test/mochitest.ini', ++#] + + MOCHITEST_CHROME_MANIFESTS += [ + 'test/chrome.ini', +diff --git a/dom/indexedDB/moz.build b/dom/indexedDB/moz.build +index 3f9f46d..f6b0e39 100644 +--- a/dom/indexedDB/moz.build ++++ b/dom/indexedDB/moz.build +@@ -7,19 +7,23 @@ + with Files("**"): + BUG_COMPONENT = ("Core", "DOM: IndexedDB") + +-MOCHITEST_MANIFESTS += [ +- 'test/mochitest-intl-api.ini', +- 'test/mochitest.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += [ ++# 'test/mochitest-intl-api.ini', ++# 'test/mochitest.ini', ++#] + + BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini'] + +-XPCSHELL_TESTS_MANIFESTS += [ +- 'test/unit/xpcshell-child-process.ini', +- 'test/unit/xpcshell-parent-process.ini' +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#XPCSHELL_TESTS_MANIFESTS += [ ++# 'test/unit/xpcshell-child-process.ini', ++# 'test/unit/xpcshell-parent-process.ini' ++#] + + EXPORTS.mozilla.dom += [ + 'IDBCursor.h', +diff --git a/dom/media/moz.build b/dom/media/moz.build +index 4b1ca53..d60d4ad 100644 +--- a/dom/media/moz.build ++++ b/dom/media/moz.build +@@ -68,10 +68,12 @@ TEST_DIRS += [ + 'gtest', + ] + +-MOCHITEST_MANIFESTS += [ +- 'test/mochitest.ini', +- 'tests/mochitest/identity/mochitest.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += [ ++# 'test/mochitest.ini', ++# 'tests/mochitest/identity/mochitest.ini', ++#] + + if CONFIG['MOZ_WEBRTC']: + MOCHITEST_MANIFESTS += ['tests/mochitest/mochitest.ini'] +diff --git a/dom/push/moz.build b/dom/push/moz.build +index f1aba80..3744330 100644 +--- a/dom/push/moz.build ++++ b/dom/push/moz.build +@@ -31,13 +31,15 @@ else: + 'PushServiceAndroidGCM.jsm', + ] + +-MOCHITEST_MANIFESTS += [ +- 'test/mochitest.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += [ ++# 'test/mochitest.ini', ++#] + +-XPCSHELL_TESTS_MANIFESTS += [ +- 'test/xpcshell/xpcshell.ini', +-] ++#XPCSHELL_TESTS_MANIFESTS += [ ++# 'test/xpcshell/xpcshell.ini', ++#] + + EXPORTS.mozilla.dom += [ + 'PushManager.h', +diff --git a/editor/libeditor/moz.build b/editor/libeditor/moz.build +index f7b2520..f35a5e0 100644 +--- a/editor/libeditor/moz.build ++++ b/editor/libeditor/moz.build +@@ -4,10 +4,12 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-MOCHITEST_MANIFESTS += [ +- 'tests/browserscope/mochitest.ini', +- 'tests/mochitest.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += [ ++# 'tests/browserscope/mochitest.ini', ++# 'tests/mochitest.ini', ++#] + + MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini'] + +diff --git a/layout/base/moz.build b/layout/base/moz.build +index 35fbcf2..82628c7 100644 +--- a/layout/base/moz.build ++++ b/layout/base/moz.build +@@ -175,7 +175,7 @@ FINAL_LIBRARY = 'xul' + + BROWSER_CHROME_MANIFESTS += ['tests/browser.ini'] + MARIONETTE_LAYOUT_MANIFESTS += ['tests/marionette/manifest.ini'] +-MOCHITEST_MANIFESTS += ['tests/mochitest.ini'] ++#MOCHITEST_MANIFESTS += ['tests/mochitest.ini'] + MOCHITEST_CHROME_MANIFESTS += ['tests/chrome/chrome.ini'] + + if CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'): +diff --git a/services/common/moz.build b/services/common/moz.build +index c5a8cbd..1937df7 100644 +--- a/services/common/moz.build ++++ b/services/common/moz.build +@@ -17,9 +17,9 @@ EXTRA_JS_MODULES['services-common'] += [ + 'async.js', + 'blocklist-clients.js', + 'blocklist-updater.js', +- 'kinto-http-client.js', +- 'kinto-offline-client.js', +- 'kinto-storage-adapter.js', ++# 'kinto-http-client.js', ++# 'kinto-offline-client.js', ++# 'kinto-storage-adapter.js', + 'logmanager.js', + 'observers.js', + 'rest.js', +diff --git a/toolkit/components/extensions/moz.build b/toolkit/components/extensions/moz.build +index 2b0c1a2..22f49b9 100644 +--- a/toolkit/components/extensions/moz.build ++++ b/toolkit/components/extensions/moz.build +@@ -74,21 +74,23 @@ FINAL_LIBRARY = 'xul' + + JAR_MANIFESTS += ['jar.mn'] + +-BROWSER_CHROME_MANIFESTS += [ +- 'test/browser/browser.ini', +-] +- +-MOCHITEST_MANIFESTS += [ +- 'test/mochitest/mochitest-remote.ini', +- 'test/mochitest/mochitest.ini' +-] +-MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini'] +-XPCSHELL_TESTS_MANIFESTS += [ +- 'test/xpcshell/native_messaging.ini', +- 'test/xpcshell/xpcshell-e10s.ini', +- 'test/xpcshell/xpcshell-remote.ini', +- 'test/xpcshell/xpcshell.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += [ ++# 'test/browser/browser.ini', ++#] ++ ++#MOCHITEST_MANIFESTS += [ ++# 'test/mochitest/mochitest-remote.ini', ++# 'test/mochitest/mochitest.ini' ++#] ++#MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini'] ++#XPCSHELL_TESTS_MANIFESTS += [ ++# 'test/xpcshell/native_messaging.ini', ++# 'test/xpcshell/xpcshell-e10s.ini', ++# 'test/xpcshell/xpcshell-remote.ini', ++# 'test/xpcshell/xpcshell.ini', ++#] + + SPHINX_TREES['webextensions'] = 'docs' + +diff --git a/toolkit/components/passwordmgr/moz.build b/toolkit/components/passwordmgr/moz.build +index 72c8c70..bb9de59 100644 +--- a/toolkit/components/passwordmgr/moz.build ++++ b/toolkit/components/passwordmgr/moz.build +@@ -7,16 +7,18 @@ + if CONFIG['MOZ_BUILD_APP'] == 'browser': + DEFINES['MOZ_BUILD_APP_IS_BROWSER'] = True + +-MOCHITEST_MANIFESTS += ['test/mochitest.ini', 'test/mochitest/mochitest.ini'] +-MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini'] +-BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += ['test/mochitest.ini', 'test/mochitest/mochitest.ini'] ++#MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] + +-TESTING_JS_MODULES += [ ++#TESTING_JS_MODULES += [ + # Make this file available from the "resource:" URI of the test environment. +- 'test/browser/form_basic.html', +- 'test/LoginTestUtils.jsm', +-] ++# 'test/browser/form_basic.html', ++# 'test/LoginTestUtils.jsm', ++#] + + XPIDL_SOURCES += [ + 'nsILoginInfo.idl', +diff --git a/toolkit/components/prompts/moz.build b/toolkit/components/prompts/moz.build +index 63b8ba3..7bfd6c3 100644 +--- a/toolkit/components/prompts/moz.build ++++ b/toolkit/components/prompts/moz.build +@@ -10,6 +10,8 @@ with Files('**'): + + DIRS += ['src'] + +-MOCHITEST_MANIFESTS += ['test/mochitest.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_MANIFESTS += ['test/mochitest.ini'] + + JAR_MANIFESTS += ['jar.mn'] +diff --git a/toolkit/components/search/moz.build b/toolkit/components/search/moz.build +index 98ccf2b..31c8a72 100644 +--- a/toolkit/components/search/moz.build ++++ b/toolkit/components/search/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-XPCSHELL_TESTS_MANIFESTS += ['tests/xpcshell/xpcshell.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#XPCSHELL_TESTS_MANIFESTS += ['tests/xpcshell/xpcshell.ini'] + + EXTRA_COMPONENTS += [ + 'nsSearchService.js', diff --git a/patches/debian-hacks/Don-t-build-testing-suites-and-stuff.patch b/patches/debian-hacks/Don-t-build-testing-suites-and-stuff.patch new file mode 100644 index 0000000000..d662fa83c6 --- /dev/null +++ b/patches/debian-hacks/Don-t-build-testing-suites-and-stuff.patch @@ -0,0 +1,586 @@ +From: Carsten Schoenert +Date: Sun, 12 Mar 2017 08:08:35 +0100 +Subject: Don't build testing suites and stuff + +We can't build the testsuites from upstream for now, some files contains +non-free stuff from the DFSG POV and we have filtered those files and +folder out before. +--- + accessible/windows/moz.build | 3 +++ + devtools/client/aboutdebugging/moz.build | 9 ++++++--- + devtools/client/animationinspector/moz.build | 6 ++++-- + devtools/client/canvasdebugger/moz.build | 4 +++- + devtools/client/commandline/moz.build | 4 +++- + devtools/client/dom/moz.build | 4 +++- + devtools/client/framework/moz.build | 4 +++- + devtools/client/inspector/animation/moz.build | 4 +++- + devtools/client/inspector/boxmodel/moz.build | 2 +- + devtools/client/inspector/computed/moz.build | 4 +++- + devtools/client/inspector/extensions/moz.build | 2 +- + devtools/client/inspector/fonts/moz.build | 4 +++- + devtools/client/inspector/grids/moz.build | 4 ++-- + devtools/client/inspector/markup/moz.build | 4 +++- + devtools/client/inspector/moz.build | 4 +++- + devtools/client/inspector/rules/moz.build | 4 +++- + devtools/client/inspector/shared/moz.build | 4 +++- + devtools/client/jsonview/moz.build | 4 +++- + devtools/client/memory/moz.build | 8 +++++--- + devtools/client/netmonitor/moz.build | 4 +++- + devtools/client/netmonitor/src/har/moz.build | 4 +++- + devtools/client/performance/moz.build | 6 ++++-- + devtools/client/responsive.html/moz.build | 6 ++++-- + devtools/client/scratchpad/moz.build | 4 +++- + devtools/client/shadereditor/moz.build | 4 +++- + devtools/client/shared/components/moz.build | 6 ++++-- + devtools/client/shared/moz.build | 12 +++++++----- + devtools/client/sourceeditor/moz.build | 4 +++- + devtools/client/storage/moz.build | 4 +++- + devtools/client/styleeditor/moz.build | 4 +++- + devtools/client/webaudioeditor/moz.build | 4 +++- + devtools/client/webconsole/moz.build | 4 +++- + devtools/client/webconsole/net/moz.build | 6 ++++-- + .../client/webconsole/new-console-output/test/moz.build | 10 ++++++---- + devtools/client/webide/moz.build | 14 ++++++++------ + devtools/server/moz.build | 8 +++++--- + 36 files changed, 127 insertions(+), 59 deletions(-) + +diff --git a/accessible/windows/moz.build b/accessible/windows/moz.build +index 4bfa4f3..8e63609 100644 +--- a/accessible/windows/moz.build ++++ b/accessible/windows/moz.build +@@ -6,3 +6,6 @@ + + DIRS += ['msaa', 'ia2', 'sdn', 'uia'] + ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/aboutdebugging/moz.build b/devtools/client/aboutdebugging/moz.build +index a5ad754..d7a94a2 100644 +--- a/devtools/client/aboutdebugging/moz.build ++++ b/devtools/client/aboutdebugging/moz.build +@@ -9,9 +9,12 @@ DIRS += [ + 'modules', + ] + +-BROWSER_CHROME_MANIFESTS += [ +- 'test/browser.ini' +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += [ ++# 'test/browser.ini' ++#] ++ + XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini'] + + with Files('**'): +diff --git a/devtools/client/animationinspector/moz.build b/devtools/client/animationinspector/moz.build +index 558b581..610ed09 100644 +--- a/devtools/client/animationinspector/moz.build ++++ b/devtools/client/animationinspector/moz.build +@@ -4,8 +4,10 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] + + DIRS += [ + 'components' +diff --git a/devtools/client/canvasdebugger/moz.build b/devtools/client/canvasdebugger/moz.build +index 7d4a49e..60d0506 100644 +--- a/devtools/client/canvasdebugger/moz.build ++++ b/devtools/client/canvasdebugger/moz.build +@@ -7,7 +7,9 @@ DevToolsModules( + 'panel.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Canvas Debugger') +diff --git a/devtools/client/commandline/moz.build b/devtools/client/commandline/moz.build +index 22fc466..5ef6cab 100644 +--- a/devtools/client/commandline/moz.build ++++ b/devtools/client/commandline/moz.build +@@ -2,4 +2,6 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/dom/moz.build b/devtools/client/dom/moz.build +index 46cb7e6..9bd29a6 100644 +--- a/devtools/client/dom/moz.build ++++ b/devtools/client/dom/moz.build +@@ -3,7 +3,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + DIRS += [ + 'content', +diff --git a/devtools/client/framework/moz.build b/devtools/client/framework/moz.build +index 986a6d8..59f1997 100644 +--- a/devtools/client/framework/moz.build ++++ b/devtools/client/framework/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + DIRS += [ + 'components', +diff --git a/devtools/client/inspector/animation/moz.build b/devtools/client/inspector/animation/moz.build +index e24725d..5229bd4 100644 +--- a/devtools/client/inspector/animation/moz.build ++++ b/devtools/client/inspector/animation/moz.build +@@ -9,7 +9,9 @@ DIRS += [ + 'utils' + ] + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + DevToolsModules( + 'animation.js' +diff --git a/devtools/client/inspector/boxmodel/moz.build b/devtools/client/inspector/boxmodel/moz.build +index 6ef44c8..e84a1b7 100644 +--- a/devtools/client/inspector/boxmodel/moz.build ++++ b/devtools/client/inspector/boxmodel/moz.build +@@ -16,4 +16,4 @@ DevToolsModules( + 'types.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/inspector/computed/moz.build b/devtools/client/inspector/computed/moz.build +index 5ce9503..930a13e 100644 +--- a/devtools/client/inspector/computed/moz.build ++++ b/devtools/client/inspector/computed/moz.build +@@ -8,4 +8,6 @@ DevToolsModules( + 'computed.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/inspector/extensions/moz.build b/devtools/client/inspector/extensions/moz.build +index dae7e8e..f016152 100644 +--- a/devtools/client/inspector/extensions/moz.build ++++ b/devtools/client/inspector/extensions/moz.build +@@ -15,4 +15,4 @@ DevToolsModules( + 'types.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/inspector/fonts/moz.build b/devtools/client/inspector/fonts/moz.build +index 554ebb9..3146877 100644 +--- a/devtools/client/inspector/fonts/moz.build ++++ b/devtools/client/inspector/fonts/moz.build +@@ -16,4 +16,6 @@ DevToolsModules( + 'types.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/inspector/grids/moz.build b/devtools/client/inspector/grids/moz.build +index 55d2d8c..d699922 100644 +--- a/devtools/client/inspector/grids/moz.build ++++ b/devtools/client/inspector/grids/moz.build +@@ -16,5 +16,5 @@ DevToolsModules( + 'types.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] +diff --git a/devtools/client/inspector/markup/moz.build b/devtools/client/inspector/markup/moz.build +index 4d721cc..7a2368d 100644 +--- a/devtools/client/inspector/markup/moz.build ++++ b/devtools/client/inspector/markup/moz.build +@@ -13,4 +13,6 @@ DevToolsModules( + 'utils.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/inspector/moz.build b/devtools/client/inspector/moz.build +index 4a111fc..f384f00 100644 +--- a/devtools/client/inspector/moz.build ++++ b/devtools/client/inspector/moz.build +@@ -29,7 +29,9 @@ DevToolsModules( + 'toolsidebar.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Inspector') +diff --git a/devtools/client/inspector/rules/moz.build b/devtools/client/inspector/rules/moz.build +index e826c14..582db04 100644 +--- a/devtools/client/inspector/rules/moz.build ++++ b/devtools/client/inspector/rules/moz.build +@@ -13,4 +13,6 @@ DevToolsModules( + 'rules.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/inspector/shared/moz.build b/devtools/client/inspector/shared/moz.build +index cc2357a..e04926c 100644 +--- a/devtools/client/inspector/shared/moz.build ++++ b/devtools/client/inspector/shared/moz.build +@@ -14,4 +14,6 @@ DevToolsModules( + 'utils.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/jsonview/moz.build b/devtools/client/jsonview/moz.build +index abaf2a6..e121e99 100644 +--- a/devtools/client/jsonview/moz.build ++++ b/devtools/client/jsonview/moz.build +@@ -17,7 +17,9 @@ DevToolsModules( + 'viewer-config.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: JSON Viewer') +diff --git a/devtools/client/memory/moz.build b/devtools/client/memory/moz.build +index ad173d0..423e94c 100644 +--- a/devtools/client/memory/moz.build ++++ b/devtools/client/memory/moz.build +@@ -23,6 +23,8 @@ DevToolsModules( + 'utils.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] +-MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++#MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini'] +diff --git a/devtools/client/netmonitor/moz.build b/devtools/client/netmonitor/moz.build +index faa676d..5e0a86b 100644 +--- a/devtools/client/netmonitor/moz.build ++++ b/devtools/client/netmonitor/moz.build +@@ -12,7 +12,9 @@ DevToolsModules( + + XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Netmonitor') +diff --git a/devtools/client/netmonitor/src/har/moz.build b/devtools/client/netmonitor/src/har/moz.build +index c8b3847..df95fd8 100644 +--- a/devtools/client/netmonitor/src/har/moz.build ++++ b/devtools/client/netmonitor/src/har/moz.build +@@ -13,4 +13,6 @@ DevToolsModules( + 'toolbox-overlay.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +diff --git a/devtools/client/performance/moz.build b/devtools/client/performance/moz.build +index 9b290a1..1253cd7 100644 +--- a/devtools/client/performance/moz.build ++++ b/devtools/client/performance/moz.build +@@ -14,8 +14,10 @@ DevToolsModules( + 'panel.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Performance Tools (Profiler/Timeline)') +diff --git a/devtools/client/responsive.html/moz.build b/devtools/client/responsive.html/moz.build +index 01afc1f..cfe67fc 100644 +--- a/devtools/client/responsive.html/moz.build ++++ b/devtools/client/responsive.html/moz.build +@@ -25,8 +25,10 @@ DevToolsModules( + 'types.js', + ) + +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] +-BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Responsive Design Mode') +diff --git a/devtools/client/scratchpad/moz.build b/devtools/client/scratchpad/moz.build +index 35adaa5..0681e44 100644 +--- a/devtools/client/scratchpad/moz.build ++++ b/devtools/client/scratchpad/moz.build +@@ -10,7 +10,9 @@ DevToolsModules( + 'scratchpad-panel.js', + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Scratchpad') +diff --git a/devtools/client/shadereditor/moz.build b/devtools/client/shadereditor/moz.build +index 4e8337d..c53ea4c 100644 +--- a/devtools/client/shadereditor/moz.build ++++ b/devtools/client/shadereditor/moz.build +@@ -7,7 +7,9 @@ DevToolsModules( + 'panel.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: WebGL Shader Editor') +diff --git a/devtools/client/shared/components/moz.build b/devtools/client/shared/components/moz.build +index 8b31a61..607a837 100644 +--- a/devtools/client/shared/components/moz.build ++++ b/devtools/client/shared/components/moz.build +@@ -25,5 +25,7 @@ DevToolsModules( + 'VisibilityHandler.js', + ) + +-MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini'] +-BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] +diff --git a/devtools/client/shared/moz.build b/devtools/client/shared/moz.build +index ecfac45..5a08e1d 100644 +--- a/devtools/client/shared/moz.build ++++ b/devtools/client/shared/moz.build +@@ -4,11 +4,13 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] +-TEST_HARNESS_FILES.xpcshell.devtools.client.shared.test += [ +- 'test/shared-redux-head.js', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++#TEST_HARNESS_FILES.xpcshell.devtools.client.shared.test += [ ++# 'test/shared-redux-head.js', ++#] + + DIRS += [ + 'components', +diff --git a/devtools/client/sourceeditor/moz.build b/devtools/client/sourceeditor/moz.build +index 846917b..edbc2c0 100644 +--- a/devtools/client/sourceeditor/moz.build ++++ b/devtools/client/sourceeditor/moz.build +@@ -17,7 +17,9 @@ DevToolsModules( + 'wasm.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Source Editor') +diff --git a/devtools/client/storage/moz.build b/devtools/client/storage/moz.build +index 1f527e6..1af759a 100644 +--- a/devtools/client/storage/moz.build ++++ b/devtools/client/storage/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + DevToolsModules( + 'panel.js', +diff --git a/devtools/client/styleeditor/moz.build b/devtools/client/styleeditor/moz.build +index bf0e0ad..cf3e3c2 100644 +--- a/devtools/client/styleeditor/moz.build ++++ b/devtools/client/styleeditor/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + DevToolsModules( + 'original-source.js', +diff --git a/devtools/client/webaudioeditor/moz.build b/devtools/client/webaudioeditor/moz.build +index 8c16579..3d5d323 100644 +--- a/devtools/client/webaudioeditor/moz.build ++++ b/devtools/client/webaudioeditor/moz.build +@@ -7,7 +7,9 @@ DevToolsModules( + 'panel.js' + ) + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + with Files('**'): + BUG_COMPONENT = ('Firefox', 'Developer Tools: Web Audio Editor') +diff --git a/devtools/client/webconsole/moz.build b/devtools/client/webconsole/moz.build +index 24a5ce4..fbf5d26 100644 +--- a/devtools/client/webconsole/moz.build ++++ b/devtools/client/webconsole/moz.build +@@ -4,7 +4,9 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['test/browser.ini'] + + DIRS += [ + 'net', +diff --git a/devtools/client/webconsole/net/moz.build b/devtools/client/webconsole/net/moz.build +index 1b9eca7..debfa26 100644 +--- a/devtools/client/webconsole/net/moz.build ++++ b/devtools/client/webconsole/net/moz.build +@@ -15,5 +15,7 @@ DevToolsModules( + 'net-request.js', + ) + +-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] +-BROWSER_CHROME_MANIFESTS += ['test/mochitest/browser.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] ++#BROWSER_CHROME_MANIFESTS += ['test/mochitest/browser.ini'] +diff --git a/devtools/client/webconsole/new-console-output/test/moz.build b/devtools/client/webconsole/new-console-output/test/moz.build +index e91e7e2..c19fb39 100644 +--- a/devtools/client/webconsole/new-console-output/test/moz.build ++++ b/devtools/client/webconsole/new-console-output/test/moz.build +@@ -3,10 +3,12 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-BROWSER_CHROME_MANIFESTS += [ +- 'fixtures/stub-generators/browser.ini', +- 'mochitest/browser.ini', +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += [ ++# 'fixtures/stub-generators/browser.ini', ++# 'mochitest/browser.ini', ++#] + + DIRS += [ + 'fixtures' +diff --git a/devtools/client/webide/moz.build b/devtools/client/webide/moz.build +index 42e0484..f4aef95 100644 +--- a/devtools/client/webide/moz.build ++++ b/devtools/client/webide/moz.build +@@ -10,12 +10,14 @@ DIRS += [ + 'themes', + ] + +-BROWSER_CHROME_MANIFESTS += [ +- 'test/browser.ini' +-] +-MOCHITEST_CHROME_MANIFESTS += [ +- 'test/chrome.ini' +-] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += [ ++# 'test/browser.ini' ++#] ++#MOCHITEST_CHROME_MANIFESTS += [ ++# 'test/chrome.ini' ++#] + + JS_PREFERENCE_FILES += [ + 'webide-prefs.js', +diff --git a/devtools/server/moz.build b/devtools/server/moz.build +index 65bba17..421e8be 100644 +--- a/devtools/server/moz.build ++++ b/devtools/server/moz.build +@@ -11,9 +11,11 @@ DIRS += [ + 'performance', + ] + +-BROWSER_CHROME_MANIFESTS += ['tests/browser/browser.ini'] +-MOCHITEST_CHROME_MANIFESTS += ['tests/mochitest/chrome.ini'] +-XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] ++# Don't build any testsuites. We have filteres out some needed content for ++# this as some files are not DFSG clean. ++#BROWSER_CHROME_MANIFESTS += ['tests/browser/browser.ini'] ++#MOCHITEST_CHROME_MANIFESTS += ['tests/mochitest/chrome.ini'] ++#XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] + + DevToolsModules( + 'child.js', diff --git a/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch b/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch new file mode 100644 index 0000000000..5ec8fa9c20 --- /dev/null +++ b/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch @@ -0,0 +1,30 @@ +From: Mike Hommey +Date: Mon, 5 Apr 2010 17:58:23 +0200 +Subject: Don't error-out when run-time libsqlite is older than build-time + libsqlite + +In Debian, we have shlibs to handle this. +--- + storage/mozStorageService.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp +index d4e52ff..0e1b26d 100644 +--- a/storage/mozStorageService.cpp ++++ b/storage/mozStorageService.cpp +@@ -197,6 +197,7 @@ Service::getSingleton() + return do_AddRef(gService); + } + ++#if 0 + // Ensure that we are using the same version of SQLite that we compiled with + // or newer. Our configure check ensures we are using a new enough version + // at compile time. +@@ -214,6 +215,7 @@ Service::getSingleton() + } + MOZ_CRASH("SQLite Version Error"); + } ++#endif + + // The first reference to the storage service must be obtained on the + // main thread. diff --git a/patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch b/patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch new file mode 100644 index 0000000000..ef9a8b9941 --- /dev/null +++ b/patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch @@ -0,0 +1,24 @@ +From: Mike Hommey +Date: Sat, 27 Sep 2008 17:17:39 +0200 +Subject: Don't register plugins if the MOZILLA_DISABLE_PLUGINS environment + variable is set + +--- + dom/plugins/base/nsPluginHost.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp +index 8748a18..f523db6 100644 +--- a/dom/plugins/base/nsPluginHost.cpp ++++ b/dom/plugins/base/nsPluginHost.cpp +@@ -262,6 +262,10 @@ nsPluginHost::nsPluginHost() + + Preferences::AddStrongObserver(this, "plugin.disable"); + ++ const char *env = PR_GetEnv("MOZILLA_DISABLE_PLUGINS"); ++ if (env && env[0]) ++ mPluginsDisabled = PR_TRUE; ++ + nsCOMPtr obsService = + mozilla::services::GetObserverService(); + if (obsService) { diff --git a/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch b/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch new file mode 100644 index 0000000000..a5457ce493 --- /dev/null +++ b/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch @@ -0,0 +1,24 @@ +From: =?utf-8?q?Guido_G=C3=BCnther?= +Date: Sat, 24 Nov 2012 11:39:58 +0100 +Subject: Strip version number from application before installation + +Strip thunderbird's version number from the installation directories so +we have a fixed location for extensions that build against it. +--- + config/baseconfig.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/config/baseconfig.mk b/config/baseconfig.mk +index 754ba1a..370643d 100644 +--- a/config/baseconfig.mk ++++ b/config/baseconfig.mk +@@ -3,6 +3,9 @@ + # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending + # whether a normal build is happening or whether the check is running. + installdir = $(libdir)/$(MOZ_APP_NAME) ++includedir := $(includedir)/$(MOZ_APP_NAME) ++idldir = $(datadir)/idl/$(MOZ_APP_NAME) ++sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel + ifeq (.,$(DEPTH)) + DIST = dist + else diff --git a/patches/debian-hacks/changing-the-default-search-engine.patch b/patches/debian-hacks/changing-the-default-search-engine.patch new file mode 100644 index 0000000000..51a2635bb5 --- /dev/null +++ b/patches/debian-hacks/changing-the-default-search-engine.patch @@ -0,0 +1,48 @@ +From: Carsten Schoenert +Date: Sun, 31 May 2015 19:57:36 +0200 +Subject: changing the default search engine + +--- + mail/locales/en-US/searchplugins/duckduckgo.xml | 11 +++++++++++ + .../cy/chrome/cy/locale/cy/messenger-region/region.properties | 8 ++++---- + 2 files changed, 15 insertions(+), 4 deletions(-) + create mode 100644 mail/locales/en-US/searchplugins/duckduckgo.xml + +diff --git a/mail/locales/en-US/searchplugins/duckduckgo.xml b/mail/locales/en-US/searchplugins/duckduckgo.xml +new file mode 100644 +index 0000000..e814524 +--- /dev/null ++++ b/mail/locales/en-US/searchplugins/duckduckgo.xml +@@ -0,0 +1,11 @@ ++ ++DuckDuckGo ++DuckDuckGo Search ++UTF-8 ++data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA== ++ ++ ++ ++ ++https://duckduckgo.com/ ++ +diff --git a/thunderbird-l10n/cy/chrome/cy/locale/cy/messenger-region/region.properties b/thunderbird-l10n/cy/chrome/cy/locale/cy/messenger-region/region.properties +index c691e29..f5dbfdd 100644 +--- a/thunderbird-l10n/cy/chrome/cy/locale/cy/messenger-region/region.properties ++++ b/thunderbird-l10n/cy/chrome/cy/locale/cy/messenger-region/region.properties +@@ -3,12 +3,12 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + # Default search engine +-browser.search.defaultenginename=Bing ++browser.search.defaultenginename=DuckDuckGo + + # Search engine order (order displayed in the search bar dropdown)s +-browser.search.order.1=Bing +-browser.search.order.2=Yahoo +-browser.search.order.3= ++browser.search.order.1=DuckDuckGo ++browser.search.order.2=Google ++browser.search.order.3=Bing + + # To make mapit buttons to disappear in the addressbook, specify empty string. For example: + # mail.addr_book.mapit_url.format= diff --git a/patches/debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch b/patches/debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch new file mode 100644 index 0000000000..fbe186cb23 --- /dev/null +++ b/patches/debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch @@ -0,0 +1,21 @@ +From: Carsten Schoenert +Date: Fri, 12 Jan 2018 16:36:56 +0100 +Subject: icu: use locale.h instead of xlocale.h + +--- + intl/icu/source/i18n/digitlst.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/intl/icu/source/i18n/digitlst.cpp b/intl/icu/source/i18n/digitlst.cpp +index 39da904..9276f2a 100644 +--- a/intl/icu/source/i18n/digitlst.cpp ++++ b/intl/icu/source/i18n/digitlst.cpp +@@ -63,7 +63,7 @@ + + #if U_USE_STRTOD_L + # if U_HAVE_XLOCALE_H +-# include ++# include + # else + # include + # endif diff --git a/patches/debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch b/patches/debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch new file mode 100644 index 0000000000..bea143e8d2 --- /dev/null +++ b/patches/debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch @@ -0,0 +1,25 @@ +From: Carsten Schoenert +Date: Fri, 12 Jan 2018 18:08:14 +0100 +Subject: shellutil.py: ignore tilde '~' as special character + +Currently we don't need the tilde sign defined as a special character +inside the Python wrappers around the autotools files, it's not used any +there and breaks the build of Debian beta versions which uses '~' to +mark the Debian version as 'smaller than'. +--- + python/mozbuild/mozbuild/shellutil.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/python/mozbuild/mozbuild/shellutil.py b/python/mozbuild/mozbuild/shellutil.py +index 185a970..580d778 100644 +--- a/python/mozbuild/mozbuild/shellutil.py ++++ b/python/mozbuild/mozbuild/shellutil.py +@@ -26,7 +26,7 @@ UNQUOTED_TOKENS_RE = _tokens2re( + whitespace=r'[\t\r\n ]+', + quote=r'[\'"]', + comment='#', +- special=r'[<>&|`~(){}$;\*\?]', ++ special=r'[<>&|`(){}$;\*\?]', + backslashed=r'\\[^\\]', + ) + diff --git a/patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch b/patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch new file mode 100644 index 0000000000..29f2ed47f1 --- /dev/null +++ b/patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch @@ -0,0 +1,22 @@ +From: =?utf-8?q?Guido_G=C3=BCnther?= +Date: Thu, 25 Oct 2012 19:37:44 +0200 +Subject: stop configure if '--with-system-bz2' was passed, + but no libbz2 is around + +--- + old-configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/old-configure.in b/old-configure.in +index b7680a5..8e3a4e8 100644 +--- a/old-configure.in ++++ b/old-configure.in +@@ -1845,7 +1845,7 @@ if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then + MOZ_SYSTEM_BZ2= + else + AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_SYSTEM_BZ2=1 MOZ_BZ2_LIBS="-lbz2"], +- [MOZ_SYSTEM_BZ2= MOZ_BZ2_CFLAGS= MOZ_BZ2_LIBS=]) ++ [AC_MSG_ERROR([You have run configure with --with-system-bz2, but there is no libbz2 around!])]) + fi + CFLAGS=$_SAVE_CFLAGS + LDFLAGS=$_SAVE_LDFLAGS diff --git a/patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch b/patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch new file mode 100644 index 0000000000..7ee009a92d --- /dev/null +++ b/patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch @@ -0,0 +1,63 @@ +From: Carsten Schoenert +Date: Sun, 27 Aug 2017 21:14:01 +0200 +Subject: use icudt??{b,l}.dat depending on architecture + +Upstream doesn't really care about big endian platforms and so also don't +care about a needed file icudt??b.dat on big endian platforms. Changing +the m4 macro for ICU so the needed file will be depended on the build +platform exported and let later the configure run automatically use the +correct name for the ICU *.dat file so we not only depend on the +prebuild *.dat file for little endian. + +The `case foo in ...` loop could be obviously more compressed with only +one case entry for all architectures which are all big endian. + +---%<--- + case $host in + dnl big endian architectures + hppa-*|m68k-*|...) +--->%--- + +For more readability the more exclusive extra list of all possible +architectures with big endianness in Debian was choosen. +--- + build/autoconf/icu.m4 | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4 +index 4c59079..bc1873a 100644 +--- a/build/autoconf/icu.m4 ++++ b/build/autoconf/icu.m4 +@@ -78,7 +78,31 @@ if test -n "$USE_ICU"; then + # TODO: the l is actually endian-dependent + # We could make this set as 'l' or 'b' for little or big, respectively, + # but we'd need to check in a big-endian version of the file. +- ICU_DATA_FILE="icudt${version}l.dat" ++ case $host in ++ dnl big endian architectures ++ hppa-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ m68k-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ mips-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ powerpc-* | powerpc64-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ s390*-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ sparc*-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ dnl assume little endian by default ++ *) ++ ICU_DATA_FILE="icudt${version}l.dat" ++ ;; ++ esac + + MOZ_ICU_DATA_ARCHIVE= + fi diff --git a/patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch b/patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch new file mode 100644 index 0000000000..75c1da5705 --- /dev/null +++ b/patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch @@ -0,0 +1,21 @@ +From: Christopher Aillon +Date: Tue, 8 Feb 2011 14:16:37 -0500 +Subject: Bug 628252 - os2.cc fails to compile against GCC 4.6, + missing #include ; r,a=roc + +--- + gfx/ots/src/os2.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gfx/ots/src/os2.cc b/gfx/ots/src/os2.cc +index d298987..f38bfe3 100644 +--- a/gfx/ots/src/os2.cc ++++ b/gfx/ots/src/os2.cc +@@ -3,6 +3,7 @@ + // found in the LICENSE file. + + #include ++#include + + #include "os2.h" + #include "head.h" diff --git a/patches/fixes/Build-also-gdata-provider-as-xpi-file.patch b/patches/fixes/Build-also-gdata-provider-as-xpi-file.patch new file mode 100644 index 0000000000..714ef1e511 --- /dev/null +++ b/patches/fixes/Build-also-gdata-provider-as-xpi-file.patch @@ -0,0 +1,966 @@ +From: Carsten Schoenert +Date: Sat, 30 Jun 2018 11:09:53 +0200 +Subject: Build also gdata-provider as xpi file + +https://bugzilla.mozilla.org/show_bug.cgi?id=1471326 +--- + comm/calendar/lightning/versions.mk | 2 - + comm/calendar/providers/gdata/Makefile.in | 34 ++-- + comm/calendar/providers/gdata/moz.build | 4 + + comm/calendar/test/unit/test_gdata_provider.js | 244 ++++++++++++------------- + comm/calendar/test/unit/xpcshell-shared.ini | 4 +- + comm/mail/app.mozbuild | 3 +- + 6 files changed, 143 insertions(+), 148 deletions(-) + +diff --git a/comm/calendar/lightning/versions.mk b/comm/calendar/lightning/versions.mk +index 5ecbb39..a7f7c95 100644 +--- a/comm/calendar/lightning/versions.mk ++++ b/comm/calendar/lightning/versions.mk +@@ -12,8 +12,6 @@ else + LIGHTNING_VERSION := $(shell $(PYTHON) $(commtopsrcdir)/calendar/lightning/build/makeversion.py $(word 1,$(MOZ_PKG_VERSION) $(THUNDERBIRD_VERSION))) + endif + +-#GDATA_VERSION := $(shell $(PYTHON) $(commtopsrcdir)/calendar/providers/gdata/makeversion.py $(LIGHTNING_VERSION)) +- + # For extensions we require a max version that is compatible across security releases. + # THUNDERBIRD_MAXVERSION and SEAMONKEY_MAXVERSION is our method for doing that. + # Alpha versions 10.0a1 and 10.0a2 aren't affected +diff --git a/comm/calendar/providers/gdata/Makefile.in b/comm/calendar/providers/gdata/Makefile.in +index 647cc3f..c8db78a 100644 +--- a/comm/calendar/providers/gdata/Makefile.in ++++ b/comm/calendar/providers/gdata/Makefile.in +@@ -2,32 +2,24 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-XPI_PKGNAME = gdata-provider-$(GDATA_VERSION).$(AB_CD).$(MOZ_PKG_PLATFORM) +-XPI_VERSION = $(GDATA_VERSION) ++XPI_NAME = gdata-provider ++XPI_PKGNAME = gdata-provider-$(GDATA_VERSION).$(AB_CD) + XPI_EM_ID = {a62ef8ec-5fdc-40c2-873c-223b8a6925cc} + XPI_INSTALL_EXTENSION = $(XPI_EM_ID) + +-DEFINES += -DLIGHTNING_VERSION=$(LIGHTNING_VERSION) \ +- -DSEAMONKEY_VERSION=$(SEAMONKEY_VERSION) \ +- -DTHUNDERBIRD_VERSION=$(THUNDERBIRD_VERSION) \ +- -DCOMM_BUILD=$(COMM_BUILD) \ +- -DGDATA_VERSION=$(GDATA_VERSION) \ +- $(NULL) +- +-ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) +-# If the macbundle dist dir was already created, sync the gdata provider here to avoid +-# the need to make -C objdir/mail/app each time +-tools repackage:: +- [ -d $(DIST)/$(MOZ_MACBUNDLE_NAME) ] && rsync -a $(FINAL_TARGET)/ $(DIST)/$(MOZ_MACBUNDLE_NAME)/Contents/Resources/extensions/$(XPI_EM_ID) || true ++ifdef MOZ_SUITE ++LIGHTNING_VERSION := $(shell $(PYTHON) $(commtopsrcdir)/calendar/lightning/build/makeversion.py $(THUNDERBIRD_VERSION)) ++else ++LIGHTNING_VERSION := $(shell $(PYTHON) $(commtopsrcdir)/calendar/lightning/build/makeversion.py $(word 1,$(MOZ_PKG_VERSION) $(THUNDERBIRD_VERSION))) + endif + +-# stage the extension for use in packaged tests +-PKG_STAGE = $(DIST)/test-stage ++GDATA_VERSION := $(shell $(PYTHON) $(commtopsrcdir)/calendar/providers/gdata/makeversion.py $(LIGHTNING_VERSION)) ++THUNDERBIRD_VERSION := $(shell cat $(commtopsrcdir)/mail/config/version.txt) ++SEAMONKEY_VERSION := $(shell cat $(commtopsrcdir)/suite/config/version.txt) + +-stage-package: +- $(NSINSTALL) -D $(PKG_STAGE)/extensions/$(XPI_EM_ID) +- (cd $(FINAL_TARGET) && tar $(TAR_CREATE_FLAGS) - *) | (cd $(PKG_STAGE)/extensions/$(XPI_EM_ID) && tar -xf -) ++DEFINES += -DSEAMONKEY_VERSION=$(SEAMONKEY_VERSION) \ ++ -DTHUNDERBIRD_VERSION=$(THUNDERBIRD_VERSION) \ ++ -DGDATA_VERSION=$(GDATA_VERSION) \ ++ $(NULL) + +-include $(moztopsrcdir)/config/rules.mk +-include $(commtopsrcdir)/calendar/lightning/versions.mk + include $(commtopsrcdir)/calendar/lightning/lightning-packager.mk +diff --git a/comm/calendar/providers/gdata/moz.build b/comm/calendar/providers/gdata/moz.build +index 3460ac8..45a12ed 100644 +--- a/comm/calendar/providers/gdata/moz.build ++++ b/comm/calendar/providers/gdata/moz.build +@@ -4,6 +4,7 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + XPI_NAME = 'gdata-provider' ++export('XPI_NAME') + + FINAL_TARGET_PP_FILES += ['install.rdf'] + +@@ -26,6 +27,9 @@ EXTRA_COMPONENTS += [ + 'components/calGoogleCalendar.manifest', + ] + ++USE_EXTENSION_MANIFEST = True ++export('USE_EXTENSION_MANIFEST') ++ + JAR_MANIFESTS += ['jar.mn'] + + JS_PREFERENCE_FILES += [ +diff --git a/comm/calendar/test/unit/test_gdata_provider.js b/comm/calendar/test/unit/test_gdata_provider.js +index c9e2641..1118501 100644 +--- a/comm/calendar/test/unit/test_gdata_provider.js ++++ b/comm/calendar/test/unit/test_gdata_provider.js +@@ -508,7 +508,7 @@ function run_test() { + }); + } + +-add_task(function* test_migrate_cache() { ++add_task(async function test_migrate_cache() { + let uriString = "googleapi://xpcshell/?calendar=xpcshell%40example.com"; + let uri = Services.io.newURI(uriString); + let client = cal.getCalendarManager().createCalendar("gdata", uri); +@@ -520,26 +520,26 @@ add_task(function* test_migrate_cache() { + }); + + // No version, should not reset +- equal(yield migrateStorageCache(), false); ++ equal(await migrateStorageCache(), false); + equal(client.getProperty("cache.version"), 3); + + // Check migrate 1 -> 2 + unwrapped.CACHE_DB_VERSION = 2; + client.setProperty("cache.version", 1); +- equal(yield migrateStorageCache(), true); ++ equal(await migrateStorageCache(), true); + equal(client.getProperty("cache.version"), 2); + + // Check migrate 2 -> 3 normal calendar + unwrapped.CACHE_DB_VERSION = 3; + client.setProperty("cache.version", 2); +- equal(yield migrateStorageCache(), false); ++ equal(await migrateStorageCache(), false); + + // Check migrate 2 -> 3 birthday calendar + unwrapped.CACHE_DB_VERSION = 3; + uri = "googleapi://xpcshell/?calendar=%23contacts%40group.v.calendar.google.com"; + unwrapped.uri = Services.io.newURI(uri); + client.setProperty("cache.version", 2); +- equal(yield migrateStorageCache(), true); ++ equal(await migrateStorageCache(), true); + }); + + add_test(function test_migrate_uri() { +@@ -573,7 +573,7 @@ add_test(function test_migrate_uri() { + run_next_test(); + }); + +-add_task(function* test_dateToJSON() { ++add_task(async function test_dateToJSON() { + function _createDateTime(tzid, offset=0) { + let offsetFrom = offset <= 0 ? "-0" + (offset - 1) : "+0" + (offset - 1) + "00"; + let offsetTo = "+0" + offset + "00"; +@@ -672,7 +672,7 @@ add_task(function* test_dateToJSON() { + deepEqual(dateToJSON(date), { date: "2015-01-30" }); + }); + +-add_task(function* test_JSONToDate() { ++add_task(async function test_JSONToDate() { + function convert(aEntry, aTimezone="Europe/Berlin") { + let tzs = cal.getTimezoneService(); + let calendarTz = tzs.getTimezone(aTimezone); +@@ -716,9 +716,9 @@ add_task(function* test_JSONToDate() { + equal(convert({ dateTime: "2015-01-02T03:04:05+05:00" }), "20150102T030405 in Antarctica/Mawson"); + }); + +-add_task(function* test_organizerCN() { ++add_task(async function test_organizerCN() { + gServer.events = []; +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + equal(client.getProperty("organizerCN"), null); + gServer.resetClient(client); + +@@ -735,12 +735,12 @@ add_task(function* test_organizerCN() { + end: { dateTime: "2006-06-10T20:00:00+02:00" }, + iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" + }]; +- client = yield gServer.getClient(); ++ client = await gServer.getClient(); + equal(client.getProperty("organizerCN"), gServer.creator.displayName); + gServer.resetClient(client); + }); + +-add_task(function* test_always_readOnly() { ++add_task(async function test_always_readOnly() { + gServer.events = [{ + kind: "calendar#event", + etag: "\"2299601498276000\"", +@@ -755,26 +755,26 @@ add_task(function* test_always_readOnly() { + iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" + }]; + gServer.calendarListData.accessRole = "freeBusyReader"; +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client); + ok(client.readOnly); + client.readOnly = false; + ok(client.readOnly); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 1); + notEqual(items[0].title, "New Event"); + gServer.resetClient(client); + + gServer.calendarListData.accessRole = "reader"; +- client = yield gServer.getClient(); ++ client = await gServer.getClient(); + ok(client.readOnly); + client.readOnly = false; + ok(client.readOnly); + gServer.resetClient(client); + }); + +-add_task(function* test_reset_sync() { ++add_task(async function test_reset_sync() { + gServer.tasks = [{ + kind: "tasks#task", + id: "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", +@@ -819,18 +819,18 @@ add_task(function* test_reset_sync() { + end: { dateTime: "2006-06-10T20:00:00+02:00" }, + iCalUID: "fepf8uf6n7n04w7feukucs9n8e@google.com" + }]; +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let uncached = client.wrappedJSObject.mUncachedCalendar.wrappedJSObject; + let pclient = cal.async.promisifyCalendar(client); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 4); + + notEqual(client.getProperty("syncToken.events"), ""); + notEqual(client.getProperty("lastUpdated.tasks"), ""); + +- yield uncached.resetSync(); +- items = yield pclient.getAllItems(); ++ await uncached.resetSync(); ++ items = await pclient.getAllItems(); + equal(items.length, 0); + + equal(client.getProperty("syncToken.events"), ""); +@@ -839,7 +839,7 @@ add_task(function* test_reset_sync() { + gServer.resetClient(client); + }); + +-add_task(function* test_basicItems() { ++add_task(async function test_basicItems() { + gServer.events = [{ + kind: "calendar#event", + etag: "\"2299601498276000\"", +@@ -903,10 +903,10 @@ add_task(function* test_basicItems() { + }] + }]; + +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 2); + + let event = cal.item.isEvent(items[0]) ? items[0] : items[1]; +@@ -965,8 +965,8 @@ add_task(function* test_basicItems() { + gServer.resetClient(client); + }); + +-add_task(function* test_addModifyDeleteItem() { +- let client = yield gServer.getClient(); ++add_task(async function test_addModifyDeleteItem() { ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + equal(gServer.events.length, 0); + equal(gServer.tasks.length, 0); +@@ -1016,11 +1016,11 @@ add_task(function* test_addModifyDeleteItem() { + ].join("\r\n")); + + // Add an event +- let addedEvent = yield pclient.adoptItem(event); ++ let addedEvent = await pclient.adoptItem(event); + notEqual(addedEvent.id, null); + equal(addedEvent.organizer.id, "mailto:xpcshell@example.com"); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 1); + equal(items[0].id, addedEvent.id); + equal(items[0].organizer.id, "mailto:xpcshell@example.com"); +@@ -1029,10 +1029,10 @@ add_task(function* test_addModifyDeleteItem() { + equal(gServer.tasks.length, 0); + + // Add a task +- let addedTask = yield pclient.adoptItem(task); ++ let addedTask = await pclient.adoptItem(task); + notEqual(addedTask.id, null); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 2); + equal(items[1].id, addedTask.id); + +@@ -1043,10 +1043,10 @@ add_task(function* test_addModifyDeleteItem() { + let newEvent = items[0].clone(); + newEvent.title = "changed"; + +- let modifiedEvent = yield pclient.modifyItem(newEvent, items[0]); ++ let modifiedEvent = await pclient.modifyItem(newEvent, items[0]); + equal(modifiedEvent.title, "changed"); + notEqual(modifiedEvent.getProperty("LAST-MODIFIED"), addedEvent.getProperty("LAST-MODIFIED")); +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 2); + equal(items[0].title, "changed"); + equal(items[0].id, addedEvent.id); +@@ -1058,10 +1058,10 @@ add_task(function* test_addModifyDeleteItem() { + let newTask = items[1].clone(); + newTask.title = "changed"; + +- let modifiedTask = yield pclient.modifyItem(newTask, items[1]); ++ let modifiedTask = await pclient.modifyItem(newTask, items[1]); + equal(modifiedTask.title, "changed"); + notEqual(modifiedTask.getProperty("LAST-MODIFIED"), addedTask.getProperty("LAST-MODIFIED")); +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 2); + equal(items[1].title, "changed"); + equal(items[1].id, addedTask.id); +@@ -1070,15 +1070,15 @@ add_task(function* test_addModifyDeleteItem() { + equal(gServer.tasks.length, 1); + + // Delete an event +- yield pclient.deleteItem(modifiedEvent); +- items = yield pclient.getAllItems(); ++ await pclient.deleteItem(modifiedEvent); ++ items = await pclient.getAllItems(); + equal(items.length, 1); + equal(gServer.events.length, 0); + equal(gServer.tasks.length, 1); + + // Delete a task +- yield pclient.deleteItem(modifiedTask); +- items = yield pclient.getAllItems(); ++ await pclient.deleteItem(modifiedTask); ++ items = await pclient.getAllItems(); + equal(items.length, 0); + equal(gServer.events.length, 0); + equal(gServer.tasks.length, 0); +@@ -1086,8 +1086,8 @@ add_task(function* test_addModifyDeleteItem() { + gServer.resetClient(client); + }); + +-add_task(function* test_recurring_event() { +- let client = yield gServer.getClient(); ++add_task(async function test_recurring_event() { ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + + let event = cal.createEvent([ +@@ -1099,7 +1099,7 @@ add_task(function* test_recurring_event() { + "END:VEVENT" + ].join("\r\n")); + +- event = yield pclient.addItem(event); ++ event = await pclient.addItem(event); + equal(gServer.events.length, 1); + equal(gServer.events[0].recurrence.length, 1); + equal(gServer.events[0].recurrence[0], "RRULE:FREQ=WEEKLY"); +@@ -1109,7 +1109,7 @@ add_task(function* test_recurring_event() { + changedOcc.title = "changed"; + event.recurrenceInfo.modifyException(occ, true); + +- event = yield pclient.modifyItem(changedOcc, occ); ++ event = await pclient.modifyItem(changedOcc, occ); + occ = event.recurrenceInfo.getNextOccurrence(event.startDate); + equal(occ.title, "changed"); + equal(gServer.events.length, 2); +@@ -1117,7 +1117,7 @@ add_task(function* test_recurring_event() { + gServer.resetClient(client); + }); + +-add_task(function* test_recurring_exception() { ++add_task(async function test_recurring_exception() { + gServer.syncs = [{ + token: "1", + events: [{ +@@ -1162,10 +1162,10 @@ add_task(function* test_recurring_exception() { + }] + }]; + +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 1); + + let exIds = items[0].recurrenceInfo.getExceptionIds({}); +@@ -1175,9 +1175,9 @@ add_task(function* test_recurring_exception() { + equal(ex.title, "New Event changed"); + + client.refresh(); +- yield gServer.waitForLoad(client); ++ await gServer.waitForLoad(client); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 1); + + exIds = items[0].recurrenceInfo.getExceptionIds({}); +@@ -1186,7 +1186,7 @@ add_task(function* test_recurring_exception() { + gServer.resetClient(client); + }); + +-add_task(function* test_recurring_cancelled_exception() { ++add_task(async function test_recurring_cancelled_exception() { + gServer.syncs = [{ + token: "1", + events: [{ +@@ -1204,18 +1204,18 @@ add_task(function* test_recurring_cancelled_exception() { + }] + }]; + +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 0); + + gServer.resetClient(client); + }); + +-add_task(function* test_import_invitation() { ++add_task(async function test_import_invitation() { + Preferences.set("calendar.google.enableAttendees", true); +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + let event = cal.createEvent([ + "BEGIN:VEVENT", +@@ -1236,14 +1236,14 @@ add_task(function* test_import_invitation() { + "END:VEVENT" + ].join("\r\n")); + +- let addedItem = yield pclient.adoptItem(event); ++ let addedItem = await pclient.adoptItem(event); + equal(gServer.events.length, 1); + equal(addedItem.icalString, event.icalString); + gServer.resetClient(client); + Preferences.set("calendar.google.enableAttendees", false); + }); + +-add_task(function* test_modify_invitation() { ++add_task(async function test_modify_invitation() { + Preferences.set("calendar.google.enableAttendees", true); + let organizer = { + displayName: "organizer name", +@@ -1278,10 +1278,10 @@ add_task(function* test_modify_invitation() { + }]; + + // Case #1: User is attendee +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 1); + + let item = items[0]; +@@ -1297,7 +1297,7 @@ add_task(function* test_modify_invitation() { + att.participationStatus = "ACCEPTED"; + newItem.addAttendee(att); + +- yield pclient.modifyItem(newItem, items[0]); ++ await pclient.modifyItem(newItem, items[0]); + equal(gServer.lastMethod, "PATCH"); + + // Case #2: User is organizer +@@ -1318,10 +1318,10 @@ add_task(function* test_modify_invitation() { + gServer.events[0].creator = gServer.creator; + gServer.events[0].attendees = [organizer, attendee]; + +- client = yield gServer.getClient(); ++ client = await gServer.getClient(); + pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 1); + + item = items[0]; +@@ -1337,13 +1337,13 @@ add_task(function* test_modify_invitation() { + org.participationStatus = "TENTATIVE"; + newItem.addAttendee(org); + +- modifiedItem = yield pclient.modifyItem(newItem, items[0]); ++ modifiedItem = await pclient.modifyItem(newItem, items[0]); + equal(gServer.lastMethod, "PUT"); + + gServer.resetClient(client); + }); + +-add_task(function* test_metadata() { ++add_task(async function test_metadata() { + gServer.events = [{ + kind: "calendar#event", + etag: "\"1\"", +@@ -1367,12 +1367,12 @@ add_task(function* test_metadata() { + notes: "description" + }]; + +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let offline = client.wrappedJSObject.mCachedCalendar; + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + + // Check initial metadata +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + let meta = getAllMeta(offline); + let [event, task] = items; + ok(cal.item.isEvent(event)); +@@ -1385,9 +1385,9 @@ add_task(function* test_metadata() { + gServer.nextEtag = '"3"'; + let newEvent = event.clone(); + newEvent.title = "changed"; +- yield pclient.modifyItem(newEvent, event); ++ await pclient.modifyItem(newEvent, event); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + meta = getAllMeta(offline); + [event, task] = items; + ok(cal.item.isEvent(event)); +@@ -1400,9 +1400,9 @@ add_task(function* test_metadata() { + gServer.nextEtag = '"4"'; + let newTask = task.clone(); + newTask.title = "changed"; +- yield pclient.modifyItem(newTask, task); ++ await pclient.modifyItem(newTask, task); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + meta = getAllMeta(offline); + [event, task] = items; + equal(meta.size, 2); +@@ -1410,19 +1410,19 @@ add_task(function* test_metadata() { + equal(meta.get(task.hashId), ['"4"', "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", false].join("\u001A")); + + // Delete an event +- yield pclient.deleteItem(event); ++ await pclient.deleteItem(event); + meta = getAllMeta(offline); + equal(meta.size, 1); + equal(meta.get(task.hashId), ['"4"', "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", false].join("\u001A")); + + // Delete a task +- yield pclient.deleteItem(task); ++ await pclient.deleteItem(task); + meta = getAllMeta(offline); + equal(meta.size, 0); + + // Add an event + gServer.nextEtag = '"6"'; +- newEvent = yield pclient.addItem(event); ++ newEvent = await pclient.addItem(event); + meta = getAllMeta(offline); + equal(meta.size, 1); + equal(gServer.events.length, 1); +@@ -1430,7 +1430,7 @@ add_task(function* test_metadata() { + + // Add a task + gServer.nextEtag = '"7"'; +- newTask = yield pclient.addItem(task); ++ newTask = await pclient.addItem(task); + meta = getAllMeta(offline); + equal(meta.size, 2); + equal(gServer.events.length, 1); +@@ -1441,7 +1441,7 @@ add_task(function* test_metadata() { + gServer.resetClient(client); + }); + +-add_task(function* test_metadata_recurring() { ++add_task(async function test_metadata_recurring() { + gServer.events = [{ + kind: "calendar#event", + etag: "\"1\"", +@@ -1477,10 +1477,10 @@ add_task(function* test_metadata_recurring() { + originalStartTime: { dateTime: "2006-06-17T18:00:00+02:00" } + }]; + +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let offline = client.wrappedJSObject.mCachedCalendar; + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + + let meta = getAllMeta(offline); + equal(meta.size, 3); +@@ -1496,7 +1496,7 @@ add_task(function* test_metadata_recurring() { + let newEx = ex.clone(); + newEx.title = "New Event changed again"; + gServer.nextEtag = '"4"'; +- yield pclient.modifyItem(newEx, ex); ++ await pclient.modifyItem(newEx, ex); + meta = getAllMeta(offline); + equal(meta.size, 3); + equal(meta.get(newEx.hashId), ['"4"', "go6ijb0b46hlpbu4eeu92njevo_20060610T160000Z", false].join("\u001A")); +@@ -1504,20 +1504,20 @@ add_task(function* test_metadata_recurring() { + // Deleting an exception should delete the metadata, as it turns into an EXDATE + let newItem = items[0].clone(); + newItem.recurrenceInfo.removeOccurrenceAt(exIds[0]); +- yield pclient.modifyItem(newItem, items[0]); ++ await pclient.modifyItem(newItem, items[0]); + + meta = getAllMeta(offline); + equal(meta.size, 2); + + // Deleting the master item should remove all metadata entries +- yield pclient.deleteItem(items[0]); ++ await pclient.deleteItem(items[0]); + meta = getAllMeta(offline); + equal(meta.size, 0); + + gServer.resetClient(client); + }); + +-add_task(function* test_conflict_modify() { ++add_task(async function test_conflict_modify() { + // TODO task/event conflicts are handled in the same way so I'm going to + // skip adding tests for tasks here, but it probably wouldn't hurt to + // create them at some point. +@@ -1534,9 +1534,9 @@ add_task(function* test_conflict_modify() { + end: { dateTime: "2006-06-10T20:00:00+02:00" }, + iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" + }]; +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); +- let item = (yield pclient.getAllItems())[0]; ++ let item = (await pclient.getAllItems())[0]; + + // Case #1: Modified on server, modify locally, overwrite conflict + MockConflictPrompt.overwrite = true; +@@ -1544,8 +1544,8 @@ add_task(function* test_conflict_modify() { + newItem.title = "local change"; + gServer.events[0].etag = '"2"'; + gServer.events[0].summary = "remote change"; +- let modifiedItem = yield pclient.modifyItem(newItem, item); +- item = (yield pclient.getAllItems())[0]; ++ let modifiedItem = await pclient.modifyItem(newItem, item); ++ item = (await pclient.getAllItems())[0]; + equal(gServer.events[0].summary, "local change"); + notEqual(gServer.events[0].etag, '"2"'); + equal(item.title, "local change"); +@@ -1557,7 +1557,7 @@ add_task(function* test_conflict_modify() { + gServer.events[0].etag = '"3"'; + gServer.events[0].summary = "remote change"; + try { +- modifiedItem = yield pclient.modifyItem(newItem, item); ++ modifiedItem = await pclient.modifyItem(newItem, item); + do_throw("Expected modifyItem to be cancelled"); + } catch (e) { + // Swallow cancelling the request +@@ -1566,9 +1566,9 @@ add_task(function* test_conflict_modify() { + } + } + +- yield gServer.waitForLoad(client); ++ await gServer.waitForLoad(client); + +- item = (yield pclient.getAllItems())[0]; ++ item = (await pclient.getAllItems())[0]; + equal(gServer.events[0].summary, "remote change"); + equal(gServer.events[0].etag, '"3"'); + equal(item.title, "remote change"); +@@ -1578,7 +1578,7 @@ add_task(function* test_conflict_modify() { + gServer.events[0].etag = '"4"'; + gServer.events[0].summary = "remote change"; + try { +- yield pclient.deleteItem(item); ++ await pclient.deleteItem(item); + do_throw("Expected deleteItem to be cancelled"); + } catch (e) { + // Swallow cancelling the request +@@ -1587,9 +1587,9 @@ add_task(function* test_conflict_modify() { + } + } + +- yield gServer.waitForLoad(client); ++ await gServer.waitForLoad(client); + +- item = (yield pclient.getAllItems())[0]; ++ item = (await pclient.getAllItems())[0]; + equal(gServer.events[0].summary, "remote change"); + equal(gServer.events[0].etag, '"4"'); + equal(item.title, "remote change"); +@@ -1598,14 +1598,14 @@ add_task(function* test_conflict_modify() { + MockConflictPrompt.overwrite = true; + gServer.events[0].etag = '"5"'; + gServer.events[0].summary = "remote change"; +- yield pclient.deleteItem(item); +- item = (yield pclient.getAllItems())[0]; ++ await pclient.deleteItem(item); ++ item = (await pclient.getAllItems())[0]; + equal(gServer.events.length, 0); + + gServer.resetClient(client); + }); + +-add_task(function* test_conflict_delete() { ++add_task(async function test_conflict_delete() { + // TODO task/event conflicts are handled in the same way so I'm going to + // skip adding tests for tasks here, but it probably wouldn't hurt to + // create them at some point. +@@ -1625,17 +1625,17 @@ add_task(function* test_conflict_delete() { + + // Load intial event to server + gServer.events = [coreEvent]; +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); +- let item = (yield pclient.getAllItems())[0]; ++ let item = (await pclient.getAllItems())[0]; + + // Case #1: Deleted on server, modify locally, overwrite conflict + MockConflictPrompt.overwrite = true; + gServer.events = []; + let newItem = item.clone(); + newItem.title = "local change"; +- let modifiedItem = yield pclient.modifyItem(newItem, item); +- item = (yield pclient.getAllItems())[0]; ++ let modifiedItem = await pclient.modifyItem(newItem, item); ++ item = (await pclient.getAllItems())[0]; + equal(gServer.events[0].summary, "local change"); + notEqual(gServer.events[0].etag, '"2"'); + equal(item.title, "local change"); +@@ -1646,7 +1646,7 @@ add_task(function* test_conflict_delete() { + MockConflictPrompt.overwrite = false; + gServer.events = []; + try { +- modifiedItem = yield pclient.modifyItem(newItem, item); ++ modifiedItem = await pclient.modifyItem(newItem, item); + do_throw("Expected modifyItem to be cancelled"); + } catch (e) { + // Swallow cancelling the request +@@ -1658,24 +1658,24 @@ add_task(function* test_conflict_delete() { + coreEvent.status = "cancelled"; + gServer.events = [coreEvent]; + +- yield gServer.waitForLoad(client); ++ await gServer.waitForLoad(client); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 0); + equal(gServer.events.length, 1); + + // Put the event back in the calendar for the next run + delete gServer.events[0].status; + client.refresh(); +- yield gServer.waitForLoad(client); +- items = yield pclient.getAllItems(); ++ await gServer.waitForLoad(client); ++ items = await pclient.getAllItems(); + equal(items.length, 1); + + // Case #3: Deleted on server, delete locally, don't overwrite conflict + MockConflictPrompt.overwrite = false; + gServer.events = []; + try { +- yield pclient.deleteItem(item); ++ await pclient.deleteItem(item); + do_throw("Expected deleteItem to be cancelled"); + } catch (e) { + // Swallow cancelling the request +@@ -1686,29 +1686,29 @@ add_task(function* test_conflict_delete() { + // The next synchronize should cause the event to be deleted locally. + coreEvent.status = "cancelled"; + gServer.events = [coreEvent]; +- yield gServer.waitForLoad(client); ++ await gServer.waitForLoad(client); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 0); + + // Put the event back in the calendar for the next run + delete gServer.events[0].status; + client.refresh(); +- yield gServer.waitForLoad(client); +- items = yield pclient.getAllItems(); ++ await gServer.waitForLoad(client); ++ items = await pclient.getAllItems(); + equal(items.length, 1); + + // Case #4: Deleted on server, delete locally, overwrite conflict + MockConflictPrompt.overwrite = true; + gServer.events = []; +- yield pclient.deleteItem(item); +- items = yield pclient.getAllItems(); ++ await pclient.deleteItem(item); ++ items = await pclient.getAllItems(); + equal(items.length, 0); + + gServer.resetClient(client); + }); + +-add_task(function* test_default_alarms() { ++add_task(async function test_default_alarms() { + let defaultReminders = [ + { method: "popup", minutes: 10 }, + { method: "email", minutes: 20 }, +@@ -1731,11 +1731,11 @@ add_task(function* test_default_alarms() { + }]; + + // Case #1: read default alarms from event stream +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + equal(client.getProperty("settings.defaultReminders"), JSON.stringify(defaultReminders)); + +- let item = (yield pclient.getAllItems())[0]; ++ let item = (await pclient.getAllItems())[0]; + let alarms = item.getAlarms({}); + + equal(alarms.length, 2); +@@ -1760,7 +1760,7 @@ add_task(function* test_default_alarms() { + "END:VEVENT" + ].join("\r\n")); + +- yield pclient.addItem(event); ++ await pclient.addItem(event); + ok(gServer.events[1].reminders.useDefault); + equal(gServer.events[1].reminders.overrides.length, 0); + +@@ -1784,7 +1784,7 @@ add_task(function* test_default_alarms() { + "END:VEVENT" + ].join("\r\n")); + +- yield pclient.addItem(event); ++ await pclient.addItem(event); + ok(gServer.events[2].reminders.useDefault); + equal(gServer.events[2].reminders.overrides.length, 1); + equal(gServer.events[2].reminders.overrides[0].minutes, 5); +@@ -1794,7 +1794,7 @@ add_task(function* test_default_alarms() { + // Case #4a: Empty default alarms + gServer.calendarListData.defaultReminders = []; + gServer.eventsData.defaultReminders = []; +- client = yield gServer.getClient(); ++ client = await gServer.getClient(); + pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + + event = cal.createEvent([ +@@ -1806,7 +1806,7 @@ add_task(function* test_default_alarms() { + "END:VEVENT" + ].join("\r\n")); + +- yield pclient.addItem(event); ++ await pclient.addItem(event); + ok(gServer.events[0].reminders.useDefault); + equal(gServer.events[0].reminders.overrides, undefined); + +@@ -1815,16 +1815,16 @@ add_task(function* test_default_alarms() { + + // Case #4b: Read an item with empty default alarms + gServer.events = events; +- client = yield gServer.getClient(); ++ client = await gServer.getClient(); + pclient = cal.async.promisifyCalendar(client.wrappedJSObject); + +- item = (yield pclient.getAllItems())[0]; ++ item = (await pclient.getAllItems())[0]; + equal(item.getProperty("X-DEFAULT-ALARM"), "TRUE"); + + gServer.resetClient(client); + }); + +-add_task(function* test_paginate() { ++add_task(async function test_paginate() { + gServer.events = [{ + kind: "calendar#event", + etag: "\"1\"", +@@ -1873,7 +1873,7 @@ add_task(function* test_paginate() { + + Preferences.set("calendar.google.maxResultsPerRequest", 1); + +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client); + + // Make sure all pages were requested +@@ -1882,7 +1882,7 @@ add_task(function* test_paginate() { + + // ...and we have all items. Not checking props + // because the other tests do this sufficiently. +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 4); + + equal(client.getProperty("syncToken.events"), "next-sync-token"); +@@ -1891,7 +1891,7 @@ add_task(function* test_paginate() { + gServer.resetClient(client); + }); + +-add_task(function* test_incremental_reset() { ++add_task(async function test_incremental_reset() { + gServer.syncs = [{ + token: "1", + events: [{ +@@ -1926,17 +1926,17 @@ add_task(function* test_incremental_reset() { + iCalUID: "fepf8uf6n7n04w7feukucs9n8e@google.com" + }] + }]; +- let client = yield gServer.getClient(); ++ let client = await gServer.getClient(); + let pclient = cal.async.promisifyCalendar(client); + +- let items = yield pclient.getAllItems(); ++ let items = await pclient.getAllItems(); + equal(items.length, 1); + equal(items[0].title, "New Event"); + + client.refresh(); +- yield gServer.waitForLoad(client); ++ await gServer.waitForLoad(client); + +- items = yield pclient.getAllItems(); ++ items = await pclient.getAllItems(); + equal(items.length, 1); + equal(items[0].title, "New Event 2"); + +diff --git a/comm/calendar/test/unit/xpcshell-shared.ini b/comm/calendar/test/unit/xpcshell-shared.ini +index f759cf0..44d91e5 100644 +--- a/comm/calendar/test/unit/xpcshell-shared.ini ++++ b/comm/calendar/test/unit/xpcshell-shared.ini +@@ -29,8 +29,8 @@ + [test_email_utils.js] + [test_freebusy.js] + [test_freebusy_service.js] +-#[test_gdata_provider.js] +-#requesttimeoutfactor = 2 ++[test_gdata_provider.js] ++requesttimeoutfactor = 2 + [test_hashedarray.js] + [test_ics.js] + [test_ics_parser.js] +diff --git a/comm/mail/app.mozbuild b/comm/mail/app.mozbuild +index a377f74..814c4b07 100644 +--- a/comm/mail/app.mozbuild ++++ b/comm/mail/app.mozbuild +@@ -21,7 +21,8 @@ DIRS += ['/%s' % CONFIG['MOZ_BRANDING_DIRECTORY']] + if CONFIG['MOZ_CALENDAR']: + DIRS += [ + '/%s/calendar/lightning' % CONFIG['commreltopsrcdir'], +- '/%s/calendar/timezones' % CONFIG['commreltopsrcdir'] ++ '/%s/calendar/providers/gdata' % CONFIG['commreltopsrcdir'], ++ '/%s/calendar/timezones' % CONFIG['commreltopsrcdir'], + ] + + DIRS += [ diff --git a/patches/fixes/Fix-big-endian-build-for-SKIA.patch b/patches/fixes/Fix-big-endian-build-for-SKIA.patch new file mode 100644 index 0000000000..1bbd7e9ec9 --- /dev/null +++ b/patches/fixes/Fix-big-endian-build-for-SKIA.patch @@ -0,0 +1,118 @@ +From: Carsten Schoenert +Date: Sat, 14 Apr 2018 18:00:02 +0200 +Subject: Fix big endian build for SKIA + +Some parts of the skia source are currently not prepared for building on +big endian platforms. +Thanks Adrian Glaubitz for the updated patch. +--- + gfx/skia/skia/include/core/SkColorPriv.h | 15 ++++----------- + gfx/skia/skia/include/core/SkImageInfo.h | 2 +- + gfx/skia/skia/include/gpu/GrTypes.h | 6 ++---- + gfx/skia/skia/include/private/GrColor.h | 4 ++++ + gfx/skia/skia/src/core/SkColorData.h | 15 ++++----------- + 5 files changed, 15 insertions(+), 27 deletions(-) + +diff --git a/gfx/skia/skia/include/core/SkColorPriv.h b/gfx/skia/skia/include/core/SkColorPriv.h +index 0cd02e8..8a7f150 100644 +--- a/gfx/skia/skia/include/core/SkColorPriv.h ++++ b/gfx/skia/skia/include/core/SkColorPriv.h +@@ -55,17 +55,10 @@ static inline U8CPU SkUnitScalarClampToByte(SkScalar x) { + * Here we enforce this constraint. + */ + +-#ifdef SK_CPU_BENDIAN +- #define SK_RGBA_R32_SHIFT 24 +- #define SK_RGBA_G32_SHIFT 16 +- #define SK_RGBA_B32_SHIFT 8 +- #define SK_RGBA_A32_SHIFT 0 +-#else +- #define SK_RGBA_R32_SHIFT 0 +- #define SK_RGBA_G32_SHIFT 8 +- #define SK_RGBA_B32_SHIFT 16 +- #define SK_RGBA_A32_SHIFT 24 +-#endif ++#define SK_RGBA_R32_SHIFT 0 ++#define SK_RGBA_G32_SHIFT 8 ++#define SK_RGBA_B32_SHIFT 16 ++#define SK_RGBA_A32_SHIFT 24 + + #define SkGetPackedA32(packed) ((uint32_t)((packed) << (24 - SK_A32_SHIFT)) >> 24) + #define SkGetPackedR32(packed) ((uint32_t)((packed) << (24 - SK_R32_SHIFT)) >> 24) +diff --git a/gfx/skia/skia/include/core/SkImageInfo.h b/gfx/skia/skia/include/core/SkImageInfo.h +index ece47f5..e3dec42 100644 +--- a/gfx/skia/skia/include/core/SkImageInfo.h ++++ b/gfx/skia/skia/include/core/SkImageInfo.h +@@ -84,7 +84,7 @@ enum SkColorType { + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + kN32_SkColorType = kRGBA_8888_SkColorType, + #else +- #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order" ++ kN32_SkColorType = kBGRA_8888_SkColorType + #endif + }; + +diff --git a/gfx/skia/skia/include/gpu/GrTypes.h b/gfx/skia/skia/include/gpu/GrTypes.h +index c88d9ee..bfa9452 100644 +--- a/gfx/skia/skia/include/gpu/GrTypes.h ++++ b/gfx/skia/skia/include/gpu/GrTypes.h +@@ -344,15 +344,13 @@ enum GrPixelConfig { + static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; + + // Aliases for pixel configs that match skia's byte order. +-#ifndef SK_CPU_LENDIAN +- #error "Skia gpu currently assumes little endian" +-#endif + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig; + #else +- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." ++ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; ++ static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig; + #endif + + /** +diff --git a/gfx/skia/skia/include/private/GrColor.h b/gfx/skia/skia/include/private/GrColor.h +index b4a461d..14c5eb9 100644 +--- a/gfx/skia/skia/include/private/GrColor.h ++++ b/gfx/skia/skia/include/private/GrColor.h +@@ -74,7 +74,11 @@ static inline GrColor GrColorPackA4(unsigned a) { + * Since premultiplied means that alpha >= color, we construct a color with + * each component==255 and alpha == 0 to be "illegal" + */ ++#ifdef SK_CPU_BENDIAN ++#define GrColor_ILLEGAL 0xFFFFFF00 ++#else + #define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A)) ++#endif + + #define GrColor_WHITE 0xFFFFFFFF + #define GrColor_TRANSPARENT_BLACK 0x0 +diff --git a/gfx/skia/skia/src/core/SkColorData.h b/gfx/skia/skia/src/core/SkColorData.h +index 3fc0113..43ae01e 100644 +--- a/gfx/skia/skia/src/core/SkColorData.h ++++ b/gfx/skia/skia/src/core/SkColorData.h +@@ -32,17 +32,10 @@ + * Here we enforce this constraint. + */ + +-#ifdef SK_CPU_BENDIAN +- #define SK_BGRA_B32_SHIFT 24 +- #define SK_BGRA_G32_SHIFT 16 +- #define SK_BGRA_R32_SHIFT 8 +- #define SK_BGRA_A32_SHIFT 0 +-#else +- #define SK_BGRA_B32_SHIFT 0 +- #define SK_BGRA_G32_SHIFT 8 +- #define SK_BGRA_R32_SHIFT 16 +- #define SK_BGRA_A32_SHIFT 24 +-#endif ++#define SK_BGRA_B32_SHIFT 0 ++#define SK_BGRA_G32_SHIFT 8 ++#define SK_BGRA_R32_SHIFT 16 ++#define SK_BGRA_A32_SHIFT 24 + + #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) + #error "can't define PMCOLOR to be RGBA and BGRA" diff --git a/patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch b/patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch new file mode 100644 index 0000000000..58ef5591b0 --- /dev/null +++ b/patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre +Date: Mon, 16 Sep 2013 20:40:57 +0200 +Subject: Load-dependent-libraries-with-their-real-path-to-avo + +--- + xpcom/glue/standalone/nsXPCOMGlue.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xpcom/glue/standalone/nsXPCOMGlue.cpp b/xpcom/glue/standalone/nsXPCOMGlue.cpp +index 53a5761..265b993 100644 +--- a/xpcom/glue/standalone/nsXPCOMGlue.cpp ++++ b/xpcom/glue/standalone/nsXPCOMGlue.cpp +@@ -154,6 +154,9 @@ ReadDependentCB(pathstr_t aDependentLib) + // We do this unconditionally because of data in bug 771745 + ReadAheadLib(aDependentLib); + #endif ++ char lib[MAXPATHLEN]; ++ if (realpath(aDependentLib, lib)) ++ aDependentLib = lib; + LibHandleType libHandle = GetLibHandle(aDependentLib); + if (libHandle) { + AppendDependentLib(libHandle); diff --git a/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch b/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch new file mode 100644 index 0000000000..4b62713e75 --- /dev/null +++ b/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch @@ -0,0 +1,24 @@ +From: Mike Hommey +Date: Sat, 22 Nov 2008 09:35:23 +0100 +Subject: Properly launch applications set in $HOME/.mailcap + +https://bugzilla.mozilla.org/show_bug.cgi?id=444440 +--- + uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +index f102815..481af3a 100644 +--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp ++++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +@@ -62,6 +62,10 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile *aFile) + return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile); + + nsAutoCString nativePath; ++/* the name of the function has changed ++ * the old was the following: ++ nsCAutoString nativePath; ++ */ + aFile->GetNativePath(nativePath); + + nsCOMPtr giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); diff --git a/patches/fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch b/patches/fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch new file mode 100644 index 0000000000..ab776a1182 --- /dev/null +++ b/patches/fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch @@ -0,0 +1,29 @@ +From: John Paul Adrian Glaubitz +Date: Sun, 15 Apr 2018 08:49:43 +0200 +Subject: Use -msse{2} -fpmath C-/CXXFLAGS only on x86_64 platforms + +The options -msse -msse2 -mfpmath=sse are only available on AMD64 based +platforms. +--- + build/unix/mozconfig.linux32 | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/build/unix/mozconfig.linux32 b/build/unix/mozconfig.linux32 +index b9ac630..cf68b49 100644 +--- a/build/unix/mozconfig.linux32 ++++ b/build/unix/mozconfig.linux32 +@@ -2,12 +2,11 @@ + + export MOZ_LINUX_32_SSE2_STARTUP_ERROR=1 + +-CFLAGS="$CFLAGS -msse -msse2 -mfpmath=sse" +-CXXFLAGS="$CXXFLAGS -msse -msse2 -mfpmath=sse" +- + if test `uname -m` = "x86_64"; then + CC="$CC -m32 -march=pentium-m" + CXX="$CXX -m32 -march=pentium-m" + ac_add_options --target=i686-pc-linux + ac_add_options --host=i686-pc-linux ++ CFLAGS="$CFLAGS -msse -msse2 -mfpmath=sse" ++ CXXFLAGS="$CXXFLAGS -msse -msse2 -mfpmath=sse" + fi diff --git a/patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch b/patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch new file mode 100644 index 0000000000..6f6ccbb78b --- /dev/null +++ b/patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch @@ -0,0 +1,22 @@ +From: Carsten Schoenert +Date: Sat, 9 Mar 2013 20:30:54 +0100 +Subject: fix function nsMsgComposeAndSend to respect ReploToSend + +https://bugzilla.mozilla.org/show_bug.cgi?id=522450 +Closes: #565903 +--- + comm/mailnews/compose/src/nsMsgSend.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/comm/mailnews/compose/src/nsMsgSend.cpp b/comm/mailnews/compose/src/nsMsgSend.cpp +index 68564ac..977c0bb 100644 +--- a/comm/mailnews/compose/src/nsMsgSend.cpp ++++ b/comm/mailnews/compose/src/nsMsgSend.cpp +@@ -2622,6 +2622,7 @@ nsMsgComposeAndSend::InitCompositionFields(nsMsgCompFields *fields, + aType == nsIMsgCompType::Reply || + aType == nsIMsgCompType::ReplyAll || + aType == nsIMsgCompType::ReplyToGroup || ++ aType == nsIMsgCompType::ReplyToList || + aType == nsIMsgCompType::ReplyToSender || + aType == nsIMsgCompType::ReplyToSenderAndGroup || + aType == nsIMsgCompType::ReplyWithTemplate ) diff --git a/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch b/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch new file mode 100644 index 0000000000..f8b831e8fa --- /dev/null +++ b/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch @@ -0,0 +1,21 @@ +From: Mike Hommey +Date: Tue, 22 May 2018 07:51:56 +0900 +Subject: Avoid using vmrs/vmsr on armel + +--- + dom/media/webaudio/blink/DenormalDisabler.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dom/media/webaudio/blink/DenormalDisabler.h b/dom/media/webaudio/blink/DenormalDisabler.h +index ffdd14e..e1c749c 100644 +--- a/dom/media/webaudio/blink/DenormalDisabler.h ++++ b/dom/media/webaudio/blink/DenormalDisabler.h +@@ -44,7 +44,7 @@ namespace WebCore { + #define HAVE_DENORMAL 1 + #endif + +-#if defined(__arm__) || defined(__aarch64__) ++#if (defined(__arm__) && !defined(__SOFTFP__)) || defined(__aarch64__) + #define HAVE_DENORMAL 1 + #endif + diff --git a/patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch b/patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch new file mode 100644 index 0000000000..8d743c5750 --- /dev/null +++ b/patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch @@ -0,0 +1,103 @@ +From: Mike Hommey +Date: Mon, 21 May 2018 12:04:22 +0900 +Subject: Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons + +For some reason, GNU as is not happy with the assembly generated after +bug 1238661 anymore on Debian armel. + +OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this +workaround anymore, so let's just kill it. +--- + mfbt/LinuxSignal.h | 45 -------------------------- + mfbt/moz.build | 4 --- + tools/profiler/core/platform-linux-android.cpp | 3 +- + 3 files changed, 1 insertion(+), 51 deletions(-) + delete mode 100644 mfbt/LinuxSignal.h + +diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h +deleted file mode 100644 +index 83c2bf8..0000000 +--- a/mfbt/LinuxSignal.h ++++ /dev/null +@@ -1,45 +0,0 @@ +-/* This Source Code Form is subject to the terms of the Mozilla Public +- * License, v. 2.0. If a copy of the MPL was not distributed with this +- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +- +-#ifndef mozilla_LinuxSignal_h +-#define mozilla_LinuxSignal_h +- +-namespace mozilla { +- +-#if defined(__arm__) +- +-// Some (old) Linux kernels on ARM have a bug where a signal handler +-// can be called without clearing the IT bits in CPSR first. The result +-// is that the first few instructions of the handler could be skipped, +-// ultimately resulting in crashes. To workaround this bug, the handler +-// on ARM is a trampoline that starts with enough NOP instructions, so +-// that even if the IT bits are not cleared, only the NOP instructions +-// will be skipped over. +- +-template +-__attribute__((naked)) void +-SignalTrampoline(int aSignal, siginfo_t* aInfo, void* aContext) +-{ +- asm volatile ( +- "nop; nop; nop; nop" +- : : : "memory"); +- +- asm volatile ( +- "b %0" +- : +- : "X"(H) +- : "memory"); +-} +- +-# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline) +- +-#else // __arm__ +- +-# define MOZ_SIGNAL_TRAMPOLINE(h) (h) +- +-#endif // __arm__ +- +-} // namespace mozilla +- +-#endif // mozilla_LinuxSignal_h +diff --git a/mfbt/moz.build b/mfbt/moz.build +index 87c7d3f..587dbc5 100644 +--- a/mfbt/moz.build ++++ b/mfbt/moz.build +@@ -120,10 +120,6 @@ if CONFIG['OS_ARCH'] == 'WINNT': + EXPORTS.mozilla += [ + 'WindowsVersion.h', + ] +-elif CONFIG['OS_ARCH'] == 'Linux': +- EXPORTS.mozilla += [ +- 'LinuxSignal.h', +- ] + + UNIFIED_SOURCES += [ + 'Assertions.cpp', +diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp +index 2bbf114..8576874 100644 +--- a/tools/profiler/core/platform-linux-android.cpp ++++ b/tools/profiler/core/platform-linux-android.cpp +@@ -60,7 +60,6 @@ + #include + + #include "prenv.h" +-#include "mozilla/LinuxSignal.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + +@@ -277,7 +276,7 @@ Sampler::Sampler(PSLockRef aLock) + + // Request profiling signals. + struct sigaction sa; +- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler); ++ sa.sa_sigaction = SigprofHandler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART | SA_SIGINFO; + if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) { diff --git a/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch new file mode 100644 index 0000000000..25f39ea8b9 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre +Date: Sat, 6 Aug 2011 17:55:14 +0200 +Subject: Allow ipc code to build on GNU/hurd + +Thanks: Pino Toscano +--- + ipc/chromium/src/build/build_config.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index 9e90d8a..f991c01 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -22,7 +22,7 @@ + #define OS_LINUX 1 + #elif defined(__APPLE__) + #define OS_MACOSX 1 +-#elif defined(__linux__) || defined(__GLIBC__) ++#elif defined(__linux__) || defined(__GLIBC__) || defined(__GNU__) + #define OS_LINUX 1 + #elif defined(__DragonFly__) + #define OS_DRAGONFLY 1 diff --git a/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch new file mode 100644 index 0000000000..71a4ed82b4 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch @@ -0,0 +1,38 @@ +From: Mike Hommey +Date: Thu, 30 Jun 2011 18:29:22 +0200 +Subject: Allow ipc code to build on GNU/kfreebsd + +--- + ipc/chromium/src/base/platform_thread_posix.cc | 5 +++++ + ipc/chromium/src/build/build_config.h | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc +index 21398dc..481549e 100644 +--- a/ipc/chromium/src/base/platform_thread_posix.cc ++++ b/ipc/chromium/src/base/platform_thread_posix.cc +@@ -49,6 +49,11 @@ PlatformThreadId PlatformThread::CurrentId() { + return port; + #elif defined(OS_LINUX) + return syscall(__NR_gettid); ++#ifdef __NR_gettid ++ return syscall(__NR_gettid); ++#else ++ return getpid(); ++#endif + #elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) + return (intptr_t) (pthread_self()); + #elif defined(OS_NETBSD) +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index eba9e47..9e90d8a 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -22,7 +22,7 @@ + #define OS_LINUX 1 + #elif defined(__APPLE__) + #define OS_MACOSX 1 +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__GLIBC__) + #define OS_LINUX 1 + #elif defined(__DragonFly__) + #define OS_DRAGONFLY 1 diff --git a/patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch b/patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch new file mode 100644 index 0000000000..1edef2d2b9 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch @@ -0,0 +1,225 @@ +From: Carsten Schoenert +Date: Sat, 29 Mar 2014 20:58:55 +0100 +Subject: FTBFS hurd: fixing unsupported platform Hurd + +On the Hurd platform the build failed in +js/src/jit/AsmJSSignalHandlers.cpp:131 because of unsupported +mode for reading / writing thead state with following message. + + # error "Don't know how to read/write to the thread state via the mcontext_t." + +The original patch comes from Richard Brown +https://lists.alioth.debian.org/pipermail/pkg-mozilla-maintainers/2014-March/015565.html + +After release of Thunderbird 44 there are additional changes made as the +various configuration files where split into more files. +--- + dom/plugins/ipc/PluginModuleChild.cpp | 6 +++--- + dom/plugins/ipc/PluginModuleChild.h | 2 +- + ipc/chromium/chromium-config.mozbuild | 5 +++++ + ipc/chromium/moz.build | 2 +- + ipc/chromium/src/base/message_loop.cc | 4 ++-- + ipc/chromium/src/base/process_util_posix.cc | 2 +- + ipc/chromium/src/build/build_config.h | 3 ++- + ipc/chromium/src/third_party/libeventcommon.mozbuild | 5 +++++ + ipc/glue/GeckoChildProcessHost.cpp | 8 +++++--- + js/src/wasm/WasmSignalHandlers.cpp | 2 +- + 10 files changed, 26 insertions(+), 13 deletions(-) + +diff --git a/dom/plugins/ipc/PluginModuleChild.cpp b/dom/plugins/ipc/PluginModuleChild.cpp +index 61e57da..e063789 100644 +--- a/dom/plugins/ipc/PluginModuleChild.cpp ++++ b/dom/plugins/ipc/PluginModuleChild.cpp +@@ -274,7 +274,7 @@ PluginModuleChild::InitForChrome(const std::string& aPluginFilename, + + GetIPCChannel()->SetAbortOnError(true); + +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + mShutdownFunc = + (NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown"); + +@@ -1751,7 +1751,7 @@ PluginModuleChild::AnswerNP_GetEntryPoints(NPError* _retval) + AssertPluginThread(); + MOZ_ASSERT(mIsChrome); + +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + return IPC_OK(); + #elif defined(OS_WIN) || defined(OS_MACOSX) + *_retval = mGetEntryPointsFunc(&mFunctions); +@@ -1789,7 +1789,7 @@ PluginModuleChild::DoNP_Initialize(const PluginSettings& aSettings) + #endif + + NPError result; +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + result = mInitializeFunc(&sBrowserFuncs, &mFunctions); + #elif defined(OS_WIN) || defined(OS_MACOSX) + result = mInitializeFunc(&sBrowserFuncs); +diff --git a/dom/plugins/ipc/PluginModuleChild.h b/dom/plugins/ipc/PluginModuleChild.h +index 764e335..ecc1570 100644 +--- a/dom/plugins/ipc/PluginModuleChild.h ++++ b/dom/plugins/ipc/PluginModuleChild.h +@@ -244,7 +244,7 @@ private: + + // we get this from the plugin + NP_PLUGINSHUTDOWN mShutdownFunc; +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + NP_PLUGINUNIXINIT mInitializeFunc; + #elif defined(OS_WIN) || defined(OS_MACOSX) + NP_PLUGININIT mInitializeFunc; +diff --git a/ipc/chromium/chromium-config.mozbuild b/ipc/chromium/chromium-config.mozbuild +index 5558add..332a4e2 100644 +--- a/ipc/chromium/chromium-config.mozbuild ++++ b/ipc/chromium/chromium-config.mozbuild +@@ -67,5 +67,10 @@ else: + 'OS_BSD': 1, + }) + ++ elif CONFIG['OS_ARCH'] == 'GNU': ++ DEFINES.update({ ++ 'OS_HURD': 1, ++ }) ++ + else: + DEFINES['OS_LINUX'] = 1 +diff --git a/ipc/chromium/moz.build b/ipc/chromium/moz.build +index 7888251..928ccd9 100644 +--- a/ipc/chromium/moz.build ++++ b/ipc/chromium/moz.build +@@ -126,7 +126,7 @@ if os_bsd or os_linux: + 'src/base/message_pump_glib.cc', + ] + +-if os_solaris: ++if os_solaris or os_hurd: + SOURCES += [ + 'src/base/atomicops_internals_x86_gcc.cc', + 'src/base/process_util_linux.cc', +diff --git a/ipc/chromium/src/base/message_loop.cc b/ipc/chromium/src/base/message_loop.cc +index 49fa63e..18f9c4b 100644 +--- a/ipc/chromium/src/base/message_loop.cc ++++ b/ipc/chromium/src/base/message_loop.cc +@@ -21,7 +21,7 @@ + #if defined(OS_POSIX) + #include "base/message_pump_libevent.h" + #endif +-#if defined(OS_LINUX) || defined(OS_BSD) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD) + #if defined(MOZ_WIDGET_GTK) + #include "base/message_pump_glib.h" + #endif +@@ -243,7 +243,7 @@ MessageLoop::MessageLoop(Type type, nsIEventTarget* aEventTarget) + if (type_ == TYPE_UI) { + #if defined(OS_MACOSX) + pump_ = base::MessagePumpMac::Create(); +-#elif defined(OS_LINUX) || defined(OS_BSD) ++#elif defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD) + pump_ = new base::MessagePumpForUI(); + #endif // OS_LINUX + } else if (type_ == TYPE_IO) { +diff --git a/ipc/chromium/src/base/process_util_posix.cc b/ipc/chromium/src/base/process_util_posix.cc +index af40161..4475b3e 100644 +--- a/ipc/chromium/src/base/process_util_posix.cc ++++ b/ipc/chromium/src/base/process_util_posix.cc +@@ -127,7 +127,7 @@ void CloseSuperfluousFds(const base::InjectiveMultimap& saved_mapping) { + #if defined(ANDROID) + static const rlim_t kSystemDefaultMaxFds = 1024; + static const char kFDDir[] = "/proc/self/fd"; +-#elif defined(OS_LINUX) || defined(OS_SOLARIS) ++#elif defined(OS_LINUX) || defined(OS_SOLARIS) || defined(OS_HURD) + static const rlim_t kSystemDefaultMaxFds = 8192; + static const char kFDDir[] = "/proc/self/fd"; + #elif defined(OS_MACOSX) +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index f991c01..f695444 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -23,6 +23,7 @@ + #elif defined(__APPLE__) + #define OS_MACOSX 1 + #elif defined(__linux__) || defined(__GLIBC__) || defined(__GNU__) ++#define OS_HURD 1 + #define OS_LINUX 1 + #elif defined(__DragonFly__) + #define OS_DRAGONFLY 1 +@@ -49,7 +50,7 @@ + + // For access to standard POSIX features, use OS_POSIX instead of a more + // specific macro. +-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + #define OS_POSIX 1 + #endif + +diff --git a/ipc/chromium/src/third_party/libeventcommon.mozbuild b/ipc/chromium/src/third_party/libeventcommon.mozbuild +index 5037ec7..c858d9c 100644 +--- a/ipc/chromium/src/third_party/libeventcommon.mozbuild ++++ b/ipc/chromium/src/third_party/libeventcommon.mozbuild +@@ -8,6 +8,7 @@ os_win = 0 + os_posix = 0 + os_macosx = 0 + os_bsd = 0 ++os_hurd = 0 + os_linux = 0 + os_solaris = 0 + +@@ -25,6 +26,10 @@ else: + elif CONFIG['OS_ARCH'] == 'SunOS': + os_solaris = 1 + libevent_include_suffix = 'solaris' ++ # attempt to get GNU hurd into the build again, further modification probably needed ++ elif CONFIG['OS_ARCH'] == 'GNU': ++ os_hurd = 1 ++ libevent_include_suffix = 'gnu' + else: + os_linux = 1 + if CONFIG['OS_TARGET'] == 'Android': +diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp +index d18ed9e..91041f2 100644 +--- a/ipc/glue/GeckoChildProcessHost.cpp ++++ b/ipc/glue/GeckoChildProcessHost.cpp +@@ -646,7 +646,9 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector& aExt + // and passing wstrings from one config to the other is unsafe. So + // we split the logic here. + +-# if defined(OS_POSIX) ++# if defined(OS_POSIX) || defined(OS_HURD) ++ base::environment_map newEnvVars; ++ + # if defined(MOZ_WIDGET_GTK) + if (mProcessType == GeckoProcessType_Content) { + // disable IM module to avoid sandbox violation +@@ -667,7 +669,7 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector& aExt + MOZ_ASSERT(gGREBinPath); + nsCString path; + NS_CopyUnicodeToNative(nsDependentString(gGREBinPath), path); +-# if defined(OS_LINUX) || defined(OS_BSD) ++# if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD) + const char *ld_library_path = PR_GetEnv("LD_LIBRARY_PATH"); + nsCString new_ld_lib_path(path.get()); + +@@ -765,7 +767,7 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector& aExt + childArgv.push_back(pidstring); + + if (!CrashReporter::IsDummy()) { +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + int childCrashFd, childCrashRemapFd; + if (!CrashReporter::CreateNotificationPipeForChild(&childCrashFd, + &childCrashRemapFd)) { +diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp +index 7e12351..6c74ee0 100644 +--- a/js/src/wasm/WasmSignalHandlers.cpp ++++ b/js/src/wasm/WasmSignalHandlers.cpp +@@ -128,7 +128,7 @@ struct AutoSignalHandler + # define EPC_sig(p) ((p)->sc_pc) + # define RFP_sig(p) ((p)->sc_regs[30]) + # endif +-#elif defined(__linux__) || defined(__sun) ++#elif defined(__linux__) || defined(__sun) || defined(__GNU__) + # if defined(__linux__) + # define XMM_sig(p,i) ((p)->uc_mcontext.fpregs->_xmm[i]) + # define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_EIP]) diff --git a/patches/porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch b/patches/porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch new file mode 100644 index 0000000000..463620ac3d --- /dev/null +++ b/patches/porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch @@ -0,0 +1,31 @@ +From: Mike Hommey +Date: Fri, 18 Nov 2011 11:28:30 +0100 +Subject: Fix GNU/non-Linux failure to build because of + ipc/chromium/src/base/dir_reader_posix.h + +--- + ipc/chromium/src/base/dir_reader_posix.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ipc/chromium/src/base/dir_reader_posix.h b/ipc/chromium/src/base/dir_reader_posix.h +index 4be04bd..a9cb2af 100644 +--- a/ipc/chromium/src/base/dir_reader_posix.h ++++ b/ipc/chromium/src/base/dir_reader_posix.h +@@ -20,7 +20,7 @@ + // seems worse than falling back to enumerating all file descriptors so we will + // probably never implement this on the Mac. + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && defined(__linux__) + #include "base/dir_reader_linux.h" + #elif defined(OS_BSD) && !defined(__GLIBC__) + #include "base/dir_reader_bsd.h" +@@ -30,7 +30,7 @@ + + namespace base { + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && defined(__linux__) + typedef DirReaderLinux DirReaderPosix; + #elif defined(OS_BSD) && !defined(__GLIBC__) + typedef DirReaderBSD DirReaderPosix; diff --git a/patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch b/patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch new file mode 100644 index 0000000000..14605aabd1 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch @@ -0,0 +1,178 @@ +From: Mike Hommey +Date: Tue, 11 Mar 2008 08:29:25 +0100 +Subject: LDAP: support building on GNU/kFreeBSD and GNU/Hurd + +https://bugzilla.mozilla.org/show_bug.cgi?id=356011 + +Squashed kFreeBSD/Hurd related fixes: +- Fix FTBFS on Hurd-i386 +- Build fixes for GNU/kFreeBSD in directory/ +- Missing bits for Hurd support +--- + comm/ldap/c-sdk/include/portable.h | 32 ++++++++++++++-------- + comm/ldap/c-sdk/libraries/libldap/compat.c | 2 +- + comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c | 2 +- + nsprpub/config/nsinstall.c | 25 +++++++++++++++++ + 4 files changed, 47 insertions(+), 14 deletions(-) + +diff --git a/comm/ldap/c-sdk/include/portable.h b/comm/ldap/c-sdk/include/portable.h +index 1572e73..3dd033f 100644 +--- a/comm/ldap/c-sdk/include/portable.h ++++ b/comm/ldap/c-sdk/include/portable.h +@@ -122,7 +122,7 @@ + * some systems don't have the BSD re_comp and re_exec routines + */ + #ifndef NEED_BSDREGEX +-#if ( defined( SYSV ) || defined( NETBSD ) || defined( FREEBSD ) || defined(__OpenBSD__) || defined( linux ) || defined( DARWIN )) && !defined(sgi) ++#if ( defined( SYSV ) || defined( NETBSD ) || defined( FREEBSD ) || defined(__OpenBSD__) || defined( linux ) || defined(__GNU__) || defined(__GLIBC__) || defined( DARWIN )) && !defined(sgi) + #define NEED_BSDREGEX + #endif + #endif +@@ -150,10 +150,14 @@ + /* + * Is snprintf() part of the standard C runtime library? + */ ++#if !defined(HAVE_SNPRINTF) ++#if defined(SOLARIS) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HPUX) || defined(AIX) ++#define HAVE_SNPRINTF ++#endif + #if defined(_WINDOWS) + #define snprintf _snprintf + #endif +- ++#endif + + /* + * Async IO. Use a non blocking implementation of connect() and +@@ -169,7 +173,7 @@ + * for select() + */ + #if !defined(WINSOCK) && !defined(_WINDOWS) && !defined(macintosh) && !defined(XP_OS2) +-#if defined(hpux) || defined(LINUX) || defined(SUNOS4) || defined(XP_BEOS) ++#if defined(hpux) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(SUNOS4) || defined(XP_BEOS) + #include + #else + #include +@@ -241,15 +245,14 @@ + #define HAVE_TIME_R + #endif + +-#if defined(SNI) || defined(LINUX1_2) ++#if defined(SNI) || defined(LINUX1_2) || defined(__GNU__) || defined(__GLIBC__) + int strcasecmp(const char *, const char *); + #ifdef SNI + int strncasecmp(const char *, const char *, int); +-#endif /* SNI */ +-#ifdef LINUX1_2 ++#else /* SNI */ + int strncasecmp(const char *, const char *, size_t); +-#endif /* LINUX1_2 */ +-#endif /* SNI || LINUX1_2 */ ++#endif ++#endif /* SNI || LINUX1_2 || __GNU__ || __GLIBC__ */ + + #if defined(_WINDOWS) || defined(macintosh) || defined(XP_OS2) || defined(DARWIN) + #define GETHOSTBYNAME( n, r, b, l, e ) gethostbyname( n ) +@@ -267,7 +270,12 @@ int strncasecmp(const char *, const char *, size_t); + #define NSLDAPI_NETDB_BUF_SIZE 1024 + #endif + +-#if defined(sgi) || defined(HPUX9) || defined(SCOOS) || \ ++#if defined(__GLIBC__) && __GLIBC__ >= 2 ++typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE]; ++#define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t ++#define GETHOSTBYNAME( n, r, b, l, rp, e ) gethostbyname_r( n, r, b, l, rp, e ) ++#define GETHOSTBYNAME_R_RETURNS_INT ++#elif defined(sgi) || defined(HPUX9) || defined(SCOOS) || \ + defined(UNIXWARE) || defined(SUNOS4) || defined(SNI) || defined(BSDI) || \ + defined(NCR) || defined(OSF1) || defined(NEC) || defined(VMS) || \ + ( defined(HPUX10) && !defined(_REENTRANT)) || defined(HPUX11) || \ +@@ -289,7 +297,7 @@ typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE]; + #elif defined(HPUX10) + #define GETHOSTBYNAME_BUF_T struct hostent_data + #define GETHOSTBYNAME( n, r, b, l, e ) nsldapi_compat_gethostbyname_r( n, r, (char *)&b, l, e ) +-#elif defined(LINUX) || defined(DRAGONFLY) ++#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(DRAGONFLY) + typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE]; + #define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t + #define GETHOSTBYNAME( n, r, b, l, rp, e ) gethostbyname_r( n, r, b, l, rp, e ) +@@ -311,7 +319,7 @@ typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE]; + || defined(OSF1V4) || defined(AIX) || defined(UnixWare) \ + || defined(hpux) || defined(HPUX11) || defined(NETBSD) \ + || defined(IRIX6) || defined(FREEBSD) || defined(VMS) \ +- || defined(NTO) || defined(OPENBSD) || defined(DRAGONFLY) ++ || defined(NTO) || defined(OPENBSD) || defined(__GLIBC__) || defined(DRAGONFLY) + #define NSLDAPI_CTIME( c, b, l ) ctime_r( c, b ) + #elif defined( OSF1V3 ) + #define NSLDAPI_CTIME( c, b, l ) (ctime_r( c, b, l ) ? NULL : b) +@@ -448,7 +456,7 @@ int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); + #define NSLDAPI_FOPEN( filename, mode ) fopen( filename, mode ) + #endif + +-#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) ++#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) + size_t nsldapi_compat_strlcpy(char *dst, const char *src, size_t len); + #define STRLCPY nsldapi_compat_strlcpy + #else +diff --git a/comm/ldap/c-sdk/libraries/libldap/compat.c b/comm/ldap/c-sdk/libraries/libldap/compat.c +index 94e58ca7..8cc1a71 100644 +--- a/comm/ldap/c-sdk/libraries/libldap/compat.c ++++ b/comm/ldap/c-sdk/libraries/libldap/compat.c +@@ -83,7 +83,7 @@ nsldapi_compat_ctime_r( const time_t *clock, char *buf, int buflen ) + } + #endif /* HPUX10 && _REENTRANT && !HPUX11 */ + +-#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) ++#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) + /* + * Copies src to the dstsize buffer at dst. The copy will never + * overflow the destination buffer and the buffer will always be null +diff --git a/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c b/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c +index b0cb6ed..16e9d59 100644 +--- a/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c ++++ b/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c +@@ -231,7 +231,7 @@ struct prldap_errormap_entry { + + #if defined(__hpux) || defined(_AIX) || defined(OSF1) || defined(DARWIN) || \ + defined(BEOS) || defined(FREEBSD) || defined(BSDI) || defined(VMS) || \ +- defined(OPENBSD) || defined(NETBSD) ++ defined(OPENBSD) || defined(NETBSD) || defined(__FreeBSD_kernel__) + #define EDEADLOCK -1 + #endif + +diff --git a/nsprpub/config/nsinstall.c b/nsprpub/config/nsinstall.c +index f1d2cff..1b857d9 100644 +--- a/nsprpub/config/nsinstall.c ++++ b/nsprpub/config/nsinstall.c +@@ -43,6 +43,31 @@ + #endif + + #if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) ++#ifdef NEXTSTEP ++#include ++ ++/* ++** balazs.pataki@sztaki.hu: The getcwd is broken in NEXTSTEP (returns 0), ++** when called on a mounted fs. Did anyone notice this? Here's an ugly ++** workaround ... ++*/ ++#define getcwd(b,s) my_getcwd(b,s) ++ ++static char * ++my_getcwd (char *buf, size_t size) ++{ ++ FILE *pwd = popen("pwd", "r"); ++ char *result = fgets(buf, size, pwd); ++ ++ if (result) { ++ buf[strlen(buf)-1] = '\0'; ++ } ++ pclose (pwd); ++ return buf; ++} ++#endif /* NEXTSTEP */ ++ ++#if defined(LINUX) || defined(__GLIBC__) || defined(__GNU__) + #include + #endif + diff --git a/patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch b/patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch new file mode 100644 index 0000000000..ce0da967d2 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch @@ -0,0 +1,197 @@ +From: Carsten Schoenert +Date: Sun, 24 Apr 2016 20:49:46 +0200 +Subject: adding missed HURD adoptions + +Based on https://lists.alioth.debian.org/pipermail/pkg-mozilla-maintainers/2016-April/027634.html +--- + ipc/chromium/src/base/file_util_posix.cc | 2 +- + ipc/chromium/src/base/platform_thread.h | 2 +- + ipc/chromium/src/base/platform_thread_posix.cc | 2 +- + ipc/chromium/src/base/port.h | 2 +- + ipc/chromium/src/base/process_util.h | 2 +- + ipc/chromium/src/base/process_util_posix.cc | 6 +++++- + media/webrtc/signaling/src/sdp/sipcc/cpr_types.h | 2 +- + media/webrtc/trunk/build/build_config.h | 6 +++++- + .../gtests/google_test/gtest/include/gtest/internal/gtest-port.h | 6 ++++-- + security/sandbox/chromium/build/build_config.h | 4 +++- + 10 files changed, 23 insertions(+), 11 deletions(-) + +diff --git a/ipc/chromium/src/base/file_util_posix.cc b/ipc/chromium/src/base/file_util_posix.cc +index d648974..a408640 100644 +--- a/ipc/chromium/src/base/file_util_posix.cc ++++ b/ipc/chromium/src/base/file_util_posix.cc +@@ -279,7 +279,7 @@ bool GetTempDir(FilePath* path) { + } + + bool GetShmemTempDir(FilePath* path) { +-#if defined(OS_LINUX) && !defined(ANDROID) ++#if (defined(OS_LINUX) && !defined(ANDROID)) || defined(OS_HURD) + *path = FilePath("/dev/shm"); + return true; + #else +diff --git a/ipc/chromium/src/base/platform_thread.h b/ipc/chromium/src/base/platform_thread.h +index 3432128..9092ace 100644 +--- a/ipc/chromium/src/base/platform_thread.h ++++ b/ipc/chromium/src/base/platform_thread.h +@@ -24,7 +24,7 @@ typedef void* PlatformThreadHandle; // HANDLE + #elif defined(OS_POSIX) + #include + typedef pthread_t PlatformThreadHandle; +-#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) ++#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) || defined(OS_HURD) + #include + typedef pid_t PlatformThreadId; + #elif defined(OS_BSD) +diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc +index 5f9108d..ec7eb1b 100644 +--- a/ipc/chromium/src/base/platform_thread_posix.cc ++++ b/ipc/chromium/src/base/platform_thread_posix.cc +@@ -57,7 +57,7 @@ PlatformThreadId PlatformThread::CurrentId() { + #else + return getpid(); + #endif +-#elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) ++#elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) || defined(OS_HURD) + return (intptr_t) (pthread_self()); + #elif defined(OS_NETBSD) + return _lwp_self(); +diff --git a/ipc/chromium/src/base/port.h b/ipc/chromium/src/base/port.h +index d206d25..13a90bf 100644 +--- a/ipc/chromium/src/base/port.h ++++ b/ipc/chromium/src/base/port.h +@@ -58,7 +58,7 @@ namespace base { + // Define an OS-neutral wrapper for shared library entry points + #if defined(OS_WIN) + #define API_CALL __stdcall +-#elif defined(OS_LINUX) || defined(OS_MACOSX) ++#elif defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_HURD) + #define API_CALL + #endif + +diff --git a/ipc/chromium/src/base/process_util.h b/ipc/chromium/src/base/process_util.h +index d9d9396..4370731 100644 +--- a/ipc/chromium/src/base/process_util.h ++++ b/ipc/chromium/src/base/process_util.h +@@ -19,7 +19,7 @@ + #ifndef STDOUT_FILENO + #define STDOUT_FILENO 1 + #endif +-#elif defined(OS_LINUX) || defined(__GLIBC__) ++#elif defined(OS_LINUX) || defined(__GLIBC__) || defined(OS_HURD) + #include + #include + #include +diff --git a/ipc/chromium/src/base/process_util_posix.cc b/ipc/chromium/src/base/process_util_posix.cc +index 4475b3e..e8ca219 100644 +--- a/ipc/chromium/src/base/process_util_posix.cc ++++ b/ipc/chromium/src/base/process_util_posix.cc +@@ -138,6 +138,10 @@ void CloseSuperfluousFds(const base::InjectiveMultimap& saved_mapping) { + static const rlim_t kSystemDefaultMaxFds = 1024; + // at least /dev/fd will exist + static const char kFDDir[] = "/dev/fd"; ++#elif defined(OS_HURD) ++ static const rlim_t kSystemDefaultMaxFds = 1024; ++ // Currently always empty, but it exists ++ static const char kFDDir[] = "/dev/fd"; + #endif + + // Get the maximum number of FDs possible. +@@ -221,7 +225,7 @@ void CloseSuperfluousFds(const base::InjectiveMultimap& saved_mapping) { + void SetAllFDsToCloseOnExec() { + #if defined(OS_LINUX) || defined(OS_SOLARIS) + const char fd_dir[] = "/proc/self/fd"; +-#elif defined(OS_MACOSX) || defined(OS_BSD) ++#elif defined(OS_MACOSX) || defined(OS_BSD) || defined(OS_HURD) + const char fd_dir[] = "/dev/fd"; + #endif + ScopedDIR dir_closer(opendir(fd_dir)); +diff --git a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h +index f048e72..8bb0b59 100644 +--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h ++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h +@@ -7,7 +7,7 @@ + + #include + +-#if defined SIP_OS_LINUX ++#if defined SIP_OS_LINUX || defined(SIP_OS_HURD) + #include "cpr_linux_types.h" + #elif defined SIP_OS_WINDOWS + #include "cpr_win_types.h" +diff --git a/media/webrtc/trunk/build/build_config.h b/media/webrtc/trunk/build/build_config.h +index 168fbd6..312674b 100644 +--- a/media/webrtc/trunk/build/build_config.h ++++ b/media/webrtc/trunk/build/build_config.h +@@ -37,6 +37,9 @@ + #elif defined(_WIN32) + #define OS_WIN 1 + #define TOOLKIT_VIEWS 1 ++#elif defined(__GNU__) ++#define OS_HURD 1 ++#define TOOLKIT_GTK + #elif defined(__DragonFly__) + #define OS_DRAGONFLY 1 + #define TOOLKIT_GTK +@@ -70,7 +73,8 @@ + // For access to standard POSIXish features, use OS_POSIX instead of a + // more specific macro. + #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \ +- defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) ++ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) || \ ++ defined(OS_HURD) + #define OS_POSIX 1 + #endif + +diff --git a/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h b/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h +index f376dfa..0f702eb 100644 +--- a/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h ++++ b/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h +@@ -345,6 +345,8 @@ + # define GTEST_OS_OPENBSD 1 + #elif defined __QNX__ + # define GTEST_OS_QNX 1 ++#elif defined(__GNU__) ++# define GTEST_OS_HURD 1 + #endif // __CYGWIN__ + + // Macros for disabling Microsoft Visual C++ warnings. +@@ -611,7 +613,7 @@ struct _RTL_CRITICAL_SECTION; + // To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 + // to your compiler flags. + # define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \ +- || GTEST_OS_QNX) ++ || GTEST_OS_QNX || GTEST_OS_HURD) + #endif // GTEST_HAS_PTHREAD + + #if GTEST_HAS_PTHREAD +@@ -791,7 +793,7 @@ using ::std::tuple_size; + (GTEST_OS_MAC && !GTEST_OS_IOS) || GTEST_OS_IOS_SIMULATOR || \ + (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \ + GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \ +- GTEST_OS_OPENBSD || GTEST_OS_QNX) ++ GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_HURD) + # define GTEST_HAS_DEATH_TEST 1 + # include // NOLINT + #endif +diff --git a/security/sandbox/chromium/build/build_config.h b/security/sandbox/chromium/build/build_config.h +index 8e5fcd7..9172091 100644 +--- a/security/sandbox/chromium/build/build_config.h ++++ b/security/sandbox/chromium/build/build_config.h +@@ -47,6 +47,8 @@ + // we really are using glibc, not uClibc pretending to be glibc + #define LIBC_GLIBC 1 + #endif ++#elif defined(__GNU__) ++#define OS_HURD 1 + #elif defined(_WIN32) + #define OS_WIN 1 + #elif defined(__Fuchsia__) +@@ -84,7 +86,7 @@ + #if defined(OS_AIX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ + defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_MACOSX) || \ + defined(OS_NACL) || defined(OS_NETBSD) || defined(OS_OPENBSD) || \ +- defined(OS_QNX) || defined(OS_SOLARIS) ++ defined(OS_QNX) || defined(OS_SOLARIS) || defined(OS_HURD) + #define OS_POSIX 1 + #endif + diff --git a/patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch b/patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch new file mode 100644 index 0000000000..5cf098e489 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch @@ -0,0 +1,50 @@ +From: Christoph Goehre +Date: Wed, 31 Oct 2012 13:27:07 -0400 +Subject: ipc/chromium: fix #if define() for kFreeBSD and Hurd + +The kFreeBSD and Hurd platforms need some other macros to include +the correct needed headers. +Depended on this some minor changes to call the correct functions +also needed. Also the list of the cpp source file for the chromium +things needs to expanded. +The changes is an adoption of the previous dropped patch 'Fix +ipc/chromium on kFreeBSD and Hurd' from the version 17. +--- + ipc/chromium/src/base/platform_thread_posix.cc | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc +index 481549e..5f9108d 100644 +--- a/ipc/chromium/src/base/platform_thread_posix.cc ++++ b/ipc/chromium/src/base/platform_thread_posix.cc +@@ -13,16 +13,19 @@ + #include + #elif defined(OS_NETBSD) + #include +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) + #include + #include ++//#elif defined(OS_FREEBSD) && !defined(__FreeBSD_kernel__) ++//#include ++//#include + #endif + + #if !defined(OS_MACOSX) + #include + #endif + +-#if defined(OS_BSD) && !defined(OS_NETBSD) && !defined(__GLIBC__) ++#if !defined(OS_BSD) && !defined(NetBSD) && !defined(__FreeBSD_kernel__) && !defined(__GLIBC__) + #include + #endif + +@@ -102,7 +105,7 @@ void PlatformThread::SetName(const char* name) { + // Note that glibc also has a 'pthread_setname_np' api, but it may not be + // available everywhere and it's only benefit over using prctl directly is + // that it can set the name of threads other than the current thread. +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) + prctl(PR_SET_NAME, reinterpret_cast(name), 0, 0, 0); + #elif defined(OS_NETBSD) + pthread_setname_np(pthread_self(), "%s", (void *)name); diff --git a/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch b/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch new file mode 100644 index 0000000000..fb5ec730a8 --- /dev/null +++ b/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch @@ -0,0 +1,234 @@ +From: John Paul Adrian Glaubitz +Date: Sun, 2 Apr 2017 09:14:39 +0200 +Subject: Add m68k support to Thunderbird + +Origin: not yet exist +Bug-Debian: https://bugs.debian.org/859271 +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1325771 +Applied-Upstream: TBD + +All patches have been reviewed by positively by upstream with the +exception of the alignment fixes where upstream wants to use a +C++11 solution instead of the other suggestions I made. This patch +currently uses __attribute__((aligned(4))) to ensure the alignment +is at least 4 bytes. This method is safe and works on gcc and clang +and unlike the suggested alignas() from C++11 does not break on +architectures which require stricter alignment (e.g. alignas(4) +would break on x86_64 while __attribute__((aligned(4))) does not +as it still allows for 8 bytes alignment. + +Cherry-picked and adapted patches from Firefox upstream: +- a31a2d92cf9a2f4e9ad2d12cb74f96579f54fa5e + Bug 1325771 - layout:style: Make sure nsCSSValue has at least 4 bytes alignment +- b65c6cf80f7038f47c7f5d223a6528d4aa4538cf + Bug 1325771 - js:src: Make sure shadow::Shape has at least 4 bytes alignment +- cbbe025c5034cfa28aa2a8a4e557f9a066ddd013 + Bug 1325771 - js:src: Make sure Cell has at least 4 bytes alignment +- 6441fad686d30230a6842a6432bc134ca20c4125 + Bug 1325771 - js:jit: Use 'Feeling Lucky' atomic operations on m68k +- ec66da836071ec0f05a3517947c8e1a68620c399 + Bug 1325771 - mfbt:tests: Handle targets with less strict alignment in TestPair +- 48f3a6331cad497b933dc6e197f7a006b9189290 + Bug 1325771 - ipc:chromium: Add platform defines for m68k +- 26cd64f37741d85bc13c19bc55e3c6e26da59052 + Bug 1325771 - media:webrtc: Add platform defines for m68k +- bd19fe85678f948f60caa864a2af28c3c39059c7 + Bug 1325771 - mfbt:tests: Define RETURN_INSTR for m68k in TestPoisonArea +- a3e704b48760e3d45d20fc6bb13282d3285ba6bb + Bug 1325771 - xpcom: Fix type of result in NS_InvokeByIndex on Linux/m68k +- 174cfc890291778d12241c9a4cfc25ea85fdd3a0 + Bug 1325771 - xpcom: Fix syntax error in PrepareAndDispatch on Linux/m68k +Additional changes: +- Add defines for m68k to double-conversion library +- Make sure both "struct Class" and "struct JSClass" have at + least 4 bytes alignment +--- + build/moz.configure/init.configure | 3 +++ + ipc/chromium/src/build/build_config.h | 3 +++ + js/src/jsfriendapi.h | 2 +- + layout/style/nsCSSValue.h | 2 +- + media/webrtc/trunk/build/build_config.h | 10 ++++++++++ + mfbt/tests/TestPair.cpp | 9 +++++++-- + mfbt/tests/TestPoisonArea.cpp | 3 +++ + python/mozbuild/mozbuild/configure/constants.py | 2 ++ + .../mozbuild/test/configure/test_toolchain_configure.py | 3 +++ + xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp | 3 ++- + xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp | 2 +- + 11 files changed, 36 insertions(+), 6 deletions(-) + +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index a8a730f..cbe3a3f 100644 +--- a/build/moz.configure/init.configure ++++ b/build/moz.configure/init.configure +@@ -667,6 +667,9 @@ def split_triplet(triplet, allow_unknown=False): + elif cpu == 'sh4': + canonical_cpu = 'sh4' + endianness = 'little' ++ elif cpu in ('m68k'): ++ canonical_cpu = 'm68k' ++ endianness = 'big' + elif allow_unknown: + canonical_cpu = cpu + endianness = 'unknown' +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index f695444..23810b9 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -80,6 +80,9 @@ + #define ARCH_CPU_ARMEL 1 + #define ARCH_CPU_32_BITS 1 + #define WCHAR_T_IS_UNSIGNED 1 ++#elif defined(__m68k__) ++#define ARCH_CPU_M68K 1 ++#define ARCH_CPU_32_BITS 1 + #elif defined(__powerpc64__) + #define ARCH_CPU_PPC64 1 + #define ARCH_CPU_64_BITS 1 +diff --git a/js/src/jsfriendapi.h b/js/src/jsfriendapi.h +index 3bcf1dd..08b38b4 100644 +--- a/js/src/jsfriendapi.h ++++ b/js/src/jsfriendapi.h +@@ -593,7 +593,7 @@ public: + uint32_t slotInfo; + + static const uint32_t FIXED_SLOTS_SHIFT = 27; +-}; ++} __attribute__ ((aligned(4))); + + /** + * This layout is shared by all native objects. For non-native objects, the +diff --git a/layout/style/nsCSSValue.h b/layout/style/nsCSSValue.h +index e3030ed..8a240aa 100644 +--- a/layout/style/nsCSSValue.h ++++ b/layout/style/nsCSSValue.h +@@ -1056,7 +1056,7 @@ protected: + mozilla::SharedFontList* MOZ_OWNING_REF mFontFamilyList; + mozilla::css::ComplexColorValue* MOZ_OWNING_REF mComplexColor; + } mValue; +-}; ++} __attribute__ ((aligned(4))); + + struct nsCSSValue::Array final { + +diff --git a/media/webrtc/trunk/build/build_config.h b/media/webrtc/trunk/build/build_config.h +index 312674b..e10a234 100644 +--- a/media/webrtc/trunk/build/build_config.h ++++ b/media/webrtc/trunk/build/build_config.h +@@ -118,6 +118,16 @@ + #define ARCH_CPU_LITTLE_ENDIAN 1 + #elif defined(__pnacl__) + #define ARCH_CPU_32_BITS 1 ++#elif defined(__MIPSEL__) ++#define ARCH_CPU_MIPS_FAMILY 1 ++#define ARCH_CPU_MIPSEL 1 ++#define ARCH_CPU_32_BITS 1 ++#define ARCH_CPU_LITTLE_ENDIAN 1 ++#elif defined(__m68k__) ++#define ARCH_CPU_M68K_FAMILY 1 ++#define ARCH_CPU_M68K 1 ++#define ARCH_CPU_32_BITS 1 ++#define ARCH_CPU_BIG_ENDIAN 1 + #elif defined(__powerpc64__) + #define ARCH_CPU_PPC_FAMILY 1 + #define ARCH_CPU_PPC64 1 +diff --git a/mfbt/tests/TestPair.cpp b/mfbt/tests/TestPair.cpp +index f1fa9c5..41b463a 100644 +--- a/mfbt/tests/TestPair.cpp ++++ b/mfbt/tests/TestPair.cpp +@@ -29,14 +29,19 @@ using mozilla::Pair; + static_assert(sizeof(name##_2) == (size), \ + "Pair<" #T2 ", " #T1 "> has an unexpected size"); + ++static constexpr size_t sizemax(size_t a, size_t b) ++{ ++ return (a > b) ? a : b; ++} ++ + INSTANTIATE(int, int, prim1, 2 * sizeof(int)); +-INSTANTIATE(int, long, prim2, 2 * sizeof(long)); ++INSTANTIATE(int, long, prim2, sizeof(long) + sizemax(sizeof(int), alignof(long))); + + struct EmptyClass { explicit EmptyClass(int) {} }; + struct NonEmpty { char mC; explicit NonEmpty(int) {} }; + + INSTANTIATE(int, EmptyClass, both1, sizeof(int)); +-INSTANTIATE(int, NonEmpty, both2, 2 * sizeof(int)); ++INSTANTIATE(int, NonEmpty, both2, sizeof(int) + alignof(int)); + INSTANTIATE(EmptyClass, NonEmpty, both3, 1); + + struct A { char dummy; explicit A(int) {} }; +diff --git a/mfbt/tests/TestPoisonArea.cpp b/mfbt/tests/TestPoisonArea.cpp +index 06c24ed..763dfbc 100644 +--- a/mfbt/tests/TestPoisonArea.cpp ++++ b/mfbt/tests/TestPoisonArea.cpp +@@ -133,6 +133,9 @@ + #elif defined _ARCH_PPC || defined _ARCH_PWR || defined _ARCH_PWR2 + #define RETURN_INSTR 0x4E800020 /* blr */ + ++#elif defined __m68k__ ++#define RETURN_INSTR 0x4E754E75 /* rts; rts */ ++ + #elif defined __sparc || defined __sparcv9 + #define RETURN_INSTR 0x81c3e008 /* retl */ + +diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py +index 33ae5a4..a67ab80 100644 +--- a/python/mozbuild/mozbuild/configure/constants.py ++++ b/python/mozbuild/mozbuild/configure/constants.py +@@ -46,6 +46,7 @@ CPU_bitness = { + 'arm': 32, + 'hppa': 32, + 'ia64': 64, ++ 'm68k': 32, + 'mips32': 32, + 'mips64': 64, + 'ppc': 32, +@@ -89,6 +90,7 @@ CPU_preprocessor_checks = OrderedDict(( + ('mips64', '__mips64'), + ('mips32', '__mips__'), + ('sh4', '__sh__'), ++ ('m68k', '__m68k__'), + )) + + assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES) +diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +index c64f770..f904120 100755 +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +@@ -1165,6 +1165,9 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest): + 'sh4-unknown-linux-gnu': little_endian + { + '__sh__': 1, + }, ++ 'm68k-unknown-linux-gnu': big_endian + { ++ '__m68k__': 1, ++ }, + } + + PLATFORMS['powerpc64le-unknown-linux-gnu'] = \ +diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp +index 7d042a7..6989340 100644 +--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp ++++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp +@@ -100,7 +100,8 @@ EXPORT_XPCOM_API(nsresult) + NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, + uint32_t paramCount, nsXPTCVariant* params) + { +- uint32_t result, n; ++ nsresult result; ++ uint32_t n; + + n = invoke_count_words(paramCount, params) * 4; + +diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp +index 3720a5c..fc33ba0 100644 +--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp ++++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp +@@ -63,7 +63,7 @@ extern "C" { + case nsXPTType::T_U64 : dp->val.u64 = *((uint64_t*)ap); ap++; break; + case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break; + case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); ap++; break; +- case nsXPTType::T_BOOL : dp->val.b = *((uint32_t* ap); break; ++ case nsXPTType::T_BOOL : dp->val.b = *((uint32_t*)ap); break; + case nsXPTType::T_CHAR : dp->val.c = *(((char*) ap) + 3); break; + case nsXPTType::T_WCHAR : dp->val.wc = *((wchar_t*) ap); break; + default: diff --git a/patches/porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch b/patches/porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch new file mode 100644 index 0000000000..d2193123c3 --- /dev/null +++ b/patches/porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch @@ -0,0 +1,527 @@ +From: Dragan Mladjenovic +Date: Fri, 9 Mar 2018 07:58:43 +0100 +Subject: Bug 1444303 : [MIPS] Fix build failures after Bug 1425580 part 17; + r=jandem + +--- + js/src/jit/mips-shared/LIR-mips-shared.h | 88 +++++++++++++++++++++----------- + js/src/jit/mips32/LIR-mips32.h | 26 ++++++++-- + js/src/jit/mips64/LIR-mips64.h | 33 ++++++++---- + 3 files changed, 102 insertions(+), 45 deletions(-) + +diff --git a/js/src/jit/mips-shared/LIR-mips-shared.h b/js/src/jit/mips-shared/LIR-mips-shared.h +index 43decd1..92a0973 100644 +--- a/js/src/jit/mips-shared/LIR-mips-shared.h ++++ b/js/src/jit/mips-shared/LIR-mips-shared.h +@@ -16,7 +16,9 @@ class LWasmUint32ToDouble : public LInstructionHelper<1, 1, 0> + public: + LIR_HEADER(WasmUint32ToDouble) + +- LWasmUint32ToDouble(const LAllocation& input) { ++ LWasmUint32ToDouble(const LAllocation& input) ++ : LInstructionHelper(classOpcode) ++ { + setOperand(0, input); + } + }; +@@ -27,7 +29,9 @@ class LWasmUint32ToFloat32 : public LInstructionHelper<1, 1, 0> + public: + LIR_HEADER(WasmUint32ToFloat32) + +- LWasmUint32ToFloat32(const LAllocation& input) { ++ LWasmUint32ToFloat32(const LAllocation& input) ++ : LInstructionHelper(classOpcode) ++ { + setOperand(0, input); + } + }; +@@ -38,8 +42,9 @@ class LDivI : public LBinaryMath<1> + public: + LIR_HEADER(DivI); + +- LDivI(const LAllocation& lhs, const LAllocation& rhs, +- const LDefinition& temp) { ++ LDivI(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) ++ : LBinaryMath(classOpcode) ++ { + setOperand(0, lhs); + setOperand(1, rhs); + setTemp(0, temp); +@@ -58,7 +63,8 @@ class LDivPowTwoI : public LInstructionHelper<1, 1, 1> + LIR_HEADER(DivPowTwoI) + + LDivPowTwoI(const LAllocation& lhs, int32_t shift, const LDefinition& temp) +- : shift_(shift) ++ : LInstructionHelper(classOpcode), ++ shift_(shift) + { + setOperand(0, lhs); + setTemp(0, temp); +@@ -67,11 +73,9 @@ class LDivPowTwoI : public LInstructionHelper<1, 1, 1> + const LAllocation* numerator() { + return getOperand(0); + } +- +- int32_t shift() { ++ int32_t shift() const { + return shift_; + } +- + MDiv* mir() const { + return mir_->toDiv(); + } +@@ -82,8 +86,8 @@ class LModI : public LBinaryMath<1> + public: + LIR_HEADER(ModI); + +- LModI(const LAllocation& lhs, const LAllocation& rhs, +- const LDefinition& callTemp) ++ LModI(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& callTemp) ++ : LBinaryMath(classOpcode) + { + setOperand(0, lhs); + setOperand(1, rhs); +@@ -93,7 +97,6 @@ class LModI : public LBinaryMath<1> + const LDefinition* callTemp() { + return getTemp(0); + } +- + MMod* mir() const { + return mir_->toMod(); + } +@@ -105,17 +108,17 @@ class LModPowTwoI : public LInstructionHelper<1, 1, 0> + + public: + LIR_HEADER(ModPowTwoI); +- int32_t shift() +- { +- return shift_; +- } + + LModPowTwoI(const LAllocation& lhs, int32_t shift) +- : shift_(shift) ++ : LInstructionHelper(classOpcode), ++ shift_(shift) + { + setOperand(0, lhs); + } + ++ int32_t shift() const { ++ return shift_; ++ } + MMod* mir() const { + return mir_->toMod(); + } +@@ -130,7 +133,8 @@ class LModMaskI : public LInstructionHelper<1, 1, 2> + + LModMaskI(const LAllocation& lhs, const LDefinition& temp0, const LDefinition& temp1, + int32_t shift) +- : shift_(shift) ++ : LInstructionHelper(classOpcode), ++ shift_(shift) + { + setOperand(0, lhs); + setTemp(0, temp0); +@@ -140,7 +144,6 @@ class LModMaskI : public LInstructionHelper<1, 1, 2> + int32_t shift() const { + return shift_; + } +- + MMod* mir() const { + return mir_->toMod(); + } +@@ -153,7 +156,9 @@ class LTableSwitch : public LInstructionHelper<0, 1, 2> + LIR_HEADER(TableSwitch); + + LTableSwitch(const LAllocation& in, const LDefinition& inputCopy, +- const LDefinition& jumpTablePointer, MTableSwitch* ins) { ++ const LDefinition& jumpTablePointer, MTableSwitch* ins) ++ : LInstructionHelper(classOpcode) ++ { + setOperand(0, in); + setTemp(0, inputCopy); + setTemp(1, jumpTablePointer); +@@ -163,7 +168,6 @@ class LTableSwitch : public LInstructionHelper<0, 1, 2> + MTableSwitch* mir() const { + return mir_->toTableSwitch(); + } +- + const LAllocation* index() { + return getOperand(0); + } +@@ -185,6 +189,7 @@ class LTableSwitchV : public LInstructionHelper<0, BOX_PIECES, 3> + LTableSwitchV(const LBoxAllocation& input, const LDefinition& inputCopy, + const LDefinition& floatCopy, const LDefinition& jumpTablePointer, + MTableSwitch* ins) ++ : LInstructionHelper(classOpcode) + { + setBoxOperand(InputValue, input); + setTemp(0, inputCopy); +@@ -215,6 +220,10 @@ class LMulI : public LBinaryMath<0> + public: + LIR_HEADER(MulI); + ++ LMulI() ++ : LBinaryMath(classOpcode) ++ {} ++ + MMul* mir() { + return mir_->toMul(); + } +@@ -225,6 +234,10 @@ class LUDivOrMod : public LBinaryMath<0> + public: + LIR_HEADER(UDivOrMod); + ++ LUDivOrMod() ++ : LBinaryMath(classOpcode) ++ {} ++ + MBinaryArithInstruction* mir() const { + MOZ_ASSERT(mir_->isDiv() || mir_->isMod()); + return static_cast(mir_); +@@ -259,12 +272,14 @@ class LWasmUnalignedLoadBase : public details::LWasmLoadBase + public: + typedef LWasmLoadBase Base; + +- explicit LWasmUnalignedLoadBase(const LAllocation& ptr, const LDefinition& valueHelper) +- : Base(ptr, LAllocation()) ++ explicit LWasmUnalignedLoadBase(LNode::Opcode opcode, const LAllocation& ptr, ++ const LDefinition& valueHelper) ++ : Base(opcode, ptr, LAllocation()) + { + Base::setTemp(0, LDefinition::BogusTemp()); + Base::setTemp(1, valueHelper); + } ++ + const LAllocation* ptr() { + return Base::getOperand(0); + } +@@ -278,19 +293,21 @@ class LWasmUnalignedLoadBase : public details::LWasmLoadBase + class LWasmUnalignedLoad : public details::LWasmUnalignedLoadBase<1> + { + public: ++ LIR_HEADER(WasmUnalignedLoad); ++ + explicit LWasmUnalignedLoad(const LAllocation& ptr, const LDefinition& valueHelper) +- : LWasmUnalignedLoadBase(ptr, valueHelper) ++ : LWasmUnalignedLoadBase(classOpcode, ptr, valueHelper) + {} +- LIR_HEADER(WasmUnalignedLoad); + }; + + class LWasmUnalignedLoadI64 : public details::LWasmUnalignedLoadBase + { + public: ++ LIR_HEADER(WasmUnalignedLoadI64); ++ + explicit LWasmUnalignedLoadI64(const LAllocation& ptr, const LDefinition& valueHelper) +- : LWasmUnalignedLoadBase(ptr, valueHelper) ++ : LWasmUnalignedLoadBase(classOpcode, ptr, valueHelper) + {} +- LIR_HEADER(WasmUnalignedLoadI64); + }; + + namespace details { +@@ -305,12 +322,15 @@ class LWasmUnalignedStoreBase : public LInstructionHelper<0, NumOps, 2> + static const size_t PtrIndex = 0; + static const size_t ValueIndex = 1; + +- LWasmUnalignedStoreBase(const LAllocation& ptr, const LDefinition& valueHelper) ++ LWasmUnalignedStoreBase(LNode::Opcode opcode, const LAllocation& ptr, ++ const LDefinition& valueHelper) ++ : Base(opcode) + { + Base::setOperand(0, ptr); + Base::setTemp(0, LDefinition::BogusTemp()); + Base::setTemp(1, valueHelper); + } ++ + MWasmStore* mir() const { + return Base::mir_->toWasmStore(); + } +@@ -328,12 +348,14 @@ class LWasmUnalignedStore : public details::LWasmUnalignedStoreBase<2> + { + public: + LIR_HEADER(WasmUnalignedStore); ++ + LWasmUnalignedStore(const LAllocation& ptr, const LAllocation& value, + const LDefinition& valueHelper) +- : LWasmUnalignedStoreBase(ptr, valueHelper) ++ : LWasmUnalignedStoreBase(classOpcode, ptr, valueHelper) + { + setOperand(1, value); + } ++ + const LAllocation* value() { + return Base::getOperand(ValueIndex); + } +@@ -345,10 +367,11 @@ class LWasmUnalignedStoreI64 : public details::LWasmUnalignedStoreBase<1 + INT64 + LIR_HEADER(WasmUnalignedStoreI64); + LWasmUnalignedStoreI64(const LAllocation& ptr, const LInt64Allocation& value, + const LDefinition& valueHelper) +- : LWasmUnalignedStoreBase(ptr, valueHelper) ++ : LWasmUnalignedStoreBase(classOpcode, ptr, valueHelper) + { + setInt64Operand(1, value); + } ++ + const LInt64Allocation value() { + return getInt64Operand(ValueIndex); + } +@@ -359,7 +382,9 @@ class LWasmCompareExchangeI64 : public LInstructionHelpertoWasmAtomicBinopHeap(); + } +diff --git a/js/src/jit/mips32/LIR-mips32.h b/js/src/jit/mips32/LIR-mips32.h +index eafa288..64e55a4 100644 +--- a/js/src/jit/mips32/LIR-mips32.h ++++ b/js/src/jit/mips32/LIR-mips32.h +@@ -18,7 +18,8 @@ class LBoxFloatingPoint : public LInstructionHelper<2, 1, 1> + LIR_HEADER(BoxFloatingPoint); + + LBoxFloatingPoint(const LAllocation& in, const LDefinition& temp, MIRType type) +- : type_(type) ++ : LInstructionHelper(classOpcode), ++ type_(type) + { + setOperand(0, in); + setTemp(0, temp); +@@ -37,6 +38,10 @@ class LUnbox : public LInstructionHelper<1, 2, 0> + public: + LIR_HEADER(Unbox); + ++ LUnbox() ++ : LInstructionHelper(classOpcode) ++ {} ++ + MUnbox* mir() const { + return mir_->toUnbox(); + } +@@ -61,7 +66,8 @@ class LUnboxFloatingPoint : public LInstructionHelper<1, 2, 0> + static const size_t Input = 0; + + LUnboxFloatingPoint(const LBoxAllocation& input, MIRType type) +- : type_(type) ++ : LInstructionHelper(classOpcode), ++ type_(type) + { + setBoxOperand(Input, input); + } +@@ -69,7 +75,6 @@ class LUnboxFloatingPoint : public LInstructionHelper<1, 2, 0> + MUnbox* mir() const { + return mir_->toUnbox(); + } +- + MIRType type() const { + return type_; + } +@@ -87,14 +92,17 @@ class LDivOrModI64 : public LCallInstructionHelperisDiv() || mir_->isMod()); + return static_cast(mir_); + } ++ + bool canBeDivideByZero() const { + if (mir_->isMod()) + return mir_->toMod()->canBeDivideByZero(); +@@ -122,6 +130,7 @@ class LUDivOrModI64 : public LCallInstructionHelperisDiv() || mir_->isMod()); + return static_cast(mir_); + } ++ + bool canBeDivideByZero() const { + if (mir_->isMod()) + return mir_->toMod()->canBeDivideByZero(); +@@ -154,6 +164,7 @@ class LWasmTruncateToInt64 : public LCallInstructionHelper + LIR_HEADER(WasmTruncateToInt64); + + explicit LWasmTruncateToInt64(const LAllocation& in) ++ : LCallInstructionHelper(classOpcode) + { + setOperand(0, in); + } +@@ -168,7 +179,9 @@ class LInt64ToFloatingPoint : public LCallInstructionHelper<1, INT64_PIECES, 0> + public: + LIR_HEADER(Int64ToFloatingPoint); + +- explicit LInt64ToFloatingPoint(const LInt64Allocation& in) { ++ explicit LInt64ToFloatingPoint(const LInt64Allocation& in) ++ : LCallInstructionHelper(classOpcode) ++ { + setInt64Operand(0, in); + } + +@@ -183,6 +196,7 @@ class LWasmAtomicLoadI64 : public LInstructionHelper + LIR_HEADER(WasmAtomicLoadI64); + + LWasmAtomicLoadI64(const LAllocation& ptr) ++ : LInstructionHelper(classOpcode) + { + setOperand(0, ptr); + } +@@ -200,7 +214,9 @@ class LWasmAtomicStoreI64 : public LInstructionHelper<0, 1 + INT64_PIECES, 1> + public: + LIR_HEADER(WasmAtomicStoreI64); + +- LWasmAtomicStoreI64(const LAllocation& ptr, const LInt64Allocation& value, const LDefinition& tmp) ++ LWasmAtomicStoreI64(const LAllocation& ptr, const LInt64Allocation& value, ++ const LDefinition& tmp) ++ : LInstructionHelper(classOpcode) + { + setOperand(0, ptr); + setInt64Operand(1, value); +diff --git a/js/src/jit/mips64/LIR-mips64.h b/js/src/jit/mips64/LIR-mips64.h +index 0963043..2056eea 100644 +--- a/js/src/jit/mips64/LIR-mips64.h ++++ b/js/src/jit/mips64/LIR-mips64.h +@@ -12,10 +12,19 @@ namespace jit { + + class LUnbox : public LInstructionHelper<1, 1, 0> + { ++ protected: ++ LUnbox(LNode::Opcode opcode, const LAllocation& input) ++ : LInstructionHelper(opcode) ++ { ++ setOperand(0, input); ++ } ++ + public: + LIR_HEADER(Unbox); + +- explicit LUnbox(const LAllocation& input) { ++ explicit LUnbox(const LAllocation& input) ++ : LInstructionHelper(classOpcode) ++ { + setOperand(0, input); + } + +@@ -37,7 +46,7 @@ class LUnboxFloatingPoint : public LUnbox + LIR_HEADER(UnboxFloatingPoint); + + LUnboxFloatingPoint(const LAllocation& input, MIRType type) +- : LUnbox(input), ++ : LUnbox(classOpcode, input), + type_(type) + { } + +@@ -51,7 +60,9 @@ class LDivOrModI64 : public LBinaryMath<1> + public: + LIR_HEADER(DivOrModI64) + +- LDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) { ++ LDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) ++ : LBinaryMath(classOpcode) ++ { + setOperand(0, lhs); + setOperand(1, rhs); + setTemp(0, temp); +@@ -60,11 +71,11 @@ class LDivOrModI64 : public LBinaryMath<1> + const LDefinition* remainder() { + return getTemp(0); + } +- + MBinaryArithInstruction* mir() const { + MOZ_ASSERT(mir_->isDiv() || mir_->isMod()); + return static_cast(mir_); + } ++ + bool canBeDivideByZero() const { + if (mir_->isMod()) + return mir_->toMod()->canBeDivideByZero(); +@@ -88,7 +99,9 @@ class LUDivOrModI64 : public LBinaryMath<1> + public: + LIR_HEADER(UDivOrModI64); + +- LUDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) { ++ LUDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) ++ : LBinaryMath(classOpcode) ++ { + setOperand(0, lhs); + setOperand(1, rhs); + setTemp(0, temp); +@@ -97,7 +110,6 @@ class LUDivOrModI64 : public LBinaryMath<1> + const LDefinition* remainder() { + return getTemp(0); + } +- + const char* extraName() const { + return mir()->isTruncated() ? "Truncated" : nullptr; + } +@@ -106,7 +118,6 @@ class LUDivOrModI64 : public LBinaryMath<1> + MOZ_ASSERT(mir_->isDiv() || mir_->isMod()); + return static_cast(mir_); + } +- + bool canBeDivideByZero() const { + if (mir_->isMod()) + return mir_->toMod()->canBeDivideByZero(); +@@ -125,7 +136,9 @@ class LWasmTruncateToInt64 : public LInstructionHelper<1, 1, 0> + public: + LIR_HEADER(WasmTruncateToInt64); + +- explicit LWasmTruncateToInt64(const LAllocation& in) { ++ explicit LWasmTruncateToInt64(const LAllocation& in) ++ : LInstructionHelper(classOpcode) ++ { + setOperand(0, in); + } + +@@ -139,7 +152,9 @@ class LInt64ToFloatingPoint : public LInstructionHelper<1, 1, 0> + public: + LIR_HEADER(Int64ToFloatingPoint); + +- explicit LInt64ToFloatingPoint(const LInt64Allocation& in) { ++ explicit LInt64ToFloatingPoint(const LInt64Allocation& in) ++ : LInstructionHelper(classOpcode) ++ { + setInt64Operand(0, in); + } + diff --git a/patches/porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch b/patches/porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch new file mode 100644 index 0000000000..41a37b9102 --- /dev/null +++ b/patches/porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch @@ -0,0 +1,26 @@ +From: Dragan Mladjenovic +Date: Mon, 12 Mar 2018 10:31:24 +0100 +Subject: Bug 1444834 : [MIPS] Stubout MacroAssembler::speculationBarrier; + r=jandem + +--- + js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp +index 6b3c19f..208cd21 100644 +--- a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp ++++ b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp +@@ -2846,3 +2846,11 @@ MacroAssembler::atomicEffectOpJS(Scalar::Type arrayType, const Synchronization& + atomicEffectOp(arrayType, sync, op, value, mem, valueTemp, offsetTemp, maskTemp); + } + ++// ======================================================================== ++// Spectre Mitigations. ++ ++void ++MacroAssembler::speculationBarrier() ++{ ++ MOZ_CRASH(); ++} +\ No newline at end of file diff --git a/patches/porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch b/patches/porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch new file mode 100644 index 0000000000..25ef8fad0c --- /dev/null +++ b/patches/porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch @@ -0,0 +1,21 @@ +From: Mike Hommey +Date: Wed, 21 Jun 2017 19:06:40 +0200 +Subject: Fix CPU_ARCH test for libjpeg on mips + +--- + media/libjpeg/moz.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/media/libjpeg/moz.build b/media/libjpeg/moz.build +index 910d89d..aaa41d6 100644 +--- a/media/libjpeg/moz.build ++++ b/media/libjpeg/moz.build +@@ -83,7 +83,7 @@ if CONFIG['LIBJPEG_TURBO_ASFLAGS']: + 'simd/jsimd_arm64.c', + 'simd/jsimd_arm64_neon.S', + ] +- elif CONFIG['CPU_ARCH'] == 'mips': ++ elif CONFIG['CPU_ARCH'] == 'mips32': + SOURCES += [ + 'simd/jsimd_mips.c', + 'simd/jsimd_mips_dspr2.S', diff --git a/patches/porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch b/patches/porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch new file mode 100644 index 0000000000..9b3e0a043d --- /dev/null +++ b/patches/porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch @@ -0,0 +1,24 @@ +From: Carsten Schoenert +Date: Wed, 21 Jun 2017 18:41:53 +0200 +Subject: FTBFS s390x: Use jit/none/AtomicOperations-sparc.h on s390x + +s390x needs also to use the atomic operation instructions that are also +used on sparc as they are generic enough. +--- + js/src/jit/AtomicOperations.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h +index a8970b0..1cf22bf 100644 +--- a/js/src/jit/AtomicOperations.h ++++ b/js/src/jit/AtomicOperations.h +@@ -364,6 +364,9 @@ AtomicOperations::isLockfreeJS(int32_t size) + #elif defined(__aarch64__) + # if defined(__clang__) || defined(__GNUC__) + # include "jit/arm64/AtomicOperations-arm64.h" ++# elif defined(__s390__) ++ // The sparc file is more or less generic and works on s390x. ++# include "jit/none/AtomicOperations-sparc.h" + # else + # error "No AtomicOperations support for this platform+compiler combination" + # endif diff --git a/patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch b/patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch new file mode 100644 index 0000000000..124a780e79 --- /dev/null +++ b/patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch @@ -0,0 +1,559 @@ +From: John Paul Adrian Glaubitz +Date: Thu, 18 May 2017 19:08:05 +0200 +Subject: Add sh4 support to Thunderbird + +Cherry-picked and adapted patches from Firefox upstream: +- 5a74d13630a969473f72a143f37728f5bb87f552 +Bug 1329194 - mozbuild: Add SH4 as target architecture. +- b179235c38eb631286f9e2fd4a7b23361dbab6d2 +Bug 1329194 - js:jit: Use PowerPC atomic operations on SH. +- ba58645c87ed7e08b16adc3b40f0c6e3b6a2e140 +Bug 1329194 - mfbt:tests: Define RETURN_INSTR for SH in TestPoisonArea. +- 942df3d3a4a1db3d182e97c54fb1705c50128470 +Bug 1329194 - ipc:chromium: Add platform defines for SH. +- 85ae466ed90b3a0cac396aed24722ce4d0febb31 +Bug 1329194 - media:webrtc: Add platform defines for SH. +- 5a74d13630a969473f72a143f37728f5bb87f552 +Bug 1329194 - mozbuild: Add SH4 as target architecture. +- (not committed upstream yet) +Bug 382214 - xpcom: Add xptcall support for Linux/SH +- (not committed upstream yet) +Bug 382214 - xpcom: Make SH xpctcall inline assembly position-independent + +Closes: #859508 +--- + python/mozbuild/mozbuild/configure/constants.py | 1 + + .../test/configure/test_toolchain_configure.py | 3 + + xpcom/reflect/xptcall/md/unix/moz.build | 5 + + .../xptcall/md/unix/xptcinvoke_linux_sh.cpp | 210 +++++++++++++++++ + .../reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp | 262 +++++++++++++++++++++ + 5 files changed, 481 insertions(+) + create mode 100644 xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp + create mode 100644 xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp + +diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py +index a67ab80..c31464b 100644 +--- a/python/mozbuild/mozbuild/configure/constants.py ++++ b/python/mozbuild/mozbuild/configure/constants.py +@@ -91,6 +91,7 @@ CPU_preprocessor_checks = OrderedDict(( + ('mips32', '__mips__'), + ('sh4', '__sh__'), + ('m68k', '__m68k__'), ++ ('sh4', '__sh__'), + )) + + assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES) +diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +index a1b444a..0069faf 100755 +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +@@ -1168,6 +1168,9 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest): + 'm68k-unknown-linux-gnu': big_endian + { + '__m68k__': 1, + }, ++ 'sh4-unknown-linux-gnu': little_endian + { ++ '__sh__': 1, ++ }, + } + + PLATFORMS['powerpc64le-unknown-linux-gnu'] = \ +diff --git a/xpcom/reflect/xptcall/md/unix/moz.build b/xpcom/reflect/xptcall/md/unix/moz.build +index 4c2c35f..ff916d2 100644 +--- a/xpcom/reflect/xptcall/md/unix/moz.build ++++ b/xpcom/reflect/xptcall/md/unix/moz.build +@@ -325,6 +325,11 @@ if CONFIG['OS_ARCH'] == 'Linux': + '-fomit-frame-pointer', + '-mbackchain', + ] ++ elif CONFIG['OS_TEST'] in ('sh4', 'sh4a'): ++ SOURCES += [ ++ 'xptcinvoke_linux_sh.cpp', ++ 'xptcstubs_linux_sh.cpp', ++ ] + + FINAL_LIBRARY = 'xul' + +diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp +new file mode 100644 +index 0000000..6462551 +--- /dev/null ++++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp +@@ -0,0 +1,210 @@ ++/* -*- Mode: C; tab-width: 8; 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): ++ * - Copyright (C) 2008-2009 STMicroelectronics ++ * ++ * 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. ++ * ++ * Based on the neutroni port, however that assumed that the compiler was pushing params ++ * onto the stack. Change to take this into account. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++/* Recommended reference guides are: ++ * ++ * + SH-4 CPU Core Architecture - http://www.st.com/resource/en/user_manual/cd00147165.pdf ++ * + SH-4 Software Manual - https://documentation.renesas.com/eng/products/mpumcu/rej09b0318_sh_4sm.pdf ++ * ++ */ ++ ++#include "xptcprivate.h" ++ ++extern "C" { ++ ++const int c_int_register_params = 4; ++const int c_float_register_params = 8; ++ ++static PRUint32 __attribute__((__used__)) ++copy_to_stack(PRUint32 **that,PRUint32 methodIndex,PRUint32 paramCount, nsXPTCVariant* s,PRUint32* data) ++{ ++ int intCount = 1; // Because of that ++ int floatCount = 0; ++ PRUint32 *intRegParams=data+1 ; ++ float *floatRegParams = (float *)(data+4); ++ ++ /* Push the that register into the right place so it can be restored on exit */ ++ *data= (PRUint32)(that); ++ data+=12; /* 4 integer registers, and 8 floating point registers */ ++ ++ for ( PRUint32 i = 0; i < paramCount; ++i, ++s ) ++ { ++ nsXPTType type = s->IsPtrData() ? nsXPTType::T_I32 : s->type; ++ ++ switch ( type ) { ++ case nsXPTType::T_I64: ++ case nsXPTType::T_U64: ++ // Space to pass in registers? ++ if ( (c_int_register_params - intCount) >= 2 ) { ++ *((PRInt64 *) intRegParams) = s->val.i64; ++ intRegParams += 2; ++ intCount += 2; ++ } ++ else { ++ *((PRInt64*) data) = s->val.i64; ++ data += 2; ++ } ++ break; ++ case nsXPTType::T_FLOAT: ++ // Space to pass in registers? ++ if ( floatCount < c_float_register_params ) { ++ *floatRegParams = s->val.f; ++ ++floatCount; ++ ++floatRegParams; ++ } ++ else { ++ *((float*) data) = s->val.f; ++ ++data; ++ } ++ break; ++ case nsXPTType::T_DOUBLE: ++ // Space to pass in registers? ++ if ( (c_float_register_params - floatCount) >= 2 ) { ++ if ( (floatCount & 1) != 0 ) { ++ ++floatCount; ++ ++floatRegParams; ++ } ++ *(double *)floatRegParams = s->val.d; ++ floatCount += 2; ++ floatRegParams += 2; ++ } ++ else { ++ *((double *) data) = s->val.d; ++ data += 2; ++ } ++ break; ++ default: // 32 (non-float) value ++ PRInt32 value = (PRInt32) (s->IsPtrData() ? s->ptr : s->val.p); ++ // Space to pass in registers? ++ if ( intCount < c_int_register_params ) { ++ *intRegParams = value; ++ ++intRegParams; ++ ++intCount; ++ } ++ else { ++ *data = value; ++ ++data; ++ } ++ break; ++ } ++ } ++ ++ /* Now calculate the return address ++ * Dereference that to get vtable pointer ++ */ ++ return *( (*(that))+(methodIndex) ); ++ ++} ++ ++} ++ ++ /* This was originally done as a C function, but the original code was ++ * relying on how the compiler laid out the stack. Later versions of ++ * gcc do a better job of optimising and never push the parameters on the ++ * stack. So it is simpler to just write the whole thing in assembler anyway ++ */ ++ ++ /* Because the SH processor passes the first few parameters in registers ++ it is a bit tricky setting things up right. To make things easier, ++ all the hard work will be done by copy_to_stack above. We pass to it ++ a chunk of memory, the bottom of which will be copied to registers r4 to r7 ++ and fr4 to fr11 before calling the target function. ++ */ ++ ++/* r4= that, r5=methodIndex,r6=paramCount,r7=params */ ++ ++ __asm__ ( ++ ++ ++ /* Make space for parameters to be passed to the method. Assume worst case ++ 8 bytes per parameter. Also leave space for 4 longs and 8 floats that ++ will be put into registers. The worst case is all int64 parameters ++ and even in this case 8 bytes are passed in registers so we can ++ deduct this from our allocation. ++ */ ++ ".section .text\n" ++ ".balign 4\n" ++ ".global NS_InvokeByIndex\n" ++ "NS_InvokeByIndex:\n" ++ "mov.l r14, @-r15 \n\t" // Push frame ++ "sts.l pr, @-r15 \n\t" // Push link ++ "mov.l r8, @-r15 \n\t" // Save ++ "mov r15, r14\n\t" // Set frame ++ "mov #3, r1 \n\t" // Assume worse case, all params are 64bit, hence *8 ++ "mov r6, r2\n\t" ++ "shld r1, r2 \n\t" ++ "mov r2, r8 \n\t" // Save stack drop ++ "add #48, r2 \n\t" // Space for 4 longs, 8 floats ++ "sub r2, r15 \n\t" // Drop stack ++ "mov.l 1f, r1 \n\t" // Get relative address of copy_to_stack_function ++ "bsrf r1 \n\t" ++ "mov.l r15, @-r15 \n\t" // Params will be dumped here ++ "0:\n\t" ++ "add #4, r15 \n\t" // Pop stack ptr param. r0 contains method address ++ ++ /* Now everything is laid out nicely in the stack. We just have to ++ load values at the top end of the memory area into registers and ++ make the call. We may load more things into registers than needed, ++ but nobody will care about that. ++ */ ++ ++ "mov.l @r15+, r4 \n\t" // that ++ "mov.l @r15+, r5 \n\t" ++ "mov.l @r15+, r6 \n\t" ++ "mov.l @r15+, r7 \n\t" ++ "fmov.s @r15+, fr5 \n\t" ++ "fmov.s @r15+, fr4 \n\t" ++ "fmov.s @r15+, fr7 \n\t" ++ "fmov.s @r15+, fr6 \n\t" ++ "fmov.s @r15+, fr9 \n\t" ++ "fmov.s @r15+, fr8 \n\t" ++ "fmov.s @r15+, fr11 \n\t" ++ "jsr @r0 \n\t" // Invoke method ++ "fmov.s @r15+, fr10 \n\t" ++ "add r8, r15\n\t" // Pop stack back ++ "mov.l @r15+, r8\n\t" // Restore r8 ++ "lds.l @r15+, pr\n\t" ++ "rts\n\t" ++ "mov.l @r15+, r14\n\t" ++ ".balign 4\n\t" ++ "1: .long copy_to_stack - 0b \n\t" ++ ); +diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp +new file mode 100644 +index 0000000..b40482d +--- /dev/null ++++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp +@@ -0,0 +1,262 @@ ++/* -*- Mode: C; tab-width: 8; 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) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * - Copyright (C) 2008-2009 STMicroelectronics ++ * ++ * 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. ++ * ++ * Based on the neutrino code, with some bug fixes and using the C preprocessor ++ * like all the other ports rather than the python script. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++/* Recommended reference guides are: ++ * ++ * + SH-4 CPU Core Architecture - http://www.st.com/resource/en/user_manual/cd00147165.pdf ++ * + SH-4 Software Manual - https://documentation.renesas.com/eng/products/mpumcu/rej09b0318_sh_4sm.pdf ++ * ++ */ ++ ++#include "xptcprivate.h" ++#include "xptiprivate.h" ++ ++const int c_int_register_params = 3; ++const int c_float_register_params = 8; ++ ++/* ++ Dispatch function for all stubs. ++ ++ The parameters to the original function are spread between 'data' which ++ is value of the stack pointer when the stub was called, intRegParams which ++ points to an area containing the values of r5, r6 and r7 when the stub was ++ called and floatRegParams which points to an area containing the values ++ of float registers fr4 to fr11 when the stub was called. ++ ++ */ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, int methodIndex, PRUint32* data, ++ PRUint32 *intRegParams, float *floatRegParams) ++{ ++#define PARAM_BUFFER_COUNT 16 ++ ++ nsresult result = NS_ERROR_FAILURE; ++ int intCount = 0; ++ int floatCount = 0; ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint8 paramCount; ++ PRUint8 i; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no interface info"); ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ ++ for ( i = 0; i < paramCount; ++i ) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ nsXPTType type = param.IsOut() ? nsXPTType::T_I32 : param.GetType(); ++ ++ switch ( type ) { ++ case nsXPTType::T_I64: ++ case nsXPTType::T_U64: ++ // Was this passed in a register? ++ if ( (c_int_register_params - intCount) >= 2 ) { ++ dp->val.i64 = *((PRInt64 *) intRegParams); ++ intRegParams += 2; ++ intCount += 2; ++ } ++ else { ++ dp->val.i64 = *((PRInt64*) data); ++ data += 2; ++ } ++ break; ++ case nsXPTType::T_FLOAT: ++ // Was this passed in a register? ++ if ( floatCount < c_float_register_params ) { ++ dp->val.f = *floatRegParams; ++ ++floatCount; ++ ++floatRegParams; ++ } ++ else { ++ dp->val.f = *((float*) data); ++ ++data; ++ } ++ break; ++ case nsXPTType::T_DOUBLE: ++ // Was this passed in a register? ++ if ( (c_float_register_params - floatCount) >= 2 ) { ++ if ( floatCount & 1 != 0 ) { ++ ++floatCount; ++ ++floatRegParams; ++ } ++ dp->val.d = *(double *)floatRegParams; ++ floatCount += 2; ++ floatRegParams += 2; ++ } ++ else { ++ dp->val.d = *((double *) data); ++ data += 2; ++ } ++ break; ++ default: // 32-bit (non-float) value ++ // Was this passed in a register? ++ if ( intCount < c_int_register_params ) { ++ dp->val.i32 = *intRegParams; ++ ++intRegParams; ++ ++intCount; ++ } ++ else { ++ dp->val.i32 = *data; ++ ++data; ++ } ++ break; ++ } ++ } ++ ++ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams); ++ ++ if(dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++ ++__asm__ ( ++ ".text\n" ++ ".little\n" ++ ++ ".globl SharedStub\n" ++ ".type SharedStub, @function\n" ++ "SharedStub:\n" ++ "mov r15, r1\n" ++ "mov.l r14,@-r15\n" ++ "sts.l pr,@-r15\n" ++ "mov r15, r14\n" ++ ++ /* Some parameters might have been passed in registers, so push them ++ * all onto the stack, PrepareAndDispatch can then work out whats what ++ * given method type information. ++ */ ++ "mov.l r7, @-r15\n" ++ "mov.l r6, @-r15\n" ++ "mov.l r5, @-r15\n" ++ "mov r15, r7\n" /* r7 = PrepareAndDispatch intRegParams param */ ++ ++ "fmov.s fr10, @-r15\n" ++ "fmov.s fr11, @-r15\n" ++ "fmov.s fr8, @-r15\n" ++ "fmov.s fr9, @-r15\n" ++ "fmov.s fr6, @-r15\n" ++ "fmov.s fr7, @-r15\n" ++ "fmov.s fr4, @-r15\n" ++ "fmov.s fr5, @-r15\n" ++ "mov.l r15, @-r15\n" /* PrepareAndDispatch floatRegParams param */ ++ ++ "mov r1, r6\n" /* r6 = PrepareAndDispatch data param */ ++ ++ "mov.l 1f, r1\n" ++ "bsrf r1\n" /* Note, following instruction is executed first*/ ++ "mov r2, r5\n" /* r5 = PrepareAndDispatch methodIndex param */ ++ "0:\n" ++ ++ "mov r14,r15\n" ++ "lds.l @r15+,pr\n" ++ "mov.l @r15+,r14\n" ++ "rts\n" ++ "nop\n" ++ ".align 2\n" ++ "1:\n" ++ ".long PrepareAndDispatch - 0b\n" ++ ); ++ ++#define STUB_ENTRY(n) \ ++__asm__( \ ++ ".text\n" \ ++ ".align 1 \n" \ ++ ".if " #n " < 10\n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub" #n "Ev,@function\n"\ ++ "_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 100\n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub" #n "Ev,@function\n"\ ++ "_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 1000\n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub" #n "Ev,@function\n"\ ++ "_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \ ++ ".else\n\t" \ ++ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \ ++ ".endif\n\t" \ ++ "mov.l 1f, r1 \n" \ ++ ".if "#n" < 128 \n" \ ++ "braf r1 \n" \ ++ " mov #"#n",r2 \n" \ ++ ".elseif "#n" < 256 \n" \ ++ "mov #"#n", r2 \n" \ ++ "braf r1 \n" \ ++ " extu.b r2, r2 \n" \ ++ ".else \n" \ ++ "mov #"#n" & 0xff,r2 \n" \ ++ "extu.b r2, r2 \n" \ ++ "mov #"#n">>8, r3 \n" \ ++ "shll8 r3 \n" \ ++ "braf r1 \n" \ ++ " or r3, r2 \n" \ ++ ".endif \n" \ ++ "0: \n" \ ++ ".align 2\n" \ ++ "1:\n" \ ++ ".long SharedStub - 0b\n" \ ++ ); ++ ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" diff --git a/patches/porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch b/patches/porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch new file mode 100644 index 0000000000..ca37378f4e --- /dev/null +++ b/patches/porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch @@ -0,0 +1,25 @@ +From: Michael Karcher +Date: Thu, 1 Feb 2018 00:04:36 +0100 +Subject: Bug 1434726 - Early startup crash on Linux sparc64 in HashIIDPtrKey + +Origin: not yet exist +Bug-Debian: not yet exist +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1434726 +Applied-Upstream: TBD +--- + js/xpconnect/src/XPCMaps.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/xpconnect/src/XPCMaps.cpp b/js/xpconnect/src/XPCMaps.cpp +index bb99b9f..837d5d7 100644 +--- a/js/xpconnect/src/XPCMaps.cpp ++++ b/js/xpconnect/src/XPCMaps.cpp +@@ -23,7 +23,7 @@ using namespace mozilla; + static PLDHashNumber + HashIIDPtrKey(const void* key) + { +- return HashGeneric(*((uintptr_t*)key)); ++ return HashGeneric(((nsID*)key)->m0); + } + + static bool diff --git a/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch b/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch new file mode 100644 index 0000000000..186863013d --- /dev/null +++ b/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch @@ -0,0 +1,21 @@ +From: Mike Hommey +Date: Sun, 2 Nov 2008 17:56:24 +0100 +Subject: Disable optimization on alpha for the url-classifier component + +The use of this component leads to crashes when built with optimizations. +--- + browser/components/build/Makefile.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/browser/components/build/Makefile.in b/browser/components/build/Makefile.in +index 2387227..d5ca1ba 100644 +--- a/browser/components/build/Makefile.in ++++ b/browser/components/build/Makefile.in +@@ -6,3 +6,7 @@ include $(topsrcdir)/config/rules.mk + + # Ensure that we don't embed a manifest referencing the CRT. + EMBED_MANIFEST_AT = ++ ++ifeq ($(OS_TEST),alpha) ++MOZ_OPTIMIZE_FLAGS := -O0 ++endif diff --git a/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch b/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch new file mode 100644 index 0000000000..c02be355f1 --- /dev/null +++ b/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch @@ -0,0 +1,21 @@ +From: Christoph Goehre +Date: Sat, 24 Mar 2012 11:54:43 +0100 +Subject: Don't auto-disable extensions in system directories + +--- + comm/mail/app/profile/all-thunderbird.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/comm/mail/app/profile/all-thunderbird.js b/comm/mail/app/profile/all-thunderbird.js +index 67403d4..a53e461 100644 +--- a/comm/mail/app/profile/all-thunderbird.js ++++ b/comm/mail/app/profile/all-thunderbird.js +@@ -147,7 +147,7 @@ pref("extensions.hotfix.certs.2.sha1Fingerprint", "39:E7:2B:7A:5B:CF:37:78:F9:5D + // Disable add-ons installed into the shared user and shared system areas by + // default. This does not include the application directory. See the SCOPE + // constants in AddonManager.jsm for values to use here +-pref("extensions.autoDisableScopes", 15); ++pref("extensions.autoDisableScopes", 3); + + // Enable add-ons installed and owned by the application, like the default theme. + pref("extensions.startupScanScopes", 4); diff --git a/patches/prefs/Set-javascript.options.showInConsole.patch b/patches/prefs/Set-javascript.options.showInConsole.patch new file mode 100644 index 0000000000..3bcd707882 --- /dev/null +++ b/patches/prefs/Set-javascript.options.showInConsole.patch @@ -0,0 +1,31 @@ +From: Mike Hommey +Date: Sat, 8 Dec 2007 19:24:40 +0100 +Subject: Set javascript.options.showInConsole + +--- + modules/libpref/init/all.js | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js +index 363f405..ce32506 100644 +--- a/modules/libpref/init/all.js ++++ b/modules/libpref/init/all.js +@@ -1474,6 +1474,7 @@ pref("javascript.options.jit.full_debug_checks", false); + // memory, but makes things like Function.prototype.toSource() + // fail. + pref("javascript.options.discardSystemSource", false); ++pref("javascript.options.showInConsole", true); + + // Many of the the following preferences tune the SpiderMonkey GC, if you + // change the defaults here please also consider changing them in +@@ -1481,6 +1482,10 @@ pref("javascript.options.discardSystemSource", false); + + // JSGC_MAX_MALLOC_BYTES + // How much malloc memory can be allocated before triggering a GC, in MB. ++// This preference limits the memory usage of javascript. ++// If you want to change these values for your device, ++// please find Bug 417052 comment 17 and Bug 456721 ++// Comment 32 and Bug 613551. + pref("javascript.options.mem.high_water_mark", 128); + + // JSGC_MAX_BYTES diff --git a/patches/series b/patches/series new file mode 100644 index 0000000000..2b3676d61b --- /dev/null +++ b/patches/series @@ -0,0 +1,39 @@ +thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch +debian-hacks/Strip-version-number-from-application-before-installation.patch +debian-hacks/Add-another-preferences-directory-for-applications-p.patch +porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch +porting/Disable-optimization-on-alpha-for-the-url-classifier.patch +fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch +debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch +debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch +porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch +debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch +porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch +porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch +fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch +prefs/Set-javascript.options.showInConsole.patch +prefs/Don-t-auto-disable-extensions-in-system-directories.patch +fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch +fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch +porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch +porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch +debian-hacks/changing-the-default-search-engine.patch +porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch +porting-m68k/Add-m68k-support-to-Thunderbird.patch +debian-hacks/Don-t-build-testing-suites-and-stuff.patch +debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch +debian-hacks/Build-against-system-libjsoncpp.patch +porting-sh4/Add-sh4-support-to-Thunderbird.patch +porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch +porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch +debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch +debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch +fixes/Fix-big-endian-build-for-SKIA.patch +porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch +fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch +fixes/Build-also-gdata-provider-as-xpi-file.patch +debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch +porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch +porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch +porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch +porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch diff --git a/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch b/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch new file mode 100644 index 0000000000..fbeffbd801 --- /dev/null +++ b/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre +Date: Mon, 5 Sep 2011 19:21:25 +0200 +Subject: sl: change Edit (Uredi) to CTRL+E + +Closes: #601331 +--- + thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd b/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd +index de7a6a0..cc80353 100644 +--- a/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd ++++ b/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd +@@ -10,7 +10,7 @@ + + + +- ++ + + + diff --git a/repack.py b/repack.py new file mode 100755 index 0000000000..47b1171ad6 --- /dev/null +++ b/repack.py @@ -0,0 +1,204 @@ +#!/usr/bin/python3 + +from optparse import OptionParser +import fnmatch +import tarfile +import io +import re +import os +import sys +import email +import urllib.request, urllib.error, urllib.parse +from urllib.parse import urlparse + +class URLFile(object): + '''Simple proxy to urllib2.urlopen, that responds to seek only if + it's called before read. This is enough for tarfile to be happy''' + + def __init__(self, url): + self.file = urllib.request.urlopen(url) + + def seek(self, offset, whence = os.SEEK_SET): + if whence != os.SEEK_SET or offset != 0 or self.read == self._read: + raise "unsupported" + + def _read(self, size = -1): + return self.file.read(size) + + def read(self, size = -1): + self.read = self._read + return self._read(size) + + def close(self): + self.file.close() + +def dirname(filespec): + '''Returns os.path.dirname if a file, and '' if an url''' + if urlparse(filespec).scheme: + return '' + return os.path.dirname(filespec) + +class TarFilterList(object): + def __init__(self, filename): + self.patterns = {} + for filt in open(filename).readlines(): + f = filt.strip().split(None, 1) + if len(f) == 1: + [pat] = f + cmd = None + else: + [pat, cmd] = f + + pat = pat.split(os.sep) + self.add_pattern(pat, self.patterns, cmd) + + def add_pattern(self, pat, patterns, cmd): + if re.search(r'[\[\?\*]', pat[0]): + if not '*' in patterns: + patterns['*'] = [] + patterns['*'].append([os.sep.join(pat), cmd, False]) + else: + if not pat[0] in patterns: + patterns[pat[0]] = {} + if len(pat) > 2: + self.add_pattern(pat[1:], patterns[pat[0]], cmd) + else: + if not '*' in patterns[pat[0]]: + patterns[pat[0]]['*'] = [] + patterns[pat[0]]['*'].append([os.sep.join(pat[1:]), cmd, False]) + + def match(self, name): + name = name.split(os.sep)[1:] + if len(name) == 0: + return False + return self._match(name, self.patterns) + + def _match(self, name, patterns): + if len(name) > 1 and name[0] in patterns: + cmd = self._match(name[1:], patterns[name[0]]) + if cmd != False: + return cmd + if '*' in patterns: + for pat in patterns['*']: + if fnmatch.fnmatch(name[0], pat[0]) or fnmatch.fnmatch(os.sep.join(name), pat[0]): + pat[2] = True + return pat[1] + return False + + def unused(self, patterns=None, root=''): + result = [] + if root: + root += '/' + if not patterns: + patterns = self.patterns + for pat in patterns: + if pat != '*': + result += self.unused(patterns[pat], root + pat) + else: + for p in patterns[pat]: + if not p[2]: + result.append(root + p[0]) + return result + +def file_extension(name): + return os.path.splitext(name)[1][1:] + +def filter_tar(orig, new, filt): + def u8(x): + return x.decode('utf-8') + + filt = TarFilterList(filt) + if urlparse(orig).scheme: + tar = tarfile.open(orig, "r:" + file_extension(orig), URLFile(orig)) + else: + tar = tarfile.open(orig, "r:" + file_extension(orig)) + new_tar = tarfile.open(new + ".new", "w:" + file_extension(new)) + + while True: + info = tar.next() + if not info: + break + do_filt = filt.match(info.name) + if do_filt == None: + print("Removing %s" % (info.name), file=sys.stderr) + continue + + if info.isfile(): + file = tar.extractfile(info) + if do_filt: + print("Filtering %s" % (info.name), file=sys.stderr) + orig = file + file = io.BytesIO() + the_filt = lambda l: u8(l) + if do_filt[0].isalpha(): + f = do_filt.split(do_filt[1]) + if f[0] == 's': + the_filt = lambda l: re.sub(f[1], f[2], u8(l)) + else: + f = do_filt.split(do_filt[0]) + if f[2] == 'd': + the_filt = lambda l: "" if re.search(f[1], u8(l)) else u8(l) + file.writelines([x.encode('utf-8') for x in map(the_filt, orig.readlines())]) + file.seek(2, 0) + info.size = file.tell() + file.seek(0); + new_tar.addfile(info, file) + else: + new_tar.addfile(info) + + tar.close() + new_tar.close() + os.rename(new_tar.name, new) + unused = filt.unused() + if unused: + print('Unused filters:') + print('', '\n '.join(unused)) + exit(1) + +def get_package_name(): + control = os.path.join(os.path.dirname(__file__), "control") + return email.parser.Parser().parse(open(control), headersonly=True)["Source"] + + +def main(): + parser = OptionParser("%prog [options] tarball") + parser.add_option("-u", "--upstream-version", dest="upstream_version", + help="define upstream version number to use when creating the file", + metavar="VERSION") + parser.add_option("-f", "--filter", dest="filter", + help="use the given filter list", metavar="FILE") + parser.add_option("-p", "--package", dest="package", + help="use the given package name", metavar="NAME") + parser.add_option("-c", "--compression", dest="compression", + help="use the given compression for the new tarball") + (options, args) = parser.parse_args() + + if len(args) < 1: + parser.error("Too few arguments! You may want to use option '--help' for usage first?") + return + if len(args) > 1: + parser.error("Too many arguments! You may want to use option '--help' for usage first?") + return + + if not options.upstream_version: + parser.error("Need an upstream version") + return + + if not options.filter: + options.filter = os.path.join(os.path.dirname(__file__), "source.filter") + if not options.package: + options.package = get_package_name() + + if os.path.islink(args[0]): + orig = os.path.realpath(args[0]) + new_file = args[0] + else: + orig = args[0] + compression = options.compression or file_extension(orig) + new_file = options.package + "_" + options.upstream_version + ".orig.tar." + compression + new_file = os.path.realpath(os.path.join(dirname(orig), new_file)) + print(orig, new_file) + filter_tar(orig, new_file, options.filter) + +if __name__ == '__main__': + main() diff --git a/rules b/rules new file mode 100755 index 0000000000..e0ae5b2c0c --- /dev/null +++ b/rules @@ -0,0 +1,225 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +# export DH_VERBOSE=1 + +# checking the release type, if $(RELEASE)=UNRELEASED we won't build +# the thunderbird-dbgsym package +include /usr/share/dpkg/pkg-info.mk +RELEASE := $(DEB_DISTRIBUTION) + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif + +ICU_DATA_FILE := $(shell basename config/external/icu/data/icud*.dat) +ICU_BUILD := $(shell if ! grep -qs -e "--with-system-icu" debian/mozconfig.default; then echo YES || NO; fi) +ICU_BUILD_DIR := $(CURDIR)/obj-thunderbird/obj-icu +ICU_BUILD_CONFIGURE := --with-data-packaging=archive --enable-static --disable-layoutex --disable-shared --disable-extras --disable-icuio --disable-layout --disable-tests --disable-samples --disable-strict +ICU_BUILD_CPPFLAGS := "-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DUCONFIG_NO_LEGACY_CONVERSION -DUCONFIG_NO_TRANSLITERATION -DUCONFIG_NO_REGULAR_EXPRESSIONS -DUCONFIG_NO_BREAK_ITERATION -DU_CHARSET_IS_UTF8" + +THUNDERBIRD_VERSION=$(shell tail -1 comm/mail/config/version.txt) +DEB_AUTO_UPDATE_AUTOCONF=2.13 + +# build directory used for building the thunderbird-l10n files +THUNDERBIRD_L10N_BUILDDIR=debian/thunderbird-l10n-build + +# Iceowl/Lightning version, note this is different from the TB version! +LIGHTNING_VERSION := $(shell python $(CURDIR)/comm/calendar/lightning/build/makeversion.py ${THUNDERBIRD_VERSION}) + +# ID of the l10n language packs from upstream, need to match the application.id +# in thunderbird-l10n/$LANG/manifest.json +export MOZ_LANGPACK_ID = $(shell grep MOZ_LANGPACK_EID comm/mail/locales/Makefile.in | cut -f2 -d @) + +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk +include /usr/share/dpkg/architecture.mk + +# currently needed as workaround for GCC-6 built +# see https://bugzilla.mozilla.org/show_bug.cgi?id=1251576 +# and https://bugzilla.mozilla.org/show_bug.cgi?id=1245783#c31 +CFLAGS += -fno-delete-null-pointer-checks -fno-schedule-insns2 -fno-lifetime-dse +CXXFLAGS += -fno-delete-null-pointer-checks -fno-schedule-insns2 -fno-lifetime-dse + +# special CFLAGS for various platforms +ifeq ($(DEB_BUILD_ARCH),armel) + CFLAGS += -D__ARM_PCS + LDFLAGS += -Wl,-z,muldefs +endif + +# Reduce memory usage of the linker at the expense of processing time +# This should help on lower-end architectures like arm and mips, which +# spend an immense amount of time swapping. +LDFLAGS += -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + +# Add execution time and memory usage stats in the logs +LDFLAGS += -Wl,--stats + +export MOZ_BUILD_DATE := $(SOURCE_DATE_EPOCH) +export BUILD_DATE := $(shell dpkg-parsechangelog --show-field=Date) +export MOZCONFIG=$(shell pwd)/mozconfig.thunderbird +export MOZILLA_OFFICIAL=1 +export DEB_BUILD_GNU_TYPE +export DEB_HOST_GNU_TYPE +export DEB_BUILD_OPTIONS +# Some Debian build tools clear out some variables +export SHELL=/bin/bash + +%: + dh $@ + +build: + dh $@ + +override_dh_auto_clean: + dh_auto_clean --builddirectory=obj-thunderbird + # needed for thunderbird-l10n + rm -rf $(THUNDERBIRD_L10N_BUILDDIR) + +override_dh_auto_configure: + # run autoconf for all configure files + if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(CURDIR)/configure ]; then \ + cd $(CURDIR) && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi + if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(CURDIR)/js/src/configure ]; then \ + cd $(CURDIR)/js/src && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi + # copy the mozconfig files + cp debian/mozconfig.* . + echo 'mk_add_options MOZ_OBJDIR=$(CURDIR)/obj-thunderbird' >> mozconfig.thunderbird + echo 'ac_add_options --prefix=$(CURDIR)/debian/tmp/usr' >> mozconfig.default + @echo "rebuild ICU data file needed: $(ICU_BUILD)" +ifeq ($(ICU_BUILD),YES) + #################################################################### + # (re)build upstream icudt*.dat due disabled usage of system files # + #################################################################### + rm -f $(CURDIR)/config/external/icu/data/$(ICU_DATA_FILE) + mkdir -p $(ICU_BUILD_DIR) + cd $(ICU_BUILD_DIR) ;\ + $(CURDIR)/intl/icu/source/configure $(ICU_BUILD_CONFIGURE) CPPFLAGS=$(ICU_BUILD_CPPFLAGS) ;\ + $(MAKE) VERBOSE=1 -j$(NUMJOBS) + @ICU_DATA_FILE_CREATED=$$(basename $(ICU_BUILD_DIR)/data/out/icud*.dat) ;\ + test -f $(ICU_BUILD_DIR)/data/out/$$ICU_DATA_FILE_CREATED && cp $(ICU_BUILD_DIR)/data/out/$$ICU_DATA_FILE_CREATED $(CURDIR)/config/external/icu/data ;\ + echo "created new ICU_DATA_FILE in $(CURDIR)/config/external/icu/data/$$ICU_DATA_FILE_CREATED" +endif + # configure the various build settings + # thunderbird, calendar-google-provider, lightning + DIST= ./mach -v configure + +override_dh_auto_build: + # building the stuff + ./mach -v build + # build thunderbird-l10n + mkdir -p $(THUNDERBIRD_L10N_BUILDDIR) + cd $(CURDIR)/thunderbird-l10n ;\ + for XPI in *; do \ + locale=`basename $${XPI}` ;\ + USED_LANGPACK_ID=`grep langpack- $${XPI}/manifest.json | tr '"' ' ' | awk '{print $$3}' | cut -f2-3 -d @` ;\ + if [ "$${USED_LANGPACK_ID}" != "$${MOZ_LANGPACK_ID}" ]; then \ + echo "MOZ_LANGPACK_ID mismatch! '$${USED_LANGPACK_ID}' != '$${MOZ_LANGPACK_ID}'" ;\ + echo "thunderbird-l10n l10n source '$${XPI}' uses a different MOZ_LANGPACK_ID than defined in $(CURDIR)/comm/mail/locales/Makefile.in!";\ + exit 1 ;\ + else \ + xpi-pack $${XPI} ../$(THUNDERBIRD_L10N_BUILDDIR)/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi ;\ + fi \ + done + +override_dh_auto_install: +ifneq (,$(filter mips,$(DEB_BUILD_ARCH))) + sed -i '/"javascript.options.\(baselinejit\|ion\)"/s/true/false/' obj-thunderbird/dist/bin/greprefs.js +endif + # install thunderbird into temp install folder + ./mach -v install + # install, symlinking thunderbird-l10n packages + cd $(CURDIR)/thunderbird-l10n ;\ + for LANG in *; do \ + locale=`basename $${LANG}` ;\ + lowercase_locale=`echo $${locale} | tr 'A-Z' 'a-z'` ;\ + echo "preparing and working on 'thunderbird-l10n-$${lowercase_locale} (langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi)" ;\ + mkdir -p $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/lib/thunderbird/extensions/ ;\ + install -D -m 644 ../$(THUNDERBIRD_L10N_BUILDDIR)/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/share/thunderbird/extensions/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi ;\ + ln -sf /usr/share/thunderbird/extensions/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi \ + $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/lib/thunderbird/extensions/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi ;\ + done + # install lightning-l10n + # Since 60.2.1 we install the Lightning l10n files into the thunderbird-l10n package! + cd $(CURDIR)/lightning-l10n ;\ + for LANG in *; do \ + locale=`basename $${LANG}` ;\ + lowercase_locale=`echo $${locale} | tr 'A-Z' 'a-z'` ;\ + echo "working on 'lightning-l10n-$${lowercase_locale}' (finally within thunderbird-l10n-$${lowercase_locale})" ;\ + mkdir -p $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/share/lightning ;\ + cp -a $${locale}/* $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/share/lightning ;\ + done + dh_bash-completion + +override_dh_install-arch: + # in case of a pre-builded and installed icudt*.dat file pick it up + if [ -f debian/tmp/usr/lib/thunderbird/$(ICU_DATA_FILE) ]; then \ + if ! grep -qs $(ICU_DATA_FILE) debian/thunderbird.install ; then \ + echo "debian/tmp/usr/lib/thunderbird/$(ICU_DATA_FILE)" >> debian/thunderbird.install ;\ + fi \ + fi + dh_install + # install apparmor profile + cp debian/apparmor/usr.bin.thunderbird debian/thunderbird/etc/apparmor.d/usr.bin.thunderbird + dh_apparmor --profile-name=usr.bin.thunderbird -pthunderbird + +override_dh_install-indep: + dh_install + # prepare calendar-google-provider + mkdir -p debian/calendar-google-provider/usr/share/xul-ext/calendar-google-provider/ + GDATA_PROVIDER=`find -type f -name "gdata-provider*.xpi"` &&\ + unzip -d debian/calendar-google-provider/usr/share/xul-ext/calendar-google-provider/ $(CURDIR)/$$GDATA_PROVIDER + find debian/calendar-google-provider/usr/share/xul-ext/calendar-google-provider -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + ID=`grep "em:id" $(CURDIR)/debian/calendar-google-provider/usr/share/xul-ext/calendar-google-provider/install.rdf | sed -e s"/"// -e s",",, -e 's/^[ ]*//' | head -n1` ;\ + mkdir -p mkdir -p $(CURDIR)/debian/calendar-google-provider/usr/lib/thunderbird/extensions/ ;\ + ln -sf /usr/share/xul-ext/calendar-google-provider $(CURDIR)/debian/calendar-google-provider/usr/lib/thunderbird/extensions/$$ID + # sometimes there are temporary build files in calendar-google-provider + @echo " --> searching for temporary build files in 'calendar-google-provider' ..." + @for i in `find debian/calendar-google-provider/ -name ".mkdir.done*"`; do echo remove $$i && rm $$i; done + # prepare lightning + mkdir -p debian/lightning/usr/share/lightning + LIGHTNING=`find -type f -name "lightning*.xpi"` &&\ + unzip -d debian/lightning/usr/share/lightning $(CURDIR)/$$LIGHTNING + # remove executable rights on *.js, *.png, *.xul files + find debian/lightning*/ -type f \( -name "*.dtd" -o -name "*.js" -o -name "*.png" -o -name "*.properties" -o -name "*.xul" \) -exec chmod 644 {} \; + find debian/thunderbird-l10n*/ -type f \( -name "*.dtd" -o -name "*.js" -o -name "*.png" -o -name "*.properties" -o -name "*.xul" \) -exec chmod 644 {} \; + # sometimes there are temporary build files in lightning + @echo " --> searching for temporary build files in 'lightning' ..." + @for i in `find debian/lightning/ -name ".mkdir.done*"`; do echo remove $$i && rm $$i; done + find debian/lightning/usr/share/lightning -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + for LANG in lightning-l10n/*; do \ + locale=`basename $${LANG}`; \ + echo "locale calendar $${locale} chrome/calendar-$${locale}/locale/$${locale}/calendar/" >> debian/lightning/usr/share/lightning/chrome.manifest ;\ + echo "locale lightning $${locale} chrome/lightning-$${locale}/locale/$${locale}/lightning/" >> debian/lightning/usr/share/lightning/chrome.manifest ;\ + done + +override_dh_strip: + if [ "$(RELEASE)" != "UNRELEASED" ]; then \ + dh_strip --automatic-dbgsym ;\ + else \ + dh_strip --no-automatic-dbgsym ;\ + fi + +override_dh_shlibdeps: + dh_shlibdeps -a -l $(CURDIR)/debian/tmp/usr/lib/thunderbird + +override_dh_builddeb: + # just build all packages if there is no 'UNRELEASED' within the changelog + # found, otherwise skip the thunderbird-dbgsym package, it isn't there + if [ "$(RELEASE)" != "UNRELEASED" ]; then \ + dh_builddeb ;\ + else \ + dh_builddeb -pthunderbird ;\ + dh_builddeb -plightning ;\ + dh_builddeb -pcalendar-google-provider ;\ + for package in `grep -e \ + 'Package: thunderbird-l10n\|Package: lightning-l10n' debian/control | awk '{print $$2;}'`; do \ + dh_builddeb -p$$package ;\ + done ;\ + sed -i '/thunderbird-dbgsym/d' debian/files ;\ + fi + +.PHONY: build diff --git a/source.filter b/source.filter new file mode 100644 index 0000000000..46241b88ed --- /dev/null +++ b/source.filter @@ -0,0 +1,583 @@ +# Lines that are commented out are files that are needed later while building. +# Don't remove those files! +accessible/tests/mochitest/jsat/test_output_mathml.html +browser/app/profile/firefox.js +browser/base/content/test/general/browser_bug477014.js +browser/base/content/test/general/browser_contentAreaClick.js +browser/base/content/test/general/browser_tabkeynavigation.js +browser/base/content/test/urlbar/browser_action_searchengine_alias.js +browser/components/enterprisepolicies/tests/browser/browser_policy_block_set_desktop_background.js +browser/components/enterprisepolicies/tests/browser/browser_policy_bookmarks.js +browser/components/extensions/test/browser/browser_ext_contextMenus_icons.js +browser/components/extensions/test/browser/browser_ext_themes_icons.js +browser/components/migration/tests/unit/test_IE7_passwords.js +browser/components/search/test/browser_bing.js +browser/components/search/test/browser_ddg.js +browser/components/search/test/browser_google.js +browser/components/translation/cld2/cld-worker.js +browser/components/translation/test/unit/test_cld2.js +browser/extensions/activity-stream/data/content/activity-stream.bundle.js +browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js +browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js +browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js +browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js +browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js +browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js +browser/extensions/activity-stream/vendor +browser/extensions/formautofill/addressmetadata/*.js +browser/extensions/formautofill/content/*.js +browser/extensions/pdfjs/content/build/*.js +browser/extensions/pdfjs/content/web/*.js +browser/extensions/pocket/content/panels/js/vendor/jquery*.js +browser/extensions/screenshots/webextension/build/inlineSelectionCss.js +build/pgo/blueprint/valid.png +build/pgo/js-input/sunspider/string-tagcloud.html +build/pgo/js-input/sunspider/string-unpack-code.html +build/win32/vswhere.exe +#comm/editor/ui/texzilla/content/TeXZilla.js +#comm/im/themes/messages/bubbles/Footer.html +#comm/mail/app/profile/all-thunderbird.js +#comm/mail/components/compose/content/cloudAttachmentLinkManager.js +#comm/mail/components/im/messages/bubbles/Footer.html +comm/mail/test/mozmill/content-policy/test-general-content-policy.js +comm/mail/test/resources/mozmill/docs/_build/html/_static/jquery.js +comm/mail/test/resources/mozmill/mozmill/extension/content/editor/bespin/BespinEmbedded.js +comm/mail/test/resources/mozmill/mozmill/extension/content/editor/bespin/BespinMain.js +comm/mail/test/resources/mozmill/mozmill/extension/content/editor/bespin/BespinWorker.js +comm/mailnews/addrbook/test/unit/test_nsIAbCard.js +comm/mailnews/base/test/unit/test_compactColumnSave.js +comm/other-licenses/7zstub +#devtools/client/debugger/new/debugger.js +#devtools/client/debugger/new/parser-worker.js +#devtools/client/debugger/new/pretty-print-worker.js +#devtools/client/debugger/new/search-worker.js +devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/classes/output.js +devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js +devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-regenerator-await/output.js +devtools/client/debugger/new/test/mochitest/examples/sourcemaps-reload/v1.bundle.js +devtools/client/debugger/new/test/mochitest/examples/sourcemaps-reload/v2.bundle.js +devtools/client/debugger/new/test/mochitest/examples/sourcemaps3/bundle.js +devtools/client/inspector/markup/test/browser_markup_image_tooltip_mutations.js +devtools/client/inspector/markup/test/lib_react_dom_15.4.1.js +devtools/client/inspector/markup/test/lib_react_with_addons_15.4.1.js +devtools/client/inspector/shared/test/browser_styleinspector_tooltip-background-image.js +devtools/client/inspector/shared/test/browser_styleinspector_tooltip-multiple-background-images.js +devtools/client/netmonitor/test/head.js +devtools/client/shared/demangle.js +devtools/client/shared/source-map/index.js +devtools/client/shared/source-map/worker.js +#devtools/client/shared/test +devtools/client/shared/vendor/WasmParser.js +#devtools/client/shared/vendor/dagre-d3.js +devtools/client/shared/vendor/jszip.js +devtools/client/shared/vendor/react-dom-dev.js +devtools/client/shared/vendor/react-dom-server-dev.js +#devtools/client/shared/vendor/react-dom-server.js +#devtools/client/shared/vendor/react-dom.js +devtools/client/shared/vendor/react-prop-types-dev.js +devtools/client/shared/vendor/react-prop-types.js +#devtools/client/shared/vendor/react-redux.js +devtools/client/shared/vendor/react-test-renderer-shallow.js +devtools/client/shared/vendor/redux.js +#devtools/client/sourceeditor/codemirror/codemirror.bundle.js +#devtools/client/sourceeditor/codemirror/lib/codemirror.js +devtools/client/sourceeditor/tern/ecma5.js +devtools/client/webconsole/new-console-output/test/fixtures/stubs/consoleApi.js +devtools/client/webconsole/new-console-output/test/fixtures/stubs/evaluationResult.js +devtools/client/webconsole/new-console-output/test/fixtures/stubs/pageError.js +devtools/server/actors/utils/automation-timeline.js +devtools/server/tests/unit/babel_and_browserify_script_with_source_map.js +devtools/server/tests/unit/test_sourcemaps-09.js +devtools/shared/acorn/acorn.js +devtools/shared/acorn/acorn_loose.js +devtools/shared/acorn/walk.js +devtools/shared/sourcemap/tests/unit/test_source_node.js +dom/base/crashtests/561981-1-iframe.xhtml +dom/base/crashtests/827190.html +dom/base/crashtests/849727.html +dom/base/crashtests/xhr_html_nullresponse.html +dom/base/test/reftest/test_bug920877.html +dom/base/test/test_bug650776.html +dom/base/test/test_data_uri.html +dom/canvas/test/crash/test_createImageBitmap-video.html +dom/canvas/test/test_canvas.html +dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-s3tc.html +dom/canvas/test/webgl-conf/checkout/conformance/glsl/misc/glsl-long-variable-names.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/attrib-location-length-limits.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1024-character-define.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1024-character-identifier.frag.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1025-character-define.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1025-character-identifier.frag.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/uniform-location-length-limits.html +dom/canvas/test/webgl-conf/checkout/deqp/deqp-deps.js +dom/canvas/test/webgl-conf/checkout/deqp/framework/referencerenderer/rrFragmentOperations.js +dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fDefaultVertexAttributeTests.js +#dom/encoding/test/test_BOMEncoding.js +#dom/encoding/test/test_TextDecoder.js +#dom/encoding/test/unit/test_big5.js +#dom/encoding/test/unit/test_euc-jp.js +#dom/encoding/test/unit/test_euc-kr.js +#dom/encoding/test/unit/test_gbk.js +#dom/encoding/test/unit/test_iso-2022-jp.js +#dom/encoding/test/unit/test_misc.js +#dom/encoding/test/unit/test_shift_jis.js +dom/events/test/pointerevents/pointerevent_support.js +dom/html/reftests/toblob-todataurl/sample.js +dom/html/test/bug445004-outer-write.html +dom/html/test/test_bug582412-2.html +dom/html/test/test_iframe_sandbox_general.html +#dom/imptests/html/js/builtins/Math.maxmin.js +dom/indexedDB/test/test_filehandle_write_read_data.html +#dom/indexedDB/test/unit/test_filehandle_append_read_data.js +dom/indexedDB/test/unit/test_filehandle_append_read_data.js +dom/indexedDB/test/unit/test_snappyUpgrade.js +#dom/json/test/unit/test_decode_long_input.js +dom/media/test/test_decoder_disable.html +dom/media/tests/crashtests/1367930_1.html +dom/media/tests/crashtests/1367930_2.html +dom/media/tests/crashtests/855796.html +dom/media/tests/crashtests/863929.html +dom/push/test/xpcshell/test_crypto.js +dom/security/test/general/test_allow_opening_data_pdf.html +dom/tests/mochitest/localstorage/frameQuota.html +dom/tests/mochitest/localstorage/frameQuotaSessionOnly.html +editor/libeditor/tests/browserscope/lib/richtext/richtext/js/range.js +editor/libeditor/tests/test_bug520189.html +editor/libeditor/tests/test_inline_style_cache.html +image/test/reftest/pngsuite-transparency +image/test/reftest/reftest.list /pngsuite-transparency/d +#image/test/unit/test_async_notification_animated.js +#image/test/unit/test_moz_icon_uri.js +intl/uconv/tests/test_long_doc.html +intl/uconv/tests/unit +js/src/devtools/rootAnalysis/annotations.js +js/src/jit-test/lib/bullet.js +js/src/jit-test/lib/mandelbrot-results.js +js/src/jit-test/tests +js/src/octane/box2d.js +js/src/octane/pdfjs.js +js/src/octane/regexp.js +js/src/octane/typescript-input.js +js/src/tests/non262/RegExp/regress-209067.js +js/src/tests/non262/RegExp/regress-307456.js +js/src/tests/non262/jit/regress-452498-01.js +js/src/tests/non262/regress/regress-243174.js +js/src/tests/non262/regress/regress-274888.js +js/src/tests/non262/regress/regress-280769.js +js/src/tests/non262/regress/regress-311629.js +js/src/tests/test262/built-ins/Array/prototype/reverse/S15.4.4.8_A2_T1.js +js/src/tests/test262/built-ins/Array/prototype/reverse/S15.4.4.8_A2_T2.js +js/src/tests/test262/built-ins/Array/prototype/reverse/S15.4.4.8_A2_T3.js +js/src/tests/test262/built-ins/RegExp/S15.10.2.12_A1_T1.js +js/src/tests/test262/built-ins/RegExp/S15.10.2.12_A3_T1.js +js/src/tests/test262/built-ins/RegExp/S15.10.2.12_A5_T1.js +js/src/tests/test262/built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T12.js +js/src/tests/test262/built-ins/String/S15.5.5.1_A5.js +js/src/tests/test262/built-ins/String/prototype/charAt/S15.5.4.4_A1_T1.js +js/src/tests/test262/built-ins/String/prototype/charAt/S15.5.4.4_A1_T2.js +js/src/tests/test262/built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T1.js +js/src/tests/test262/built-ins/String/prototype/concat/S15.5.4.6_A1_T10.js +js/src/tests/test262/built-ins/String/prototype/constructor/S15.5.4.1_A1_T2.js +js/src/tests/test262/built-ins/String/prototype/split/S15.5.4.14_A1_T13.js +js/src/tests/test262/built-ins/String/prototype/split/S15.5.4.14_A2_T7.js +js/src/tests/test262/built-ins/encodeURIComponent/S15.1.3.4_A4_T2.js +js/src/tests/test262/language/expressions/delete/S8.12.7_A3.js +js/src/tests/test262/language/expressions/exponentiation/bigint-arithmetic.js +js/src/tests/test262/language/types/string/S8.4_A6.1.js +js/src/tests/test262/language/types/string/S8.4_A6.2.js +layout/base/crashtests/378325-1.html +layout/base/tests/test_scroll_snapping.html +layout/doc +layout/generic/crashtests/simple_blank.swf +layout/generic/crashtests/text-overflow-form-elements.html +layout/mathml/tests/stretchy-and-large-operators.js +layout/reftests/bugs/424465-1.html +layout/reftests/font-loading-api/src-list-data-1.html +layout/reftests/svg/nesting-invalid-01.js +layout/style/crashtests/404470-1.html +layout/style/test/test_shorthand_property_getters.html +layout/tools/reftest/reftest-analyzer-structured.xhtml +layout/tools/reftest/reftest-analyzer.xhtml +mobile/android/components/extensions/test/mochitest/head.js +mobile/android/tests/browser/chrome/tp5/163.com/163.wrating.com/a1.js +mobile/android/tests/browser/chrome/tp5/163.com/analytics.163.com/ntes.js +mobile/android/tests/browser/chrome/tp5/163.com/img3.126.net/yodaoimages/pack.r091221/scripts/autocomplete.163.165290.js +mobile/android/tests/browser/chrome/tp5/163.com/img3.cache.netease.com/cnews/js/ntes_jslib_1.x.js +mobile/android/tests/browser/chrome/tp5/163.com/show.mediav.com/s@type=1&db=mediav&pub=118_2620_36413&cus=0_0_0_0_0&wh=360x100&btype=1&js=1.html +mobile/android/tests/browser/chrome/tp5/163.com/www.163.com/index.html +mobile/android/tests/browser/chrome/tp5/163.com/zjs.ipinyou.com/2011032517331513260_2342_190180.js +mobile/android/tests/browser/chrome/tp5/baidu.com/www.baidu.com/s@wd=mozilla.html +mobile/android/tests/browser/chrome/tp5/baidu.com/www.baidu.com/user/js/u.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/edge.quantserve.com/quant.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/app/bbccom/19_61/bbccom.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/common/3_2/bbc_fmtj_common.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/config/apps/4_5/bbc_fmtj_config.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/core/3_2/bbc_fmtj.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/locationservices/locator/v4_0/locator.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/node1.bbcimg.co.uk/glow/gloader.0.1.4.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/static.bbc.co.uk/frameworks/barlesque/1.8.15/desktop/3/script/barlesque.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/static.bbc.co.uk/frameworks/requirejs/0.6.4/sharedmodules/require.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/www.bbc.co.uk/news/index.html +mobile/android/tests/browser/chrome/tp5/msn.com/www.msn.com/index.html +mobile/android/tests/browser/chrome/tp5/twitter.com/twitter.com/ICHCheezburger.html +#modules/libpref/init/all.js +netwerk/protocol/ftp/doc/rfc959.txt +netwerk/test/crashtests/785753-1.html +netwerk/test/unit/test_readline.js +other-licenses/7zstub +other-licenses/7zstub/firefox/7zSD.sfx +other-licenses/nsis/Contrib/ApplicationID/ApplicationID.rc +other-licenses/nsis/Contrib/ApplicationID/resource.h +other-licenses/nsis/Contrib/ServicesHelper/ServicesHelper.rc +other-licenses/nsis/Contrib/ServicesHelper/resource.h +other-licenses/nsis/Plugins +other-licenses/nsis/nsisui.exe +parser/xml/test +services/common/kinto-http-client.js +services/common/kinto-offline-client.js +servo/etc/layout_viewer/js +servo/tests/html/webvr/js/third-party/webvr-polyfill.js +#testing/marionette/atom.js +testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js +testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js +testing/mochitest/browser-test.js +testing/modules/ajv-4.1.1.js +testing/modules/sinon-2.3.2.js +testing/talos/talos/scripts/jszip.min.js +testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js +testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js +testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/static/js/main.js +testing/talos/talos/tests/dromaeo/lib/ext-base.js +testing/talos/talos/tests/dromaeo/lib/ext-core.js +testing/talos/talos/tests/dromaeo/tests/sunspider-string-tagcloud.html +testing/talos/talos/tests/dromaeo/tests/sunspider-string-unpack-code.html +testing/talos/talos/tests/dromaeo/webrunner.js +testing/talos/talos/tests/v8_7/regexp.js +testing/web-platform/mozilla/tests/wasm/js/address.wast.js +testing/web-platform/mozilla/tests/wasm/js/block.wast.js +testing/web-platform/mozilla/tests/wasm/js/br.wast.js +testing/web-platform/mozilla/tests/wasm/js/br_if.wast.js +testing/web-platform/mozilla/tests/wasm/js/br_table.wast.js +testing/web-platform/mozilla/tests/wasm/js/call.wast.js +testing/web-platform/mozilla/tests/wasm/js/call_indirect.wast.js +testing/web-platform/mozilla/tests/wasm/js/conversions.wast.js +testing/web-platform/mozilla/tests/wasm/js/custom_section.wast.js +testing/web-platform/mozilla/tests/wasm/js/endianness.wast.js +testing/web-platform/mozilla/tests/wasm/js/f32.wast.js +testing/web-platform/mozilla/tests/wasm/js/f32_cmp.wast.js +testing/web-platform/mozilla/tests/wasm/js/f64.wast.js +testing/web-platform/mozilla/tests/wasm/js/f64_cmp.wast.js +testing/web-platform/mozilla/tests/wasm/js/fac.wast.js +testing/web-platform/mozilla/tests/wasm/js/float_exprs.wast.js +testing/web-platform/mozilla/tests/wasm/js/float_literals.wast.js +testing/web-platform/mozilla/tests/wasm/js/float_memory.wast.js +testing/web-platform/mozilla/tests/wasm/js/float_misc.wast.js +testing/web-platform/mozilla/tests/wasm/js/func.wast.js +testing/web-platform/mozilla/tests/wasm/js/func_ptrs.wast.js +testing/web-platform/mozilla/tests/wasm/js/get_local.wast.js +testing/web-platform/mozilla/tests/wasm/js/globals.wast.js +testing/web-platform/mozilla/tests/wasm/js/harness/wast.js +testing/web-platform/mozilla/tests/wasm/js/i32.wast.js +testing/web-platform/mozilla/tests/wasm/js/i64.wast.js +testing/web-platform/mozilla/tests/wasm/js/if.wast.js +testing/web-platform/mozilla/tests/wasm/js/imports.wast.js +testing/web-platform/mozilla/tests/wasm/js/int_exprs.wast.js +testing/web-platform/mozilla/tests/wasm/js/int_literals.wast.js +testing/web-platform/mozilla/tests/wasm/js/labels.wast.js +testing/web-platform/mozilla/tests/wasm/js/left-to-right.wast.js +testing/web-platform/mozilla/tests/wasm/js/linking.wast.js +testing/web-platform/mozilla/tests/wasm/js/loop.wast.js +testing/web-platform/mozilla/tests/wasm/js/memory.wast.js +testing/web-platform/mozilla/tests/wasm/js/memory_redundancy.wast.js +testing/web-platform/mozilla/tests/wasm/js/memory_trap.wast.js +testing/web-platform/mozilla/tests/wasm/js/names.wast.js +testing/web-platform/mozilla/tests/wasm/js/nop.wast.js +testing/web-platform/mozilla/tests/wasm/js/resizing.wast.js +testing/web-platform/mozilla/tests/wasm/js/return.wast.js +testing/web-platform/mozilla/tests/wasm/js/select.wast.js +testing/web-platform/mozilla/tests/wasm/js/set_local.wast.js +testing/web-platform/mozilla/tests/wasm/js/skip-stack-guard-page.wast.js +testing/web-platform/mozilla/tests/wasm/js/stack.wast.js +testing/web-platform/mozilla/tests/wasm/js/start.wast.js +testing/web-platform/mozilla/tests/wasm/js/switch.wast.js +testing/web-platform/mozilla/tests/wasm/js/tee_local.wast.js +testing/web-platform/mozilla/tests/wasm/js/traps.wast.js +testing/web-platform/mozilla/tests/wasm/js/unreachable.wast.js +testing/web-platform/mozilla/tests/wasm/js/unwind.wast.js +testing/web-platform/tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +testing/web-platform/tests/IndexedDB/keypath_maxsize.htm +testing/web-platform/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js +testing/web-platform/tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.js +testing/web-platform/tests/WebCryptoAPI/encrypt_decrypt/aes_ctr_vectors.js +testing/web-platform/tests/WebCryptoAPI/encrypt_decrypt/rsa_vectors.js +testing/web-platform/tests/WebCryptoAPI/import_export/ec_importKey.js +testing/web-platform/tests/WebCryptoAPI/import_export/rsa_importKey.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/ecdsa_vectors.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/hmac_vectors.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/rsa_pkcs_vectors.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/rsa_pss_vectors.js +testing/web-platform/tests/acid/acid3/test.html +testing/web-platform/tests/common/performance-timeline-utils.js +testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Naser_al-Din_Shah_Qajar-novalid.html +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-001.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-002.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-003.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-004.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-005.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-006.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-007.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-008.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-009.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-010.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-011.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-012.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-013.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-014.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-015.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-016.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-017.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-018.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-019.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-020.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-021.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-022.xht +testing/web-platform/tests/css/css-regions/elements/support/Three.js +testing/web-platform/tests/editing/data/indent.js +testing/web-platform/tests/encoding/legacy-mb-japanese/euc-jp/jis0208_index.js +testing/web-platform/tests/encoding/legacy-mb-japanese/euc-jp/jis0212_index.js +testing/web-platform/tests/encoding/legacy-mb-japanese/iso-2022-jp/jis0208_index.js +testing/web-platform/tests/encoding/legacy-mb-japanese/shift_jis/jis0208_index.js +testing/web-platform/tests/encoding/legacy-mb-korean/euc-kr/euckr_index.js +testing/web-platform/tests/encoding/legacy-mb-tchinese/big5/big5_index.js +testing/web-platform/tests/encoding/single-byte-decoder.html +testing/web-platform/tests/encrypted-media/content/content-metadata.js +testing/web-platform/tests/encrypted-media/util/drm-messagehandler.js +testing/web-platform/tests/html/editing/dnd/datastore/001.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/002.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/003.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/004.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/005.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/006.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/007.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/008.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/009-1.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/009.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/010.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/011.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/012.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/013-1.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/014-1.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/016.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/017.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/018.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/019.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/020.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/021.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/022.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/023.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/024.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/025.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/026.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/027.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/028.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/029.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/030.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/031.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/032.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/033.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/034.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/035.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/036.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/037.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/038.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/039.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/040.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/041.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/042.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/043.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/044.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/045.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/046.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/047.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/048.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/049.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/050.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/051.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/052.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/056.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/057.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/helper-drop-box-here.xhtml +testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01.htm +testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-its-child.html +testing/web-platform/tests/html/semantics/forms/the-form-element/form-autocomplete.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/075.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/094.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/101.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/102.html +testing/web-platform/tests/html/syntax/parsing/html5lib_adoption01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_adoption02.html +testing/web-platform/tests/html/syntax/parsing/html5lib_comments01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_doctype01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_domjs-unsafe.html +testing/web-platform/tests/html/syntax/parsing/html5lib_entities01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_entities02.html +testing/web-platform/tests/html/syntax/parsing/html5lib_html5test-com.html +testing/web-platform/tests/html/syntax/parsing/html5lib_inbody01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_foreign-fragment.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_math.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_tests4.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_tests6.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_webkit02.html +testing/web-platform/tests/html/syntax/parsing/html5lib_isindex.html +testing/web-platform/tests/html/syntax/parsing/html5lib_main-element.html +testing/web-platform/tests/html/syntax/parsing/html5lib_menuitem-element.html +testing/web-platform/tests/html/syntax/parsing/html5lib_namespace-sensitivity.html +testing/web-platform/tests/html/syntax/parsing/html5lib_pending-spec-changes.html +testing/web-platform/tests/html/syntax/parsing/html5lib_plain-text-unsafe.html +testing/web-platform/tests/html/syntax/parsing/html5lib_ruby.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scriptdata01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scripted_adoption01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scripted_ark.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scripted_webkit01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tables01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_template.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests1.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests10.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests11.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests12.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests14.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests15.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests16.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests17.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests18.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests19.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests2.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests20.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests21.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests22.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests23.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests24.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests25.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests26.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests3.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests5.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests6.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests7.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests8.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests9.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tricky01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_webkit01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_webkit02.html +testing/web-platform/tests/mixed-content/spec_json.js +testing/web-platform/tests/navigation-timing/resources/webperftestharness.js +testing/web-platform/tests/offscreen-canvas/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +testing/web-platform/tests/offscreen-canvas/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.worker.js +testing/web-platform/tests/pointerevents/pointerevent_support.js +testing/web-platform/tests/referrer-policy/spec_json.js +testing/web-platform/tests/resource-timing/resource_TAO_match_origin.htm +testing/web-platform/tests/resource-timing/resource_TAO_multi.htm +testing/web-platform/tests/resource-timing/resource_TAO_origin_uppercase.htm +testing/web-platform/tests/resource-timing/resources/webperftestharness.js +testing/web-platform/tests/url/urlsearchparams-constructor.html +testing/web-platform/tests/user-timing/resources/webperftestharness.js +testing/web-platform/tests/workers/constructors/Worker/unexpected-self-properties.worker.js +testing/xpcshell/moz-http2/moz-http2.js +testing/xpcshell/node-http2/test/compressor.js +third_party/python/mock-1.0.0/html/_static/*.js +third_party/python/psutil/tmp/* +third_party/rust/libz-sys/src/zlib-1.2.8/contrib/dotzlib/DotZLib.chm +third_party/webkit/PerformanceTests/ARES-6/* +third_party/webkit/PerformanceTests/MotionMark/resources/debug-runner/d3.min.js +third_party/webkit/PerformanceTests/Speedometer/resources/todomvc +toolkit/components/extensions/test/browser/browser_ext_themes_dynamic_getCurrent.js +toolkit/components/extensions/test/browser/browser_ext_themes_dynamic_onUpdated.js +toolkit/components/extensions/test/browser/browser_ext_themes_dynamic_updates.js +toolkit/components/maintenanceservice/maintenanceservice.rc +toolkit/components/maintenanceservice/resource.h +toolkit/components/microformats/test/module-tests/html-test.js +toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-mixedpropertries.js +toolkit/components/microformats/test/standards-tests/mf-mixed-h-entry-mixedroots.js +toolkit/components/microformats/test/standards-tests/mf-mixed-h-resume-mixedroots.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-ampm.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-attendees.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-combining.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-time.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcard-email.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcard-multiple.js +toolkit/components/microformats/test/standards-tests/mf-v1-hcard-single.js +toolkit/components/microformats/test/standards-tests/mf-v1-hentry-summarycontent.js +toolkit/components/microformats/test/standards-tests/mf-v1-hfeed-simple.js +toolkit/components/microformats/test/standards-tests/mf-v1-hnews-all.js +toolkit/components/microformats/test/standards-tests/mf-v1-hnews-minimum.js +toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-aggregate.js +toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-simpleproperties.js +toolkit/components/microformats/test/standards-tests/mf-v1-hresume-contact.js +toolkit/components/microformats/test/standards-tests/mf-v1-hresume-education.js +toolkit/components/microformats/test/standards-tests/mf-v1-hresume-skill.js +toolkit/components/microformats/test/standards-tests/mf-v1-hresume-work.js +toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-hcard.js +toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-vevent.js +toolkit/components/microformats/test/standards-tests/mf-v1-hreview-vcard.js +toolkit/components/microformats/test/standards-tests/mf-v1-includes-hcarditemref.js +toolkit/components/microformats/test/standards-tests/mf-v1-includes-heventitemref.js +toolkit/components/microformats/test/standards-tests/mf-v1-includes-hyperlink.js +toolkit/components/microformats/test/standards-tests/mf-v1-includes-object.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geo.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-as-note-note.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-card-extendeddescription.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedname.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedphoto.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedurl.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-card-p-property.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-summarycontent.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-u-property.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-urlincontent.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-event-ampm.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-event-attendees.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-event-combining.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dates.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dt-property.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-event-time.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-implied-title.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-simple.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-news-all.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-news-minimum.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-product-aggregate.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-product-simpleproperties.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-all.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-contact.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-education.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-work.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-hevent.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-justahyperlink.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-simpleproperties.js +toolkit/components/microformats/test/standards-tests/mf-v2-h-review-vcard.js +toolkit/components/microformats/test/standards-tests/mf-v2-rel-duplicate-rels.js +toolkit/components/microformats/test/standards-tests/mf-v2-rel-rel-urls.js +toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-all.js +toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-elsewhere.js +toolkit/components/microformats/test/static/javascript/chai.js +toolkit/components/microformats/test/static/javascript/data.js +toolkit/components/microformats/test/static/javascript/prettify.js +toolkit/components/normandy/vendor/*.js +toolkit/components/passwordmgr/test/unit/test_OSCrypto_win.js +toolkit/components/payments/res/vendor/*.js +toolkit/components/places/tests/favicons/test_moz-anno_favicon_mime_type.js +toolkit/components/places/tests/unit/test_bookmarks_html.js +toolkit/components/places/tests/unit/test_bookmarks_json.js +toolkit/components/prompts/test/test_bug619644.html +toolkit/components/search/tests/xpcshell/test_json_cache.js +toolkit/components/url-classifier/tests/unit/test_hashcompleter_v4.js +toolkit/content/tests/browser/browser_default_image_filename.js +toolkit/crashreporter/client/crashreporter.rc +toolkit/crashreporter/client/resource.h +toolkit/crashreporter/google-breakpad/autotools/compile +toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o +toolkit/crashreporter/google-breakpad/src/tools/windows/binaries +toolkit/crashreporter/tools/win32 +toolkit/mozapps/update/updater/macbuild/Contents/PkgInfo +toolkit/mozapps/update/updater/macbuild/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib +toolkit/mozapps/update/updater/resource.h +toolkit/mozapps/update/updater/updater.rc +widget/windows/* diff --git a/source/format b/source/format new file mode 100644 index 0000000000..163aaf8d82 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 0000000000..29271e72a4 --- /dev/null +++ b/source/include-binaries @@ -0,0 +1,18 @@ +debian/logo/thunderbird/pre60/mailicon256.png +debian/logo/thunderbird/pre60/mailicon48.png +debian/logo/thunderbird/pre60/mailicon512.png +debian/logo/thunderbird/pre60/mailicon128.png +debian/logo/thunderbird/pre60/mailicon22.png +debian/logo/thunderbird/pre60/mailicon32.png +debian/logo/thunderbird/pre60/mailicon24.png +debian/logo/thunderbird/pre60/mailicon64.png +debian/logo/thunderbird/pre60/mailicon16.png +debian/logo/thunderbird/mailicon48.png +debian/logo/thunderbird/mailicon22.png +debian/logo/thunderbird/mailicon32.png +debian/logo/thunderbird/mailicon64.png +debian/logo/thunderbird/mailicon16.png +debian/logo/thunderbird/mailicon24.png +debian/logo/thunderbird/mailicon128.png +debian/logo/thunderbird/mailicon256.png +debian/logo/thunderbird/mailicon512.png diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 0000000000..77cfbba485 --- /dev/null +++ b/source/lintian-overrides @@ -0,0 +1,18 @@ +# ignoring files within the test cases +source: source-is-missing comm/*/Footer.html * +source: source-is-missing devtools/* +source: source-is-missing testing/* +source: source-is-missing */tests/* +source: source-is-missing */test/* + +# TexZilla isn't packaged yet too +source: source-is-missing comm/editor/ui/texzilla/content/TeXZilla.js * + +# files are under MPL-2 license with some long lines +source: source-is-missing comm/mail/components/compose/content/cloudAttachmentLinkManager.js * + +# no JS files +source: source-is-missing modules/libpref/init/all.js * + +# needed by TB, some various long lines +source: source-is-missing comm/mail/app/profile/all-thunderbird.js * diff --git a/tests/control b/tests/control new file mode 100644 index 0000000000..1fe2d6766a --- /dev/null +++ b/tests/control @@ -0,0 +1,14 @@ +Tests: help.sh +Depends: thunderbird, xvfb, xauth + +#Tests: xpcshellTest.sh +#Depends: thunderbird-dev + +#Tests: idlTest.sh +#Depends: thunderbird-dev, build-essential + +#Tests: icudatfileTest.sh +#Depends: thunderbird-dev + +#Tests: soSymlinkTest.sh +#Depends: thunderbird-dev diff --git a/tests/help.sh b/tests/help.sh new file mode 100755 index 0000000000..7a76389367 --- /dev/null +++ b/tests/help.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +# At least check we can execute the main binary +# to catch missing dependenies +echo -n "Test1: checking help output..." +xvfb-run -a /usr/lib/thunderbird/thunderbird -help >/dev/null +echo "done." + +echo -n "Test2: checking version output..." +xvfb-run -a /usr/lib/thunderbird/thunderbird --version | grep -qs Thunderbird +echo "done." diff --git a/tests/icudatfileTest.sh b/tests/icudatfileTest.sh new file mode 100755 index 0000000000..8e3ec99916 --- /dev/null +++ b/tests/icudatfileTest.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +TESTFILE=$(basename $0 .sh) +ICUDATFILE=$(basename /usr/lib/thunderbird/icud*.dat) + +if [ -f "/usr/lib/thunderbird/${ICUDATFILE}" ]; then + echo "Running tests in ${TESTFILE}" + + echo -n "Test1: Check if /usr/lib/thunderbird/${ICUDATFILE} is linked to /usr/share/thunderbird/${ICUDATFILE}..." + if [ "$(readlink -e "/usr/share/thunderbird/${ICUDATFILE}")" = "/usr/lib/thunderbird/${ICUDATFILE}" ]; then + echo "done" + else + echo "No!" + exit 1 + fi +else + echo "Nothing to be done here." +fi + +echo "All Tests in ${TESTFILE} finished succesfully." diff --git a/tests/idlTest.idl b/tests/idlTest.idl new file mode 100644 index 0000000000..148e5d3a4b --- /dev/null +++ b/tests/idlTest.idl @@ -0,0 +1,10 @@ +// Include a file from thunderbird so we're sure these ended up in the right +// location +#include "nsIMsgIncomingServer.idl" + +[scriptable, uuid(1b9d7057-90f5-4ca5-a379-a59aa47acbd2)] +interface IdlTestIncomingServer : nsIMsgIncomingServer +{ + readonly attribute boolean thisIsATest; +}; + diff --git a/tests/idlTest.sh b/tests/idlTest.sh new file mode 100755 index 0000000000..38657399b7 --- /dev/null +++ b/tests/idlTest.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + +cleanup() { + [ ! -d "${SCRATCHDIR}" ] || rm -rf "${SCRATCHDIR}" +} + +#trap cleanup EXIT + +SCRATCHDIR=`mktemp -d` +TEST_IDL_FILE="debian/tests/idlTest.idl" +TESTFILE=$(basename $0 .sh) + +echo "Running tests in ${TESTFILE}" + +echo -n "Test1: Make sure we can generate typelibs..." +/usr/lib/thunderbird-devel/sdk/bin/typelib.py \ + -I"/usr/lib/thunderbird-devel/idl" \ + -o "${SCRATCHDIR}/test.xpt" \ + "${TEST_IDL_FILE}" +if [ -f "${SCRATCHDIR}/test.xpt" ]; then + echo "done." +else + echo "No!" + echo "Test call successful but no outputfile '${SCRATCHDIR}/test.xpt' found!" + exit 1 +fi + +echo -n "Test2: Make sure we can generate C++ headers..." +/usr/lib/thunderbird-devel/sdk/bin/header.py \ + -I"/usr/lib/thunderbird-devel/idl" \ + -o "${SCRATCHDIR}/test.h" \ + "${TEST_IDL_FILE}" +if [ -f "${SCRATCHDIR}/test.h" ]; then + echo "done." +else + echo "No!" + echo "Test call successful but no outputfile '${SCRATCHDIR}/test.h' found!" + exit 1 +fi + +echo -n "Test3: Compiling generated file..." +g++ -std=c++11 \ + -I/usr/include/thunderbird \ + -I/usr/include/nspr \ + -o "${SCRATCHDIR}/test.o" \ + "${SCRATCHDIR}/test.h" +echo "done." + +echo "All Tests in ${TESTFILE} finished successfully." diff --git a/tests/soSymlinkTest.sh b/tests/soSymlinkTest.sh new file mode 100755 index 0000000000..972f6289c7 --- /dev/null +++ b/tests/soSymlinkTest.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +FAIL=0 + +echo "Check for symlinked .so files in dev package..." + +for SOFILE in `ls /usr/lib/thunderbird-devel/sdk/lib/*.so`; do + if [ ! -L ${SOFILE} ]; then + echo ${SOFILE} is not a symlink! + FAIL=1 + fi +done + +echo -n "Test result is " +if [ ${FAIL} -eq 0 ]; then + echo "done." +else + echo "FAILED!" + exit 1 +fi diff --git a/tests/xpcshellTest.js b/tests/xpcshellTest.js new file mode 100644 index 0000000000..806b28998a --- /dev/null +++ b/tests/xpcshellTest.js @@ -0,0 +1 @@ +dump("running xpcshell..."); diff --git a/tests/xpcshellTest.sh b/tests/xpcshellTest.sh new file mode 100755 index 0000000000..f924bc13de --- /dev/null +++ b/tests/xpcshellTest.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +echo -n "Checking if we can run xpcshell..." + +LD_LIBRARY_PATH=/usr/lib/thunderbird/ \ +/usr/lib/thunderbird-devel/sdk/bin/xpcshell \ + -g /usr/share/thunderbird/ debian/tests/xpcshellTest.js + +echo "done." diff --git a/thunderbird-l10n-all.lintian-overrides b/thunderbird-l10n-all.lintian-overrides new file mode 100644 index 0000000000..3658b09a45 --- /dev/null +++ b/thunderbird-l10n-all.lintian-overrides @@ -0,0 +1,2 @@ +# no, this is metapackage +thunderbird-l10n-all: wrong-section-according-to-package-name thunderbird-l10n-all => localization diff --git a/thunderbird-wrapper-helper.sh b/thunderbird-wrapper-helper.sh new file mode 100644 index 0000000000..910c2e25c2 --- /dev/null +++ b/thunderbird-wrapper-helper.sh @@ -0,0 +1,429 @@ +# vim: autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=sh textwidth=76 +# +# File: +# /usr/lib/thunderbird/thunderbird-wrapper-helper.sh +# +# Purpose: +# This shell script has helper functions and variables that are used or +# called from the main wrapper-script /usr/bin/thunderbird. +# +# Copyright: +# Licensed under the terms of GPLv2+. + + +# trying to get the DE +if [ "${XDG_CURRENT_DESKTOP}" = "" ]; then + DESKTOP=$(echo "${XDG_DATA_DIRS}" | sed 's/.*\(gnome\|kde\|mate\|xfce\).*/\1/') +else + DESKTOP=${XDG_CURRENT_DESKTOP} +fi + +# timestamp like '2017-02-26-113855' +DATE=$(date +%F-%H%M%S) + +# convert to lower case shell safe +DESKTOP=$(echo "$DESKTOP" | tr '[:upper:]' '[:lower:]') + +######################################### +# message templates for the X11 dialogs # +######################################### + +DEFAULT_X11_MSG="\ +If you see this message something went wrong while +migrating your Icedove profile(s) into the Thunderbird +profile folder. + +The following error occured:" + +DOT_THUNDERBIRD_EXISTS="\ +${DEFAULT_X11_MSG} + +An existing profile folder (or symlink) '.thunderbird' and a folder +(or symlink) '.icedove' was found in your home directory '${HOME}/' +while trying to migrate the Icedove profile(s) folder. + +This can be caused by an old, currently unused profile folder or you might +be using Thunderbird as provided by upstream Mozilla. +If you don't need this old profile folder, you can remove or backup +it and start Thunderbird again. + +Sorry, but please investigate the situation yourself. + +The Debian wiki has extra information about the migration from +Icedove to Thunderbird. + + https://wiki.debian.org/Thunderbird + +Please also read the information in section 'Profile Migration' in + + /usr/share/doc/thunderbird/README.Debian.gz +" + +THUNDERBIRD_PROFILE_LINKING_ERROR="\ +${DEFAULT_X11_MSG} + +A needed symlink for the Thunderbird profile(s) folder '.thunderbird' +to the old existing Icedove profile '.icedove' couldn't created. + +Sorry, but please investigate the situation by yourself. + +Please mind also the information in section 'Profile Migration' +given in the file + + /usr/share/doc/thunderbird/README.Debian.gz +" + +START_MIGRATION="\ +You see this window because you're starting Thunderbird for the +first time and have profile(s) for Icedove. +The Debian Icedove package is de-branded back to Thunderbird. + +The Icedove profile(s) will now be migrated to the Thunderbird folder. +This will take a short time! + +Please be patient, the Thunderbird program will be started right after +the changes. + +If you need more information on the de-branding and migration please +read + + /usr/share/doc/thunderbird/README.Debian.gz + +The Debian wiki is also holding extra information about the migration of +Icedove to Thunderbird. + + https://wiki.debian.org/Thunderbird +" + +TITLE="Icedove to Thunderbird Profile migration" + +################### +# local functions # +################### + +# Simple search all files where we made a backup from +do_collect_backup_files () { +output_debug "Collecting all files we've made a backup of." +BACKUP_FILES=$(find -L "${TB_PROFILE_FOLDER}/" -type f -name "*backup_thunderbird_migration*") +if [ "${BACKUP_FILES}" != "" ]; then + output_info "The following backups related to the Icedove to Thunderbird transition exist:" + output_info "" + cat << EOF +${BACKUP_FILES} +EOF + output_info "" +else + output_info "No backups related to the Icedove to Thunderbird transition found." +fi +} + +# Create the file .thunderbird/.migrated with some content +do_create_migrated_mark_file (){ +cat < "${TB_PROFILE_FOLDER}/.migrated" +This file is automatically created by /usr/bin/thunderbird, it will be +created on every start of Thunderbird if does not exist. +Remove that file only if you know the propose of this file. + +/usr/share/doc/thunderbird/README.Debian.gz has some information about this +dot file. +EOF +} + +# Fix the file(s) ${TB_PROFILE_FOLDER}/${TB_PROFILE}/mimeTypes.rdf +# Search for pattern of '/usr/bin/iceweasel' and 'icedove' in the file and +# replace them with '/usr/bin/x-www-browser' and 'thunderbird'. +do_fix_mimetypes_rdf (){ +for MIME_TYPES_RDF_FILE in $(find -L "${TB_PROFILE_FOLDER}/" -name mimeTypes.rdf); do + RDF_SEARCH_PATTERN=$(grep '/usr/bin/iceweasel\|icedove' "${MIME_TYPES_RDF_FILE}") + if [ "${RDF_SEARCH_PATTERN}" != "" ]; then + output_debug "Backup ${MIME_TYPES_RDF_FILE} to ${MIME_TYPES_RDF_FILE}.backup_thunderbird_migration-${DATE}" + cp "${MIME_TYPES_RDF_FILE}" "${MIME_TYPES_RDF_FILE}.backup_thunderbird_migration-${DATE}" + + output_debug "Fixing possible broken 'mimeTypes.rdf'." + sed -i "s|/usr/bin/iceweasel|/usr/bin/x-www-browser|g;s|icedove|thunderbird|g" "${MIME_TYPES_RDF_FILE}" + else + output_info "No fix up for ${MIME_TYPES_RDF_FILE} needed." + fi +done +} + +# Inform the user we will starting the migration +do_inform_migration_start () { +# A system admin may avoid the dialog ... +if [ ! -f /etc/thunderbird/no_migration_popup ]; then + case "${DESKTOP}" in + gnome|mate|xfce) + local_zenity --info --no-wrap --title "${TITLE}" --text "${START_MIGRATION}" + if [ $? -ne 0 ]; then + local_xmessage -center "${START_MIGRATION}" + fi + ;; + + kde) + local_kdialog --title "${TITLE}" --msgbox "${START_MIGRATION}" + if [ $? -ne 0 ]; then + local_xmessage -center "${START_MIGRATION}" + fi + ;; + + *) + xmessage -center "${START_MIGRATION}" + ;; + esac +fi +} + +# Function that will do the fixing of mimeapps.list files +do_migrate_old_icedove_desktop() { +# Fix mimeapps.list files in the following folders which may still have +# icedove.desktop associations +# +# ~/.config/ +# ~/.local/share/applications/ +# +# icedove.desktop files are now deprecated, but still commonly around. +# We normally could remove them, but for safety only modify the files. +# These mimeapps.list files configures default applications for MIME types. + +# Only jump in loop if we haven't already done a migration before or the +# user is forcing this by the option '--fixmime'. +if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ] || [ "${FORCE_MIMEAPPS_MIGRATE}" = "1" ]; then + if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ]; then + output_debug "No migration mark '${TB_PROFILE_FOLDER}/.migrated' found, checking mimeapps.list files for possible migration." + elif [ "${FORCE_MIMEAPPS_MIGRATE}" = "1" ]; then + output_debug "Migration enforced by user. Checking mimeapps.list files once again for possible migration." + fi + for MIMEAPPS_LIST in ${HOME}/.config/mimeapps.list ${HOME}/.local/share/applications/mimeapps.list; do + # Check if file exists and has old icedove entry + if [ -e "${MIMEAPPS_LIST}" ] && \ + grep -iq "\(userapp-\)*icedove\(-.*\)*\.desktop" "${MIMEAPPS_LIST}"; then + + output_debug "Fixing broken '${MIMEAPPS_LIST}'." + MIMEAPPS_LIST_COPY="${MIMEAPPS_LIST}.backup_thunderbird_migration-${DATE}" + + # Fix mimeapps.list and create a backup, but it's really unlikely we + # have an existing backup so no further checking here! + # (requires GNU sed 3.02 or ssed for case-insensitive "I") + sed -i.backup_thunderbird_migration-"${DATE}" "s|\(userapp-\)*icedove\(-.*\)*\.desktop|thunderbird.desktop|gI" "${MIMEAPPS_LIST}" + if [ $? -ne 0 ]; then + output_info "The configuration file for default applications for some MIME types" + output_info "'${MIMEAPPS_LIST}' couldn't be fixed." + output_info "Please check for potential problems like low disk space or wrong access rights!" + logger -i -p warning -s "$0: [profile migration] Couldn't fix '${MIMEAPPS_LIST}'!" + exit 1 + else + output_debug "A copy of the configuration file of default applications for some MIME types" + output_debug "was saved to '${MIMEAPPS_LIST_COPY}'." + fi + else + output_info "No fix up for ${MIMEAPPS_LIST} needed." + fi + done + output_debug "Setting migration mark '${TB_PROFILE_FOLDER}/.migrated'." + do_create_migrated_mark_file +fi + +# Migrate old user specific *.desktop entries +# Users may have created custom desktop shortcuts for Icedove in +# the past. These associations (files named like 'userapp-Icedove-*.desktop') +# are done in the folder $(HOME)/.local/share/applications/. + +# Remove such old icedove.desktop files, superseeded by system-wide +# /usr/share/applications/thunderbird.desktop. The old ones in $HOME don't +# receive updates and might have missing/outdated fields. +# *.desktop files and their reverse mimeinfo cache provide information +# about available applications. + +for ICEDOVE_DESKTOP in $(find "${HOME}/.local/share/applications/" -iname "*icedove*.desktop"); do + output_debug "Backup ${ICEDOVE_DESKTOP} to ${ICEDOVE_DESKTOP}.backup_thunderbird_migration-${DATE}" + ICEDOVE_DESKTOP_COPY=${ICEDOVE_DESKTOP}.backup_thunderbird_migration-${DATE} + mv "${ICEDOVE_DESKTOP}" "${ICEDOVE_DESKTOP_COPY}" + # Update the mimeinfo cache. + # Not existing *.desktop files in there should simply be ignored by the system anyway. + if [ -x "$(which update-desktop-database)" ]; then + output_debug "Call 'update-desktop-database' to update the mimeinfo cache." + update-desktop-database "${HOME}/.local/share/applications/" + fi +done +} + +# Print out an error message about failed migration +do_thunderbird2icedove_error_out (){ +case "${DESKTOP}" in + gnome|mate|xfce) + local_zenity --info --no-wrap --title "${TITLE}" --text "${DOT_THUNDERBIRD_EXISTS}" + if [ $? -ne 0 ]; then + local_xmessage -center "${DOT_THUNDERBIRD_EXISTS}" + fi + FAIL=1 + ;; + kde) + local_kdialog --title "${TITLE}" --msgbox "${DOT_THUNDERBIRD_EXISTS}" + if [ $? -ne 0 ]; then + local_xmessage -center "${DOT_THUNDERBIRD_EXISTS}" + fi + FAIL=1 + ;; + *) + xmessage -center "${DOT_THUNDERBIRD_EXISTS}" + FAIL=1 + ;; +esac +} + +# Symlink .thunderbird to .icedove +do_thunderbird2icedove_symlink () { +output_debug "Trying to symlink '${TB_PROFILE_FOLDER}' to '${ID_PROFILE_FOLDER}'" +if ln -s "${ID_PROFILE_FOLDER}" "${TB_PROFILE_FOLDER}"; then + output_debug "success." + return 0 +else + case "${DESKTOP}" in + gnome|mate|xfce) + local_zenity --info --no-wrap --title "${TITLE}" --text "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + if [ $? -ne 0 ]; then + local_xmessage -center "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + fi + FAIL=1 + ;; + kde) + local_kdialog --title "${TITLE}" --msgbox "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + if [ $? -ne 0 ]; then + local_xmessage -center "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + fi + FAIL=1 + ;; + *) + xmessage -center "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + FAIL=1 + ;; + esac + output_debug "Ohh, that wasn't working, sorry! Do you have access rights to create a symlink?" + return 1 +fi +} + +# Wrapping /usr/bin/kdialog calls +local_kdialog () { +if [ -f /usr/bin/kdialog ]; then + /usr/bin/kdialog "$@" + return 0 +else + return 1 +fi +} + +# Wrapping /usr/bin/xmessage calls +local_xmessage () { +if [ -f /usr/bin/xmessage ]; then + /usr/bin/xmessage "$@" +else + # this should never be reached as thunderbird has a dependency on x11-utils! + output_info "xmessage not found" +fi +} + +# Wrapping /usr/bin/zenity calls +local_zenity () { +if [ -f /usr/bin/zenity ]; then + /usr/bin/zenity "$@" + return 0 +else + return 1 +fi +} + +# Simple info output function +output_info () { +echo "INFO -> $1" +} + +# Simple debugging output function +output_debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +# How this script can be called +usage () { +cat << EOF + +Usage: ${0##*/} [--help|-? ] | [--verbose ] [ -g ] [args-passed-to-thunderbird...] + +This script parses its command line options and passes everything else on to +Thunderbird. Note that some Thunderbird options need an additional argument +that can't be naturally mixed with other options! + + -g Starts Thunderbird within gdb (needs package thunderbird-dbg) + + --help or ? Display this help and exit + + --verbose Verbose mode, increase the output messages to stdout + (Logging to /var/log/syslog isn't touched or increased by this + option!) + +Additional options: + + --fixmime Only fixes MIME associations in + ~/.thunderbird/$profile/mimeTypes.rdf and exits. Can be + combined with '--verbose'. + + --show-backup Collect the backup files which where made and print them to + stdout and exits. +EOF +cat << EOF + +Examples: + + ${0##*/} --help + + Writes this help messages on stdout. If any other option is given it + will be ignored. Note that Thunderbird has a '-h' option which needs + to be used if you want the help output for Thunderbird. + + ${0##*/} --verbose + + Enable more debug messages on stdout. Only useful while developing the + thunderbird packages or during profile migration. + + ${0##*/} -g + + Starts Thunderbird in a GDB session if packages gdb and thunderbird-dbg + are installed. +EOF +# other debuggers will be added later, we need maybe a separate valgrind +# package! Note MDN site for valgrind +# https://developer.mozilla.org/en-US/docs/Mozilla/Testing/Valgrind +# ${0##*/} -d gdb +# The same as above, only manually specified the GDB debugging tool as +# argument. Note that you probably will need additional parameter to +# enable e.g. writing to a logfile. +# It's also possible to specify valgrind, that will need to add additional +# quoted arguments in any case! +# The thunderbird binary must be compiled with valgrind support if you +# want to use valgrind here! +# +# ${0##*/} -d 'valgrind --arg1 --arg2' -thunderbird-arg1 +cat << EOF + + ${0##*/} [args-passed-to-thunderbird...] + + Some example for invoking Thunderbird from the ommand line: + Run in safe-mode with the JS Error console: + + ${0##*/} --safe-mode --jsconsole + + Call Thunderbird directly to compose a message with a specific + attachement. + + ${0##*/} -compose "to='recipient@tld.org','attachment=/path/attachment'" + + See the all possible arguments for Thunderbird: + + ${0##*/} -h + +EOF +} + +# end local functions diff --git a/thunderbird-wrapper.sh b/thunderbird-wrapper.sh new file mode 100755 index 0000000000..d85fc09495 --- /dev/null +++ b/thunderbird-wrapper.sh @@ -0,0 +1,261 @@ +#!/bin/bash +# vim: autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=sh textwidth=76 +# +# File: +# /usr/bin/thunderbird +# +# Purpose: +# This is a wrapper script for starting the thunderbird binary with taking +# care of the searching for an old user Icedove profile folder and adopting +# the folder into the new place if possible. +# +# Environment: +# The Icedove binary was using the profile folder '${HOME}/.icedove'. The +# Mozilla default for the Thunderbird binary is '${HOME}/.thunderbird'. +# The script will looking for the old profile folder and will symlink the +# folder '${HOME}/.thunderbird' to the profile folder '${HOME}/.icedove'. +# +# Copyright: +# Licensed under the terms of GPLv2+. + +#set -x + +TB_HELPER=${TB_HELPER:-"/usr/lib/thunderbird/thunderbird-wrapper-helper.sh"} +# sourcing external variables and helper functions +# hide the sourcing for http://www.shellcheck.net/ +# shellcheck source=/dev/null +. "${TB_HELPER}" +if [ $? -ne 0 ]; then + echo "sourcing ${TB_HELPER} failed - giving up." + exit 1 +fi + +# some global variables +MOZ_APP_NAME=thunderbird +MOZ_APP_LAUNCHER=$(which "$0") +MOZ_LIBDIR=/usr/lib/${MOZ_APP_NAME} +ID_PROFILE_FOLDER=${HOME}/.icedove +TB_PROFILE_FOLDER=${HOME}/.thunderbird +TB_GDB_DEFAULT_OPTS=${TB_GDB_DEFAULT_OPTS:-"-ex handle SIG38 nostop -ex handle SIGPIPE nostop"} + +export HELP=0 +export FAIL=0 +export FORCE_MIMEAPPS_MIGRATE=0 +export VERBOSE=0 + +# set MOZ_APP_LAUNCHER for gnome-session +export MOZ_APP_LAUNCHER + +declare -a TB_ARGS=() + +for ARG in "$@"; do + case "${ARG}" in + --fixmime) + FIXMIME=1 + FORCE_MIMEAPPS_MIGRATE=1 + ;; + -g) + DEBUGGER=1 + DEBUG=1 + ;; +# -d) +# USER_DEBUGGER=$2 +# DEBUG=1 +# shift +# ;; + --help) + HELP=1 + ;; + --show-backup) + SHOW_BACKUP=1 + ;; + --verbose) + output_info "[[ ... using verbose mode ... ]]" + VERBOSE=1 + ;; + '?') + usage >&2 + exit 1 + ;; + # Every other argument is needed to get down to the TB starting call. + *) + TB_ARGS+=("${ARG}") + ;; + esac + shift +done + +# sanity check +if [ "$DEBUGGER" != "" ] && [ "$USER_DEBUGGER" != "" ]; then + output_info "You can't use option '-g and '-d' at the same time!" + usage + exit 1 +fi + +# If '--help' was called show usage() and exit immediately without other +# helpers can be called. +if [ "${HELP}" = "1" ]; then + usage + exit 0 +fi + +# The user is forcing to do the MIME fixing (again). If called a used +# profile(s) folder ~/.thunderbird will be also reworked. That's not the +# case if the user is starting this wrapper for a first time and only a +# folder ~/.thunderbird is existing! +if [ "${FIXMIME}" = "1" ]; then + do_fix_mimetypes_rdf + do_migrate_old_icedove_desktop + do_collect_backup_files + exit 0 +fi + +if [ "${SHOW_BACKUP}" = "1" ]; then + do_collect_backup_files + exit 0 +fi + +############################################################################# +# User Thunderbird Profile Adoptions # +# # +# The users Icedove/Thunderbird profile(s) doesn't need to be modified in a # +# different and complicated way. We simply need to ensure that the # +# Thunderbird binary is finding the existing profiles in the folder # +# $(HOME)/.thunderbird folder or a valid symlink pointing to the profiles. # +# # +# To "migrate" an old existing Icedove profile we can simply do a symlink # +# from $(HOME)/.thunderbird --> $(HOME)/.icedove . # +# # +# Afterwards do some changes to the file mimeTypes.rdf within every # +# profile. Also we can modify existing *icedove*.desktop entries in the # +# files. # +# # +# $(HOME)/.config/mimeapps.list # +# $(HOME)/.local/share/applications/mimeapps.list # +# # +############################################################################# + +# First try the default case for modification, there is only a folder +# ${ID_PROFILE_FOLDER} and we can symlink to this. +if { [ -d "${ID_PROFILE_FOLDER}" ] || [ -L "${ID_PROFILE_FOLDER}" ]; } && \ + { [ ! -d "${TB_PROFILE_FOLDER}" ] && [ ! -L "${TB_PROFILE_FOLDER}" ]; }; then + output_debug "found folder '${ID_PROFILE_FOLDER}'" + output_debug "not found folder or symlink '${TB_PROFILE_FOLDER}'" + output_debug "Start Thunderbird profile adoptions, please be patient!" + + # open a pop-up window with a message about starting migration + do_inform_migration_start + + # do the symlinking + do_thunderbird2icedove_symlink + + # fixing mimeTypes.rdf which may have registered the iceweasel binary + # as browser, instead of x-www-browser + do_fix_mimetypes_rdf + + # Fix local mimeapp.list and *.desktop entries + do_migrate_old_icedove_desktop + + # we are finished + output_info "Thunderbird Profile adoptions done." + do_collect_backup_files +fi + +# We found both profile folder, and .thunderbird is a symlink, +# we need to check if .thunderbird is symlinked to .icedove +if { [ -d "${ID_PROFILE_FOLDER}" ] && [ -L "${TB_PROFILE_FOLDER}" ]; } && \ + [ "$(readlink -e "${TB_PROFILE_FOLDER}")" = "${ID_PROFILE_FOLDER}" ];then + + output_debug "Found folder ${ID_PROFILE_FOLDER}, found a symlink ${TB_PROFILE_FOLDER} pointing to ${ID_PROFILE_FOLDER}" + + # Check if we need to do some migration, the linking could be existing + # before we switched back to Thunderbird. + if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ]; then + # Fixing mimeTypes.rdf which may have registered the iceweasel binary + # as browser, instead of x-www-browser + do_fix_mimetypes_rdf + + # Fix local mimeapp.list and *.desktop entries + do_migrate_old_icedove_desktop + fi + +# ... or the opposite if .icedove is symlinked to .thunderbird +elif { [ -d "${TB_PROFILE_FOLDER}" ] && [ -L "${ID_PROFILE_FOLDER}" ]; } && \ + [ "$(readlink -e "${ID_PROFILE_FOLDER}")" = "${TB_PROFILE_FOLDER}" ];then + + output_debug "Found folder ${TB_PROFILE_FOLDER}, found a symlink ${ID_PROFILE_FOLDER} pointing to ${TB_PROFILE_FOLDER}" + output_debug "You may want to remove the symlink ${ID_PROFILE_FOLDER}? It's probably not needed anymore." + + # Check if we need to do some migration ... + if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ]; then + # Fixing mimeTypes.rdf which may have registered the iceweasel binary + # as browser, instead of x-www-browser + do_fix_mimetypes_rdf + + # Fix local mimeapps.list and *.desktop entries + do_migrate_old_icedove_desktop + fi + +# We found both profile folder, but they are not linked to each other! This +# is a state we can't solve on our own !!! The user needs to interact and +# has probably an old or otherwise used Thunderbird installation. Which one +# is the correct one to use? +elif { [ -d "${ID_PROFILE_FOLDER}" ] || [ -L "${ID_PROFILE_FOLDER}" ]; } && \ + { [ -d "${TB_PROFILE_FOLDER}" ] || [ -L "${TB_PROFILE_FOLDER}" ]; } && \ + [ "$(readlink -e "${TB_PROFILE_FOLDER}")" != "$(readlink -e "${ID_PROFILE_FOLDER}")" ]; then + + for CHECK in ${ID_PROFILE_FOLDER} ${TB_PROFILE_FOLDER}; do + FILE_CHECK=$(readlink -e "${CHECK}") + if [ "${FILE_CHECK}" != "" ] && [ -L "${CHECK}" ]; then + output_debug "Found symlink '${CHECK}' pointing to '${FILE_CHECK}'." + elif [ "${FILE_CHECK}" != "" ] && [ -d "${CHECK}" ]; then + output_debug "Found folder '${FILE_CHECK}'." + else + output_debug "${CHECK} is probably a symlink pointing to a non existing target, at least not to ${ID_PROFILE_FOLDER}." + logger -i -p warning -s "$0: [profile migration] ${CHECK} is probably a symlink pointing to a non existing target, at least not to ${ID_PROFILE_FOLDER}." + fi + done + + output_debug "There are already the folders or symlinks '${TB_PROFILE_FOLDER}' and '${ID_PROFILE_FOLDER}'" + output_debug "which not pointing to each other, will do nothing as don't know which folder to use." + output_debug "Please investigate by yourself! Maybe you will find additional information in '/usr/share/doc/thunderbird/README.Debian.gz'." + logger -i -p warning -s "$0: [profile migration] Couldn't migrate Icedove into Thunderbird profile due existing or symlinked folder '${TB_PROFILE_FOLDER}'!" + + # display a graphical advice if possible + do_thunderbird2icedove_error_out + +fi + +if [ "${FAIL}" = 1 ]; then + output_info "An error happened while trying to migrate the old Icedove profile folder '${ID_PROFILE_FOLDER}'." + output_info "Please take a look into the syslog file!" + exit 1 +fi + +# If we are here we going simply further by starting Thunderbird. + +if [ "${DEBUG}" = "" ]; then + TB_ARGS_LINE=$(echo "${TB_ARGS[@]}" | sed "s/'/\"/g") + output_debug "call '${MOZ_LIBDIR}/${MOZ_APP_NAME} ${TB_ARGS_LINE}'" + exec "${MOZ_LIBDIR}"/"${MOZ_APP_NAME}" "${TB_ARGS[@]}" +else + # User has selected GDB? + if [ "${DEBUGGER}" = "1" ]; then + # checking for GDB + if [ -f /usr/bin/gdb ]; then + if dpkg-query -W -f='${Version}' thunderbird-dbgsym &>/dev/null ; then + output_info "Starting Thunderbird with GDB ..." + output_info "LANG= /usr/bin/gdb ${TB_GDB_DEFAULT_OPTS} -ex run ${MOZ_LIBDIR}/${MOZ_APP_NAME} ${TB_ARGS[@]}" + LANG='' exec "/usr/bin/gdb ${TB_GDB_DEFAULT_OPTS} -ex run ${MOZ_LIBDIR}/${MOZ_APP_NAME} ${TB_ARGS[@]}" + else + output_info "No package 'thunderbird-dbgsym' installed! Please install first and restart." + exit 1 + fi + else + output_info "No package 'gdb' installed! Please install first and try again." + exit 1 + fi + fi +fi + +exit 0 diff --git a/thunderbird.1 b/thunderbird.1 new file mode 100644 index 0000000000..000bf4e453 --- /dev/null +++ b/thunderbird.1 @@ -0,0 +1,205 @@ +.TH "THUNDERBIRD" "1" "February 27, 2010" "Christoph Göhre" "Linux User's Manual" +.SH "NAME" +thunderbird \- Mail User Agent (MUA) and newsgroup/RSS client for X11 derived from the Mozilla Thunderbird. +.SH "SYNOPSIS" +.B /usr/lib/thunderbird/thunderbird +[\fIOPTIONS\fR] [\fIURL\fR] + +.B /usr/lib/thunderbird/thunderbird\-bin +[\fIOPTIONS\fR] [\fIURL\fR] + +.SH "DESCRIPTION" +\fBThunderbird\fR provides IMAP/POP support, a built-in RSS reader, support for +HTML mail, powerful quick search, saved search folders, advanced message +filtering, junk mail controls, message grouping, labels, return receipts, smart +address book, LDAP address completion, import tools and the ability to manage +multiple identities in email and newsgroup accounts. +.PP +\fBThunderbird\fR provides enterprise and government grade security such as S/MIME, +digital signing, message encryption, and support for certificates and security +devices. + +.SH "USAGE" +\fBthunderbird\fR is a executable file that will set up the +environment for the starting executable, \fBthunderbird\-bin\fR. +If there is an Thunderbird mail client already running, \fBthunderbird\fR will +arrange for it to create a new mail client window; otherwise it will start +the Thunderbird application. + +.SH "OPTIONS" +A summary of the options supported by \fBthunderbird\fR is included below. + +.SS "X11 options" +.TP +.BI \-\-display= DISPLAY +X display to use +.TP +.B \-\-sync +Make X calls synchronous +.TP +.B \-\-g\-fatal\-warnings +Make all warnings fatal + +.SS "Mozilla options" +.TP +.B \-h, \-help +Show summary of options. +.TP +.B \-v, \-version +Print the Thunderbird version. +.TP +\fB\-P\fR [\fIprofile\fR] +Start with \fIprofile\fR. When no profile is given, displays the Profile Manager. May require \fB\-no\-remote\fR, see below. +.TP +.B \-\-profile [\fIpath\fR] +Start with with [\fIprofile\fR] from the given [\fIpath\fR]. +.TP +.B \-\-migration +Start with migration wizard. May require \fB\-no\-remote\fR, see below. +.TP +.B \-\-ProfileManager +Start with profile manager. May require \fB\-no\-remote\fR, see below. +.TP +.B \-\-no\-remote +Don't connect to a running Thunderbird instance. Don't accept or send remote +commands. This option can be necessary in conjunction to several of the options +above, that won't have any effect when an Thunderbird instance is running unless +\fB\-no\-remote\fR is used at the same time. +.TP +.B \-\-new\-instance +Open a new instance instead of a new windows in the running instance. +.TP +\fB\-\-UILocale\fR \fIlocale\fR +Start with \fIlocale\fR resources as User Interface locale. By default, it is +guessed from environment and available locales for Thunderbird. +.TP +.B \-\-safe\-mode +Starts Thunderbird in safe mode, i.e. disabling all extensions and +showing a bit more debugging messages. +.TP +.B \-\-jsconsole +Start with Javascript Console +.TP +.B \-addressbook +Open the address book at startup. +.TP +.B \-compose +Compose a mail or news message. +.TP +.B \-mail +Open the mail folder view. +.TP +\fB\-mail\fR \fIURL\fR +Open the message specified by this \fIURL\fR. +.TP +.B \-news +Open the news client. +.TP +.B \-setDefaultMail +Set Thunderbird as the default mail client. +.TP +.B \-options +Open the options dialog. +.TP +.B \-file +Open the specified email file. + +.SH "DEBUGGING" +To debug Thunderbird, you need to run \fBrun-mozilla.sh\fR with the absolute path of thunderbird. +.PP +/usr/lib/thunderbird/run-mozilla.sh [\fIDEBUGOPTIONS\fR] /usr/lib/thunderbird/thunderbird-bin + +.SH "DEBUGOPTIONS" +A summary of the options for debugging \fBthunderbird\fR is included below. +.PP + +.TP +.B \-g, \-debug +Starts Thunderbird through a debugger (gdb by default). +.TP +\fB\-\-debugger\fR \fIprogram\fR +Use \fIprogram\fR (instead the default) as a debugger for Thunderbird. Implies \fB\-debug\fR. + +.SH "ENVIRONMENT" +\fIMOZILLA_DISABLE_PLUGINS\fR \- when set, totally disables loading plugins. + +.SH "FILES" +\fI/usr/bin/thunderbird\fR \- shell script wrapping +\fBthunderbird\-bin\fR +.br + +\fI/usr/lib/thunderbird/thunderbird\-bin\fR \- \fBthunderbird\fR +executable +.br + +.SH "EXAMPLES" +.SS "Some typical use case for starting Thunderbird from a console" +.sp +Starting Thunderbird without any extra options, useful to any messages from thunderbird in case something went not o.k.: +.sp +.if n \{\ +.RS 4 +.\} +.nf +thunderbird +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird without any extensions or themes, useful if extensions may make some trouble: +.sp +.if n \{\ +.RS 4 +.\} +.nf +thunderbird \-\-safe-mode +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird with a composing window: +.sp +.if n \{\ +.RS 4 +.\} +.nf +thunderbird \-compose +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird with the default debugger: +.sp +.if n \{\ +.RS 4 +.\} +.nf +/usr/lib/thunderbird/run-mozilla.sh \-debug /usr/lib/thunderbird/thunderbird-bin +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird with the specific debugger: +.sp +.if n \{\ +.RS 4 +.\} +.nf +/usr/lib/thunderbird/run-mozilla.sh \-\-debugger /foo/bar/debugger /usr/lib/thunderbird/thunderbird-bin +.fi +.if n \{\ +.RE +.\} + +.SH "BUGS" +To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR and/or report bugs +to the Debian Bug Tracking System, as usual. + +.SH "AUTHORS" +.TP +.B The Mozilla Organization +.I http://www.mozilla.org/about.html diff --git a/thunderbird.NEWS b/thunderbird.NEWS new file mode 100644 index 0000000000..9c7e2cad73 --- /dev/null +++ b/thunderbird.NEWS @@ -0,0 +1,69 @@ +thunderbird (1:60.0-3) unstable; urgency=medium + + intl.locale.matchOS is replaced by intl.locale.requested + + Thunderbird has taken the locale from the user session by using the + preference 'intl.locale.matchOS' up until version 57. + This preference is replaced by 'intl.locale.requested' since version 58. + + Thunderbird is detecting (again) the locale from the system by using this + preference with an empty string as value. + Starting with this version Thunderbird is taking care of this possibility + by adding this preference to the system wide configuration within + '/etc/thunderbird/pref/thunderbird.js. + + If you have used Thunderbird packages < 1:60.0-3 *and* you have used this + environment settings within your profile by adding a dedicated locale value + which is equal to the system language you can remove this and let + Thunderbird pick up the locale from the system automatically. To do so + remove the following key completely from your local settings: + + intl.locale.requested + + More information can be found here + + https://bugzilla.mozilla.org/show_bug.cgi?id=1437480 + https://bugzilla.mozilla.org/show_bug.cgi?id=1413866 + + Please have also a look into README.Debian for a more in deep explanation, + especially section + 'Enable l10n languages in Thunderbird >= 1:60.0~b2'. + + -- Carsten Schoenert Wed, 5 Aug 2018 20:45:00 +0200 + +thunderbird (1:60.0~b2-1) experimental; urgency=medium + + thunderbird-l10n and lightning-l10n packages are known broken + + Due the modifications by upstream started with Thunderbird 59 related to the + needed changes for the WebExtensions the various l10n packages for + thunderbird itself but also for lightning are currently not working like + previously out of the box. + This is a known fact and mostly confirmed by upstream. + + By a manual workaround for the local profile it's possible to (re-)enable the + requested l10n language. Please have a look at the file README.Debian in the + section 'Enable l10n languages in Thunderbird >= 1:60.0~b2'. + + For more information on this issue you can visit + + https://bugzilla.mozilla.org/show_bug.cgi?id=1437480 + + -- Carsten Schoenert Sat, 7 Apr 2018 10:21:00 +0200 + +thunderbird (1:52.5.0-1) unstable; urgency=high + + The profile for AppArmor within Thunderbird is now disabled by default. + Since the activated Recommends for the apparmor package in recent + kernel-image packages it turns out there are to many things that simply not + working like before if Thunderbird is using the current AppArmor profile. + + Please read README.apparmor for getting more information about the + re-enabling of the AppArmor profile. + People who wants to help to improve the AppAprmor profile are appreciated. + + Take also a look at #882048 for the reason behind that decision. + + https://bugs.debian.org/882048 + + -- Carsten Schoenert Sun, 26 Nov 2017 12:45:00 +0200 diff --git a/thunderbird.bash-completion b/thunderbird.bash-completion new file mode 100644 index 0000000000..e61cb10946 --- /dev/null +++ b/thunderbird.bash-completion @@ -0,0 +1,65 @@ +# bash completion for thunderbird(1) -*- shell-script -*- +# +# Copyright (C) 2017 Carsten Schoenert + +_thunderbird() { +local cur prev OPTS FLAG_FIXMIME FLAG_SHOW_BACKUP +COMPREPLY=() +cur="${COMP_WORDS[COMP_CWORD]}" +prev="${COMP_WORDS[COMP_CWORD-1]}" +OPTS="--fixmime --help --show-backup -g --verbose" + +case $prev in + '--fixmime') + # Check if '--verbose' is already given, this is the only option that + # '--fixmime' should be combined + if [ ! $(compgen -W "${COMP_WORDS[*]}" -- "--verbose") ]; then + COMPREPLY=( $(compgen -W "--verbose" -- $cur) ) + fi + return 0 + ;; + + '--help'|'-g') + return 0 + ;; + + '--show-backup') + # Check if '--verbose' is already given, this is the only option that + # --show-backup should be combined + if [ ! $(compgen -W "${COMP_WORDS[*]}" -- "--verbose") ]; then + COMPREPLY=( $(compgen -W "--verbose" -- $cur) ) + fi + return 0 + ;; + + '--verbose') + FLAG_FIXMIME="" + FLAG_SHOW_BACKUP="" + + # Check if '--fixmime' is already given + if [ $(compgen -W "${COMP_WORDS[*]}" -- "--fixmime") ]; then + # Yes, we have seen '-fixmime' + FLAG_FIXMIME=1 + fi + + # Check if '--show-backup' is already given + if [ $(compgen -W "${COMP_WORDS[*]}" -- "--show-backup") ]; then + # Yes, we have seen '--show-backup' + FLAG_SHOW_BACKUP=1 + fi + + if [ "$FLAG_FIXMIME" != "1" ] && [ "$FLAG_SHOW_BACKUP" != "1" ]; then + COMPREPLY=( $(compgen -W "--fixmime --show-backup" -- $cur) ) + fi + return 0 + ;; + +esac + + COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) + return 0 + +} && +complete -F _thunderbird thunderbird + +# ex: ts=4 sw=4 et filetype=sh diff --git a/thunderbird.desktop b/thunderbird.desktop new file mode 100644 index 0000000000..966dbd1463 --- /dev/null +++ b/thunderbird.desktop @@ -0,0 +1,115 @@ +[Desktop Entry] +Name=Thunderbird +Comment=Read/Write Mail/News with Thunderbird +GenericName=Mail Client +Exec=/usr/bin/thunderbird %u +Terminal=false +X-MultipleArgs=false +Type=Application +Version=1.0 +Icon=thunderbird +Categories=Network;Email;News;GTK; +MimeType=message/rfc822;x-scheme-handler/mailto;text/calendar;text/x-vcard; +StartupWMClass=Thunderbird +StartupNotify=true +Name[ast]=Veceru de corréu Thunderbird +Name[ca]=Client de correu Thunderbird +Name[cs]=Poštovní klient Thunderbird +Name[da]=Mozilla Thunderbird - e-post/nyhedsgruppe +Name[de]=Thunderbird E-Mail und Nachrichten +Name[el]=Ηλεκτρονική αλληλογραφία Thunderbird +Name[es]=Cliente de correo Thunderbird +Name[fi]=Thunderbird-sähköposti +Name[fr]=Messagerie Thunderbird +Name[gl]=Cliente de correo Thunderbird +Name[he]=Mozilla Thunderbird דוא״ל/חדשות +Name[hr]=Mozilla Thunderbird e-pošta/novosti +Name[hu]=Thunderbird levelezőkliens +Name[it]=Email Mozilla Thunderbird +Name[ja]=Thunderbird電子メールクライアント +Name[ko]=Mozilla Thunderbird +Name[nl]=Mozilla Thunderbird e-mail/nieuws +Name[pl]=Klient poczty Thunderbird +Name[pt_BR]=Cliente de E-mail Thunderbird +Name[ru]=Почтовый клиент Thunderbird +Name[sk]=Thunderbird - poštový klient +Name[sv]=E-postklienten Thunderbird +Name[ug]=Mozilla Thunderbird ئېلخەت/خەۋەر +Name[uk]=Поштова програма Thunderbird +Name[vi]=Trình điện thư Mozilla Thunderbird +Name[zh_CN]=Thunderbird 邮件/新闻 +Name[zh_TW]=Thunderbird 郵件 +Comment[ast]=Lleer y escribir corréu electrónicu +Comment[ca]=Llegiu i escriviu correu +Comment[cs]=Čtení a psaní pošty +Comment[da]=Læs/skriv post/nyheder med Thunderbird +Comment[de]=E-Mails und Nachrichten mit Thunderbird lesen und schreiben +Comment[el]=Διαβάστε και γράψτε γράμματα με το Mozilla Thunderbird +Comment[es]=Lea y escriba correos y noticias con Thunderbird +Comment[fi]=Lue ja kirjoita sähköposteja +Comment[fr]=Lire et écrire des courriels +Comment[gl]=Lea e escriba correo electrónico +Comment[he]=קריאה/כתיבה של דוא״ל/חדשות באמצעות Mozilla Thunderbird +Comment[hr]=Čitajte/šaljite e-poštu s Thunderbird +Comment[hu]=Levelek írása és olvasása a Thunderbirddel +Comment[it]=Per leggere e scrivere email +Comment[ja]=メールの読み書き +Comment[ko]=Mozilla Thunderbird 메일/뉴스 읽기 및 쓰기 클라이언트 +Comment[nl]=E-mail/nieuws lezen en schrijven met Mozilla Thunderbird +Comment[pl]=Czytanie i wysyłanie e-maili +Comment[pt_BR]=Leia e escreva suas mensagens +Comment[ru]=Читайте и пишите письма +Comment[sk]=Čítajte a píšte poštu pomocou programu Thunderbird +Comment[sv]=Läs och skriv e-post +Comment[ug]=ئېلخەت ۋە خەۋەرلەرنى Mozilla Thunderbird دا كۆرۈش ۋە يېزىش +Comment[uk]=Читання та написання листів +Comment[vi]=Đọc và soạn thư điện tử +Comment[zh_CN]=阅读邮件或新闻 +Comment[zh_TW]=以 Mozilla Thunderbird 讀寫郵件或新聞 +GenericName[ast]=Client de correu +GenericName[ca]=Client de correu +GenericName[cs]=Poštovní klient +GenericName[da]=Postklient +GenericName[de]=E-Mail-Anwendung +GenericName[el]=Λογισμικό αλληλογραφίας +GenericName[es]=Cliente de correo +GenericName[fi]=Sähköpostiohjelma +GenericName[fr]=Client de messagerie +GenericName[gl]=Cliente de correo electrónico +GenericName[he]=לקוח דוא״ל +GenericName[hr]=Klijent e-pošte +GenericName[hu]=Levelezőkliens +GenericName[it]=Client email +GenericName[ja]=電子メールクライアント +GenericName[ko]=메일 클라이언트 +GenericName[nl]=E-mailprogramma +GenericName[pt_BR]=Cliente de E-mail +GenericName[ru]=Почтовый клиент +GenericName[sk]=Poštový klient +GenericName[ug]=ئېلخەت دېتالى +GenericName[uk]=Поштова програма +GenericName[vi]=Phần mềm khách quản lý thư điện tử +GenericName[zh_CN]=邮件新闻客户端 +GenericName[zh_TW]=郵件用戶端 +Keywords=EMail;E-mail;Contact;Addressbook;News; +Keywords[ast]=Corréu;Corréu-e;Noticies;Discusiones;Mensaxes;Canales;RSS +Keywords[ca]=Correu;Email;E-mail;Mailing;Llistes;Notícies;RSS +Keywords[cs]=Email;E-mail;Pošta;Elektronická pošta;Diskusní skupiny;Čtečka;RSS +Keywords[da]=Email;E-mail;Epost;E-post;Ebrev;E-brev;Kontakt;Adressebog;Nyheder; +Keywords[de]=Mail;E-Mail;Newsgroup;Nachrichten;Feed;RSS;Post;News;Usenet;online;lesen;schreiben +Keywords[el]=Email;E-mail;Newsgroup;Feed;RSS;ημαιλ;Αλληλογραφία;Ροή;ΡΣΣ;Συζητήσεις;Γράμματα +Keywords[es]=Email;Correo electrónico;Noticias;Discusiones;Mensajes;Canales;RSS +Keywords[fi]=Mail;E-Mail;Email;Newsgroup;Feed;RSS;posti;sähköposti;maili;meili;Usenet;uutisryhmät;syöte +Keywords[fr]=Mails;Mels;E-Mails;Emails;Courriels;Courriers;Newsgroup;Feed;RSS;Poster;Thunderbird;Lire;Écrire +Keywords[he]=דוא"ל;דוא״ל;מייל;אי-מייל;אימייל;הודעות;מוזילה;תאנדרבירד;ת׳אנדרבירד;ת'אנדרבירד;ת׳אנדרברד;ת'אנדרברד;דואל; +Keywords[hr]=email;e-mail;e-pošta;pošta;RSS +Keywords[hu]=Email;E-mail;Levél;Levelezés;Hírcsoport;Feed;Hírforrás;RSS +Keywords[it]=Email;Mail;Posta;Newsgroup;Feed;RSS +Keywords[is]=tölvupóstur;rafpóstur;fréttir;fréttahópar;samtöl;skilaboð;fréttastraumar;RSS +Keywords[ja]=Eメール;イーメール;mail;e-mail;email;メール;電子メール;ニュースグループ;ネットニュース;RSS;フィードリーダー;書く;読む;Mozilla +Keywords[nl]=Email;E-mail;Newsgroup;Feed;RSS;Nieuwsgroep;Post +Keywords[ru]=Email;E-mail;Newsgroup;Feed;RSS;почта;письма;новости;фиды +Keywords[sk]=Email;E-mail;Elektronická pošta;Diskusné skupiny;Čítačka kanálov;RSS +Keywords[uk]=Email;E-mail;Newsgroup;Feed;RSS;пошта;новини;подачі;стрічка +Keywords[vi]=Mail;E-Mail;Email;Newsgroup;Feed;RSS;Thư điện tử;Gửi thư +Keywords[zh_CN]=Mail;E-Mail;Email;Newsgroup;Feed;RSS;电子;邮件;新闻;Thunderbird;tb;雷鸟;电邮;邮箱;阅读器; diff --git a/thunderbird.dirs b/thunderbird.dirs new file mode 100644 index 0000000000..954eb16bb4 --- /dev/null +++ b/thunderbird.dirs @@ -0,0 +1,13 @@ +etc/apparmor.d +etc/apparmor.d/disable +usr/bin +usr/share/icons/hicolor/16x16/apps +usr/share/icons/hicolor/22x22/apps +usr/share/icons/hicolor/24x24/apps +usr/share/icons/hicolor/32x32/apps +usr/share/icons/hicolor/48x48/apps +usr/share/icons/hicolor/64x64/apps +usr/share/icons/hicolor/128x128/apps +usr/share/icons/hicolor/256x256/apps +usr/share/icons/hicolor/scalable/apps +usr/share/pixmaps diff --git a/thunderbird.docs b/thunderbird.docs new file mode 100644 index 0000000000..3ae5a63a54 --- /dev/null +++ b/thunderbird.docs @@ -0,0 +1 @@ +debian/README.apparmor diff --git a/thunderbird.install b/thunderbird.install new file mode 100755 index 0000000000..64805b6e12 --- /dev/null +++ b/thunderbird.install @@ -0,0 +1,33 @@ +#!/usr/bin/dh-exec +debian/logo/thunderbird/mailicon16.png => usr/share/icons/hicolor/16x16/apps/thunderbird.png +debian/logo/thunderbird/mailicon22.png => usr/share/icons/hicolor/22x22/apps/thunderbird.png +debian/logo/thunderbird/mailicon24.png => usr/share/icons/hicolor/24x24/apps/thunderbird.png +debian/logo/thunderbird/mailicon32.png => usr/share/icons/hicolor/32x32/apps/thunderbird.png +debian/logo/thunderbird/mailicon48.png => usr/share/icons/hicolor/48x48/apps/thunderbird.png +debian/logo/thunderbird/mailicon64.png => usr/share/icons/hicolor/64x64/apps/thunderbird.png +debian/logo/thunderbird/mailicon128.png => usr/share/icons/hicolor/128x128/apps/thunderbird.png +debian/logo/thunderbird/mailicon256.png => usr/share/icons/hicolor/256x256/apps/thunderbird.png +debian/thunderbird-wrapper.sh => usr/bin/thunderbird + +debian/account-autoconfig/* usr/share/thunderbird/isp +debian/logo/thunderbird/thunderbird.svg usr/share/icons/hicolor/scalable/apps +debian/thunderbird.desktop usr/share/applications +debian/thunderbird.js etc/thunderbird/pref +debian/thunderbird-wrapper-helper.sh usr/lib/thunderbird +debian/tmp/usr/lib/thunderbird/fonts +debian/tmp/usr/lib/thunderbird/*.ini +debian/tmp/usr/lib/thunderbird/blocklist.xml +debian/tmp/usr/lib/thunderbird/chrome usr/share/thunderbird +debian/tmp/usr/lib/thunderbird/defaults/messenger usr/share/thunderbird/defaults +debian/tmp/usr/lib/thunderbird/defaults/pref usr/share/thunderbird/defaults +debian/tmp/usr/lib/thunderbird/dependentlibs.list +debian/tmp/usr/lib/thunderbird/thunderbird* +debian/tmp/usr/lib/thunderbird/gtk2 +debian/tmp/usr/lib/thunderbird/isp usr/share/thunderbird +debian/tmp/usr/lib/thunderbird/lib* +debian/tmp/usr/lib/thunderbird/omni.ja usr/share/thunderbird +debian/tmp/usr/lib/thunderbird/plugin-container +debian/tmp/usr/lib/thunderbird/removed-files +#[amd64 armel armhf i386] debian/tmp/usr/lib/thunderbird/Throbber-small.gif +#[amd64 armel armhf i386] debian/tmp/usr/lib/thunderbird/crashreporter +debian/vendor.js usr/share/thunderbird/defaults/pref diff --git a/thunderbird.js b/thunderbird.js new file mode 100644 index 0000000000..ad5c492621 --- /dev/null +++ b/thunderbird.js @@ -0,0 +1,42 @@ +// This is the Debian specific preferences file for Mozilla Thunderbird +// You can make any change in here, it is the purpose of this file. +// You can, with this file and all files present in the directory +// +// /etc/thunderbird/pref directory +// +// override any preference that is present in the directory +// +// /usr/lib/thunderbird/defaults/pref +// +// While your changes will be kept on upgrade if you modify files in +// /etc/thunderbird/pref, please note that they won't be kept if you +// do them in /usr/lib/thunderbird/defaults/pref. + +pref("extensions.update.enabled", true); + +// Use LANG environment variable to choose locale from system +// The old environment setting 'pref("intl.locale.matchOS", true);' is +// currently not working anymore. The new introduced setting +// 'intl.locale.requested' is now used for this. Setting an empty string is +// pulling the system locale into Thunderbird. +pref("intl.locale.requested", ""); + +// Disable default mail checking (gnome). +pref("mail.shell.checkDefaultMail", false); + +// Disable default mail client check +pref("mail.shell.checkDefaultClient", false); + +// if you are not using gnome +pref("network.protocol-handler.app.http", "x-www-browser"); +pref("network.protocol-handler.app.https", "x-www-browser"); + +// This setting is a workaround for some crashes inside the JS engine. +// By this Thunderbird will use more memory and acting slower as the sharing +// memory between interacting JS files is disabled. +pref ("javascript.options.baselinejit", false); + +// Uncomment the follwing setting if you want to have a extra mail header field +// for X-Debbugs-Cc, only needed in case you have to work with the Debian +// Bug Tracking System more deeply +//pref("mail.compose.other.header", "X-Debbugs-Cc"); diff --git a/thunderbird.links b/thunderbird.links new file mode 100644 index 0000000000..875aff054b --- /dev/null +++ b/thunderbird.links @@ -0,0 +1,11 @@ +/etc/thunderbird/pref usr/share/thunderbird/defaults/syspref +/usr/share/hunspell usr/lib/thunderbird/dictionaries +# don't link /usr/bin/thunderbird -> /usr/lib/thunderbird/thunderbird +# we need to use a wrapper for Icedove user profile migration +#usr/lib/thunderbird/thunderbird usr/bin/thunderbird +usr/share/thunderbird/chrome usr/lib/thunderbird/chrome +usr/share/thunderbird/chrome/icons/default/default48.png usr/share/pixmaps/thunderbird.png +usr/share/thunderbird/defaults usr/lib/thunderbird/defaults +usr/share/thunderbird/isp usr/lib/thunderbird/isp +usr/share/thunderbird/omni.ja usr/lib/thunderbird/omni.ja +usr/lib/thunderbird/thunderbird-bin usr/lib/thunderbird/thunderbird diff --git a/thunderbird.lintian-overrides b/thunderbird.lintian-overrides new file mode 100644 index 0000000000..04143ab4c6 --- /dev/null +++ b/thunderbird.lintian-overrides @@ -0,0 +1,13 @@ +# The embedded libjpeg is libjpeg-turbo, not libjpeg. +thunderbird: embedded-library usr/lib/thunderbird/libxul.so: libjpeg +# Upstream code is not ready to use system library +#thunderbird: embedded-library usr/lib/thunderbird/libxul.so: srtp +#thunderbird: embedded-library usr/lib/thunderbird/libxul.so: libtheora +# The embedded libpng is patched for APNG support +thunderbird: embedded-library usr/lib/thunderbird/libxul.so: libpng + +## Uncomment entries if NSPR4 and/or NSS3 are not available in the archive +# NSPR isn't packaged in the required version yet +#thunderbird: embedded-library usr/lib/thunderbird/libnspr4.so: nspr +# NSS isn't packaged in the required version yet +#thunderbird: embedded-library usr/lib/thunderbird/libnss3.so: nss diff --git a/thunderbird.maintscript b/thunderbird.maintscript new file mode 100644 index 0000000000..2d9e3f514f --- /dev/null +++ b/thunderbird.maintscript @@ -0,0 +1,3 @@ +# remove the old Icedove configfile +# command conffile start-version package +rm_conffile /etc/icedove/pref/icedove.js 1:45.7.1-2~ icedove diff --git a/thunderbird.manpages b/thunderbird.manpages new file mode 100644 index 0000000000..52afef8193 --- /dev/null +++ b/thunderbird.manpages @@ -0,0 +1 @@ +debian/thunderbird.1 diff --git a/thunderbird.pc b/thunderbird.pc new file mode 100644 index 0000000000..39ee10e599 --- /dev/null +++ b/thunderbird.pc @@ -0,0 +1,12 @@ +prefix=/usr +sdkdir=${prefix}/lib/thunderbird-devel/ +libdir=${sdkdir}lib +includedir=${sdkdir}include +idldir=${sdkdir}idl + +Name: icedove +Description: Thunderbird Development Files +Version: @Version@ +Requires: nspr >= 4.8.2 +Libs: -L${libdir} -lxpcomglue_s -lxul -lmozalloc -lldap60 -lprldap60 +Cflags: -I${includedir} diff --git a/thunderbird.postinst b/thunderbird.postinst new file mode 100644 index 0000000000..0ce7686497 --- /dev/null +++ b/thunderbird.postinst @@ -0,0 +1,98 @@ +#!/bin/sh +# postinst script for thunderbird +# +# see: dh_installdeb(1) + +set -e +#set -x +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +ICEDOVE_PREF=/etc/icedove/pref +THUNDERBIRD_PREF=/etc/thunderbird/pref +THUNDERBIRD_LIBDIR=/usr/lib/thunderbird +TO_DELETE=0 + +case "$1" in + configure) + # The users might have put some additional files/dirs into the old + # preferences folder '/etc/icedove/pref/', we need to move those files + # into '/etc/thunderbird/pref/' so Thunderbird is picking up those + # configurations as well. + if [ -d ${ICEDOVE_PREF} ]; then + # Check if we have to move files and/or directories. + if [ `ls -a "${ICEDOVE_PREF}" | wc -l` -gt 2 ]; then + # Yes, we found existing data to move! + echo "Moving old Icedove related preferences files ..." + mv ${ICEDOVE_PREF}/* /etc/thunderbird/pref/ + if [ "$?" != "0" ]; then + echo "Something went wrong while moving old Icedove preferences files!" + echo "Please validate files at '/etc/thunderbird/pref' !" + else + # Moving files went fine, we can delete ${ICEDOVE_PREF}. + TO_DELETE=1 + fi + else + # There was nothing, marking folder ${ICEDOVE_PREF} for deleting. + TO_DELETE=1 + fi + if [ "${TO_DELETE}" -eq 1 ]; then + # removing old empty folder /etc/icedove/profile if still existing (last used in squeeze) + if [ -d /etc/icedove/profile ]; then + rmdir /etc/icedove/profile || true + fi + echo "Removing old Icedove pref directory ..." + rmdir ${ICEDOVE_PREF} || true + rmdir /etc/icedove || true + rm -f ${THUNDERBIRD_PREF}/icedove.js.dpkg-remove || true + if [ -f ${THUNDERBIRD_PREF}/icedove.js ]; then + # If dpkg-mainthelper-script wasn't faster and hasn't already removed icedove.js ... + if [ "`md5sum /etc/thunderbird/pref/icedove.js`" = "f7d035193281c76a304391fb07dfd590" ] || \ + [ "`md5sum /etc/thunderbird/pref/icedove.js`" = "049566d25ab2630db3b705197b96f47e" ] ; then + # Remove the file icedove.js, it's the from previous installed Icedove package. + # f7d035193281c76a304391fb07dfd590 <= 1:45.3.0-1 + # 049566d25ab2630db3b705197b96f47e == 1:45.5.1-1 + rm ${THUNDERBIRD_PREF}/icedove.js || true + else + # We have a user modified file icedove.js. + mv ${THUNDERBIRD_PREF}/icedove.js ${THUNDERBIRD_PREF}/icedove.js.dpkg-backup || true + fi + fi + fi + fi + # Disable apparmor on new installations and when we're upgrading from + # a version that had it enabled by default + if test -n "$2" && dpkg --compare-versions "$2" gt "1:52.5.0-1~"; then + : # Leave the disable/ symlink at users choice if + # upgrading from a version that ships the symlink + else + mkdir -p /etc/apparmor.d/disable + [ -f /etc/apparmor.d/disable/usr.bin.thunderbird ] || ln -s /etc/apparmor.d/usr.bin.thunderbird /etc/apparmor.d/disable/usr.bin.thunderbird + fi + ;; + + configure|abort-upgrade) + touch ${THUNDERBID_LIBDIR}/.autoreg + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/thunderbird.prerm b/thunderbird.prerm new file mode 100644 index 0000000000..81a5211a13 --- /dev/null +++ b/thunderbird.prerm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +LIBDIR=/usr/lib/thunderbird + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] || [ "$1" = upgrade ]; then + rm -f $LIBDIR/.autoreg +fi + +#DEBHELPER# diff --git a/vendor.js b/vendor.js new file mode 100644 index 0000000000..1a5daea0a2 --- /dev/null +++ b/vendor.js @@ -0,0 +1,2 @@ +// Forbid application updates +pref("app.update.enabled", false, locked); diff --git a/watch b/watch new file mode 100644 index 0000000000..37c9ae9512 --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=3 +opts=dversionmangle=s/^(\d\.[\d\.]+)\+dfsg$/$1/ \ +https://download-origin.cdn.mozilla.net/pub/thunderbird/releases/(\d{2}\.[\d\.]+)/source/thunderbird-([\d\.]+).source\.tar\.xz debian python -B debian/repack.py -- 2.30.2

&(GXZ!?hSJ5w$;jB?0u_LR%o*Qy&Z1L zWdCQ!#>$^VYhVZvWiz21%B6a-#C?B}+WGqYNI!Anc=0?F!FFnuiep)*)#62G2&s9P zS0f-hKvXpKy@4TIEC_R9*99$}^*E%(gW9OmxrjodB zIwL8VeXMV?*@{eBUDljCe18S`9(f*5OjW01lkdr;v^;H<0QPUzfU1q=?SB((P+LN8RIv7RlUwOcq?`3fkR4gbLl=^vt zAn=FLBuv#5r^7rgO80K(4EC=tW;YiKQ&00F(%c_Xxd0om{QH$CFUNk*7BEEAhT3H@ z#6lJ^d7p$(ByC^k%A;^tDve7Vu>!zpQH6de`7RzOILAH95w;Zxo_SHv!{;HVhpLH( z?OTuc(l(#pKL9{fSVT%d_=SL&uz`rAwAc%25ivetQE6e}JocfR{}DL3*na%r^Zx~h TfkA2y0)U39j!M0fb?AQpMK_jF literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon128.png b/logo/thunderbird/pre60/mailicon128.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7e74b07bd2a447d7c622424913d7caac9c6cc2 GIT binary patch literal 19586 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�Mq&g~;qnDZ<&(clmI{e>!GPiL#;$H;S>^26FS&GS_?CD8$O_uD z-xWv30qqMC^hQx!;L-l+KZEB{zVJI(nh4A-p@r7%o04njMjRHE^I=EVi2&f)hxYak z&Y9J)w`unDxf7Ycq>@nIIL-w>126S1S#hutZp$g@3JikU?RwQsCogpEtvRObt7ZO}T7V~;Ha067000YWNklO(tEv4X+Uj0U zRm0zr<%pPMTsHy$xRW3H*cr0c?ca53d`nXoOIOe4^eLIa?jvNe2Q=W{fN~(^W=4P% zfwF$s*$quyu6O3t$qV7Snq%s|ZN~}*`W&gSxB%4`!7vA~%^^(7#IlWOGBK?o48y>- zO+3#U7t>Ot|ets!LmeKST@xb4Csepht$h1y1M{NXu_t;k1KK-croH62a!;nQ?9 zRY%u+XsU*;>g4G@G)+fUqWkb&Zov3Zv-k+4qzRzQx_|iRFK#)`v35V6=Tcky5uKf_ z8E);G@Fei_tfi80T_pg3)4sD;nf%~3Mb|b;x>_h{DoXJra82CsxlEU8Ks9g}I0MWA zQtdf65jcT3JjX*kYC8;lJ#e8DnwwjC`uFcRF75eMLw;|&Ar}@Epyx@LRv6QYN&{O+ z0^6~KnlOj3Y>S8&L5?mnPwX8du@%H;mgDkjO&^->qrbn8FTThaoO3NW4m<@TKI!iI z696F6y1l1x)+5^`m5s7b&y#f(t^7{hfi~QMj&zreM>sITKnJh`(a7Hb;=_$)gsOMyP()sVjOh$wS|+w_VL2AIZDQHt zy-*$E1P>{?DMli4Qx}{5=Olw(DIgIH9v~FT?3W0H+Z|=m7jcbUQGLf%6Ef z_j2PWy^eU`3_^bhI@;mf`L6!nBcGpgKi}4nckV<;36vC}=gC-+L98edEGI?;8_O~< zECb6DWKiVvWDp-;X|(px5L*v=sH%o#8PwHn7prg;EyVcD=H5Zjjt>Nh}b4yyz@`=wxskC3<2w-xi2p1(Yy?p4^$#Z(ST4LTC|LY z7*59WSW@DX1WGZKj)4iqFs|bEGT;5{<}+>fIMjU5R1Hnj$N{$KPi$XGd)qZKHqyFGoYhQI^Ua;=G?)Mi`P^4o;hN4oz#&+ze&0u5N zCWdWbIX12vL6&4Bab61mpEq{X*inik$qWvL`Ruc5VK`<%AW({;s7R88VGQ42I0YU@ z*i2WA8%_X#)B8V)H0`f>W9Hq9f_{JAL$^(;@XcQF5IwD55o$e~Tzm#XpGEgSz2am| zk&?xJd`d+ICoXpo{s+f`a38dH!0Gk@v!&tSS!-`~W8Tr7O+H1|C@S_5kt|F{B-^&J z99xjXwlFLUJ7VE_E_MW7`k)VAo*zk)*uVc%y1KGX%cJW)0)aAQS;n$V3?u#dfKmKA z@KV-_v*4x>AckP=$H8ge+wgp7U+t9JEAN=M?9s<0YiNk(V107Y#lR6kcq+k{5@-Y-V}xV=RJh?bKsuC9 zoH%p#eJg*tXw{kpj%Bg=xxeO8s3*Qi2V!j7#uXbNrstFMbh>|-{zr@=Vo6F$@rWm$ zTPS=DmBldKuPGJxt(wK66_o_W`A`%EUC}tz;&QD0E)kd+aoDoum7IFNEGtZ%IvapX zmqK)Ov}7uN5m*A8%vx~{_}T~%hi|L8{&HZ<*oi%D!<-~th{KN?i8_5q-T0{ppm6O3 z7&gpAkfCTS%=E*I0#&J8zG{{{=iW;8wcUlks2tC8IdEVnwYAkbJ%DlJDi}Zhb}Y-H zsi_e=d3DtlM1XaO;qrCCO;rJD(C9`Y|2-7$&jS{5O-z>O!u!yZKCK>rmOU*%K;4nqb%fJr9-;xCMmT*o04os|Zx`ux{nhCI zcml*oV3C0UamjWd{9CJj=izw^mQRu-3EQ^WvgH-R;hbhcsjR$7!ot)K!@p&WPsF|%a=vw=qtW8QxO`WY_%V=6!)wf>h$Q~@!uA6p!g>RF^z z0dXm^c=7$~)~wn1Z2-@6`QU@iG&I!Zbd!NV84DM#ptrZ1`ue?@B*yc=U*=Tl2yrbj zfj1J}z%LOE=0iAqPLQbg<9lw51UBjQe>?#sMrZ_*f&}yCEnWQJgBu@HRSnN`*|%>; z&W*2WItv%Bz;PTJ8xLk`{7t}LQN|GcNEn11L`>3nij%AtY?)`_rt2tGA zmAF-GfNY30esV92Fx&vlWc)=KZv5qH16;NPrca+gZNr8iybuVCQ6xzs7(C27@4S+e z(Fd?_;R+^9xP#i-D#GD}<>MakGlU)VBti<_P~7SgARaMkklg!Yd2;WM<;l7~)i4mU z+W;Qm&YipXuJ!A`|8gKurg)x9FnE-=-~K6)xPzfHVa}YzOqnu^nwl;2_xC1${WFB6 zf75WQ8iCm$k=p5#N&ly6{CEQ}lMUbj?$V_XEML3!4_+)TE>&FDWzU|EdGEdd%DM3u zELg^j8S|*Fek;`|;a%W6j3A!xdf?ZU05M2pZ~Sb%Ka&j*%e~dBH>_W?X5(`O1%AnK zY~FqMRd(;*mh<1d@4nUCcH1|os(KUC9Omc$3Gk;}ML@^3;@6!3@sPPP47^$bz~vJr zAewuRKmI41mMwc|gQ}{ux1VS8<`-yc3g+~u6h&q2+Q%`BA+~RSFIif20)Na+(Dmu? zn?!(kWFtVjQ9uGJEARAw>swD&&7FJiG}|_*u6~oMsy8#aY7;Pa>;xWt^a&0f`ivt- zYU981fX%?413js(y;=B8B|to4jh*ZS%4h^`*zkk(OP8*GW!$(5Uw!=^-g@h&T)1#H z+i$fZ;uY>$vSc-L=ibZv@BbosLZ}LO4mfaaw>64uL9F3p5+XLaq_0}_$oOZTd12>k zuYK-4_0&IjlO|0~5A)h{Y_sfQY8~URt?w?T;!dD*5ok z*9nPer)ET`_Rq;-vxct&qXYmJEm~LL_sf5C_H6Ku=H^otVis}$2t`v5B1-8?AR)HB zw6t{I{P`=k78M1i9zI-4YwK4h5o`0eBE)>o;k{o6MhS2Ym@{Yb+M=S;r<_9A9Y5ThW*C<9YicySW6r&i$C`OSH{|C0CJ*V2FIfwuN002ovPDHLkV1kzYgk=B# literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon16.png b/logo/thunderbird/pre60/mailicon16.png new file mode 100644 index 0000000000000000000000000000000000000000..16ff89ccdfcebcd5506feca7b43143749f011bab GIT binary patch literal 1027 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2>u z=YlX}jY;-GprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*yOMIo6b zIjIc3`Bj-YIf)7(8KrqCsYOYdMJWnC`RVz=54HJ$D%~N*l@=wZGGvsL6ck(O>!+mZ zm1kyW7Nn+RCV~vr2l4b>5=&Aut)RxmBN-PDGET3!EdAG#pXV4Dn3+9Y978O6dnbG5 zNT*7)$@d>WSFtC3<#rv_(77huew>UwlT5s>?qYSB*wu0)%0fv`M<|G|gM*Kw(BaXc z#@;pw#nr8L+$_8 z58hXQTRid1i;o9OruRHit=@X%P7Ysvw6NEO=IFAZD6Ozf;$nPj=FObJIN_hJdjFon zrIs>P?;b3iGUxouHEG>v&c?a+vT>OF{-CLsbNNs}jN|=vCoD_fTNg4&Cj9vEME&}f zwkMxo+DxyDICkRiiLbJmr)D?V`^`Nbd)>os&cbEVIaf-uc0Jv6<|}`LvXO(uw2Ec> z3Yz}?6THTyWxhqMic9{p!{#HCf*-EG|2*=aYRBDcy-D0lYDAT%%d<{6uI7JQPVC9W z>f0+Kd^z6Q=$H5kXJw}P{|Y=3Hq|$G%Jh4`rbvDZxR{j@US!cC>s0$faOc7x4iB%Z zAC8snnqQM7zc+pP4M7VJi%X5pWr`}2mmfab_)%`zvQ;9RS9A0WFK1Bqiu(0#@9EUL zT}BsP9$j0}v3>g@mt6(FXGg@uBvt)VGS`y+!n^e4TfR-Z^&8LYKkhe4erJ}H;VKvuoj)r8_D_L&iBvp zdw;&u42}@HAy)lf{>i%#{kWsO2Cq7Pi3Pe(oDk{CG5OXnwzS-v2J7cr>M|~AI~EsX zaO?A``~`DP+U))L^m#nT<~a7#P7!Q}t`tVG?f)CQaN8&C-hI3=xBTxjJX`DE)3?9o zepT7C*I(b<gb)pSPp_bw)^8SmfurM9*6pI^Ny-&iE; vr?AAH$)9wEI?t(GxOYL|##ys(|CrnF8XOT=c!L?3!x%hW{an^LB{Ts5g3QoJ literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon22.png b/logo/thunderbird/pre60/mailicon22.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf772af2168d2d39a5f41329eaaef17012d15a9 GIT binary patch literal 1537 zcmV+c2LAbpP)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H103LKjSaeirbZlh+O>cT>Y;0j5RA_Z>WMy(w#BOmAmzQ{gKQ z0000-bVXQnQ*U*0V`TtnbaZfYIxjC|WiEGVYiV$0WNBe8Z*pfZcWG;BFGOKV#Nq8A#IO*Yv?fG8a1NvZ~-cb z8y5l|wk&9ssz9j}tU_&Zuro~O-_EK3p@&tWwDe=L@DXlbaoznb!BGzj}B0H;bD$ zKlXCt;+8w>>jG+BV}q8PG00>Jq^I(vf6y^a3t^Y+VrFW`)Zmj3Tv6uObw!K$avlMPkmdAz#+NJanQbJMhTKpFHxV(!i2! zFShk;-qqD+d)k*KDdkqW7!=HQ#KvUmeBAx5{_8k7#zokc4d?uSsH*@f%52zOdOja!A+>f(l za~8!SoF6^HxnoDs>YJI(8_dj>amp5@vPoGlRoheZ-^4kVQvo8?>QgpexzRX4=QVx2 zo7Guz<7zCs1OMrrYzv-bCJ`nTsp5<~!PuE^NqyCdnry|#9eXH;9D z$)FE^hsfoTW%DiV#bp>93 z1+wNvI5t97u#rinXPCF}D$1wMlGY_8+eQg_aSJ+1RU9kzH~GR;6iV^w@sjKDYXBq` zHlt6a2q)VKB^r?=g`7Ui(IY1~@W~g5fS;ZlylJfNzFJ*z@)~WYZ~{Tk2VR!zvag;!IDMSl-=+IXyvT zrJs@#KugRgm(>Lf*fPMu-9xWVO%&Alf>u;j1J^-Q6qfg1OA6!Hafd5h|J6kouHFsHJY1myK2gI}C2KKIN{VOs`5xCqywA{ZtTsRZF7 zTpQt72-^bNAmN!~Swj_tvO&2pLoS!Y6cV;Rvgd!27f;5Xc;%4ah}CpWZ|%Rw*!lV! z!ZPN-buS(V90xASg=J6>NgREQVm3v{YY`IP<79?k_;2z6W+y*7xOip%#)+{Li$+FI zIlK1`<#xZbFXOQ?zEV+Fp$d?4;tyt;fWJlf~6psD)Wwx7; zmfigD{xgH`-B8F(JO;#ovH}bG{@BpjzrMY(wP~KWqpd|cc;rX^^z=W)#Kd=!rfFD~ zX#>5$&}G*qz|xhy>qkESbPMo4paF5967a|%Z|YjqXJ$zc1zW`i0+LA%ek32H5mlg#VA+-MxP0s#P0@RMoRD7MpiE n5~+Ie;%|N*T3TAXSE~6B%Q-x#;Uz{>00000NkvXXu0mjfD!bS# literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon24.png b/logo/thunderbird/pre60/mailicon24.png new file mode 100644 index 0000000000000000000000000000000000000000..e208cdd90213d132d21b33f78c032be0c4b3cb0d GIT binary patch literal 1724 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�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 RZ2<6(vVw+ut(;lt{{i*B6D$A# literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon32.png b/logo/thunderbird/pre60/mailicon32.png new file mode 100644 index 0000000000000000000000000000000000000000..9345f88cada1877b0585fb3749b8bcb297afaab5 GIT binary patch literal 2619 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 b!Px%-Wv4Gavy&k%00000NkvXXu0mjfKa4;C literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon512.png b/logo/thunderbird/pre60/mailicon512.png new file mode 100644 index 0000000000000000000000000000000000000000..907bb1b8a2c2fb857c2e18716e1c610794c2d14a GIT binary patch literal 117944 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