diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix new file mode 100644 index 000000000000..ce3f57162366 --- /dev/null +++ b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix @@ -0,0 +1,114 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch +, cmake, pkg-config +# Transport +, curl +# Libraries +, boost +, jsoncpp +, libbsd +, pcre +# GUI/Desktop +, dbus +, glibmm +, gsettings-desktop-schemas +, hicolor-icon-theme +, libappindicator-gtk3 +, libnotify +, libxdg_basedir +, wxGTK +# GStreamer +, glib-networking +, gst_all_1 +, libsoup_3 +# User-agent info +, lsb-release +# rt2rtng +, python3 +# Testing +, gtest +# 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 python3.pkgs; [ python lxml ]; +in +stdenv.mkDerivation rec { + pname = "radiotray-ng"; + version = "0.2.8"; + + src = fetchFromGitHub { + owner = "ebruck"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-/0GlQdSsIPKGrDT9CgxvaH8TpAbqxFduwL2A2+BSrEI="; + }; + + nativeBuildInputs = [ cmake pkg-config wrapGAppsHook makeWrapper ]; + + buildInputs = [ + curl + boost jsoncpp libbsd pcre + glibmm hicolor-icon-theme gsettings-desktop-schemas libappindicator-gtk3 libnotify + libxdg_basedir + lsb-release + wxGTK + # for https gstreamer / libsoup + glib-networking + ] ++ gstInputs + ++ pythonInputs; + + patches = [ + ./no-dl-googletest.patch + (fetchpatch { + name = "gcc13-fixes.patch"; + url = "https://github.com/ebruck/radiotray-ng/commit/7a99bfa784f77be8f160961d25ab63dc2d5ccde0.patch"; + hash = "sha256-7x3v0dp9WPgd/vsnxezgXIZGsBrIHkTwIiu+FMlLmyA="; + }) + ]; + + postPatch = '' + for x in package/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do + substituteInPlace $x --replace /usr $out + done + substituteInPlace package/CMakeLists.txt --replace /etc/xdg/autostart $out/etc/xdg/autostart + + # 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 = [ + "-DBUILD_TESTS=${if doCheck then "ON" else "OFF"}" + ]; + + # 'wxFont::wxFont(int, int, int, int, bool, const wxString&, wxFontEncoding)' is deprecated + env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; + + nativeCheckInputs = [ gtest ]; + doCheck = !stdenv.isAarch64; # single failure that I can't explain + + preFixup = '' + gappsWrapperArgs+=(--suffix PATH : ${lib.makeBinPath [ dbus ]}) + wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH + # for GStreamer + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${lib.getLib libsoup_3}/lib") + ''; + + meta = with lib; { + description = "An internet radio player for linux"; + homepage = "https://github.com/ebruck/radiotray-ng"; + license = licenses.gpl3; + maintainers = with maintainers; [ dtzWill ]; + platforms = platforms.linux; + }; +} |