[PATCH 2 of 4] osx: create dmg with installer instead of zip

Mads Kiilerich mads at kiilerich.com
Sat Aug 30 07:51:07 CDT 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1409402149 -7200
#      Sat Aug 30 14:35:49 2014 +0200
# Node ID 3fe97f7dc300e16d338efc923f5f66a0bf960b99
# Parent  04876a023f7467c87fd992148bf676be50dfdf57
osx: create dmg with installer instead of zip

OS X would offer to expand the zip so the (multi file) installer inside it
could be run ... but that would leave the expanded zip folder around.

Instead, use a .dmg file that automatically will be mounted - that seems more
common on OS X.

Still, there is two levels of levels of clicking before actually launching the
installer. Having a single file installer would be better ... but seems to be
hard. A more feasible improvement would be some fancy layout inside the .dmg .

diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -137,10 +137,11 @@ i18n/hg.pot: $(PYFILES) $(DOCFILES) i18n
 osx:
 	@which -s bdist_mpkg || \
 	   (echo "Missing bdist_mpkg (easy_install bdist_mpkg)"; false)
+	rm -rf dist/mercurial-*.mpkg
 	bdist_mpkg setup.py
 	mkdir -p packages/osx
+	N=`cd dist && echo mercurial-*.mpkg | sed 's,\.mpkg$$,,'` && hdiutil create -srcfolder dist/$$N.mpkg/ -scrub -volname "$$N" -ov packages/osx/$$N.dmg
 	rm -rf dist/mercurial-*.mpkg
-	mv dist/mercurial*macosx*.zip packages/osx
 
 fedora:
 	mkdir -p packages/fedora
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -583,7 +583,7 @@ setup(name='mercurial',
       cmdclass=cmdclass,
       distclass=hgdist,
       options={'py2exe': {'packages': ['hgext', 'email']},
-               'bdist_mpkg': {'zipdist': True,
+               'bdist_mpkg': {'zipdist': False,
                               'license': 'COPYING',
                               'readme': 'contrib/macosx/Readme.html',
                               'welcome': 'contrib/macosx/Welcome.html',


More information about the Mercurial-devel mailing list