From 75ffc787ac5d166e74fb13f5e2da9e3016ba175f Mon Sep 17 00:00:00 2001 From: Kevin Yue Date: Thu, 20 Feb 2020 23:27:06 +0800 Subject: [PATCH] Update readme --- GPClient/screenshot.png | Bin 0 -> 24189 bytes README.md | 32 +++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 GPClient/screenshot.png diff --git a/GPClient/screenshot.png b/GPClient/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..868eb9b10f341c54eb62853e57cababa78e57730 GIT binary patch literal 24189 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 Hti%2T$B~5@ literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 661f978..24cc97c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,32 @@ # GlobalProtect-openconnect -A GlobalProtect VPN client (GUI) for Linux based on Openconnect and written with Qt5 +A GlobalProtect VPN client (GUI) for Linux based on Openconnect and built with Qt5, supports SAML auth mode, inspired by [gp-saml-gui](https://github.com/dlenski/gp-saml-gui). + +

+![GlobalProtect openconnect](./screenshot.png); +

+ +## Prerequisites + +- Openconnect v8.x +- Qt5, qt5-webengine, qt5-websockets + +### Ubuntu +1. Install openconnect v8.x + Update openconnect to 8.x, for ubuntu 18.04 you might need to [build the latest openconnect from source code](https://gist.github.com/yuezk/ab9a4b87a9fa0182bdb2df41fab5f613). +2. Install the Qt dependencies + ```sh + sudo apt install qt5-default libqt5websockets5-dev qtwebengine5-dev + ``` +## Install + +```sh +git clone https://github.com/yuezk/GlobalProtect-openconnect.git +cd GlobalProtect-openconnect +qmake CONFIG+=release +make +sudo make install +``` +Open `GlobalProtect VPN` in the application dashboard. + +## [License](./LICENSE) +GPLv3