{ lib, stdenv, fetchFromCodeberg, meson, ninja, pkg-config, wrapGAppsHook4, gobject-introspection, blueprint-compiler, desktop-file-utils, appstream, glib, gettext, gtk4, libadwaita, gst_all_1, libshumate, geoclue2, python3, }: stdenv.mkDerivation (finalAttrs: { pname = "meshy"; version = "26.06"; src = fetchFromCodeberg { owner = "sesivany"; repo = finalAttrs.pname; rev = finalAttrs.version; hash = "sha256-6uoy9zyyhzpuyPeYXmnNWrCZ/Djm2J3isA5iEAch9Cs="; }; pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 pycryptodome pyzbar pyserial segno ] ); nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook4 gobject-introspection blueprint-compiler desktop-file-utils appstream glib gettext ]; buildInputs = [ gtk4 libadwaita gst_all_1.gstreamer libshumate geoclue2 finalAttrs.pythonEnv ]; mesonFlags = [ "--buildtype=release" ]; dontWrapGApps = false; preFixup = '' gappsWrapperArgs+=( --prefix PYTHONPATH : "${finalAttrs.pythonEnv}/${finalAttrs.pythonEnv.sitePackages}" --prefix PYTHONPATH : "$out/${finalAttrs.pythonEnv.sitePackages}" ) ''; meta = with lib; { description = "GTK4/libadwaita client for MeshCore"; longDescription = '' Meshy is a native Linux desktop application providing a GTK4/libadwaita UI for MeshCore companion radio nodes. It supports connecting to nodes via serial, BLE, and TCP. ''; homepage = "https://codeberg.org/sesivany/meshy"; license = licenses.gpl3Plus; maintainers = with maintainers; [ zaphyra ]; platforms = platforms.linux; mainProgram = "meshy"; }; })