Jamie, I tried to add the following code to log the file permissions:
QStringList runtimeDirs = QStandardPaths::standardLocations(QStandardPaths::RuntimeLocation); QString runtimeDir = (runtimeDirs.size() > 0 && !runtimeDirs[0].isEmpty()) ? runtimeDirs[0] : qgetenv("XDG_RUNTIME_DIR"); if (runtimeDir.isEmpty()) { qWarning() << "[StateSaver] No XDG_RUNTIME_DIR path set, cannot create appstate file."; return; } QString path = QString("%1/%2/statesaver.appstate").arg(runtimeDir).arg(applicationName); qDebug() << "[StateSaver] PATH" << path;
// log permissions QFile::Permissions wanted = QFile::ReadUser | QFile::WriteUser | QFile::ExeUser; QFile xdg(runtimeDir); qDebug() << QString("[StateSaver] PERMISSIONS %1 WANTED %2").arg(xdg.permissions(), 0, 16).arg(wanted, 0, 16);
And I'm getting the following result: QStandardPaths: wrong permissions on runtime directory /run/user/32011 [StateSaver] PATH "/run/user/32011/com.ubuntu.camera/statesaver.appstate" "[StateSaver] PERMISSIONS 7700 WANTED 700"
So, QFile::permissions() return 0x7700 for XDG_RUNTIME_DIR, which is weird!
Jamie, I tried to add the following code to log the file permissions:
QStringList runtimeDirs = QStandardPaths: :standardLocati ons(QStandardPa ths::RuntimeLoc ation); 0].isEmpty( )) ? runtimeDirs[0] : qgetenv( "XDG_RUNTIME_ DIR"); isEmpty( )) { "%1/%2/ statesaver. appstate" ).arg(runtimeDi r).arg( applicationName );
QString runtimeDir = (runtimeDirs.size() > 0 && !runtimeDirs[
if (runtimeDir.
qWarning() << "[StateSaver] No XDG_RUNTIME_DIR path set, cannot create appstate file.";
return;
}
QString path = QString(
qDebug() << "[StateSaver] PATH" << path;
// log permissions :Permissions wanted = QFile::ReadUser | QFile::WriteUser | QFile::ExeUser; "[StateSaver] PERMISSIONS %1 WANTED %2").arg( xdg.permissions (), 0, 16).arg(wanted, 0, 16);
QFile:
QFile xdg(runtimeDir);
qDebug() << QString(
And I'm getting the following result: 32011/com. ubuntu. camera/ statesaver. appstate"
QStandardPaths: wrong permissions on runtime directory /run/user/32011
[StateSaver] PATH "/run/user/
"[StateSaver] PERMISSIONS 7700 WANTED 700"
So, QFile:: permissions( ) return 0x7700 for XDG_RUNTIME_DIR, which is weird!