Closed Bug 27115 Opened 25 years ago Closed 25 years ago

NSMacInstaller (and MozMacInstaller) stops during 'installing files'

Categories

(SeaMonkey :: Installer, defect, P1)

PowerPC
Mac System 8.5
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: agracebush, Assigned: jj.enser)

Details

(Whiteboard: [PDT+])

build 2000020908 Steps to reproduce: 1. Run either installer, enter data into installer Actual results: After download and extraction, installer shows the 'installing files with progress pole' and then stops Expected result: completion of installation
Strongly suspect the new AutoRegister call added yesterday. Adding ssu.
Status: NEW → ASSIGNED
Keywords: beta1
Priority: P3 → P1
Target Milestone: M14
yes, a call to AutoRegister was added in an attempt to prevent the problem of missing or 0 length components.reg (or Component Registry) file. Added Dan to the CC: list. Samir, I'll work with you on this.
Whiteboard: [PDT+]
My debug build pulled in the wee hours of this morning works. That build has the AutoRegister code (which also works).
Whiteboard: [PDT+]
Whiteboard: [PDT+]
Whiteboard: [PDT+] → [PDT+] 02/10
I just pulled and built. My debug installer works fine. We'll wait and see what the morning's verification installers' moods are: I'm hoping this is a build glitch.
Today's builds still don't work. Symptoms are that each component appears to begin installing but then fails. Logging is not working currently so we don't see the error. Building opt to try and debug (yes, you can do that on the Mac).
Whiteboard: [PDT+] 02/10 → [PDT+] No date cause no traction
Ack! My opt build based on last night's pull worked too! Moving to release machines now.
There appears to be a line ending issue with the install scripts. JJ's install.xpi works fine if I swap in my own simple install.js that installs itself. Moreover, if I unzip his install.xpi, extract his install.js, and compress it back into the install.xpi (has normal mac line endings now) then it installs fine. Otherwise, we get SCRIPT_ERROR(-229) as the return value from XPI_Install(). It appears that the JS runtime doesn't like the incompatible line-endings? I'm unhappy with this deduction but the solution worked. This theory is also corroborated by the fact that JJ started building on the new G4's from the same time this problem surfaced (tools changed etc.). Reassiging to JJ to fix the line endings in the install.js's before zipping up the .xpis.
Assignee: sgehani → jj
Status: ASSIGNED → NEW
Whiteboard: [PDT+] No date cause no traction → [PDT+]
I unzipped the install.xpi on a unix box and found that the extracted install.js contained binary data including items that looked like MacCVS resource information. The install.js must not have any resources and furthermore must not be AppleSingle encoded otheriwse it is treated as binary by XPInstall and the JS runtime. Also, there were two install.js entries (both identical when extracted) in the install.xpi. This can cause confusion and so we should probably ensure only one exists in any given .xpi archive. So, the line ending speculation was incorrect. I apologize for being misleading. The issue appears to be with encoding the file -- we shouldn't. Or at the very least, we should get rid of the resource fork before encoding the folder in which the install.js resides.
Problem still occurs on this morning's (noon's) builds.
OK, here's how I think we should fix this. Whatever builds .xpi files has to know whether, for a particular file type (or file extension), the resource fork is important, and it must do the right thing on compressing the files. We know that we don't care about resource forks for all text files, including .js files. The only files we have that we need resource forks in are the .shlb and executable files. Somehow, the thing that makes .xpi files needs a lookup table to find whether resource forks are required for a particular file type. This lookup table should be read in from a file checked into the tree. [Note that some files that are checked in, which are data-only, are missing files extensions. The WAV files used for AIM sounds are an example. These files will need to be renamed.]
In the short term we should address the issue of removing the res fork from the install.js since this is blocking installer testing and verification. I believe the longer term issue is not currently a blocker and hence we should address it in a seperate, non-PDT+ bug. Simon, does this sound reasonable?
Removing the resource fork from install.js doesn't sound easily automatable. I think we need a better solution; after all, it's not hard to do.
removing the resource fork from install.js can also be easily automated. Before I do that, I will take a look back at _working_ installers from last week or so and see how these .js file were zipped. It's possible that during the process they were loosing their resource fork somewhere along the way and if it's the case, find out what's different on the Mac we're now using to build and deliver the verification build. Stay tuned.
Status: NEW → ASSIGNED
ok, I deserve a blame for this. on the new Mac, Zipit prefs were bad : "Use MacBinary when needed" was checked, which explains why we had resource fork after extraction... :-( I will edit today's .xpi's and send mail when installer can be tested again. For commercial build, if you already downlaoded NSMacInstaller.sea, you should be able to run it again (no need to download this again).
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
build 2000021413
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.