From: Friedemann Kleint Date: Thu, 10 Jul 2014 08:55:15 +0000 (+0200) Subject: windeployqt: Clear read-only attribute when copying files. X-Git-Tag: v5.3.99+beta1~18^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a7d5e67556bd32496ce0a0f98a5ee225e00977e0;p=platform%2Fupstream%2Fqttools.git windeployqt: Clear read-only attribute when copying files. The deletion of the empty QML directories fails when not doing so. Task-number: QTBUG-40152 Change-Id: I0ff78440646239897b4867c3b3cfe1af8b2769f9 Reviewed-by: Oliver Wolff Reviewed-by: Joerg Bornemann --- diff --git a/src/windeployqt/utils.h b/src/windeployqt/utils.h index f184b51..9665bea 100644 --- a/src/windeployqt/utils.h +++ b/src/windeployqt/utils.h @@ -337,13 +337,23 @@ bool updateFile(const QString &sourceFileName, QFile file(sourceFileName); if (optVerboseLevel) std::wcout << "Updating " << sourceFileInfo.fileName() << ".\n"; - if (!(flags & SkipUpdateFile) && !file.copy(targetFileName)) { - *errorMessage = QString::fromLatin1("Cannot copy %1 to %2: %3") + if (!(flags & SkipUpdateFile)) { + if (!file.copy(targetFileName)) { + *errorMessage = QString::fromLatin1("Cannot copy %1 to %2: %3") .arg(QDir::toNativeSeparators(sourceFileName), QDir::toNativeSeparators(targetFileName), file.errorString()); - return false; - } + return false; + } + if (!(file.permissions() & QFile::WriteUser)) { // QTBUG-40152, clear inherited read-only attribute + QFile targetFile(targetFileName); + if (!targetFile.setPermissions(targetFile.permissions() | QFile::WriteUser)) { + *errorMessage = QString::fromLatin1("Cannot set write permission on %1: %2") + .arg(QDir::toNativeSeparators(targetFileName), file.errorString()); + return false; + } + } // Check permissions + } // !SkipUpdateFile if (json) json->addFile(sourceFileName, targetDirectory); return true;