Software update handles different case filenames inconsistently

RESOLVED WONTFIX

Status

()

Toolkit
Application Update
RESOLVED WONTFIX
11 years ago
9 years ago

People

(Reporter: joduinn, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

If you want to change a filename (for example, from Foo -> foo), you do:

ADD Foo.exe
...
REMOVE foo.exe

This works fine on linux. However, it does not work as expected on win32. Win32 ignores case, and so ended up removing the one and only file foo.exe.
Component: Build & Release → Software Update
Product: mozilla.org → Firefox
QA Contact: build → software.update
Version: other → unspecified

Comment 1

11 years ago
well, seems like the simple answer is "don't do that"... we probably shouldn't be changing case in the first place.

But if you put the REMOVE instructions first and then the ADD instructions, this would probably work... no guarantees though.

Comment 2

11 years ago
We ran into this problem in the 0.2.5->0.3 release cycle of Songbird. Changing the name of the application from Songbird.exe to songbird.exe was not one of our best ideas.

The fix was indeed to move the append_remove_instructions call above the make_add_instruction. This is what we did to the complete mar generation script:

Index: tools/update-packaging/make_full_update.sh
===================================================================
RCS file: /cvsroot/mozilla/tools/update-packaging/make_full_update.sh,v
retrieving revision 1.9
diff -u -p -r1.9 make_full_update.sh
--- tools/update-packaging/make_full_update.sh  29 Mar 2007 14:11:40 -0000      1.9
+++ tools/update-packaging/make_full_update.sh  19 Oct 2007 06:15:32 -0000
@@ -38,6 +38,10 @@ targetfiles="update.manifest"

 mkdir -p "$workdir"

+# XXXredfive - temporarily add the remove instructions first
+# Append remove instructions for any dead files.
+append_remove_instructions "$targetdir" > $manifest
+
 # Generate a list of all files in the target directory.
 pushd "$targetdir"
 if test $? -ne 0 ; then
@@ -48,8 +52,6 @@ list_files files

 popd

-> $manifest
-
 num_files=${#files[*]}

 for ((i=0; $i<$num_files; i=$i+1)); do
@@ -67,8 +69,9 @@ for ((i=0; $i<$num_files; i=$i+1)); do
   targetfiles="$targetfiles \"$f\""
 done

+# XXXredfive - temporarily moved to before the adds
 # Append remove instructions for any dead files.
-append_remove_instructions "$targetdir" >> $manifest
+#append_remove_instructions "$targetdir" >> $manifest

 $BZIP2 -z9 "$manifest" && mv -f "$manifest.bz2" "$manifest"


Note, we had to be careful where we moved it to because the scripts in common.sh reuse variables that get set in make_full_update.sh
(Assignee)

Updated

10 years ago
Product: Firefox → Toolkit
I see this as expected OS behavior and don't think it should be fixed in the updater which would add complexity and this can be worked around in the scripts / tools used to create mar files.
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.