{ lib , stdenv , rustPlatform , fetchFromGitLab , cargo , meson , ninja , pkg-config , rustc , wrapGAppsHook4 , gdk-pixbuf , glib , gtk4 , libadwaita , libxml2 , openssl , sqlite , webkitgtk , glib-networking , librsvg , gst_all_1 , gitUpdater }: stdenv.mkDerivation (finalAttrs: { pname = "newsflash"; version = "2.3.0"; src = fetchFromGitLab { owner = "news-flash"; repo = "news_flash_gtk"; rev = "refs/tags/v.${finalAttrs.version}"; sha256 = "sha256-sW2yO6aZqhiyrIT4B8iBmum+36vcQMg4NsFxInJm7hM="; }; cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; outputHashes = { "javascriptcore6-0.1.0" = "sha256-7w8CDY13dCRlFc77XxJ2/xZqlKSjqM0eiOvILOrJ4ic="; "news-flash-2.3.0-alpha.0" = "sha256-phoZmTY1YVZIIktqLMnal9H5SMgNWwx7m+7AMtDcFJM="; "newsblur_api-0.2.0" = "sha256-6vnFeJbdFeIau2rpUk9o72DD2ZCqicljmQjFVhY71NI="; "article_scraper-2.0.0-alpha.0" = "sha256-HPEKZc7O7pbgcwR2l0kD/5442W1hzrfMadc0amrjxwI="; }; }; 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 build-aux/cargo.sh ''; nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook4 # Provides setup hook to fix "Unrecognized image file format" gdk-pixbuf # Provides glib-compile-resources to compile gresources glib rustPlatform.cargoSetupHook cargo rustc ]; buildInputs = [ gtk4 libadwaita libxml2 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 ]); passthru.updateScript = gitUpdater { rev-prefix = "v."; }; 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; mainProgram = "com.gitlab.newsflash"; }; })