{ stdenv , lib , fetchFromGitLab , nix-update-script , cargo , meson , ninja , rustPlatform , rustc , pkg-config , glib , gtk4 , gtksourceview5 , libadwaita , gst_all_1 , desktop-file-utils , appstream-glib , openssl , pipewire , libshumate , wrapGAppsHook4 , sqlite , xdg-desktop-portal }: stdenv.mkDerivation rec { pname = "fractal"; version = "5"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "GNOME"; repo = "fractal"; rev = version; hash = "sha256-XHb8HjQ5PDL2sen6qUivDllvYEhKnp1vQynD2Lksi30="; }; cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; outputHashes = { "matrix-sdk-0.6.2" = "sha256-X+4077rlaE8zjXHXPUfiYwa/+Bg0KTFrcsAg7yCz4ug="; "mas-http-0.5.0-rc.2" = "sha256-XH+I5URcbkSY4NDwfOFhIjb+/swuGz6n9hKufziPgoY="; }; }; nativeBuildInputs = [ glib gtk4 meson ninja pkg-config rustPlatform.bindgenHook rustPlatform.cargoSetupHook cargo rustc desktop-file-utils appstream-glib wrapGAppsHook4 ]; buildInputs = [ glib gtk4 gtksourceview5 libadwaita openssl pipewire libshumate sqlite xdg-desktop-portal ] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad gst-plugins-good ]); passthru = { updateScript = nix-update-script { }; }; meta = with lib; { description = "Matrix group messaging app"; homepage = "https://gitlab.gnome.org/GNOME/fractal"; license = licenses.gpl3Plus; maintainers = teams.gnome.members ++ (with maintainers; [ anselmschueler dtzWill ]); platforms = platforms.linux; mainProgram = "fractal"; }; }