summaryrefslogtreecommitdiffstats
path: root/tools/binarycreator
diff options
context:
space:
mode:
Diffstat (limited to 'tools/binarycreator')
-rw-r--r--tools/binarycreator/binarycreator.cpp27
-rw-r--r--tools/binarycreator/binarycreator.qrc1
-rw-r--r--tools/binarycreator/resources/mkdmg.sh71
3 files changed, 20 insertions, 79 deletions
diff --git a/tools/binarycreator/binarycreator.cpp b/tools/binarycreator/binarycreator.cpp
index 5abd3bbd7..1a6a10471 100644
--- a/tools/binarycreator/binarycreator.cpp
+++ b/tools/binarycreator/binarycreator.cpp
@@ -342,16 +342,29 @@ static int assemble(Input input, const QInstaller::Settings &settings, const QSt
if (createDMG) {
qDebug() << "creating a DMG disk image...";
- // no error handling as this is not fatal
- const QString mkdmgscript = QDir::temp().absoluteFilePath(QLatin1String("mkdmg.sh"));
- QFile::copy(QLatin1String(":/resources/mkdmg.sh"), mkdmgscript);
- chmod755(mkdmgscript);
+ const QString volumeName = QFileInfo(input.outputPath).fileName();
+ const QString imagePath = QString::fromLatin1("%1/%2.dmg")
+ .arg(QFileInfo(bundle).path())
+ .arg(volumeName);
+
+ // no error handling as this is not fatal
QProcess p;
- p.start(mkdmgscript, QStringList() << QFileInfo(input.outputPath).fileName() << bundle);
+ p.start(QLatin1String("/usr/bin/hdiutil"),
+ QStringList() << QLatin1String("create")
+ << imagePath
+ << QLatin1String("-srcfolder")
+ << bundle
+ << QLatin1String("-ov")
+ << QLatin1String("-volname")
+ << volumeName
+ << QLatin1String("-fs")
+ << QLatin1String("HFS+"));
+ qDebug() << "running " << p.program() << p.arguments();
p.waitForFinished(-1);
- QFile::remove(mkdmgscript);
- qDebug() << "done." << mkdmgscript;
+ qDebug() << "removing" << bundle;
+ QDir(bundle).removeRecursively();
+ qDebug() << "done.";
}
#else
Q_UNUSED(signingIdentity)
diff --git a/tools/binarycreator/binarycreator.qrc b/tools/binarycreator/binarycreator.qrc
index a32a88e27..b64e3a21a 100644
--- a/tools/binarycreator/binarycreator.qrc
+++ b/tools/binarycreator/binarycreator.qrc
@@ -2,7 +2,6 @@
<qresource>
<file>resources/default_icon_mac.icns</file>
<file>resources/copylibsintobundle.sh</file>
- <file>resources/mkdmg.sh</file>
<file alias="resources/installerbase.ico">../../src/sdk/installerbase.ico</file>
</qresource>
</RCC>
diff --git a/tools/binarycreator/resources/mkdmg.sh b/tools/binarycreator/resources/mkdmg.sh
deleted file mode 100644
index b697aa0d8..000000000
--- a/tools/binarycreator/resources/mkdmg.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt Installer Framework.
-##
-## $QT_BEGIN_LICENSE:LGPL21$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see http://www.qt.io/terms-conditions. For further
-## information use the contact form at http://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 2.1 or version 3 as published by the Free
-## Software Foundation and appearing in the file LICENSE.LGPLv21 and
-## LICENSE.LGPLv3 included in the packaging of this file. Please review the
-## following information to ensure the GNU Lesser General Public License
-## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-##
-## As a special exception, The Qt Company gives you certain additional
-## rights. These rights are described in The Qt Company LGPL Exception
-## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-#
-# Creates a disk image (dmg) on Mac OS X from the command line.
-# usage:
-# mkdmg <volname> <vers> <srcdir>
-#
-# Where <volname> is the name to use for the mounted image, <vers> is the version
-# number of the volume and <srcdir> is where the contents to put on the dmg are.
-#
-# The result will be a file called <volname>-<vers>.dmg
-
-if [ $# != 2 ]; then
- echo "usage: mkdmg.sh volname srcdir"
- exit 0
-fi
-
-VOL="$1"
-FILES="$2"
-PATHNAME=`dirname $FILES`
-
-# keep '.XXXXXX' at the end to satisfy 'mktemp' as shipped on OS X
-DMG=`mktemp "/tmp/$VOL.XXXXXX"`
-
-# create temporary disk image and format, ejecting when done
-SIZE=`du -sk ${FILES} | sed -n 's,^\([0-9]*\).*,\1,p'`
-SIZE=$((${SIZE}/1000+1))
-hdiutil create "${DMG}.dmg" -megabytes ${SIZE} -ov -volname "$VOL" -type UDIF -fs HFS+ >/dev/null
-DISK=`hdid "${DMG}.dmg" | sed -ne 's,^\(.*\) *Apple_H.*,\1,p'`
-MOUNT=`hdid "${DMG}.dmg" | sed -ne 's,^.*Apple_HFS[^/]*\(/.*\)$,\1,p'`
-
-# mount and copy files onto volume
-cp -R "$PATHNAME/`basename $FILES`" "$MOUNT"
-hdiutil eject $DISK >/dev/null
-
-# convert to compressed image, delete temp image
-rm -f "$PATHNAME/${VOL}.dmg"
-hdiutil convert "${DMG}.dmg" -format UDZO -o "$PATHNAME/${VOL}.dmg" >/dev/null
-rm -f "${DMG}.dmg"