evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / we / webex / package.nix
blob3a03bef180a9a24f1875c08f38d84919e3d2ee55
1 { lib
2 , writeScript
3 , stdenv
4 , fetchurl
5 , alsa-lib
6 , at-spi2-atk
7 , at-spi2-core
8 , atk
9 , cairo
10 , cups
11 , dbus
12 , expat
13 , fontconfig
14 , freetype
15 , gdk-pixbuf
16 , glib
17 , gtk3
18 , harfbuzz
19 , libdrm
20 , libgcrypt
21 , libglvnd
22 , libkrb5
23 , libpulseaudio
24 , libsecret
25 , udev
26 , libxcb
27 , libxkbcommon
28 , libxcrypt-legacy
29 , lshw
30 , mesa
31 , nspr
32 , nss
33 , pango
34 , zlib
35 , libX11
36 , libXcomposite
37 , libXcursor
38 , libXdamage
39 , libXext
40 , libXfixes
41 , libXi
42 , libXrandr
43 , libXrender
44 , libXtst
45 , libxshmfence
46 , xcbutil
47 , xcbutilimage
48 , xcbutilkeysyms
49 , xcbutilrenderutil
50 , xcbutilwm
51 , p7zip
52 , tbb
53 , wayland
54 , libXScrnSaver
57 stdenv.mkDerivation rec {
58   pname = "webex";
59   version = "44.8.0.30404";
61   src = fetchurl {
62     url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20240806164911/Webex_ubuntu.7z";
63     sha256 = "770067b495fcc3b376d77de65371f4196d0f1a0d718b84928d24aa6ea752d29b";
64   };
66   nativeBuildInputs = [
67     p7zip
68   ];
70   buildInputs = [
71     alsa-lib
72     at-spi2-atk
73     at-spi2-core
74     atk
75     cairo
76     cups
77     dbus
78     expat
79     fontconfig
80     freetype
81     glib
82     gdk-pixbuf
83     gtk3
84     harfbuzz
85     lshw
86     mesa
87     nspr
88     nss
89     pango
90     zlib
91     libdrm
92     libgcrypt
93     libglvnd
94     libkrb5
95     libpulseaudio
96     libsecret
97     udev
98     libxcb
99     libxkbcommon
100     libxcrypt-legacy
101     libX11
102     libXcomposite
103     libXcursor
104     libXdamage
105     libXext
106     libXfixes
107     libXi
108     libXrandr
109     libXrender
110     libXtst
111     libxshmfence
112     xcbutil
113     xcbutilimage
114     libXScrnSaver
115     xcbutilkeysyms
116     xcbutilrenderutil
117     xcbutilwm
118     tbb
119     wayland
120   ];
122   libPath = "$out/opt/Webex/lib:$out/opt/Webex/bin:${lib.makeLibraryPath buildInputs}";
124   unpackPhase = ''
125     7z x $src
126     mv Webex_ubuntu/opt .
127   '';
129   postPatch = ''
130     substituteInPlace opt/Webex/bin/webex.desktop --replace /opt $out/opt
131   '';
133   dontPatchELF = true;
135   buildPhase = ''
136     patchelf \
137       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
138       --set-rpath "${libPath}" \
139       opt/Webex/bin/CiscoCollabHost \
140       opt/Webex/bin/CiscoCollabHostCef \
141       opt/Webex/bin/CiscoCollabHostCefWM \
142       opt/Webex/bin/WebexFileSelector \
143       opt/Webex/bin/pxgsettings
144     for each in $(find opt/Webex -type f | grep \\.so); do
145       patchelf --set-rpath "${libPath}" "$each"
146     done
147   '';
149   installPhase = ''
150     mkdir -p "$out/bin" "$out/share/applications"
151     cp -r opt "$out"
153     ln -s "$out/opt/Webex/bin/CiscoCollabHost" "$out/bin/webex"
154     chmod +x $out/bin/webex
156     mv "$out/opt/Webex/bin/webex.desktop" "$out/share/applications/webex.desktop"
157   '';
159   passthru.updateScript = writeScript "webex-update-script" ''
160     #!/usr/bin/env nix-shell
161     #!nix-shell -i bash -p curl jq common-updater-scripts
162     set -eou pipefail;
164     channel=gold # blue, green, gold
165     manifest=$(curl -s "https://client-upgrade-a.wbx2.com/client-upgrade/api/v1/webexteamsdesktop/upgrade/@me?channel=$channel&model=ubuntu" | jq '.manifest')
167     url=$(jq -r '.packageLocation' <<< "$manifest")
168     version=$(jq -r '.version' <<< "$manifest")
169     hash=$(jq -r '.checksum' <<< "$manifest")
171     update-source-version ${pname} "$version" "$hash" "$url" --file=./pkgs/applications/networking/instant-messengers/webex/default.nix
172   '';
174   meta = with lib; {
175     description = "All-in-one app to call, meet, message, and get work done";
176     homepage = "https://webex.com/";
177     downloadPage = "https://www.webex.com/downloads.html";
178     license = licenses.unfree;
179     maintainers = with lib.maintainers; [ uvnikita ];
180     platforms = [ "x86_64-linux" ];
181   };