let rust_overlay = import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"); pkgs = import { overlays = [ rust_overlay ]; }; rust_channel = pkgs.rust-bin.fromRustupToolchainFile ./nix/rust-toolchain; mqtt-explorer = pkgs.callPackage ./nix/mqtt-explorer.nix {} ; gmqtt = pkgs.python3Packages.buildPythonPackage rec { name = "gmqtt"; version = "v0.6.10"; src = pkgs.fetchFromGitHub { owner = "wialon" ; repo = "gmqtt"; rev = "50bc08300d858c6e28d4975a989be578954bf7bd" ; sha256 = "1f51x3vkpkqa20mdqqakyk9ms7l5p3i4masrfhc6n7cr45qfr5fz"; }; buildInputs = [ (pkgs.python3.withPackages(ps: [ ps.codecov ps.pytest-asyncio ps.pytest ps.pytestcov ps.six ps.uvloop ])) ]; propagatedBuildInputs = with pkgs.python3Packages; [ setproctitle ]; meta = { homepage = "https://github.com/wialon/gmqtt"; description = "gmqtt"; }; }; miniconf = pkgs.python3Packages.buildPythonPackage rec { name = "miniconf"; src = ./miniconf-mqtt; propagatedBuildInputs = with pkgs.python3Packages; [ gmqtt setuptools ]; }; stabilizer = pkgs.python3Packages.buildPythonPackage rec { name = "stabilizer" ; src = ./py; propagatedBuildInputs = with pkgs.python3Packages; [ setuptools ]; }; in pkgs.mkShell { buildInputs = [ (pkgs.python3.withPackages(ps: [ # List desired Python packages here. ps.numpy ps.setuptools ps.matplotlib gmqtt stabilizer miniconf ])) # List desired non-Python packages here # dfu ... for usb flashing pkgs.libtool rust_channel pkgs.pkg-config pkgs.libusb1 pkgs.dfu-util pkgs.gcc-arm-embedded-8 pkgs.stlink pkgs.mosquitto pkgs.gdb pkgs.automake pkgs.autoconf pkgs.texinfo pkgs.libftdi mqtt-explorer ]; shellHook = '' export PATH="/home/$USER/.cargo/bin:$PATH" ''; }