From ede2a5768f5c0288a9e32c3c4f6a28945692a97b Mon Sep 17 00:00:00 2001 From: Thane Gill Date: Thu, 14 Dec 2017 13:38:11 -0800 Subject: [PATCH 1/3] Add Thane Gill to maintainers --- lib/maintainers.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index a50dabf9941..eac6a7059ad 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -649,6 +649,7 @@ tex = "Milan Svoboda "; thall = "Niclas Thall "; thammers = "Tobias Hammerschmidt "; + thanegill = "Thane Gill "; the-kenny = "Moritz Ulrich "; theuni = "Christian Theune "; ThomasMader = "Thomas Mader "; From 51c0ddc9e1b0616144bb3768207eba3a9a2b4971 Mon Sep 17 00:00:00 2001 From: Thane Gill Date: Thu, 14 Dec 2017 17:28:39 -0800 Subject: [PATCH 2/3] airtame: init at 3.0.1 --- pkgs/applications/misc/airtame/default.nix | 93 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 95 insertions(+) create mode 100644 pkgs/applications/misc/airtame/default.nix diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix new file mode 100644 index 00000000000..90a752a0260 --- /dev/null +++ b/pkgs/applications/misc/airtame/default.nix @@ -0,0 +1,93 @@ +{ stdenv, lib, makeDesktopItem, makeWrapper +, alsaLib, atk, cairo, cups, dbus, expat, fetchurl, fontconfig, freetype +, gdk_pixbuf, glib, gnome2, libXScrnSaver, nspr, nss, udev, xlibs +}: + +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/" + ln -s "${udev.lib}/lib/libudev.so.1" "$opt/libudev.so.1" + 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" + ''; + + preFixup = let + libPath = lib.makeLibraryPath [ + alsaLib + atk + cairo + cups + dbus.lib + expat + fontconfig + freetype + gdk_pixbuf + glib + gnome2.GConf + gnome2.gtk + gnome2.pango + nspr + nss + udev.lib + stdenv.cc.cc.lib + xlibs.libX11 + xlibs.libXScrnSaver + xlibs.libXcomposite + xlibs.libXcursor + xlibs.libXdamage + xlibs.libXext + xlibs.libXfixes + xlibs.libXi + xlibs.libXrandr + xlibs.libXrender + xlibs.libXtst + xlibs.libxcb + ]; + in '' + patchelf $opt/${longName} \ + --set-interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "$opt:${libPath}" + ''; + + postFixup = '' + wrapProgram $opt/${longName} \ + --set LD_LIBRARY_PATH "$opt/resources/app.asar.unpacked/streamer/vendor/airtame-core/lib:$opt/resources/app.asar.unpacked/encryption/out/lib" \ + --add-flags "--disable-gpu --enable-transparent-visuals" + ''; + + 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e7a56bd75d..4f1d1bb5f8f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -434,6 +434,8 @@ with pkgs; airspy = callPackage ../applications/misc/airspy { }; + airtame = callPackage ../applications/misc/airtame { }; + aj-snapshot = callPackage ../applications/audio/aj-snapshot { }; albert = libsForQt5.callPackage ../applications/misc/albert {}; From 9f22f0b90241451b699d20f2887c7634dcc4b3ed Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Sun, 17 Dec 2017 02:56:32 +0000 Subject: [PATCH 3/3] airtime: move files to opt/airtime, add needed libraries --- pkgs/applications/misc/airtame/default.nix | 103 +++++++++++---------- 1 file changed, 55 insertions(+), 48 deletions(-) diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix index 90a752a0260..56fc11a20e1 100644 --- a/pkgs/applications/misc/airtame/default.nix +++ b/pkgs/applications/misc/airtame/default.nix @@ -1,9 +1,48 @@ -{ stdenv, lib, makeDesktopItem, makeWrapper -, alsaLib, atk, cairo, cups, dbus, expat, fetchurl, fontconfig, freetype -, gdk_pixbuf, glib, gnome2, libXScrnSaver, nspr, nss, udev, xlibs +{ 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 }: -stdenv.mkDerivation rec { +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}"; @@ -32,56 +71,24 @@ stdenv.mkDerivation rec { cp -R . "$opt" mkdir -p "$out/bin" ln -s "$opt/${longName}" "$out/bin/" - ln -s "${udev.lib}/lib/libudev.so.1" "$opt/libudev.so.1" 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" ''; - preFixup = let - libPath = lib.makeLibraryPath [ - alsaLib - atk - cairo - cups - dbus.lib - expat - fontconfig - freetype - gdk_pixbuf - glib - gnome2.GConf - gnome2.gtk - gnome2.pango - nspr - nss - udev.lib - stdenv.cc.cc.lib - xlibs.libX11 - xlibs.libXScrnSaver - xlibs.libXcomposite - xlibs.libXcursor - xlibs.libXdamage - xlibs.libXext - xlibs.libXfixes - xlibs.libXi - xlibs.libXrandr - xlibs.libXrender - xlibs.libXtst - xlibs.libxcb - ]; - in '' - patchelf $opt/${longName} \ - --set-interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "$opt:${libPath}" - ''; - - postFixup = '' - wrapProgram $opt/${longName} \ - --set LD_LIBRARY_PATH "$opt/resources/app.asar.unpacked/streamer/vendor/airtame-core/lib:$opt/resources/app.asar.unpacked/encryption/out/lib" \ - --add-flags "--disable-gpu --enable-transparent-visuals" - ''; + dontPatchELF = true; meta = with stdenv.lib; { homepage = https://airtame.com/download;