1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 buildPythonPackage,
6 webkitgtk_4_1,
7 wrapGAppsHook3,
8 glib-networking,
9 gobject-introspection,
10 openconnect,
11 pygobject3,
12 requests,
13}:
14buildPythonPackage rec {
15 pname = "gp-saml-gui";
16 version = "0.1+20240731-${lib.strings.substring 0 7 src.rev}";
17 format = "setuptools";
18
19 src = fetchFromGitHub {
20 owner = "dlenski";
21 repo = "gp-saml-gui";
22 rev = "c46af04b3a6325b0ecc982840d7cfbd1629b6d43";
23 sha256 = "sha256-4MFHad1cuCWawy2hrqdXOgud0pXpYiV9J3Jwqyg4Udk=";
24 };
25
26 buildInputs = lib.optional stdenv.hostPlatform.isLinux glib-networking;
27
28 nativeBuildInputs = [
29 wrapGAppsHook3
30 gobject-introspection
31 glib-networking
32 ];
33
34 propagatedBuildInputs = [
35 requests
36 pygobject3
37 openconnect
38 ]
39 ++ lib.optional stdenv.hostPlatform.isLinux webkitgtk_4_1;
40
41 preFixup = ''
42 gappsWrapperArgs+=(
43 --set WEBKIT_DISABLE_COMPOSITING_MODE "1"
44 )
45 '';
46
47 meta = with lib; {
48 description = "Interactively authenticate to GlobalProtect VPNs that require SAML";
49 mainProgram = "gp-saml-gui";
50 homepage = "https://github.com/dlenski/gp-saml-gui";
51 license = licenses.gpl3Only;
52 maintainers = [ maintainers.pallix ];
53 };
54}