summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp13
-rw-r--r--src/sdk/sdkapp.h24
-rw-r--r--tools/binarycreator/binarycreator.cpp9
-rw-r--r--tools/devtool/main.cpp11
4 files changed, 15 insertions, 42 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 019bbfe78..b972545ce 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -995,14 +995,12 @@ void PackageManagerCorePrivate::writeMaintenanceToolBinary(QFile *const input, q
QInstaller::appendData(&out, input, size);
if (writeBinaryLayout) {
-#if defined Q_OS_OSX || defined Q_OS_WIN
- QDir resourcePath(QFileInfo(maintenanceToolRenamedName).dir());
#ifdef Q_OS_OSX
+ QDir resourcePath(QFileInfo(maintenanceToolRenamedName).dir());
if (!resourcePath.path().endsWith(QLatin1String("Contents/MacOS")))
throw Error(tr("Maintenance tool is not a bundle"));
resourcePath.cdUp();
resourcePath.cd(QLatin1String("Resources"));
-#endif
// It's a bit odd to have only the magic in the data file, but this simplifies
// other code a lot (since installers don't have any appended data either)
QTemporaryFile dataOut;
@@ -1029,7 +1027,7 @@ void PackageManagerCorePrivate::writeMaintenanceToolBinary(QFile *const input, q
dataOut.setAutoRemove(false);
dataOut.setPermissions(dataOut.permissions() | QFile::WriteUser | QFile::ReadGroup
| QFile::ReadOther);
-#elif defined(Q_OS_LINUX)
+#else
QInstaller::appendInt64(&out, 0); // operations start
QInstaller::appendInt64(&out, 0); // operations end
QInstaller::appendInt64(&out, 0); // resource count
@@ -1298,15 +1296,12 @@ void PackageManagerCorePrivate::writeMaintenanceTool(OperationList performedOper
QInstaller::openForRead(&input);
layout = BinaryContent::binaryLayout(&input, BinaryContent::MagicCookieDat);
} catch (const Error &/*error*/) {
-#if defined Q_OS_OSX || defined Q_OS_WIN
- // On Mac and Windows data is always in a separate file
- // so that the binary can be signed
+#ifdef Q_OS_OSX
+ // On Mac, data is always in a separate file so that the binary can be signed
QString binaryName = isInstaller() ? installerBinaryPath() : maintenanceToolName();
QDir dataPath(QFileInfo(binaryName).dir());
-#ifdef Q_OS_OSX
dataPath.cdUp();
dataPath.cd(QLatin1String("Resources"));
-#endif
input.setFileName(dataPath.filePath(QLatin1String("installer.dat")));
QInstaller::openForRead(&input);
diff --git a/src/sdk/sdkapp.h b/src/sdk/sdkapp.h
index d06cd9eb3..c5cc4ca50 100644
--- a/src/sdk/sdkapp.h
+++ b/src/sdk/sdkapp.h
@@ -76,26 +76,21 @@ public:
installer binary itself, which contains the binary layout and the binary content. In case
of an maintenance tool, it will return a binary that has just a binary layout append.
- Note on OS X and Windows: For compatibility reason this function will return the .dat file
- as the binary layout cannot be appended to the actual installer / maintenance tool binary
- itself because of signing. .dat file is located inside the resource folder in the application
- bundle in OS X and next to maintenance tool in Windows.
+ Note on OS X: For compatibility reason this function will return the a .dat file located
+ inside the resource folder in the application bundle, as on OS X the binary layout cannot
+ be appended to the actual installer / maintenance tool binary itself because of signing.
*/
QString binaryFile() const
{
QString binaryFile = QCoreApplication::applicationFilePath();
-#if defined Q_OS_OSX || defined Q_OS_WIN
- // The installer binary on OSX and Windows 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());
-
#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"));
-#endif
- binaryFile = resourcePath.filePath(QLatin1String("installer.dat"));
+ return resourcePath.filePath(QLatin1String("installer.dat"));
#endif
return binaryFile;
}
@@ -119,9 +114,6 @@ public:
QString bundlePath;
if (QInstaller::isInBundle(fi.absoluteFilePath(), &bundlePath))
fi.setFile(bundlePath);
-#ifdef Q_OS_WIN
- return fi.absoluteDir().filePath(qApp->applicationName() + QLatin1String(".dat"));
-#endif
return fi.absoluteDir().filePath(fi.baseName() + QLatin1String(".dat"));
}
return QString();
diff --git a/tools/binarycreator/binarycreator.cpp b/tools/binarycreator/binarycreator.cpp
index 23261211d..1a6a10471 100644
--- a/tools/binarycreator/binarycreator.cpp
+++ b/tools/binarycreator/binarycreator.cpp
@@ -241,12 +241,10 @@ static int assemble(Input input, const QInstaller::Settings &settings, const QSt
QTemporaryFile out;
QString targetName = input.outputPath;
-#if defined Q_OS_OSX || defined Q_OS_WIN
- QDir resourcePath(QFileInfo(input.outputPath).dir());
#ifdef Q_OS_OSX
+ QDir resourcePath(QFileInfo(input.outputPath).dir());
resourcePath.cdUp();
resourcePath.cd(QLatin1String("Resources"));
-#endif
targetName = resourcePath.filePath(QLatin1String("installer.dat"));
#endif
@@ -264,10 +262,7 @@ static int assemble(Input input, const QInstaller::Settings &settings, const QSt
QInstaller::openForWrite(&out);
QFile exe(input.installerExePath);
-#if defined Q_OS_OSX || defined Q_OS_WIN
- // remove the target
- if (QFile::exists(input.outputPath))
- QFile::remove(input.outputPath);
+#ifdef Q_OS_OSX
if (!exe.copy(input.outputPath)) {
throw Error(QString::fromLatin1("Cannot copy %1 to %2: %3").arg(exe.fileName(),
input.outputPath, exe.errorString()));
diff --git a/tools/devtool/main.cpp b/tools/devtool/main.cpp
index 27c459ecc..c9aaab71c 100644
--- a/tools/devtool/main.cpp
+++ b/tools/devtool/main.cpp
@@ -173,11 +173,6 @@ int main(int argc, char *argv[])
if (QInstaller::isInBundle(path, &bundlePath))
path = QDir(bundlePath).filePath(QLatin1String("Contents/Resources/installer.dat"));
-#ifdef Q_OS_WIN
- QDir resourcePath(path);
- resourcePath.cdUp();
- path = resourcePath.filePath(QLatin1String("installer.dat"));
-#endif
int result = EXIT_FAILURE;
QVector<QByteArray> resourceMappings;
quint64 cookie = QInstaller::BinaryContent::MagicCookie;
@@ -196,12 +191,8 @@ int main(int argc, char *argv[])
QFileInfo fi(path);
if (QInstaller::isInBundle(fi.absoluteFilePath(), &bundlePath))
fi.setFile(bundlePath);
-#ifdef Q_OS_WIN
- QFileInfo appName = arguments.first();
- path = fi.absoluteDir().filePath(appName.baseName() + QLatin1String(".dat"));
-#else
path = fi.absolutePath() + QLatin1Char('/') + fi.baseName() + QLatin1String(".dat");
-#endif
+
tmp.close();
tmp.setFileName(path);
QInstaller::openForRead(&tmp);