Differences between revisions 1 and 23 (spanning 22 versions)
Revision 1 as of 2017-01-30 19:30:15
Size: 9119
Comment: Starting a Thundebird page ...
Revision 23 as of 2017-05-20 20:35:59
Size: 14862
Comment: The remarks about the Adoption of the user profile is valid for all releases
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
[[http://www.mozilla.org/thunderbird/|Thunderbird]] is a email/news/chat client with a possible RSS feed aggregation developed by [[https://www.mozilla.org/en-US/|Mozilla]].
Line 6: Line 5:
Debian has used long time a unbranded version of Thunderbird due some legal and trademark issues, the package was called Icedove. After almost 10 years of this and Icedove related packages, from January 2017 there are Thunderbird based packages back again available in Debian started with version 1:45.6.0-1. {{attachment:tb-logo64.png|Thunderbird Logo}}

[[http://www.mozilla.org/thunderbird/|Thunderbird]] is an email/news/chat client with a possible RSS feed aggregation developed by [[https://www.mozilla.org/en-US/|Mozilla]].

In the past, Debian had to provide Icedove, a rebranded version of Thunderbird, due to trademark issues. By now the issues have been resolved ([[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816679/|#816679]]) and the
[[https://packages.debian.org/search?keywords=thunderbird&searchon=names&exact=1&suite=all&section=all|''thunderbird'' package is available in all supported Debian releases]].
Line 9: Line 13:

= Migration from Icedove =
== Switching package names ==
By the functionality of transitional packages the user will automatically get installed the dependent respective Thunderbird packages. So there is no special action needed to get Thunderbird installed, it works automatically. In detail the following changes were made to the packages:

||||||<#D0D0D0> '''Changes due Icedove to Thunderbird De-branding'''||
||<#E0E0FF> '''old package''' ||<#FFFFE0> '''replaced by''' ||<#DCDCDC> '''remarks''' ||
||<#E0E0FF> icedove ||<#FFFFE0> thunderbird ||<#DCDCDC> Thunderbird Main application ||
||<#E0E0FF> icedove-dev ||<#FFFFE0> thunderbird-dev ||<#DCDCDC> Thunderbird Development files ||
||<#E0E0FF> icedove-dbg ||<#FFFFE0> thunderbird-dbg ||<#DCDCDC> Thunderbird with debugging symbols ||
||<#E0E0FF> iceowl-extension ||<#FFFFE0> lightning ||<#DCDCDC> Lightning, aka Calendar for Thunderbird ||
||<#E0E0FF> icedove-l10n-* ||<#FFFFE0> thunderbird-l10n-* ||<#DCDCDC> l10n localization packages for Thunderbird ||
||<#E0E0FF> iceowl-l10n-* ||<#FFFFE0> lightning-l10n-* ||<#DCDCDC> l10n localization packages for Lightning ||
||<#E0E0FF> calendar-google-provider ||||<#DCDCDC> There is no transitional or new package. ||

After any automatic installation of thunderbird related packages (marked ''replaced by'' in the above table) you can simply remove the old icedove related packages (marked ''old package'' in the above table). The transitional packages doesn't have any working "thing" inside except to pull the dependent thunderbird package.
----
== Adoption of User Profiles ==

The Thunderbird application uses a different folder for the user profiles than Icedove. The profiles are collected in `~/.thunderbird`, Icedove was using `~/.icedove`. Because of this the user profiles need to be adopted. The Thunderbird package comes with a wrapper script in `/usr/bin/thunderbird` what will do the users profile adoption (if possible). It will be triggered automatically if a user is calling `thunderbird` from a CLI or via the desktop file. The script will do the following things.

 * 1. Check if there is no folder or symlink named `~/.thunderbird` .
 * 2. Inform the user that a adoption of the exciting Icedove profile will happen.
 * 3. Create a symlink from `~/.thunderbird` `~/.icedove` .
 * 4. Fixup the MIME associations in `~/.thunderbird/$profile(s)/mimeTypes.rdf` .
  * Change associations of `/usr/bin/iceweasel` to `/usr/bin/x-www-browser` and `icedove` to `thunderbird` after a backup was created.
 * 5. Backup and fixup `${HOME}/.config/mimeapps.list` and `${HOME}/.local/share/applications/mimeapps.list` in case they contain entries like `userapp-Icedove-*.desktop` .
 * 6. List created backup files.

This steps from above will cover most of the typical users, but some users may have a slightly different environment.

----

=== Other environments with other folder structures ===
Some users may using a advanced setup in their home directory. The following two other possibilities of folders and symlinks will be detected and cause no trouble.

 . '''There is a symlink `~/.icedove` that is pointing to a folder `~/.thunderbird` .'''

This will of course work as Thunderbird is detecting the folder `~/.thunderbird` with the profile(s) in there. You can probably remove `~/.icedove` as Thunderbird doesn't care about that symlink. In case you want to share booth profile locations please only use one dedicated Icedove '''or''' Thunderbird version! Otherwise one day you will get in trouble as Icedove and Thunderbird are writing version information into the working profile, this will break at least your local installed extensions one day!

 . '''There is a symlink `~/.thunderbird` that is pointing to a folder `~/.icedove` .'''

Well, if you have used this in past every thing is also fine now. This is exact the constellation the wrapper script is now creating to let Thunderbird find a folder `~/.thunderbird` that is pointing to valid profile(s) data. The wrapper script will detect if the fixups for MIME associations and the *.desktop files are needed and changes those with a created backup before doing so.

 . '''There is a folder or symlink `~/.icedove` and there is a folder or symlink `~/.thunderbird` which doesn't pointing in a direct way to each other.'''

This situation can't be handled by the wrapper script, we can't know which folder should be used and the wrapper is showing a error screen. The assumption is here that such user know what to do to solve such a constellation. If there is any solution created as described above the wrapper script is also doing the fixups if needed within the first run.

----

=== I run into trouble! ===
Don't panic, no data will be lost, never! In case nothing is visible happen than please start the wrapper script from a CLI by the argument `--verbose`
{{{
$ thunderbird --verbose
}}}
This will turn on a verbose mode which will show some more information about things that probably going wrong. In case you need help please open a bug report with a log of the command.

----

=== I need one of the backup files ===
The wrapper script has a option to show created backup files, use the argument `--show-backup`. This can be also combined with `--verbose` to see more about what's happen here. The wrapper will show possible files and exists afterwards.
{{{
$ thunderbird --show-backup
# or
$ thunderbird --show-backup --verbose
}}}

----

== System wide Configurations ==
This part is mostly interesting for system admins or people who need to migrate some global Icedove setting to global Thunderbird settings.

The Icedove package was allowing some system wide setup of variables for running Icedove by modifying the file `/etc/icedove/pref/icedove.js` or adding own files here with a `*.js` extension. All files here are also being migrated to the Thunderbird package and the respective folder `/etc/thunderbird/pref`. So if a sysadmin or user has placed some modified files here they will be moved into the new directory. One exception, a modified file `/etc/icedove/pref/icedove.js` is gone moved to `/etc/thunderbird/pref/icedove.js.dpkg-backup` and need to be adopted by the user into place.

== Possible Issues ==
Happily not much yet. It may happen that href links are still not working after the migration. The user probably has done some own "tuning" of Mime file association, any help here is appreciated to find the reason for that behaviour. Please fill a bug report than.

-----

== AppArmor profile ==

Icedove/Thunderbird in Debian now ships an AppArmor profile! AppArmor is a Mandatory Access Control framework. When enabled, AppArmor confines programs according to a set of rules that specify what files a given program can access. This proactive approach helps protect the system against both known and unknown vulnerabilities.
If AppArmor is enabled on your computer, the program will be confined. This should not lead to misbehaviour, but if it does, please try to follow the documentation available here: [[AppArmor/Debug|AppArmor/Debug]] to help debug the profile.

'''It's always great if you can provide patches and modifications to this AppArmor profile!''' However, we'd prefer that you send these patches '''upstream first'''. This way, they will get reviewed. Please see the corresponding documentation: [[AppArmor/Contribute/Upstream|AppArmor/Contribute/Upstream]]

 * [[https://code.launchpad.net/~apparmor-dev/apparmor-profiles/+git/apparmor-profiles|Upstream's Git repository lives here]]
 * When done, you can ask for a merge using Launchpad or [[https://lists.ubuntu.com/mailman/listinfo/apparmor|upstream's mailing list]]
 * Now you can also open a Debian bug, assign it to Icedove/Thunderbird and usertag it, using "merge-from-upstream" as tag. See [[https://wiki.debian.org/AppArmor/Contribute?highlight=%28%28AppArmor%29%29#Interacting_with_the_team|AppArmor/Reportbug#Usertags]] for more details.

Please contact the AppArmor team for detailed questions not covered by the documentation.

-----
Line 50: Line 147:
 * more improvements to the wrapper script  * (./)more improvements to the wrapper script
Line 56: Line 153:
 * prepare announcement for d-d-a about the new de-branded packages
 * start a Wiki page for Thunderbird, especially with information about the migration from Icedove
 * do the same as a text file for /u/s/d/thunderbird
 * review the copyright file more in deep
 * (./) prepare announcement for d-d-a about the new de-branded packages
 * (./) start a Wiki page for Thunderbird, especially with information about the migration from Icedove
 * (./) do the same as a text file for /u/s/d/thunderbird
 * (./) review the copyright file more in deep
Line 67: Line 164:
 * Remind users to delete or move the old created backup from the `~/.icedove` folder after several versions. Adding a hint into README and NEWS maybe too.
Line 68: Line 166:
= Migration from Icedove =
== User Profiles ==
By the transitional character of the Icedove packages the user will automatically get installed the dependent respective Thunderbird packages. In detail there are:
|| '''old package''' || '''replaced by''' || '''remarks''' ||
|| 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 packages for Thunderbird ||
|| iceowl-l10n-* || lightning-l10n-* || l10n localization packages for Lightning ||
|| calendar-google-provider |||| There is no transitional or new package. ||
== Tracking of Bug Reports for Icedove to Thunderbird Migration ==
To see all bug reports that are related to the Icedove -> Thunderbird migration you can look at all bugs tagged by [[https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=icedove-thunderbird-migration;users=icedove@packages.debian.org|icedeove-thunderbird-migration]]. To add additional bug reports you can simply use `bts`.
{{{
bts user icedove@packages.debian.org , usertags <$bugnumber> icedove-thunderbird-migration
}}}
Line 80: Line 172:
The Thunderbird application uses a different folder for the user profiles than Icedove. The profiles are collected in `~/.thunderbird`, Icedove was using `~/.icedove`. Because of this the user profiles need to be moved and adopted. The Thunderbird package comes with a wrapper script in `/usr/bin/thunderbird` what will do the users profile migration (if possible). It will be triggered automatically if a user is calling `thunderbird` from a CLI or via the desktop file. The script will check if there is already a folder named `~/.thunderbird` and continues only if not. Mind, user may have used or use the Thunderbird binary from Mozilla and there is a existing profile folder then.

In case there wasn't found a existing profile folder the script will copy the complete old profile folder `~/.icedove` into `~/.thunderbird` and renaming the old folder to `~/.icedove_moved_by_thunderbird_starter`. If successful the script will also modify possible existing wrong Mime associations for `http(s)` and `file` in the existing file(s) `mimeTypes.rdf` in the profile(s). And also, if existing, fixing entries in `~/.config/mimeapps.list' with icedove.desktop after making a backup of that files named `mimeapps.list.copy_by_thunderbird_starter`. If anything is going wrong while these steps a pop-up window will be seen with some further hints, also some logging is done into `/var/log/syslog`.

The wrapper can be called as `thunderbird -v` to see some more verbose output on a terminal in case something is going wrong. That should help to catch possible issues. There will never be done any deletion by the wrapper! The old folders and files can be moved back and the wrapper can be called once more after the reason for the issue was solved. In case of trouble please ensure you alway have a backup before going further.

== System wide Configurations ==
The Icedove package was allowing some system wide setup of variables for running Icedove by modifying the file `/etc/icedove/pref/icedove.js` or adding own files here with a `*.js` extension. All files here are also being migrated to the Thunderbird package and the respective folder `/etc/thunderbird/pref`. So if a sysadmin or user has placed some modified files here they will be moved into the new directory. One exception, a modified file `/etc/icedove/pref/icedove.js` is gone moved to `/etc/thunderbird/pref/icedove.js.dpkg-backup` and need to be adopted by the user into place.

== Possible Issues ==
Happily not much yet. It may happen that href links are not working after the migration. The user probably has done some own "tuning" of Mime file association, any help here is appreciated to find the reason for that behavior.
= GTK3 =
GTK3 support is targeted and [[https://hg.mozilla.org/mozilla-central/rev/6f212df3de6f|re-enabled]] by upstream with the first beta versions of ESR 52. Debian isn't providing a Thunderbird 52 yet. It's planned to upload a version soon to unstable. The Thunderbird versions 48.x in Debian wont ever have GTK3 enabled.

Translation(s): English


Thunderbird Logo

Thunderbird is an email/news/chat client with a possible RSS feed aggregation developed by Mozilla.

In the past, Debian had to provide Icedove, a rebranded version of Thunderbird, due to trademark issues. By now the issues have been resolved (#816679) and the ''thunderbird'' package is available in all supported Debian releases.

Migration from Icedove

Switching package names

By the functionality of transitional packages the user will automatically get installed the dependent respective Thunderbird packages. So there is no special action needed to get Thunderbird installed, it works automatically. In detail the following changes were made to the packages:

Changes due Icedove to Thunderbird De-branding

old package

replaced by

remarks

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 packages for Thunderbird

iceowl-l10n-*

lightning-l10n-*

l10n localization packages for Lightning

calendar-google-provider

There is no transitional or new package.

After any automatic installation of thunderbird related packages (marked replaced by in the above table) you can simply remove the old icedove related packages (marked old package in the above table). The transitional packages doesn't have any working "thing" inside except to pull the dependent thunderbird package.


Adoption of User Profiles

The Thunderbird application uses a different folder for the user profiles than Icedove. The profiles are collected in ~/.thunderbird, Icedove was using ~/.icedove. Because of this the user profiles need to be adopted. The Thunderbird package comes with a wrapper script in /usr/bin/thunderbird what will do the users profile adoption (if possible). It will be triggered automatically if a user is calling thunderbird from a CLI or via the desktop file. The script will do the following things.

  • 1. Check if there is no folder or symlink named ~/.thunderbird .

  • 2. Inform the user that a adoption of the exciting Icedove profile will happen.
  • 3. Create a symlink from ~/.thunderbird ~/.icedove .

  • 4. Fixup the MIME associations in ~/.thunderbird/$profile(s)/mimeTypes.rdf .

    • Change associations of /usr/bin/iceweasel to /usr/bin/x-www-browser and icedove to thunderbird after a backup was created.

  • 5. Backup and fixup ${HOME}/.config/mimeapps.list and ${HOME}/.local/share/applications/mimeapps.list in case they contain entries like userapp-Icedove-*.desktop .

  • 6. List created backup files.

This steps from above will cover most of the typical users, but some users may have a slightly different environment.


Other environments with other folder structures

Some users may using a advanced setup in their home directory. The following two other possibilities of folders and symlinks will be detected and cause no trouble.

  • There is a symlink ~/.icedove that is pointing to a folder ~/.thunderbird .

This will of course work as Thunderbird is detecting the folder ~/.thunderbird with the profile(s) in there. You can probably remove ~/.icedove as Thunderbird doesn't care about that symlink. In case you want to share booth profile locations please only use one dedicated Icedove or Thunderbird version! Otherwise one day you will get in trouble as Icedove and Thunderbird are writing version information into the working profile, this will break at least your local installed extensions one day!

  • There is a symlink ~/.thunderbird that is pointing to a folder ~/.icedove .

Well, if you have used this in past every thing is also fine now. This is exact the constellation the wrapper script is now creating to let Thunderbird find a folder ~/.thunderbird that is pointing to valid profile(s) data. The wrapper script will detect if the fixups for MIME associations and the *.desktop files are needed and changes those with a created backup before doing so.

  • There is a folder or symlink ~/.icedove and there is a folder or symlink ~/.thunderbird which doesn't pointing in a direct way to each other.

This situation can't be handled by the wrapper script, we can't know which folder should be used and the wrapper is showing a error screen. The assumption is here that such user know what to do to solve such a constellation. If there is any solution created as described above the wrapper script is also doing the fixups if needed within the first run.


I run into trouble!

Don't panic, no data will be lost, never! In case nothing is visible happen than please start the wrapper script from a CLI by the argument --verbose

$ thunderbird --verbose

This will turn on a verbose mode which will show some more information about things that probably going wrong. In case you need help please open a bug report with a log of the command.


I need one of the backup files

The wrapper script has a option to show created backup files, use the argument --show-backup. This can be also combined with --verbose to see more about what's happen here. The wrapper will show possible files and exists afterwards.

$ thunderbird --show-backup
# or
$ thunderbird --show-backup --verbose


System wide Configurations

This part is mostly interesting for system admins or people who need to migrate some global Icedove setting to global Thunderbird settings.

The Icedove package was allowing some system wide setup of variables for running Icedove by modifying the file /etc/icedove/pref/icedove.js or adding own files here with a *.js extension. All files here are also being migrated to the Thunderbird package and the respective folder /etc/thunderbird/pref. So if a sysadmin or user has placed some modified files here they will be moved into the new directory. One exception, a modified file /etc/icedove/pref/icedove.js is gone moved to /etc/thunderbird/pref/icedove.js.dpkg-backup and need to be adopted by the user into place.

Possible Issues

Happily not much yet. It may happen that href links are still not working after the migration. The user probably has done some own "tuning" of Mime file association, any help here is appreciated to find the reason for that behaviour. Please fill a bug report than.


AppArmor profile

Icedove/Thunderbird in Debian now ships an AppArmor profile! AppArmor is a Mandatory Access Control framework. When enabled, AppArmor confines programs according to a set of rules that specify what files a given program can access. This proactive approach helps protect the system against both known and unknown vulnerabilities. If AppArmor is enabled on your computer, the program will be confined. This should not lead to misbehaviour, but if it does, please try to follow the documentation available here: AppArmor/Debug to help debug the profile.

It's always great if you can provide patches and modifications to this AppArmor profile! However, we'd prefer that you send these patches upstream first. This way, they will get reviewed. Please see the corresponding documentation: AppArmor/Contribute/Upstream

Please contact the AppArmor team for detailed questions not covered by the documentation.


De-branding of Icedove (and related packages)

To get Thunderbird back in Debian we need to de-brand the existing src:icedove package. Debian and Mozilla have been acknowledged to refuse the issues about the branding of Thunderbird inside the Debian repositories. There is a Bugreport (816679) that will collect the whole steps and reports for Icedove. It's mainly based on the de-branding of Iceweasel to Firefox (815006).

It was and is planned to switch all Icedove versions to Thunderbird above the whole archive while the increase of one version. Thanks to the security team we can do this as new binary packages for Thunderbird will be accepted. The LTS team will adopt this behavior for the Wheezy release. Also the release team is agreeing to release Stretch with Thunderbird packages and move the Icedove package into transitional packages.

Tasks for the De-Branding

The de-branding is a complex thing and we can't overview yet which side effects will be visible later, unfortunately we can't do a hard and quick switch in one go. The first steps for the de-branding was going to start at the end of spring 2016. The following tasks are known to be needed and visible by the current status.

  • (./) Remove the name branding on iceowl-l10n packages

    • (./) Switch to packages named "lightning-l10n*"

    • (./) Add transitional packages for "iceowl-l10n*"

  • (./) Remove the name branding on icedove.l10n packages

    • (./) Switch to packages named "thunderbird-l10n*"

    • (./) Add transitional packages for "icedove-l10n*"

  • (./) Remove iceowl branding around/inside iceowl-extension package

    • (./) Rename iceowl-extension to lightning, dropping old iceowl.js

    • Reviewing the postinst of lightning
      • (./) no further action needed here

  • (./) Removing the name branding inside Icedove

    • Rename package(s) to thunderbird*
      • (./) icedove-dev -> thunderbird-dev

      • (./) icedove-dbg -> thunderbird-dbg

    • (./) Adjust the package icons and the installation of those

    • (./) Add transitional package(s) for icedove

  • (./) Move the configuration inside the Icedove package itself (/etc/icedove -> /etc/thunderbird, plugins, ...)

    • Needs some stuff inside preinst|postinst
      • moved needed parts to thunderbird.maintscript, adjusted thunderbird.postinst
  • (./) Add optional helper to migrate $HOME/.icedove to $/HOME/.thunderbird

    • (./) Thunderbird is looking what MOZ_APP_PROFILE is pointing. MOZ_APP_PROFILE is a static variable while built if needed, we will use this variable to let Thunderbird look in ~/.icedove for releases wheezy-security and jessie-security.

  • (./) Adjust the *.desktop file to visualize Thunderbird instead of Icedove

  • (./) Adopt the autopkg test to the new binary names

  • (./) Adding some notes into README.Debian about the name switching

  • (./) Changing the helper scripts inside debian/ to build thunderbird and lightning archives

    • adopting build folders for l10n data in debian/rules afterwards (to be done after first "new" import)
  • (./) Generate own Thunderbird icons preferable from a SVG file

  • (./) Review and Rework of the manpage for thunderbird (previously icedove) after the de-branding

  • (./) Remove WhatsNew linking via mailnews.start_page.override_url (vendor.js)

  • (./) Switch to compat level 9 if possible, use dh-exec for files that change there name

  • (./) make wrapper script /usr/bin/thunderbird smart enough for passing Thunderbird options through

  • (./)more improvements to the wrapper script
    • move the specific part of the migration into separate file
    • do better proofing (for files) before starting any migration, make the script here idempotent
  • (./) work on the current Lintian output into the new packages

  • (./) Prepare some notes about the changes (like profile folder) for Stretch

  • prepare some information for the release notes of Stretch
  • (./) prepare announcement for d-d-a about the new de-branded packages

  • (./) start a Wiki page for Thunderbird, especially with information about the migration from Icedove

  • (./) do the same as a text file for /u/s/d/thunderbird

  • (./) review the copyright file more in deep

  • (./) reactivate the Crash Reporter feature

  • writing a blog post?

Left over issues?

  • We need two desktop files, one for the existing Icedove and the new one for Thunderbird. The logical content is the same, except the 'NAME' thing is differing. For Stretch the desktop file for Icedove is moved into the transitional Icedove package. For Jessie and Wheezy there are objections to keep the icedove.desktop file inside the Thunderbird package. Why?
    • Due this we can keep existing local links on the user desktop made for Icedove pointing now to Thunderbird with the new icon in Jessie and Wheezy.
    • For Stretch we only keep the Thunderbird desktop file, if the user is doing a dist-upgrade from Jessie the personal linking has to be redone with the new desktop file.
  • Remind users to delete or move the old created backup from the ~/.icedove folder after several versions. Adding a hint into README and NEWS maybe too.

Tracking of Bug Reports for Icedove to Thunderbird Migration

To see all bug reports that are related to the Icedove -> Thunderbird migration you can look at all bugs tagged by icedeove-thunderbird-migration. To add additional bug reports you can simply use bts.

bts user icedove@packages.debian.org , usertags <$bugnumber> icedove-thunderbird-migration

GTK3

GTK3 support is targeted and re-enabled by upstream with the first beta versions of ESR 52. Debian isn't providing a Thunderbird 52 yet. It's planned to upload a version soon to unstable. The Thunderbird versions 48.x in Debian wont ever have GTK3 enabled.