keeleysam / instadmg

Automatically exported from code.google.com/p/instadmg
0 stars 0 forks source link

volumeManager.verifyIsDMG fails with images without resize info #111

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run instaUpToDate.py with a catalog referencing an image without resize info 

What is the expected output? What do you see instead?

Expected behavior is that the image is processed like any other.

What version of InstaDMG are you running? What revision number (this should
be the second line of your package log)?

    InstaDMG version 1.6rc1 (svn revision: 452)

Output is:

    Working on folder 14 Office2011_Installer (09:15:01)
        Mounting the package dmg: Office2011_Installer.dmg (/private/tmp/idmg_temp.nXLOtR/items-BJbfKZ/14 Office2011_Installer) at: /private/tmp/idmg.ONG5/idmg_mp.g6tY
###### Unable to mount /private/tmp/idmg.ONG5/idmg_mp.g6tY: Usage: 
dmgMountHelper.py [-m/--mount-point|-p/--parent-folder path_to_folder] 
path_to_image

dmgMountHelper.py: error: The item at the provided path does not seem to be a 
valid dmg: /Volumes/munki/pkgs/Office2011_Installer.dmg ######
09:15:02 ###### Cleaning up ######
    Ejecting images
    The image did not eject cleanly, so I will force it
###### Failed to unmount the Target Disk image from 
/private/tmp/idmg.ONG5/idmg_mp.g6tY, unable to continue ######
    Deleting scratch DMG
Traceback (most recent call last):
  File "./instaUp2Date.py", line 716, in <module>
    main()
  File "./instaUp2Date.py", line 705, in main
    thisController.runInstaDMG(scratchFolder=options.instadmgScratchFolder, outputFolder=options.instadmgOutputFolder)
  File "./instaUp2Date.py", line 472, in runInstaDMG
    raise RuntimeError('InstaDMG process did not run sucessfully')
RuntimeError: InstaDMG process did not run sucessfully

What OS are you running on (booted from)?

10.7.4 (11E53)

What OS are you installing?

10.7.4 (11E53)

Please provide any additional information below.

Traced error to invocation of `hdiutil imageinfo` dmgManager.verifyIsDMG in
AddOns/InstaUp2Date/Resources/volumeManager.py.

What seems to be happening is that this Office 2011 installer image
(volume license installer, downloaded as part of our campus agreement)
is at heart an ISO. hdiutil mounts it just fine, of course, but the lack
of resize info causes hdiutil to return false, which causes verifyIsDMG
to return false. I converted the ISO to an actual dmg with `hdiutil
convert -format UDBZ`, but that resulted in a dmg which also didn't have
resize info.

A quick fix in my case was to change that to `hdiutil imageinfo
-format`, which only returns the image format, but also should be
sufficient to verify that the image is something hdiutil can deal with.
After doing so, I was able to master an image successfully.

I didn't want to submit the (trivial) patch because it seemed that the
same problem would exist with dmgManager.getVolumeInfo, but the same
approach wouldn't work, because you're actually using the output from
hdiutil in that case.

For reference, output from `hdiutil imageinfo` for that DMG is attached.

Let me know if there's any more info I can provide.

Thanks,
Aaron

Original issue reported on code.google.com by ggah...@gmail.com on 10 Aug 2012 at 3:05

Attachments:

GoogleCodeExporter commented 9 years ago
Great catch, I think it's worth including, I'll do so after making sure the 
volumeManager_test still passes. Thanks, Allister

Original comment by a...@aru-b.com on 12 Aug 2012 at 3:36