From 99cbf6812f2d872c23286ae566365e4c65bfd662 Mon Sep 17 00:00:00 2001 From: kh Date: Tue, 3 Feb 2015 17:23:51 +0100 Subject: CreateLocalRepository doesn't work on OS X. Task-number: QTIFW-622 Change-Id: I0a370801f605a43739ed660afcfe6a4c03f082dc Reviewed-by: Kai Koehne --- src/libs/installer/packagemanagercore_p.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/libs') diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 1e2f4923c..5ccf2f82d 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -1503,10 +1503,20 @@ bool PackageManagerCorePrivate::runInstaller() Operation *createRepo = createOwnedOperation(QLatin1String("CreateLocalRepository")); if (createRepo) { + QString binaryFile = QCoreApplication::applicationFilePath(); +#ifdef Q_OS_OSX + // The installer binary on OSX does not contain the binary content, it's put into + // the resources folder as separate file. Adjust the actual binary path. No error + // checking here since we will fail later while reading the binary content. + QDir resourcePath(QFileInfo(binaryFile).dir()); + resourcePath.cdUp(); + resourcePath.cd(QLatin1String("Resources")); + binaryFile = resourcePath.filePath(QLatin1String("installer.dat")); +#endif createRepo->setValue(QLatin1String("uninstall-only"), true); createRepo->setValue(QLatin1String("installer"), QVariant::fromValue(m_core)); - createRepo->setArguments(QStringList() << QCoreApplication::applicationFilePath() - << target + QLatin1String("/repository")); + createRepo->setArguments(QStringList() << binaryFile << target + + QLatin1String("/repository")); connectOperationToInstaller(createRepo, progressOperationSize); -- cgit v1.2.3