biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / networking / instant-messengers / skypeforlinux / default.nix
blob50db157ccac1754f1d8670f8d99d8b27b4a53012
1 { lib, stdenv, fetchurl, dpkg
2 , alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome
3 , gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
4 , at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon, libxshmfence }:
6 let
8   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
9   # source of the latter disappears much faster.
10   version = "8.110.76.107";
12   rpath = lib.makeLibraryPath [
13     alsa-lib
14     atk
15     at-spi2-atk
16     at-spi2-core
17     cairo
18     cups
19     curl
20     dbus
21     expat
22     fontconfig
23     freetype
24     glib
25     glibc
26     libsecret
27     libuuid
29     gdk-pixbuf
30     gtk3
31     libappindicator-gtk3
33     gnome.gnome-keyring
35     libnotify
36     libpulseaudio
37     nspr
38     nss
39     pango
40     stdenv.cc.cc
41     systemd
43     libv4l
44     libdrm
45     mesa
46     libxkbcommon
47     libxshmfence
48     xorg.libxkbfile
49     xorg.libX11
50     xorg.libXcomposite
51     xorg.libXcursor
52     xorg.libXdamage
53     xorg.libXext
54     xorg.libXfixes
55     xorg.libXi
56     xorg.libXrandr
57     xorg.libXrender
58     xorg.libXtst
59     xorg.libXScrnSaver
60     xorg.libxcb
61   ] + ":${stdenv.cc.cc.lib}/lib64";
63   src =
64     if stdenv.hostPlatform.system == "x86_64-linux" then
65       fetchurl {
66         urls = [
67           "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
68           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
69           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
70         ];
71         sha256 = "sha256-ocXhISwEtwzPd1dOPjgIj5UQ/8sqq2gUtmZ8KZBAxKM=";
72       }
73     else
74       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
76 in stdenv.mkDerivation {
77   pname = "skypeforlinux";
78   inherit version;
80   system = "x86_64-linux";
82   inherit src;
84   nativeBuildInputs = [
85     wrapGAppsHook
86     glib # For setup hook populating GSETTINGS_SCHEMA_PATH
87   ];
89   buildInputs = [ dpkg ];
91   dontUnpack = true;
92   installPhase = ''
93     mkdir -p $out
94     dpkg -x $src $out
95     cp -av $out/usr/* $out
96     rm -rf $out/opt $out/usr
97     rm $out/bin/skypeforlinux
99     ln -s "$out/share/skypeforlinux/skypeforlinux" "$out/bin/skypeforlinux"
101     # Otherwise it looks "suspicious"
102     chmod -R g-w $out
103   '';
105   postFixup = ''
106     for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do
107       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
108       patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true
109     done
111     # Fix the desktop link
112     substituteInPlace $out/share/applications/skypeforlinux.desktop \
113       --replace /usr/bin/ ""
114     substituteInPlace $out/share/applications/skypeforlinux-share.desktop \
115       --replace /usr/bin/ ""
116     substituteInPlace $out/share/kservices5/ServiceMenus/skypeforlinux.desktop \
117       --replace /usr/bin/ ""
118   '';
120   meta = with lib; {
121     description = "Linux client for skype";
122     homepage = "https://www.skype.com";
123     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
124     license = licenses.unfree;
125     maintainers = with maintainers; [ panaeon jraygauthier ];
126     platforms = [ "x86_64-linux" ];
127     mainProgram = "skypeforlinux";
128   };