Bug 4329 - provide dmg packages for macOS
Summary: provide dmg packages for macOS
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Client platforms (show other bugs)
Version: pre-1.0
Hardware: PC Unknown
: P2 Normal
Target Milestone: LowPrio
Assignee: Peter Åstrand
URL:
Keywords:
Depends on:
Blocks: 7978
  Show dependency treegraph
 
Reported: 2012-06-08 07:54 CEST by Pierre Ossman
Modified: 2024-07-08 16:52 CEST (History)
2 users (show)

See Also:
Acceptance Criteria:


Attachments

Description Pierre Ossman cendio 2012-06-08 07:54:46 CEST
The "proper" format for shipping OS X files is a DMG file (which is a slightly magical HFS+ file system). Unfortunately the tools used to create these are proprietary and only available on OS X. Right now we're creating ISO files, which OS X also handles somewhat decently.

We should look for open source tools for creating DMG files so we can do things more properly.
Comment 1 Pierre Ossman cendio 2012-06-08 07:55:47 CEST
It seems like modern mkisofs can do something magical. See this script:

http://git.dmdirc.com/cgit.cgi/installer/tree/makeDMG.sh

Also see these projects:

http://www.shanemcc.co.uk/libdmg/
https://github.com/planetbeing/libdmg-hfsplus
Comment 2 Pierre Ossman cendio 2016-12-12 11:59:15 CET
One reason for doing this could be to reduce the risk of mistakes. Our .iso files are magical in that they have Unix extensions to do things like set the execute bit. Not all tools might respect that though and you can end up with a broken app bundle.

See issue 22298 for one such case.
Comment 3 Linn cendio 2022-08-15 12:18:05 CEST
It seems to be easier to create .dmg files on Linux nowadays. I managed to relatively straightforward create a .dmg file through hfsplus-tools. This .dmg could both be used and modified on macOS.

On my Fedora 35, hfsplus-tools were installed by default, and below are the steps I followed to create the .dmg.

> # Create a ~40 MB dmg file
> $ dd if=/dev/zero of=out_file.dmg bs=10KB count=4096
> $ sudo losetup -fP out_file.dmg
> $ mkfs.hfsplus out_file.dmg
> Initialized out_file.dmg as a 39 MB HFS Plus volume
Comment 4 Samuel Mannehed cendio 2024-07-08 16:52:31 CEST
(In reply to Linn from comment #3)
> 
> > # Create a ~40 MB dmg file
> > $ dd if=/dev/zero of=out_file.dmg bs=10KB count=4096
> > $ sudo losetup -fP out_file.dmg
> > $ mkfs.hfsplus out_file.dmg
> > Initialized out_file.dmg as a 39 MB HFS Plus volume

Note that we probably don't need the `sudo losetup` step. Otherwise, requiring sudo during our builds would be problematic.

Note You need to log in before you can comment on or make changes to this bug.