diff options
Diffstat (limited to 'tools/binarycreator')
-rw-r--r-- | tools/binarycreator/binarycreator.cpp | 27 | ||||
-rw-r--r-- | tools/binarycreator/binarycreator.qrc | 1 | ||||
-rw-r--r-- | tools/binarycreator/resources/mkdmg.sh | 71 |
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" |