Package: icedove
Version: 1:45.8.0-2
Followup-For: Bug #858771

Dear Maintainer,

i was going to report that thunderbird fails to start if:
 ${HOME}/.thunderbird is a symlink to ${HOME}/.iceweasel
AND
 ${HOME} is a symlink itself.

the reason being that `readlink -e` is resolving both the .thunderbird symlink
and the ${HOME} symlink, thus invalidating the comparision (${HOME} != expanded
${HOME}).

it seems that the fix proposed by thomas fixes this.

one more note though (i haven't had a look at the pending upload so it might be
obsolete):
i think you can simplify the logic quite a bit from checking whether one if
${ID_PROFILE_FOLDER} resp ${TB_PROFILE_FOLDER} is a directory and the other a
symlink pointing to it AND vice-versa, to just do a single comparision whether
they actually resolve to the same path (not caring about which of the two is the
real directory; also allowing for both to be a symlink to some 3rd directory)
resp. that they don't resolve to the same path.

see attachment
--- thunderbird.org     2017-03-28 14:54:38.528598030 +0200
+++ thunderbird 2017-03-28 14:59:31.602320302 +0200
@@ -164,10 +164,12 @@
 
 # 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
+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}, found a symlink 
${TB_PROFILE_FOLDER} pointing to ${ID_PROFILE_FOLDER}"
+  if [ "$(readlink -e "${TB_PROFILE_FOLDER}")" = "$(readlink -e 
"${ID_PROFILE_FOLDER}")" ];then
+
+    output_debug "Both ${ID_PROFILE_FOLDER} and ${TB_PROFILE_FOLDER} resolve 
to $(readlink -e ${ID_PROFILE_FOLDER})"
 
     # Check if we need to do some migration, the linking could be existing
     # before we switched back to Thunderbird.
@@ -180,31 +182,11 @@
         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}")" != "${ID_PROFILE_FOLDER}" ]; 
then
-
+  elif [ "$(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
@@ -225,6 +207,7 @@
     # display a graphical advice if possible
     do_thunderbird2icedove_error_out
 
+  fi
 fi
 
 if [ "${FAIL}" = 1 ]; then

Reply via email to