Closed Bug 1507618 Opened 11 months ago Closed 6 months ago

Mozilla Thunderbird version 60.3.1 (Default) registry not incremented, remains at 60.3.0


(Thunderbird :: Installer, defect)

Not set


(thunderbird_esr6067+ fixed, thunderbird67 fixed, thunderbird68 fixed)

Thunderbird 68.0
Tracking Status
thunderbird_esr60 67+ fixed
thunderbird67 --- fixed
thunderbird68 --- fixed


(Reporter: richard.dong, Assigned: rjl)




(2 files, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

Steps to reproduce:

1. Install Mozilla Thunderbird 60.3.1
2. Examine the Data value in registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Thunderbird\(Default)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Thunderbird\(Default)
3. The (Default) value displays 60.3.0

Actual results:

Installing Mozilla Thunderbird 60.3.1 does not display the correct value for the (Default) key. It is incorrectly displaying as 60.3.0.

Expected results:

Installing Mozilla Thunderbird 60.3.1 should display the correct value for the (Default) key. It should correctly display as 60.3.1.
OS: Unspecified → Windows
Hardware: Unspecified → x86_64
installer, or build
Component: Untriaged → Installer
My registry says 52.9.1 although I have 60.3.1 installed.
Same problem with the value of "Milestone" on the "platform.ini" file
Richard, you're our installer expert, can you help? Or get help from the M-C people.
Flags: needinfo?(richard.marti)
See Also: → 1509918
Expert is way too much, I ported some patches. I think this is a build issue. But let's ask Robert. I hope he can point us to the problem.
Flags: needinfo?(richard.marti) → needinfo?(robert.strong.bugs)
The code that sets that value was ported over from the original Firefox installer code for Firefox 2.0 and the default value was the GRE version which in this case appears to be 63.3.0.

The define is picked up here for the installer
Flags: needinfo?(robert.strong.bugs)
Well, yes, TB 60.3.1 is based on mozilla-esr60 at 60.3.0. The .1 was our own invention to ship some fixes to mail bugs.

This was resolved for versions 60.4.0 through 60.5.1, however I'm seeing the issue arise again on the latest 60.5.2.

Installing 60.5.2 will have 60.5.1 appear as the Data value for the (Default) key under:

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Thunderbird(Default)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Thunderbird(Default)

Yes, sorry, the release manager here. We shipped TB 60.5.2 base on Mozilla 60.5.1 since I didn't know that they were doing a 60.5.2 as well :-(

Will be OK again for TB 60.6.

Rob, can we tweak the build system so it uses the TB version and not the Mozilla version?

Flags: needinfo?(rob)

(In reply to Jorg K (GMT+1) from comment #9)

Yes, sorry, the release manager here. We shipped TB 60.5.2 base on Mozilla 60.5.1 since I didn't know that they were doing a 60.5.2 as well :-(

Will be OK again for TB 60.6.

Rob, can we tweak the build system so it uses the TB version and not the Mozilla version?

I'll take a look and see what I can do.

Speaking to Florent in comment 3, information platform.ini should all refer to Firefox/Gecko versions and Mercurial changesets. It is entirely possible that the Milestone field in platform.ini does not match the Thunderbird version. Currently, bug 1507754 is open and documents that the SourceRepository field in platform.ini incorrectly refers to a comm- repository rather than a mozilla- one.

In contrast, most of the information in application.ini refers to Thunderbird. The exception is the [Gecko] section, which will refer to the Gecko platform version on which a particular build is based.

Flags: needinfo?(rob)
Attached image regedit.png

With respect to the version numbers found in the Windows Registry, it is working as designed.

This is taken from a registry dump after a clean install of 60.5.2. The same information is in the screenshot in attachment 9047254 [details].

[Software\\Wow6432Node\\Mozilla\\Mozilla Thunderbird]
"CurrentVersion"="60.5.2 (en-US)"`

This is the NSIS installer code that writes the above.

StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}"
  ${WriteRegStr2} $TmpVal "$0" "" "${GREVersion}" 0
  ${WriteRegStr2} $TmpVal "$0" "CurrentVersion" "${AppVersion} (${AB_CD})" 0

The @ key (Default) is set to the Gecko Runtime version, ${GREVersion}. In this case it's 60.5.1.
Then the CurrentVersion key is set to the application version, ${AppVersion}, or 60.5.2 (en-US) in this case.

So, it's correct in that the NSIS code very clearly is using ${GREVersion} as the value for the key in question. It's not a case of the Gecko version accidentally getting used instead of the Thunderbird version, which was my original suspicion.

The keys could probably be named more appropriately, and if you're trying to ascertain the currently installed Thunderbird version by interrogating the registry, there isn't a nice simple version number that you can get. The closest is the CurrentVersion key, but it has a l10n tag appended to it which means parsing out the version number somehow.

Without knowing the use case, I would probably change the Default key to match the Thunderbird version, then add a GeckoVer key for the Gecko version. I'll defer to Wayne to make that decision.

Flags: needinfo?(vseerror)

Sorry I don't really have experience here, so I'll defer to Jorg and others.

Flags: needinfo?(vseerror)

Yes, Rob, we can certainly change/fix the installer. Richard Marti has been working on installers. He or I would be happy to try out a try build if you don't have access to a Windows machine.

Attached patch installer_regkeys.patch (obsolete) — Splinter Review

This seems to do the right thing when run under Wine (also tested on Windows 10 x64).

I did not test a signed installer (Bug 1458385 may be causing issues here), and I did not test running the updater.

I suspect the updater will not be a problem since this is shared code.

Assignee: nobody → rob
Attachment #9058037 - Flags: feedback?(richard.marti)
Comment on attachment 9058037 [details] [diff] [review]

Review of attachment 9058037 [details] [diff] [review]:

Looks logic to me. thanks.

::: mail/installer/windows/nsis/shared.nsh
@@ +601,3 @@
>    ${WriteRegStr2} $TmpVal "$0" "CurrentVersion" "${AppVersion} (${AB_CD})" 0
> +  ${WriteRegStr2} $TmpVal "$0" "GeckoVersion" "${GREVersion}" 0
> +

The newline isn't needed. All !macroend, except one, follow directly without a empty line. This is only cosmetics, if you want let it in, then okay.
Attachment #9058037 - Flags: feedback?(richard.marti) → feedback+

Removed extra newline

Attachment #9058037 - Attachment is obsolete: true
Attachment #9058358 - Flags: review?(richard.marti)
Ever confirmed: true
Comment on attachment 9058358 [details] [diff] [review]

Attachment #9058358 - Flags: review?(richard.marti) → review+

I'll land that soon.

Keywords: checkin-needed
Comment on attachment 9058358 [details] [diff] [review]

I guess you want this backported :-)
Attachment #9058358 - Flags: approval-comm-esr60+
Attachment #9058358 - Flags: approval-comm-beta+

Pushed by
Use TB version as default version in Win registry. r=Paenglab

Closed: 6 months ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 68.0
You need to log in before you can comment on or make changes to this bug.