yast / yast-yast2

YaST module yast2
http://en.opensuse.org/Portal:YaST
GNU General Public License v2.0
54 stars 44 forks source link

Join the one click install main window with the installation progress window #1231

Closed jardel20 closed 2 years ago

jardel20 commented 2 years ago

When using one click install, two windows are opened until the task is finished. The installation progress window could be the same as the main window that opens. this main window is empty during the installation progress.

dgdavid commented 2 years ago

Hi, thanks for the report.

In order to illustrate better what you mean (and somehow verifying I understood your concern), see below screenshots


YaST2 1 Click installer window

yast2-1click-install-


YaST2 1 Click installer progress windows

yast2-1click-install-progress


YaST2 1 Click installer main window is actually empty

Empty YaST2 1 Click installer main window


So, you'd like to embed the progress in the YaST2 1 Click installer wizard, which makes sense. However, I believe there are reasons why it is not already merged, but I hardly remember them now.

@lslezak, could you help here? Thanks in advance.

jardel20 commented 2 years ago

Exactly @dgdavid!

lslezak commented 2 years ago

The one click installer has two parts and each of them runs with different privileges.

The first part downloads and processes the XML from the browser. This file contains the repository definitions and the list of packages to install. This part runs as the user who clicked the link in the browser.

The other part which really starts the package installation runs as administrator (the root user) to be able to install the packages and modify the system. Obviously this process cannot display the progress in the window belonging to a different user.

This separation is done for security reasons, the part which interacts with the browser should not run with admin privileges.

The only thing we could do is to close the first window while the other one is running. But maybe that would be still confusing as the progress from the first window would be lost...

I'm closing the issue, there are security reasons for this separation.

dgdavid commented 2 years ago

Thanks for the explanation @lslezak!

jardel20 commented 2 years ago

Thanks for explanation @lslezak !!!

awerlang commented 2 years ago

The other part which really starts the package installation runs as administrator (the root user) to be able to install the packages and modify the system. Obviously this process cannot display the progress in the window belonging to a different user.

This separation is done for security reasons, the part which interacts with the browser should not run with admin privileges.

@lslezak Is it possible to keep a 2-process model, each process performing roles as described above, with a slight change to the reporting of progress:

  1. The privileged process doesn't have a GUI of its own;
  2. Instead, the privileged process reports back to the caller through stdout or another appropriate RPC method;
  3. The unprivileged process receives progress and updates the original window with textual/progress bars.

I'm not familiar with the codebase, but would this be feasible while respecting security practices?

jardel20 commented 2 years ago

@lslezak Can the last comment cause the issue to be opened again?