The last remaining issue I'm trying to iron out in my build train is iTunes; specifically, the Mobile Device Support. For some reason, it doesn't appear that the postinstall script in that package is running properly. As a result, the _usbmuxd user and group are not being created properly, which is causing the daemon that uses that to flip out and flood the console with error messages.
Anyone else having any similar issues with this particular installer?
eta: this is in InstaDMG r211.
I'm also seeing iTunes 8.2.1, Quicktime 7 & AirPort Utility fail to install with these errors.
installer[82217]: Install failed: The following install step failed: run preflight script for AirPort Utility. Contact the software manufacturer for assistance. installer: The install failed (The following install step failed: run preflight script for AirPort Utility. Contact the software manufacturer for assistance.) installer[82424]: Install failed: The following install step failed: run preflight script for QuickTime 7. Contact the software manufacturer for assistance. installer: The install failed (The following install step failed: run preflight script for QuickTime 7. Contact the software manufacturer for assistance.) installer[83355]: Install failed: The following install step failed: run preflight script for Apple Mobile Device Support. Contact the software manufacturer for assistance. installer: The install failed (The following install step failed: run preflight script for Apple Mobile Device Support. Contact the software manufacturer for assistance.)
If have made the following workaround for the _usbmuxd user flooding the console log.
Inside the installer package for iTunes 8.2.1 there is a user creation script for the _usbmuxd user in iTunes.mpkg/Contents/Resources/AppleMobileDeviceSupport.pkg/Contents/Resources/postinstall
I have copied the user creation part of the postinstall script to at new custom package which is subsequently installed by DeployStudio as a postponed installation (i.e. install on first boot). This eliminates the error messages completely.
I haven't seen the other error mentioned in this thread, but I use a 10.5.8 client for building the images.
I decided to go for the nuke and pave approach here..
Started with a completely different system to build the image and updated it all the way to 10.5.8 Server + all available updates. Downloaded the latest instadmg r211 from svn. Re-downloaded all the updater pkgs fresh from apple and populated the intsadmg updates tree. Copied in a known good retail 10.5.4 installer dmg. When I build this I get a workable image with all the updates installed!
I also have the _usbmuxd errors spewing all over the system.log. Fixing this after the restore is not an option for us. I'm now attempting a build by installing the individual .pkg's inside the iTunes.mpkg. If that doesn't work I'm pulling iTunes out of our image for now.
Blake
Installing the iTunes components individually didn't resolve the issue. I just pulled the iTunes 8.2.1 update from our build. Sounds like iTunes 9 will be showing up in the next few weeks. Hopefully that installer will just work.
Blake
YES. totally just discovered this problem with my 10.5.8 build chain :-(
i did a delete of the main app and a manuall reinstall from the mpkg and it's good again. probably just the 'mobile device support' sub package like you say.
[edit update] Yes, just installing the mobile device support again does the job.
basically the code in postinstall that makes the _usbmuxd user and group is failing. [edit: er, what ttpedersen said basically!]
i can't see why - it LOOKS right - it's done in that dscl localonly syntax. run it without all the kextload and launchctl lines, and your ipod is recognised again.
(slightly less importantly is a 'reenumerate' line that doesn't run on the right system, so eg i get "found device 0x1103 when i rerun it - probably no big loss, whatever that device is)
[another edit update] HAHA it might be something to do with the passwd ''*' line, which doesn't seem to be the right syntax. after all '*' is being expanded as the files in the current directory!
# dscl /Local/Default -read /Users/_usbmuxd Password Password: Desktop Desktop DB Desktop DF postinstall preinstall
(my absolute last post for a while, i hope.)
it's not a straightforward dscl they're doing at all, but EVAL dscl. huh? and of course that expands the password '*' parameter. that's an error right there! and perhaps that expansion fails under certain circumstances.
i can't see any problem with just removing that eval, so i'm going to give that a go next time i run a build.
phew. what fun.
My first solution was to create an installerchoices.xml file for the iTunes installer. That didn't work, for some reason. So - I did the next best thing. I deleted the Apple Mobile Device Support pkg, modified the dist file, and just left it at that. I'll install the Mobile Device Support upon request separately by hand.
did dumping the eval work?
it doesn't look like it, no. sadly.
turns out that the eval IS needed for reasons that elude my amateur unix eyes and it does run against a non-booted system (this means the password still becomes the expanded list of files and directories in the working directory!)
so you can add the script to a post install script in a pkg that runs against a non-booted system, or as a post-install script in deploystudio or wherever.
this does mean that it's something peculiar to the instaDMG workflow that's failing to execute these lines of script ok. but as the createuser script does work ok and along similar lines, there is probably a way to rewrite that chunk of code to effect the same end
[edit update]
could it be that dscl isn't in the run path? i'll try updating the itunes script with /usr/bin/dscl the NEXT time. (i noticed that createuser script uses the full path)
I went ahead and filed this as a bug on the google code InstaDMG site.
Anybody tried to use the iTunes 9 pkg yet?
Blake
They closed the issue with:
I am marking this as closed. I don't remember us making any changes, but with iTunes 9.0.x being in vogue now
I think they have solved it for us.
But I have still the errors in the log with iTunes 9.0.3.
m84168 com.apple.launchd[1] (com.apple.usbmuxd[316]: getpwnam("_usbmuxd") failed
m84168 com.apple.launchd[1] (com.apple.usbmuxd[316]: Exited with code: 1
m84168 com.apple.launchd[1] (com.apple.usbmuxd[316]: Throttling respawn: Will start in 10 seconds
I have a 10.5.7 base image. From the Apple site I downloaded all the software updates and put the packages in the BaseUpdates folder.
After a restore I get the errors in the log. And there is no _usbmuxd user.
Checked it with dscl . -list /users
I have created a new InstaDMG image whitout the iTunes 9.0.3 update package. After a restore I installed the iTunes 9.0.3 update with Software Update.
All the errors are gone and there is a user _usbmuxd.
It still goed well when I put the iTunes 9.0.3 packages in a DeployStudio workflow.
Ferry
AFP548 - Forum
http://www.afp548.com/forum/viewtopic.php?showtopic=25053