1{
2 stdenv,
3 lib,
4 fetchurl,
5 cmake,
6 qtwebsockets,
7 qtwebengine,
8 qtkeychain,
9 wrapQtAppsHook,
10 openconnect,
11}:
12
13stdenv.mkDerivation rec {
14 pname = "globalprotect-openconnect";
15 version = "1.4.9";
16
17 src = fetchurl {
18 url = "https://github.com/yuezk/GlobalProtect-openconnect/releases/download/v${version}/globalprotect-openconnect-${version}.tar.gz";
19 hash = "sha256-vhvVKESLbqHx3XumxbIWOXIreDkW3yONDMXMHxhjsvk=";
20 };
21
22 nativeBuildInputs = [
23 cmake
24 wrapQtAppsHook
25 ];
26
27 buildInputs = [
28 openconnect
29 qtwebsockets
30 qtwebengine
31 qtkeychain
32 ];
33
34 patchPhase = ''
35 substituteInPlace GPService/gpservice.h \
36 --replace /usr/local/bin/openconnect ${openconnect}/bin/openconnect;
37 substituteInPlace GPService/CMakeLists.txt \
38 --replace /etc/gpservice $out/etc/gpservice;
39 '';
40
41 meta = with lib; {
42 description = "GlobalProtect VPN client (GUI) for Linux based on OpenConnect that supports SAML auth mode";
43 homepage = "https://github.com/yuezk/GlobalProtect-openconnect";
44 license = licenses.gpl3Only;
45 maintainers = [ maintainers.jerith666 ];
46 platforms = platforms.linux;
47 };
48}