Skip to content

v0.4.0

Compare
Choose a tag to compare
@vlaci vlaci released this 23 Feb 22:45
· 151 commits to master since this release

Release Notes

v0.4.0

Prelude

It is now possible to install openconnect-sso using a systemwide
installation of Qt by declaring dependencies to PyQt5 and
PyQtWebEngine optional.

New Features

    • --authenticate [json|shell] command line argument
      Exits after authentication and displays the authentication
      information needed to initiate a connection. When the shell
      output format is used the output is formatted the same way as
      openconnect formats its output when the same argument is used.
      When json format is used, the same information is displayed in
      json format.

      Kudos to @rschmied for the original pull request.

    • --version/-V command line argument
      Displays the version of openconnect-sso
    • --browser-display-mode [shown|hidden] command line argument
      If hidden is specified the browser login window is not
      displayed. Keep in mind thatin that case there is no way to
      manually enter credentials so make sure that you can login with
      saved settings without interacting with the webpage before
      selecting this option.

Upgrade Notes

  • Use the --authenticate command line argument instead
    of--auth-only. The latter argument has been removed from this
    version of openconnect-sso.
  • As it is now possible to choose between a bundled or preinstalled
    version of Qt, that means that PyQt5 is no longer a required
    dependency. To keep installing openconnect-sso with all its
    dependencies:

    $ pip install --user --upgrade "openconnect-sso[full]"
    

    To use the systemwide installation of PyQt5 and PyQtWebEngine
    install them via your distribution's package manager:

    # apt install python-pyqt5 python3-pyqt5.qtwebengine
    

    Then install openconnect-sso:

    $ pip install --user --upgrade openconnect-sso
    

Other Notes

  • Dependencies updated to newer versions
  • The browser window runs its separate process in order to not let
    PyQt pollute the root process and make the core able to still use
    asyncio without any hassle.

    Unfortunately spawning a separate Python instance is not so trivial
    as it won't inherit all state from the parent process. It makes the
    application harder to integrate in more exotic deployments such as
    in NixOS.

    End-users should not observe any changes in behavior.