Closed Bug 356740 Opened 13 years ago Closed 13 years ago

NSIS installer should remove all obsolete files during installation

Categories

(Calendar :: Sunbird Only, defect)

Sunbird 0.3
x86
Windows 2000
defect
Not set

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: ssitter, Assigned: ssitter)

Details

(Whiteboard: [verified0.3.1])

Attachments

(1 file, 1 obsolete file)

Follow up for Bug 355225.

Win32 NSIS installer should remove the following obsolete files that are leftovers from previous installation to prevent problems:

Leftovers from Sunbird 0.2 installation
=======================================
chrome/calendar-ca-AD.jar
chrome/calendar-cs-CZ.jar
chrome/calendar-cy-GB.jar
chrome/calendar-de-AT.jar
chrome/calendar-es-ES.jar
chrome/calendar-fr-FR.jar
chrome/calendar-hu-HU.jar
chrome/calendar-it-IT.jar
chrome/calendar-ja-JP.jar
chrome/calendar-lt-LT.jar
chrome/calendar-nl-NL.jar
chrome/calendar-pl-PL.jar
chrome/calendar-pt-BR.jar
chrome/calendar-sk-SK.jar
chrome/calendar-sl-SI.jar
chrome/calendar-sv-SE.jar
chrome/calendar-tr-TR.jar
chrome/calendar-wen-DE.jar
chrome/help.jar
chrome/pipnss.jar
components/browser.xpt
defaults/profile/mimeTypes.rdf
extensions/{8af2d0a7-e394-4de2-ae55-2dae532a7a9b}/install.rdf
extensions/Extensions.rdf
extensions/installed-extensions-processed.txt
plugins/
res/builtin/platformHTMLBindings.xml
res/platform-forms.css
xpcom_compat.dll


Leftovers from Sunbird 0.3a1/0.3a2 installation
===============================================
chrome/chromelist.txt
components/necko_data.xpt
components/xmlextras.xpt
plugins/npnul32.dll
res/dtd/mathml.dtd
res/dtd/mathml20.properties
res/fonts/mathfont.properties
res/fonts/mathfontCMEX10.properties
res/fonts/mathfontCMSY10.properties
res/fonts/mathfontMath1.properties
res/fonts/mathfontMath2.properties
res/fonts/mathfontMath4.properties
res/fonts/mathfontMTExtra.properties
res/fonts/mathfontPUA.properties
res/fonts/mathfontSymbol.properties
res/bloatcycle.html
res/EditorOverride.css
res/entityTables
res/grabber.gif
res/mathml.css
res/table-add-column-after-active.gif
res/table-add-column-after-hover.gif
res/table-add-column-after.gif
res/table-add-column-before-active.gif
res/table-add-column-before-hover.gif
res/table-add-column-before.gif
res/table-add-row-after-active.gif
res/table-add-row-after-hover.gif
res/table-add-row-after.gif
res/table-add-row-before-active.gif
res/table-add-row-before-hover.gif
res/table-add-row-before.gif
res/table-remove-column-active.gif
res/table-remove-column-hover.gif
res/table-remove-column.gif
res/table-remove-row-active.gif
res/table-remove-row-hover.gif
res/table-remove-row.gif
res/viewer.properties
dependentlibs.list
mozctl.dll
mozctlx.dll
regxpcom.exe
sunbird.url
unins000.dat
unins000.exe
xpcom_compat.dll
xpcshell.exe
xpidl.exe
xpt_dump.exe
xpt_link.exe
From the Linux xpinstall installers, I suspect there will also be lib*.so versions of the .dlls and versions of the .exes without .exe

