{ stdenv, fetchFromGitHub , cmake, pkgconfig # Transport , curl # Libraries , boost , jsoncpp , libbsd , pcre # GUI/Desktop , dbus , glibmm , gnome3 , hicolor-icon-theme , libappindicator-gtk3 , libnotify , libxdg_basedir , wxGTK # GStreamer , gst_all_1 # User-agent info , lsb-release # rt2rtng , python2 # Testing , gmock # Fixup , wrapGAppsHook , makeWrapper }: let gstInputs = with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]; # For the rt2rtng utility for converting bookmark file to -ng format pythonInputs = with python2.pkgs; [ python2 lxml ]; in stdenv.mkDerivation rec { name = "radiotray-ng-${version}"; version = "0.2.3"; src = fetchFromGitHub { owner = "ebruck"; repo = "radiotray-ng"; rev = "v${version}"; sha256 = "1sq7bc0dswv3vv56w527z268ib0pyhdxyf25388vnj1fv0c146wc"; }; nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ]; buildInputs = [ curl boost jsoncpp libbsd pcre glibmm hicolor-icon-theme gnome3.gsettings-desktop-schemas libappindicator-gtk3 libnotify libxdg_basedir lsb-release wxGTK ] ++ stdenv.lib.optional doCheck gmock ++ gstInputs ++ pythonInputs; prePatch = '' for x in debian/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do substituteInPlace $x --replace /usr $out done # We don't find the radiotray-ng-notification icon otherwise substituteInPlace data/radiotray-ng.desktop \ --replace radiotray-ng-notification radiotray-ng-on substituteInPlace data/rtng-bookmark-editor.desktop \ --replace radiotray-ng-notification radiotray-ng-on ''; cmakeFlags = stdenv.lib.optional doCheck "-DBUILD_TESTS=ON"; enableParallelBuilding = true; # XXX: as of 0.2.2, tries to download gmock instead of checking for provided doCheck = false; checkPhase = "ctest"; preFixup = '' gappsWrapperArgs+=(--suffix PATH : ${stdenv.lib.makeBinPath [ dbus ]}) wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH ''; meta = with stdenv.lib; { description = "An internet radio player for linux"; homepage = https://github.com/ebruck/radiotray-ng; license = licenses.gpl3; maintainers = with maintainers; [ dtzWill ]; platforms = platforms.all; }; }