nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix

92 lines
1.5 KiB
Nix
Raw Normal View History

2020-07-03 10:43:18 +01:00
{ stdenv
, lib
2020-07-03 10:43:18 +01:00
, makeWrapper
, wrapGAppsHook
, autoPatchelfHook
, dpkg
, xorg
, atk
, glib
, pango
, gdk-pixbuf
, cairo
, freetype
, fontconfig
, gtk3
, gnome2
, dbus
, nss
, nspr
, alsaLib
, cups
, expat
, udev
, libnotify
2021-02-01 08:05:09 +00:00
, xdg-utils
2020-07-03 10:43:18 +01:00
}:
# Helper function for building a derivation for Franz and forks.
{ pname, name, version, src, meta }:
2020-11-17 12:05:15 +00:00
stdenv.mkDerivation rec {
2020-07-03 10:43:18 +01:00
inherit pname version src meta;
# Don't remove runtime deps.
dontPatchELF = true;
nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
buildInputs = (with xorg; [
libXi
libXcursor
libXdamage
libXrandr
libXcomposite
libXext
libXfixes
libXrender
libX11
libXtst
libXScrnSaver
]) ++ [
gtk3
atk
glib
pango
gdk-pixbuf
cairo
freetype
fontconfig
dbus
gnome2.GConf
nss
nspr
alsaLib
cups
expat
stdenv.cc.cc
];
2020-11-17 12:05:15 +00:00
runtimeDependencies = [ stdenv.cc.cc.lib (lib.getLib udev) libnotify ];
2020-07-03 10:43:18 +01:00
unpackPhase = "dpkg-deb -x $src .";
installPhase = ''
mkdir -p $out/bin
cp -r opt $out
ln -s $out/opt/${name}/${pname} $out/bin
# Provide desktop item and icon.
cp -r usr/share $out
substituteInPlace $out/share/applications/${pname}.desktop \
--replace /opt/${name}/${pname} ${pname}
'';
dontWrapGApps = true;
postFixup = ''
wrapProgram $out/opt/${name}/${pname} \
2020-11-17 12:05:15 +00:00
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDependencies}" \
2021-02-01 08:05:09 +00:00
--prefix PATH : ${xdg-utils}/bin \
2020-07-03 10:43:18 +01:00
"''${gappsWrapperArgs[@]}"
'';
}