Oh the fun.
Clean out all obsolete files from old win32 installer versions. Tested with 0.2, 0.3a1 and 0.3a2 en-US installer from [http://ftp.mozilla.org/pub/mozilla.org/calendar/sunbird/releases/] on Windows 2000 system.
Attachment #242340 - Flags: second-review?(dmose)
Attachment #242340 - Flags: first-review?(lilmatt)
Comment on attachment 242340 [details] [diff] [review]
clean out obsolete files from old installer

>Index: mozilla/calendar/installer/removed-files.in
>===================================================================
>+chrome/overlayinfo/browser/content/overlays.rdf
>+chrome/overlayinfo/browser/content/
>+chrome/overlayinfo/browser/skin/stylesheets.rdf
>+chrome/overlayinfo/browser/skin/
>+chrome/overlayinfo/browser/
>+chrome/overlayinfo/communicator/content/overlays.rdf
>+chrome/overlayinfo/communicator/content/
>+chrome/overlayinfo/communicator/
>+chrome/overlayinfo/global/skin/stylesheets.rdf
>+chrome/overlayinfo/global/skin/
>+chrome/overlayinfo/global/
>+chrome/overlayinfo/messenger/content/overlays.rdf
>+chrome/overlayinfo/messenger/content/
>+chrome/overlayinfo/messenger/
>+chrome/overlayinfo/navigator/content/overlays.rdf
>+chrome/overlayinfo/navigator/content/
>+chrome/overlayinfo/navigator/
>+chrome/overlayinfo/

Let's use
chrome/overlayinfo/*
chrome/overlayinfo/
instead.

>+extensions/{8af2d0a7-e394-4de2-ae55-2dae532a7a9b}/install.rdf
>+extensions/{8af2d0a7-e394-4de2-ae55-2dae532a7a9b}/
Same here.

>+res/builtin/platformHTMLBindings.xml
>+res/builtin/
and here.

>+plugins/npnul32.dll
>+plugins/
and here.

>+res/entityTables/mathml20.properties
>+res/entityTables/
and here.

r=lilmatt with that
Attachment #242340 - Flags: first-review?(lilmatt) → first-review+
(In reply to comment #3)

I think we should not use xyz/* here. Reason is that this will remove _all_ files in that directory and not only the files we know that can be removed safely. There might be other created files, files from extensions or plugins, data files the user decided to store in Sunbird program folder (for whatever reason), ...
(In reply to comment #4)
> I think we should not use xyz/* here. Reason is that this will remove _all_
> files in that directory and not only the files we know that can be removed
> safely.
Okay, but you're deleting the directory in the last line of each of those sections, and IIRC deleting the directory _WILL_ delete its contents (aka rm -rf).

(In reply to comment #5)
I thought the installer was smart enough not to delete folders that still contain files. Apparently I'm wrong.

So in that case we could either remove only the files in question and leave behind empty folders. On the other hand do Firefox and Thunderbird a similar think, e.g. they list only 'chrome/overlayinfo/' in their 'removed-files.in' file. Or they explicit list the file to remove and than the folder. (Like in my patch). But none of them uses '*'.
(In reply to comment #6)
> I thought the installer was smart enough not to delete folders that still
> contain files. Apparently I'm wrong.
http://lxr.mozilla.org/mozilla/source/calendar/installer/windows/nsis/installer.nsi#563

> On the other hand do Firefox and Thunderbird a similar think, e.g. they list
> only 'chrome/overlayinfo/' in their 'removed-files.in' file.
I'd follow their lead.
Patch addresses some of the previous comments to shorten the patch. For example I did not replaced single file names with * so that it is easier to see/find what specific files are meant to be removed if someone works this file later. The rest was updated to match the 'style' already used by Firefox and Thunderbird.
Attachment #242340 - Attachment is obsolete: true
Attachment #245014 - Flags: first-review?(lilmatt)
Attachment #242340 - Flags: second-review?(dmose)
Comment on attachment 245014 [details] [diff] [review]
clean out obsolete files from old installer, v2

r=lilmatt
Attachment #245014 - Flags: first-review?(lilmatt) → first-review+
Attachment #245014 - Flags: second-review?(mvl)
Comment on attachment 245014 [details] [diff] [review]
clean out obsolete files from old installer, v2

r2=mvl
Attachment #245014 - Flags: second-review?(mvl) → second-review+
Patch checked in on MOZILLA_1_8_BRANCH and trunk.

-> FIXED
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Flags: blocking-calendar0.3.1?
Flags: blocking-calendar0.3.1? → blocking-calendar0.3.1+
Patch checked in for 0.3.1

LIGHTNING_0_3_BRANCH:
Checking in removed-files.in;
/cvsroot/mozilla/calendar/installer/removed-files.in,v  <--  removed-files.in
new revision: 1.1.2.3.2.1; previous revision: 1.1.2.3

SUNBIRD_0_3_BRANCH:
Checking in removed-files.in;
/cvsroot/mozilla/calendar/installer/removed-files.in,v  <--  removed-files.in
new revision: 1.3.2.3; previous revision: 1.3.2.2

Marking [fixed0.3.1]
Whiteboard: [fixed0.3.1]
Verified that Sunbird starts up after installing new Sunbird version over previous version. Tested update from 0.2/0.3a1/0.3a2/0.3 to 0.3.1 for both en and de locale, update from 0.2/0.3.1 to 0.4a1 (branch) for en locale.

Marking [verified0.3.1].
Status: RESOLVED → VERIFIED
Whiteboard: [fixed0.3.1] → [verified0.3.1]
You need to log in before you can comment on or make changes to this bug.