nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
2020-10-28 17:37:39 -04:00

127 lines
2.5 KiB
Nix

{ stdenv
, lib
, fetchurl
, rpmextract
, libnotify
, libuuid
, cairo
, cups
, pango
, fontconfig
, udev
, dbus
, gtk3
, atk
, at-spi2-atk
, expat
, gdk-pixbuf
, freetype
, nspr
, glib
, nss
, libX11
, libXrandr
, libXrender
, libXtst
, libXdamage
, libxcb
, libXcursor
, libXi
, libXext
, libXfixes
, libXft
, libXcomposite
, libXScrnSaver
, alsaLib
, pulseaudio
, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "bluejeans";
version = "2.17.0";
buildNumber = "11";
src = fetchurl {
url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans_${version}.${buildNumber}.rpm";
sha256 = "1h5jbnp5bwy6bpma9a1ia08v7bpz09fm66jsip470k1r7vjjwa68";
};
nativeBuildInputs = [ rpmextract makeWrapper ];
libPath =
stdenv.lib.makeLibraryPath
[
libnotify
libuuid
cairo
cups
pango
fontconfig
gtk3
atk
at-spi2-atk
expat
gdk-pixbuf
dbus
(lib.getLib udev)
freetype
nspr
glib
stdenv.cc.cc.lib
nss
libX11
libXrandr
libXrender
libXtst
libXdamage
libxcb
libXcursor
libXi
libXext
libXfixes
libXft
libXcomposite
libXScrnSaver
alsaLib
pulseaudio
];
localtime64_stub = ./localtime64_stub.c;
buildCommand = ''
mkdir -p $out/bin/
cd $out
rpmextract $src
mv usr/share share
rmdir usr
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--replace-needed libudev.so.0 libudev.so.1 \
opt/BlueJeans/bluejeans-v2
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
opt/BlueJeans/resources/BluejeansHelper
cc $localtime64_stub -shared -o "$out"/opt/BlueJeans/liblocaltime64_stub.so
makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \
--set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \
--set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so
substituteInPlace "$out"/share/applications/bluejeans-v2.desktop \
--replace "/opt/BlueJeans/bluejeans-v2" "$out/bin/bluejeans"
patchShebangs "$out"
'';
meta = with stdenv.lib; {
description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day";
homepage = "https://www.bluejeans.com";
license = licenses.unfree;
maintainers = with maintainers; [ veprbl ];
platforms = [ "x86_64-linux" ];
};
}