diff options
author | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-06-03 17:14:30 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-06-03 15:28:43 +0000 |
commit | 297e61af3e6f980fe8a4b48b230a6701dd6906cc (patch) | |
tree | 32fddcd8b89a296ba58ea93b779b6cdaf7977307 /src/libs | |
parent | 4d8d5273a2434c60562cae13c0a08d4bc2fd642f (diff) |
Fix maintenance tool upgrade on OSX.
Before rename we need to delete a possible existing file,
otherwise it will fail and the installation is messed up.
Change-Id: I6ade434f828f11b38c00b52eabeb1c574557ec5a
Reviewed-by: Jonathan Courtois <jonathan.courtois@gmail.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index f318a47bb..7d2864cfb 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -1005,6 +1005,15 @@ void PackageManagerCorePrivate::writeMaintenanceToolBinary(QFile *const input, q QInstaller::appendInt64(&dataOut, 4 * sizeof(qint64)); // data block size QInstaller::appendInt64(&dataOut, BinaryContent::MagicUninstallerMarker); QInstaller::appendInt64(&dataOut, BinaryContent::MagicCookie); + + { + QFile dummy(resourcePath.filePath(QLatin1String("installer.dat"))); + if (dummy.exists() && !dummy.remove()) { + throw Error(tr("Could not remove data file '%1': %2").arg(dummy.fileName(), + dummy.errorString())); + } + } + if (!dataOut.rename(resourcePath.filePath(QLatin1String("installer.dat")))) { throw Error(tr("Could not write maintenance tool data to %1: %2").arg(out.fileName(), out.errorString())); |