anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / audio / radiotray-ng / default.nix
blob6577f33baba0c61e8692f51a6028066cb9eca072
1 { lib, stdenv, fetchFromGitHub, fetchpatch
2 , cmake, pkg-config
3 # Transport
4 , curl
5 # Libraries
6 , boost
7 , jsoncpp
8 , libbsd
9 , pcre
10 # GUI/Desktop
11 , dbus
12 , glibmm
13 , gsettings-desktop-schemas
14 , hicolor-icon-theme
15 , libappindicator-gtk3
16 , libnotify
17 , libxdg_basedir
18 , wxGTK
19 # GStreamer
20 , glib-networking
21 , gst_all_1
22 # User-agent info
23 , lsb-release
24 # rt2rtng
25 , python3
26 # Testing
27 , gtest
28 # Fixup
29 , wrapGAppsHook3
30 , makeWrapper
33 let
34   gstInputs = with gst_all_1; [
35     gstreamer gst-plugins-base
36     gst-plugins-good gst-plugins-bad gst-plugins-ugly
37     gst-libav
38   ];
39   # For the rt2rtng utility for converting bookmark file to -ng format
40   pythonInputs = with python3.pkgs; [ python lxml ];
42 stdenv.mkDerivation rec {
43   pname = "radiotray-ng";
44   version = "0.2.8";
46   src = fetchFromGitHub {
47     owner = "ebruck";
48     repo = pname;
49     rev = "v${version}";
50     sha256 = "sha256-/0GlQdSsIPKGrDT9CgxvaH8TpAbqxFduwL2A2+BSrEI=";
51   };
53   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 makeWrapper ];
55   buildInputs = [
56     curl
57     boost jsoncpp libbsd pcre
58     glibmm hicolor-icon-theme gsettings-desktop-schemas libappindicator-gtk3 libnotify
59     libxdg_basedir
60     lsb-release
61     wxGTK
62     # for https gstreamer / libsoup
63     glib-networking
64   ] ++ gstInputs
65     ++ pythonInputs;
67   patches = [
68     ./no-dl-googletest.patch
69     (fetchpatch {
70       name = "gcc13-fixes.patch";
71       url = "https://github.com/ebruck/radiotray-ng/commit/7a99bfa784f77be8f160961d25ab63dc2d5ccde0.patch";
72       hash = "sha256-7x3v0dp9WPgd/vsnxezgXIZGsBrIHkTwIiu+FMlLmyA=";
73     })
74   ];
76   postPatch = ''
77     for x in package/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do
78       substituteInPlace $x --replace /usr $out
79     done
80     substituteInPlace package/CMakeLists.txt --replace /etc/xdg/autostart $out/etc/xdg/autostart
82     # We don't find the radiotray-ng-notification icon otherwise
83     substituteInPlace data/radiotray-ng.desktop \
84       --replace radiotray-ng-notification radiotray-ng-on
85     substituteInPlace data/rtng-bookmark-editor.desktop \
86       --replace radiotray-ng-notification radiotray-ng-on
87   '';
89   cmakeFlags = [
90     "-DBUILD_TESTS=${if doCheck then "ON" else "OFF"}"
91   ];
93   # 'wxFont::wxFont(int, int, int, int, bool, const wxString&, wxFontEncoding)' is deprecated
94   env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
96   nativeCheckInputs = [ gtest ];
97   doCheck = !stdenv.hostPlatform.isAarch64; # single failure that I can't explain
99   preFixup = ''
100     gappsWrapperArgs+=(--suffix PATH : ${lib.makeBinPath [ dbus ]})
101     wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH
102   '';
104   meta = with lib; {
105     description = "Internet radio player for linux";
106     homepage = "https://github.com/ebruck/radiotray-ng";
107     license = licenses.gpl3;
108     maintainers = [ ];
109     platforms = platforms.linux;
110   };