{ lib , stdenv , rustPlatform , fetchFromGitLab , meson , ninja , pkg-config , wrapGAppsHook , gdk-pixbuf , glib , gtk3 , libhandy , openssl , sqlite , webkitgtk , glib-networking , librsvg , gst_all_1 , xdg-utils }: stdenv.mkDerivation rec { pname = "newsflash"; version = "1.5.1"; src = fetchFromGitLab { owner = "news-flash"; repo = "news_flash_gtk"; rev = version; hash = "sha256-fLG7oYt+gdl3Lwnu6c7VLJWSHCFY5LyNeDKoUNGg3Yw="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; hash = "sha256-dQlbK3SfY6p1xinroXz5wcaBbq2LuDM9sMlfJ6ueTTg="; }; patches = [ # Post install tries to generate an icon cache & update the # desktop database. The gtk setup hook drop-icon-theme-cache.sh # would strip out the icon cache and the desktop database wouldn't # be included in $out. They will generated by xdg.mime.enable & # gtk.iconCache.enable instead. ./no-post-install.patch ]; postPatch = '' patchShebangs . ''; nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook # Provides setup hook to fix "Unrecognized image file format" gdk-pixbuf # Provides glib-compile-resources to compile gresources glib ] ++ (with rustPlatform; [ cargoSetupHook rust.cargo rust.rustc ]); buildInputs = [ gtk3 libhandy openssl sqlite webkitgtk # TLS support for loading external content in webkitgtk WebView glib-networking # SVG support for gdk-pixbuf librsvg ] ++ (with gst_all_1; [ # Audio & video support for webkitgtk WebView gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]); preFixup = '' gappsWrapperArgs+=(--suffix PATH : "${lib.makeBinPath [ # Open links in browser xdg-utils ]}") ''; meta = with lib; { description = "A modern feed reader designed for the GNOME desktop"; homepage = "https://gitlab.com/news-flash/news_flash_gtk"; license = licenses.gpl3Plus; maintainers = with maintainers; [ kira-bruneau stunkymonkey ]; platforms = platforms.unix; }; }