Notice: Comments you submit will be routed for moderation. If you have an account, please log in first.

Ticket #1701 (closed Task: fixed)

Opened 18 months ago

Last modified 18 months ago

[OSX] Provide DMG packaging with embedded mplayer

Reported by: bflorat Owned by: bflorat
Priority: 5, normal Milestone: 1.9 "Killer Queen"
Component: Packaging Version: 1.9RC5
Keywords: osx dmg Cc:

Description (last modified by bflorat) (diff)

The standard way to distribute a software under OSX is the DMG (see [1], a disk image. We want reach at jajuk the state of the art :

  • Provide a dmg instead of a .app zipped as we currently do. Advantages are :
    • The DMG is auto-opening at download and shows a frame with the application icon ready to be installed by drag and drop to the Applications shortcut.
    • We can provide fancy looking distribution like those : [2], seems that Mac users love this.
  • We want to provide embedded mplayer binaries (already done with current .app) so user hasn't to install mplayer separately (like we already do for Windows distribution)
  • We want to provide a compressed .dmg (reduce size from 45MB to around 20MB, it is a must)
  • If possible we want to build the .dmg in continuous integration under Linux / Hudson

[1] http://en.wikipedia.org/wiki/Apple_Disk_Image

[2] http://spyrestudios.com/40-inspiring-and-creative-mac-dmg-designs/

Attachments

Change History

Changed 18 months ago by bflorat

  • status changed from new to closed
  • resolution set to fixed

I made long searches and tests on this. Here's my conclusions :

  • AFAIK, we can't currently create compressed dmg files under linux, we have to create the dmg under a OSX box manually. due to the small extra work it requires, I think that for now, we'll provide the .dmg only for final releases from Killer Queen (excluding previous releases, daily builds and RC). The zipped app will be provided only when the .dmg is not provided.
  • For history keeping, the problems I met are following :
    • We can build dmg file under linux using dd and mkfs.hfsplus but mkfs.hfsplus works on my ubuntu but produces kernel oops under the CI server (Debian Lenny). when using a compatible kernel, a working solution is provided at [1].
    • Anyway, we can't produce (AFAIK) a compressed dmg under Gnu/Linux, dmg creation is based on apple closed source APIs.
    • The DMG with background is based on closed and obfuscated technologies (.DS_Store files, see [2]) so the only working solution is to create manually under OSX a "template" dmg file with proper background properties, image... and then change the app directory inside. It is the solution we will use to make dmg manually under OSX (see bellow).

So the solution is to build manually and under OSX the dmg using DiskUtility? OSX built-in program. A working solution is explained at [3] to create the template dmg. However the hidden files/alias trick (see the screencast [3] to understand what I mean) doesn't seem to work anymore under Leopard : if an alias, even not hidden and whose name is finishing by ".jpg" points towards an hidden file, the background choice dialog doesn't display the alias. A working workaround for this part is explain at [4] : use a .background hidden directory and Command-shift G and paste the full path of the hidden directory.

I created the template dmg with a size of 45MB. Now, when building a new DMG, what we have to do is :

  • Mount the template dmg
  • Replace the .app directory with the last built
  • Create the compressed dmg to the final dmg using DiskUtility? (see [3])

[1] http://confluence.concord.org/display/CCTR/Creating+MacOS+dmg+files+in+Linux

[2] http://en.wikipedia.org/wiki/.DS_Store

[3] http://murphymac.com/slib/customized-dmg-container.htm

[4] http://el-tramo.be/guides/fancy-dmg

Changed 18 months ago by bflorat

  • description modified (diff)

Changed 18 months ago by bflorat

  • summary changed from [OSX] Provide DMG packaging to [OSX] Provide DMG packaging with embedded mplayer

Add/Change #1701 ([OSX] Provide DMG packaging with embedded mplayer)

Author



Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.