nixpkgs/pkgs/applications/misc/airtame/default.nix

100 lines
2.6 KiB
Nix

{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg, fontconfig, freetype
, gdk_pixbuf, glib, glibc, gnome2, gtk2, libX11, libXScrnSaver, libXcomposite
, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
, libXtst, libopus, libpulseaudio, libxcb, nspr, nss, pango, udev, x264
}:
let libPath = lib.makeLibraryPath [
alsaLib
atk
cairo
cups
curl
dbus
expat
ffmpeg
fontconfig
freetype
gdk_pixbuf
glib
glibc
gnome2.GConf
gtk2
libopus
nspr
nss
pango
stdenv.cc.cc
udev
x264
libX11
libXScrnSaver
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
libpulseaudio
libxcb
];
in stdenv.mkDerivation rec {
pname = "airtame";
version = "3.0.1";
name = "${pname}-${version}";
longName = "${pname}-application";
src = fetchurl {
url = "https://downloads.airtame.com/application/ga/lin_x64/releases/${longName}-${version}.tar.gz";
sha256 = "1z5v9dwcvcmz190acm89kr4mngirha1v2jpvfzvisi0vidl2ba60";
};
nativeBuildInputs = [ makeWrapper ];
desktopItem = makeDesktopItem rec {
name = "airtame";
exec = longName;
comment = "Airtame Streaming Client";
desktopName = "Airtame";
icon = name;
genericName = comment;
categories = "Application;Network;";
};
installPhase = ''
opt="$out/opt/airtame"
mkdir -p "$opt"
cp -R . "$opt"
mkdir -p "$out/bin"
ln -s "$opt/${longName}" "$out/bin/"
mkdir -p "$out/share"
cp -r "${desktopItem}/share/applications" "$out/share/"
mkdir -p "$out/share/icons"
ln -s "$opt/icon.png" "$out/share/icons/airtame.png"
# Flags and rpath are copied from launch-airtame.sh.
interp="$(< $NIX_CC/nix-support/dynamic-linker)"
vendorlib="$opt/resources/app.asar.unpacked/streamer/vendor/airtame-core/lib"
rpath="${libPath}:$opt:$vendorlib:$opt/resources/app.asar.unpacked/encryption/out/lib"
rm $vendorlib/libcurl.so*
find "$opt" \( -type f -executable -o -name "*.so" -o -name "*.so.*" \) \
-exec patchelf --set-rpath "$rpath" {} \;
# The main binary also needs libudev which was removed by --shrink-rpath.
patchelf --set-interpreter "$interp" $opt/${longName}
wrapProgram $opt/${longName} --add-flags "--disable-gpu --enable-transparent-visuals"
'';
dontPatchELF = true;
meta = with stdenv.lib; {
homepage = https://airtame.com/download;
description = "Wireless streaming client for Airtame devices";
license = licenses.unfree;
maintainers = with maintainers; [ thanegill ];
platforms = platforms.linux;
};
}