diff options
Diffstat (limited to 'pkgs/applications/misc/airtame/default.nix')
-rw-r--r-- | pkgs/applications/misc/airtame/default.nix | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix new file mode 100644 index 000000000000..56fc11a20e12 --- /dev/null +++ b/pkgs/applications/misc/airtame/default.nix @@ -0,0 +1,100 @@ +{ 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; + }; +} |