diff --git a/launcher/archive/ArchiveWriter.cpp b/launcher/archive/ArchiveWriter.cpp index f67868a16..0e4851b66 100644 --- a/launcher/archive/ArchiveWriter.cpp +++ b/launcher/archive/ArchiveWriter.cpp @@ -18,6 +18,7 @@ #include "ArchiveWriter.h" #include #include +#include #include #include @@ -96,6 +97,13 @@ bool ArchiveWriter::addFile(const QString& fileName, const QString& fileDest) auto fileDestUtf8 = fileDest.toUtf8(); archive_entry_set_pathname(entry, fileDestUtf8.constData()); + + QByteArray utf8 = fileInfo.absoluteFilePath().toUtf8(); + const char* cpath = utf8.constData(); + struct stat st; + if (stat(cpath, &st) == 0) { + archive_entry_copy_stat(entry, &st); + } archive_entry_set_perm(entry, fileInfo.permissions() & 0777); if (fileInfo.isSymLink()) {