Firefox Internal Versioning
Updated with an additional column in the table (Size on disk). See comment after the table.
So we're running into a problem with our internal deployment of Firefox 2.0.0.3 that our software installer can't tell which is newer, Firefox 1.5.0.11 or Firefox 2.0.0.3. At the same time, I was asked by someone to create a list of files that could be used as "signature files" for Firefox. (For this purpose, a signature file is a file in a distribution with a unique file size that can be used to identify a particular version of the distribution.)
As a result of this effort, I came up with this lovely table.
| FIREFOX.EXE | Values are taken from the Version page of firefox.exe properties |
||||
| Firefox Version | Size | Size on disk | File version | File Version | Product Version |
| 1.0 | 6621794 | 6623232 | 1.0.0.0 | 1 | 1.7.5: 2004110711 |
| 1.0.1 | 6626916 | 6627328 | 1.0.1.0 | 1.0.1 | 1.7.6: 2005022518 |
| 1.0.2 | 6627428 | 6631424 | 1.0.2.0 | 1.0.2 | 1.7.6: 2005031717 |
| 1.0.3 | 6631012 | 6631424 | 1.0.3.0 | 1.0.3 | 1.7.7: 2005041417 |
| 1.0.4 | 6631012 | 6631424 | 1.0.4.0 | 1.0.4 | 1.7.8: 2005051112 |
| 1.0.5 | 6636644 | 6639616 | 1.0.5.0 | 1.0.5 | 1.7.9: 2005071118 |
| 1.0.6 | 6636644 | 6639616 | 1.0.6.0 | 1.0.6 | 1.7.10: 2005071605 |
| 1.0.7 | 6637156 | 6639616 | 1.0.7.0 | 1.0.7 | 1.7.12: 2005091517 |
| 1.0.8 | 6639716 | 6643712 | 1.0.8.0 | 1.0.8 | 1.7.13: 2006041017 |
| 1.5 | 7162979 | 7163904 | 1.8.20051.11116 | 1.8: 2005111116 | 1.5 |
| 1.5.0.1 | 7166053 | 7168000 | 1.8.20060.11112 | 1.8.0.1: 2006011112 | 1.5.0.1 |
| 1.5.0.2 | 7171685 | 7172096 | 1.8.20060.30804 | 1.8.0.2: 2006030804 | 1.5.0.2 |
| 1.5.0.3 | 7172197 | 7176192 | 1.8.20060.42618 | 1.8.0.3: 2006042618 | 1.5.0.3 |
| 1.5.0.4 | 7177325 | 7180288 | 1.8.20060.50817 | 1.8.0.4: 2006050817 | 1.5.0.4 |
| 1.5.0.5 | 7183469 | 7184384 | 1.8.20060.6376 | 1.8.0.5: 2006071912 | 1.5.0.5 |
| 1.5.0.6 | 7183469 | 7184384 | 1.8.20060.7278 | 1.8.0.6: 2006072814 | 1.5.0.6 |
| 1.5.0.7 | 7190637 | 7192576 | 1.8.20060.25382 | 1.8.0.7: 2006090918 | 1.5.0.7 |
| 1.5.0.8 | 7191149 | 7192576 | 1.8.20061.2516 | 1.8.0.8: 2006102516 | 1.5.0.8 |
| 1.5.0.9 | 7200365 | 7200768 | 1.8.20061.20612 | 1.8.0.9: 2006120612 | 1.5.0.9 |
| 1.5.0.10 | 7206509 | 7208960 | 1.8.20070.21601 | 1.8.0.10: 2007021601 | 1.5.0.10 |
| 1.5.0.11 | 7206509 | 7208960 | 1.8.20070.31202 | 1.8.0.11: 2007031202 | 1.5.0.11 |
| 1.5.0.12 | 7209069 | 7213056 | 1.8.20070.50813 | 1.8.0.11: 2007050813 | 1.5.0.12 |
| 2.0 | 7604331 | 7606272 | 1.8.20061.1023 | 1.8.1: 2006101023 | 2.0 |
| 2.0.0.1 | 7620696 | 7622656 | 1.8.20061.20418 | 1.8.1.1: 2006120418 | 2.0.0.1 |
| 2.0.0.2 | 7633008 | 7634944 | 1.8.20070.21917 | 1.8.1.2: 2007021917 | 2.0.0.2 |
| 2.0.0.3 | 7633008 | 7634944 | 1.8.20070.30919 | 1.8.1.3: 2007030919 | 2.0.0.3 |
| 2.0.0.4 | 7637104 | 7639040 | 1.8.20070.51502 | 1.8.1.4: 2007051502 | 2.0.0.4 |
| 2.0.0.5 | 7644008 | 7647232 | 1.8.20070.5781 | 1.8.1.5: 2007071317 | 2.0.0.5 |
| 2.0.0.6 | 7644520 | 7647232 | 1.8.20070.6982 | 1.8.1.6: 2007072518 | 2.0.0.6 |
NOTE: I've updated this table to include a new field, Size on disk. This field is obtained from the General Properties page for FIREFOX.EXE. I got my original file sizes by looking at the file system from a command line and they correspond to Size, NOT Size on disk. I have no idea why, but I wanted to post both values here for posterity.
So first lets talk about the "signature file" problem. Unfortunately I quickly discovered that there are a few versions between which the file sizes for firefox.exe are EXACTLY the same. In particular:
- 1.0.3 and 1.0.4
- 1.0.5 and 1.0.6
- 1.5.0.5 and 1.5.0.6
- 1.5.0.10 and 1.5.0.11
- 2.0.0.2 and 2.0.0.3
I investigated further and found that just looking at disk footprint, there is no way to tell those versions apart. I'm curious to know if other products besides our Tivoli products use file size to determine signature. If this is the case, it might be worth while to have a small signature file in Firefox that simply grows by a byte with each release. This would give us a file for which we could track versioning using file size.
The second problem is much more serious for us and revealed that despite the fixing of bug 286825, there is still a major problem with Firefox file versioning. In particular, take a look at the File version (not Version) of Firefox 1.5.0.11 and Firefox 2.0.0.3. You'll see that Firefox 1.5.0.11 is 1.8.20070.31202 and Firefox 2.0.0.3 is 1.8.20070.30919. So if an application uses File version to determine which is the latest version, it will claim that Firefox 1.5.0.11 is newer than Firefox 2.0.0.3. This is what is causing our software install problem.
Hopefully we can workaround the problem on our end, but at the same time, we need to get the file versioning in Firefox done properly. Otherwise, this is just yet another hurdle for the enterprise deployment of Firefox.