From fea29bda610b7eda201aa23261038610f6455046 Mon Sep 17 00:00:00 2001 From: probonopd Date: Mon, 27 Nov 2017 20:54:39 +0000 Subject: [PATCH] Call close(); on QProcess https://github.com/probonopd/linuxdeployqt/issues/194#issuecomment-347322024 --- tools/linuxdeployqt/shared.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/tools/linuxdeployqt/shared.cpp b/tools/linuxdeployqt/shared.cpp index bbb6bde..03c32c7 100644 --- a/tools/linuxdeployqt/shared.cpp +++ b/tools/linuxdeployqt/shared.cpp @@ -307,6 +307,7 @@ bool copyCopyrightFile(QString libPath){ myProcess->start(dpkgPath, arguments); myProcess->waitForFinished(); QString strOut = myProcess->readAllStandardOutput().split(':')[0]; + myProcess.close(); if(strOut == "") return false; /* Find out the copyright file in that package */ @@ -314,7 +315,8 @@ bool copyCopyrightFile(QString libPath){ myProcess->start(dpkgQueryPath, arguments); myProcess->waitForFinished(); strOut = myProcess->readAllStandardOutput(); - + myProcess.close(); + QStringList outputLines = strOut.split("\n", QString::SkipEmptyParts); foreach (QString outputLine, outputLines) { @@ -355,7 +357,8 @@ LddInfo findDependencyInfo(const QString &binaryPath) QProcess ldd; ldd.start("ldd", QStringList() << binaryPath); ldd.waitForFinished(); - + myProcess.close(); + if (ldd.exitStatus() != QProcess::NormalExit || ldd.exitCode() != 0) { LogError() << "findDependencyInfo:" << ldd.readAllStandardError(); return info; @@ -610,7 +613,8 @@ QSet getBinaryRPaths(const QString &path, bool resolve = true, QString } objdump.waitForFinished(); - + objdump.close(); + if (objdump.exitCode() != 0) { LogError() << "getBinaryRPaths:" << objdump.readAllStandardError(); } @@ -776,6 +780,7 @@ QString runPatchelf(QStringList options) exit(1); } patchelftool.waitForFinished(); + patchelftool.close(); if (patchelftool.exitCode() != 0) { LogError() << "runPatchelf:" << patchelftool.readAllStandardError(); // LogError() << "runPatchelf:" << patchelftool.readAllStandardOutput(); @@ -924,7 +929,8 @@ void runStrip(const QString &binaryPath) // exit(1); // Do not exit because this could be a script that patchelf can't work on } patchelfread.waitForFinished(); - + patchelfread.close(); + if (patchelfread.exitCode() != 0){ LogError() << "Error reading rpath with patchelf" << QFileInfo(resolvedPath).completeBaseName() << ":" << patchelfread.readAllStandardError(); LogError() << "Error reading rpath with patchelf" << QFileInfo(resolvedPath).completeBaseName() << ":" << patchelfread.readAllStandardOutput(); @@ -953,7 +959,8 @@ void runStrip(const QString &binaryPath) exit(1); } strip.waitForFinished(); - + strip.close(); + if (strip.exitCode() == 0) return; @@ -1052,7 +1059,7 @@ static QString captureOutput(const QString &command) QProcess process; process.start(command, QIODevice::ReadOnly); process.waitForFinished(); - + process.close(); if (process.exitStatus() != QProcess::NormalExit) { LogError() << command << "crashed:" << process.readAllStandardError(); } else if (process.exitCode() != 0) { @@ -1518,7 +1525,7 @@ bool deployQmlImports(const QString &appDirPath, DeploymentInfo deploymentInfo, return false; } qmlImportScanner.waitForFinished(); - + qmlImportScanner.close(); // log qmlimportscanner errors qmlImportScanner.setReadChannel(QProcess::StandardError); QByteArray errors = qmlImportScanner.readAll();