biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / networking / instant-messengers / franz / generic.nix
blob39c892b335123752e93f0c56332f3a329e4b85c0
1 { stdenv
2 , lib
3 , makeWrapper
4 , wrapGAppsHook
5 , autoPatchelfHook
6 , dpkg
7 , xorg
8 , atk
9 , glib
10 , pango
11 , gdk-pixbuf
12 , cairo
13 , freetype
14 , fontconfig
15 , gtk3
16 , dbus
17 , nss
18 , nspr
19 , alsa-lib
20 , cups
21 , expat
22 , udev
23 , libnotify
24 , xdg-utils
25 , mesa
26 , libglvnd
27 , libappindicator-gtk3
30 # Helper function for building a derivation for Franz and forks.
32 { pname, name, version, src, meta, extraBuildInputs ? [], ... } @ args:
33 let
34   cleanedArgs = builtins.removeAttrs args [ "pname" "name" "version" "src" "meta" "extraBuildInputs" ];
35 in stdenv.mkDerivation (rec {
36   inherit pname version src meta;
38   # Don't remove runtime deps.
39   dontPatchELF = true;
41   nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
42   buildInputs = extraBuildInputs ++ (with xorg; [
43     libXi
44     libXcursor
45     libXdamage
46     libXrandr
47     libXcomposite
48     libXext
49     libXfixes
50     libXrender
51     libX11
52     libXtst
53     libXScrnSaver
54   ]) ++ [
55     mesa #libgbm
56     gtk3
57     atk
58     glib
59     pango
60     gdk-pixbuf
61     cairo
62     freetype
63     fontconfig
64     dbus
65     nss
66     nspr
67     alsa-lib
68     cups
69     expat
70     stdenv.cc.cc
71   ];
72   runtimeDependencies = [ libglvnd stdenv.cc.cc.lib (lib.getLib udev) libnotify libappindicator-gtk3 ];
74   unpackPhase = "dpkg-deb -x $src .";
76   installPhase = ''
77     mkdir -p $out/bin
78     cp -r opt $out
79     ln -s $out/opt/${name}/${pname} $out/bin
81     # Provide desktop item and icon.
82     cp -r usr/share $out
83     substituteInPlace $out/share/applications/${pname}.desktop \
84       --replace /opt/${name}/${pname} ${pname}
85   '';
87   dontWrapGApps = true;
89   postFixup = ''
90     # make xdg-open overrideable at runtime
91     wrapProgram $out/opt/${name}/${pname} \
92       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDependencies}" \
93       --suffix PATH : ${xdg-utils}/bin \
94       "''${gappsWrapperArgs[@]}"
95   '';
96 } // cleanedArgs)