summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJani Heikkinen <jani.heikkinen@qt.io>2019-04-04 15:05:16 +0300
committerJani Heikkinen <jani.heikkinen@qt.io>2019-04-04 15:24:05 +0000
commita0b5d6e60f96359d88352e0b1c000678cdc80988 (patch)
treea9633115754e15f40eb2a37198e0eb5877dcb014
parent18e4cf290048726933bb5cf487e947e65b3550a6 (diff)
Revert "Let "qmake -install qinstall" set default permissions 0644 and 0755"
This reverts commit 3cdf46059a668f588fe237aa881c300dd76cbf9e. It seems change is causing regression & is reverted now to be able to proceed with releases Task-number: QTBUG-74912 Change-Id: Ib2365b96ee98fbbcc8853cc7f8726c157c1913a7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--qmake/main.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/qmake/main.cpp b/qmake/main.cpp
index e5f7032554..a4ef79227b 100644
--- a/qmake/main.cpp
+++ b/qmake/main.cpp
@@ -260,25 +260,31 @@ static int installFile(const QString &source, const QString &target, bool exe =
return 3;
}
- QFileDevice::Permissions targetPermissions = QFileDevice::ReadOwner | QFileDevice::WriteOwner
- | QFileDevice::ReadUser | QFileDevice::WriteUser
- | QFileDevice::ReadGroup | QFileDevice::ReadOther;
if (exe) {
- targetPermissions |= QFileDevice::ExeOwner | QFileDevice::ExeUser |
- QFileDevice::ExeGroup | QFileDevice::ExeOther;
- }
- if (!targetFile.setPermissions(targetPermissions)) {
- fprintf(stderr, "Error setting permissions on %s: %s\n",
- qPrintable(target), qPrintable(targetFile.errorString()));
- return 3;
+ if (!targetFile.setPermissions(sourceFile.permissions() | QFileDevice::ExeOwner | QFileDevice::ExeUser |
+ QFileDevice::ExeGroup | QFileDevice::ExeOther)) {
+ fprintf(stderr, "Error setting execute permissions on %s: %s\n",
+ qPrintable(target), qPrintable(targetFile.errorString()));
+ return 3;
+ }
}
// Copy file times
QString error;
+#ifdef Q_OS_WIN
+ const QFile::Permissions permissions = targetFile.permissions();
+ const bool readOnly = !(permissions & QFile::WriteUser);
+ if (readOnly)
+ targetFile.setPermissions(permissions | QFile::WriteUser);
+#endif
if (!IoUtils::touchFile(target, sourceFile.fileName(), &error)) {
fprintf(stderr, "%s", qPrintable(error));
return 3;
}
+#ifdef Q_OS_WIN
+ if (readOnly)
+ targetFile.setPermissions(permissions);
+#endif
return 0;
}