Details
-
Bug
-
Resolution: Unresolved
-
P4: Low
-
None
-
4.7.0, 4.8.0
-
None
Description
I've had the same install_script_qtifw.qs for several years to install QtIFW and it has worked flawlessly until 4.7.0
In both 4.6.1 and 4.7.0/4.8.0 I see the same output.
# This works fine $ ./QtInstallerFramework-linux-x64-4.6.1.run --verbose --platform minimal --script install_script_qtifw.qs TargetDir=$(pwd)/install # This hangs $ ./QtInstallerFramework-linux-x64-4.8.0.run --verbose --platform minimal --script install_script_qtifw.qs TargetDir=$(pwd)/install
[...] [67] Started [2968] Installing component Qt Installer Framework [2968] backup org.qtproject.ifw operation: License [2968] - arguments: [2968] Done [2968] perform org.qtproject.ifw operation: License [2968] - arguments: [2968] Done [2970] Writing maintenance tool: "/home/julien/Software/setup-qtifw/test_local/install/Uninstaller.new" [2970] Writing maintenance tool. [3021] Wrote permissions for maintenance tool. [3041] Maintenance tool hard restart: false. [3041] Installation finished! [3042] ---- FINISHED PAGE [3042] At page: FinishedPage ('<center><font color="">Completing the Qt Installer Framework Setup</font></center>')
The difference is that in 4.7.0 and 4.8.0 it never returns and hangs there
in 4.7.0+ I also see at the start this stderr output, but I don't think it's related:
qt.dbus.integration: Could not connect "org.freedesktop.NetworkManager" to "stateChanged" qt.dbus.integration: Could not connect "org.freedesktop.NetworkManager" to "connectivityChanged" qt.dbus.integration: Could not connect "org.freedesktop.NetworkManager" to "deviceTypeChanged" qt.dbus.integration: Could not connect "org.freedesktop.NetworkManager" to "meteredChanged"
—
install_script_qtifw.qs
function Controller() { installer.autoRejectMessageBoxes(); // silent install is not an option until QtIFW v3.0.1 gui.setSilent(true); installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes); installer.installationFinished.connect(function() { gui.clickButton(buttons.NextButton); }); // Uninstaller installer.uninstallationFinished.connect(function() { gui.clickButton(buttons.NextButton); }); } function logCurrentPage() { var pageName = gui.currentPageWidget().objectName; var pagePrettyTitle = gui.currentPageWidget().title; console.log("At page: " + pageName + " ('" + pagePrettyTitle + "')"); } Controller.prototype.IntroductionPageCallback = function() { console.log("---- INTRODUCTION PAGE"); logCurrentPage(); gui.clickButton(buttons.NextButton); }; // Unused //Controller.prototype.WelcomePageCallback = function() { //console.log("---- WELCOME PAGE"); //logCurrentPage(); //// click delay because the next button is initially disabled for ~1s //gui.clickButton(buttons.NextButton, 3000); //}; //Controller.prototype.CredentialsPageCallback = function() { //console.log("---- CREDENTIAL PAGE"); //logCurrentPage(); //gui.clickButton(buttons.NextButton); //}; Controller.prototype.TargetDirectoryPageCallback = function() { console.log("---- TARGET DIRECTORY PAGE"); logCurrentPage(); console.log("User-suplied TargetDir: " + installer.value("TargetDir")); // gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("harcoded/path/EnergyPlus"); console.log("Target dir: " + gui.currentPageWidget().TargetDirectoryLineEdit.text); gui.clickButton(buttons.NextButton); }; Controller.prototype.LicenseAgreementPageCallback = function() { console.log("---- LICENSE AGREEMENT PAGE"); logCurrentPage(); var widget = gui.currentPageWidget(); if (widget != null) { console.log("Accepting license"); var accept = widget.AcceptLicenseRadioButton; if (accept != null) { console.log("Accepting license: checking Radio button"); accept.setChecked(true); } else { // QTIFW >= 4.1.0 var accept = widget.AcceptLicenseCheckBox; if (accept != null) { console.log("Accepting license: checking Checkbox button"); accept.setChecked(true); } console.log("Accepting license: button does not exist?!"); } } gui.clickButton(buttons.NextButton); }; Controller.prototype.StartMenuDirectoryPageCallback = function() { console.log("---- START MENU DIRECTORY PAGE"); logCurrentPage(); // You won't get in this callback if it wasn't already Windows, but let's be explicit & safe if (systemInfo.kernelType == "winnt") { // TODO: extra logging for debug for now console.log("installer StartMenuDir: " + installer.value("StartMenuDir")); console.log("Text: " + gui.currentPageWidget().StartMenuPathLineEdit.text); console.log("AllUsersStartMenuProgramsPath: " + installer.value("AllUsersStartMenuProgramsPath")); console.log("UserStartMenuProgramsPath: " + installer.value("UserStartMenuProgramsPath")); if (installer.value("UseAllUsersStartMenu") === "true") { console.log("Will use the **All** Users Start Menu at: " + installer.value("AllUsersStartMenuProgramsPath")); } else { console.log("Will use this Users' Start Menu at: " + installer.value("UserStartMenuProgramsPath")); } } gui.clickButton(buttons.NextButton); }; Controller.prototype.ReadyForInstallationPageCallback = function() { console.log("---- READY FOR INSTALLATION PAGE"); logCurrentPage(); gui.clickButton(buttons.CommitButton); }; Controller.prototype.PerformInstallationPageCallback = function() { console.log("---- PERFORM INSTALLATION PAGE"); logCurrentPage(); gui.clickButton(buttons.CommitButton); }; Controller.prototype.FinishedPageCallback = function() { console.log("---- FINISHED PAGE"); logCurrentPage(); gui.clickButton(buttons.FinishButton); };