Uploaded image for project: 'Qt Installer Framework'
  1. Qt Installer Framework
  2. QTIFW-3411

Silent install via QS script fails since 4.7.0

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P4: Low
    • None
    • 4.7.0, 4.8.0
    • Scripting
    • None
    • All

    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);
      };
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            installerteam Installer Team
            jmarrec Julien Marrec
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes