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