Software update handles different case filenames inconsistently




Application Update
11 years ago
9 years ago


(Reporter: joduinn, Unassigned)


Firefox Tracking Flags

(Not tracked)


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: → 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/
RCS file: /cvsroot/mozilla/tools/update-packaging/,v
retrieving revision 1.9
diff -u -p -r1.9
--- tools/update-packaging/  29 Mar 2007 14:11:40 -0000      1.9
+++ tools/update-packaging/  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


-> $manifest

 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\""

+# 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 reuse variables that get set in


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.
Last Resolved: 9 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.