Loading pkgs/by-name/cf/cfclient/package.nix 0 → 100644 +79 −0 Original line number Diff line number Diff line { lib, python3Packages, fetchFromGitHub, qt6, }: python3Packages.buildPythonApplication rec { pname = "cfclient"; version = "2025.2"; pyproject = true; src = fetchFromGitHub { owner = "bitcraze"; repo = "crazyflie-clients-python"; tag = version; hash = "sha256-LCGTMLIfGH59KFwQACyuEQTh/zkGgzXd3e6MkFTgKhA="; }; strictDeps = true; buildInputs = [ qt6.qtbase ]; nativeBuildInputs = [ qt6.wrapQtAppsHook ]; dontWrapQtApps = true; build-system = with python3Packages; [ setuptools setuptools-scm ]; pythonRelaxDeps = [ "numpy" "pyqt6" "vispy" ]; dependencies = with python3Packages; [ appdirs cflib numpy pyopengl pyserial pysdl2 pyqtgraph pyqt6 pyqt6-sip pyyaml pyzmq scipy setuptools vispy ]; # No tests doCheck = false; # Use wrapQtApp for Python scripts as the manual mentions that wrapQtAppsHook only applies to binaries postFixup = '' wrapQtApp "$out/bin/cfclient" \ --set QT_QPA_PLATFORM "wayland" \ --set XDG_CURRENT_DESKTOP "Wayland" \ ''${qtWrapperArgs[@]} ''; meta = { description = "Host applications and library for Crazyflie drones written in Python"; homepage = "https://github.com/bitcraze/crazyflie-clients-python"; changelog = "https://github.com/bitcraze/crazyflie-clients-python/releases/tag/${version}"; license = lib.licenses.gpl2Only; maintainers = [ lib.maintainers.brianmcgillion ]; platforms = lib.platforms.linux; }; } pkgs/development/python-modules/cflib/default.nix 0 → 100644 +90 −0 Original line number Diff line number Diff line { lib, buildPythonPackage, fetchFromGitHub, setuptools, setuptools-scm, libusb-package, numpy, packaging, pyserial, pyusb, scipy, pytestCheckHook, pyyaml, udevCheckHook, }: buildPythonPackage rec { pname = "cflib"; version = "0.1.28"; pyproject = true; src = fetchFromGitHub { owner = "bitcraze"; repo = "crazyflie-lib-python"; tag = version; hash = "sha256-vGqwQVD80NcFJosVAmqj66uxYNoVtAqzVhVQiuWP5yM="; }; strictDeps = true; build-system = [ setuptools setuptools-scm ]; pythonRelaxDeps = [ "numpy" ]; dependencies = [ libusb-package numpy packaging pyserial pyusb scipy ]; disabledTestPaths = [ # exception: Cannot find a Crazyradio Dongle (HW required) "sys_test/single_cf_grounded/" "sys_test/swarm_test_rig/" ]; pythonImportsCheck = [ "cflib" ]; nativeCheckInputs = [ pytestCheckHook pyyaml ]; # The udevCheckHook is used to verify udev rules # requires diInstallCheck to be enabled, which is default for pythonPackages nativeInstallCheckInputs = [ udevCheckHook ]; # Install udev rules as defined # https://www.bitcraze.io/documentation/repository/crazyflie-lib-python/master/installation/usb_permissions/ postInstall = '' # Install udev rules mkdir -p $out/etc/udev/rules.d cat <<EOF > $out/etc/udev/rules.d/99-bitcraze.rules # Crazyradio (normal operation) SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="7777", MODE="0664", GROUP="plugdev" # Bootloader SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="0101", MODE="0664", GROUP="plugdev" # Crazyflie (over USB) SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0664", GROUP="plugdev" EOF ''; meta = { description = "Python library for the Crazyflie quadcopter by Bitcraze"; homepage = "https://github.com/bitcraze/crazyflie-lib-python"; changelog = "https://github.com/bitcraze/crazyflie-lib-python/releases/tag/${version}"; license = lib.licenses.gpl2Only; maintainers = [ lib.maintainers.brianmcgillion ]; platforms = lib.platforms.linux; }; } pkgs/development/python-modules/libusb-package/default.nix 0 → 100644 +43 −0 Original line number Diff line number Diff line { lib, buildPythonPackage, fetchFromGitHub, setuptools, setuptools-scm, tomli, importlib-resources, libusb1, }: buildPythonPackage rec { pname = "libusb-package"; version = "1.0.26.3"; pyproject = true; src = fetchFromGitHub { owner = "pyocd"; repo = "libusb-package"; tag = "v${version}"; hash = "sha256-4zTyaidpSlledTcEztWzRgwj43oNV7xWrhMXCE9Qz3k="; }; build-system = [ setuptools setuptools-scm tomli ]; dependencies = [ importlib-resources libusb1 ]; meta = { description = "Python package for simplified libusb distribution and usage with pyOCD"; homepage = "https://github.com/pyocd/libusb-package"; changelog = "https://github.com/pyocd/libusb-package/releases/tag/v${version}"; license = lib.licenses.asl20; maintainers = [ lib.maintainers.brianmcgillion ]; platforms = lib.platforms.linux; }; } pkgs/top-level/python-packages.nix +6 −0 Original line number Diff line number Diff line Loading @@ -2368,6 +2368,8 @@ self: super: with self; { cfgv = callPackage ../development/python-modules/cfgv { }; cflib = callPackage ../development/python-modules/cflib { }; cfn-flip = callPackage ../development/python-modules/cfn-flip { }; cfn-lint = callPackage ../development/python-modules/cfn-lint { }; Loading Loading @@ -8043,6 +8045,10 @@ self: super: with self; { libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { python3 = python; })).python; libusb-package = callPackage ../development/python-modules/libusb-package { inherit (pkgs) libusb1; }; libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; }; libusbsio = callPackage ../development/python-modules/libusbsio { inherit (pkgs) libusbsio; }; Loading Loading
pkgs/by-name/cf/cfclient/package.nix 0 → 100644 +79 −0 Original line number Diff line number Diff line { lib, python3Packages, fetchFromGitHub, qt6, }: python3Packages.buildPythonApplication rec { pname = "cfclient"; version = "2025.2"; pyproject = true; src = fetchFromGitHub { owner = "bitcraze"; repo = "crazyflie-clients-python"; tag = version; hash = "sha256-LCGTMLIfGH59KFwQACyuEQTh/zkGgzXd3e6MkFTgKhA="; }; strictDeps = true; buildInputs = [ qt6.qtbase ]; nativeBuildInputs = [ qt6.wrapQtAppsHook ]; dontWrapQtApps = true; build-system = with python3Packages; [ setuptools setuptools-scm ]; pythonRelaxDeps = [ "numpy" "pyqt6" "vispy" ]; dependencies = with python3Packages; [ appdirs cflib numpy pyopengl pyserial pysdl2 pyqtgraph pyqt6 pyqt6-sip pyyaml pyzmq scipy setuptools vispy ]; # No tests doCheck = false; # Use wrapQtApp for Python scripts as the manual mentions that wrapQtAppsHook only applies to binaries postFixup = '' wrapQtApp "$out/bin/cfclient" \ --set QT_QPA_PLATFORM "wayland" \ --set XDG_CURRENT_DESKTOP "Wayland" \ ''${qtWrapperArgs[@]} ''; meta = { description = "Host applications and library for Crazyflie drones written in Python"; homepage = "https://github.com/bitcraze/crazyflie-clients-python"; changelog = "https://github.com/bitcraze/crazyflie-clients-python/releases/tag/${version}"; license = lib.licenses.gpl2Only; maintainers = [ lib.maintainers.brianmcgillion ]; platforms = lib.platforms.linux; }; }
pkgs/development/python-modules/cflib/default.nix 0 → 100644 +90 −0 Original line number Diff line number Diff line { lib, buildPythonPackage, fetchFromGitHub, setuptools, setuptools-scm, libusb-package, numpy, packaging, pyserial, pyusb, scipy, pytestCheckHook, pyyaml, udevCheckHook, }: buildPythonPackage rec { pname = "cflib"; version = "0.1.28"; pyproject = true; src = fetchFromGitHub { owner = "bitcraze"; repo = "crazyflie-lib-python"; tag = version; hash = "sha256-vGqwQVD80NcFJosVAmqj66uxYNoVtAqzVhVQiuWP5yM="; }; strictDeps = true; build-system = [ setuptools setuptools-scm ]; pythonRelaxDeps = [ "numpy" ]; dependencies = [ libusb-package numpy packaging pyserial pyusb scipy ]; disabledTestPaths = [ # exception: Cannot find a Crazyradio Dongle (HW required) "sys_test/single_cf_grounded/" "sys_test/swarm_test_rig/" ]; pythonImportsCheck = [ "cflib" ]; nativeCheckInputs = [ pytestCheckHook pyyaml ]; # The udevCheckHook is used to verify udev rules # requires diInstallCheck to be enabled, which is default for pythonPackages nativeInstallCheckInputs = [ udevCheckHook ]; # Install udev rules as defined # https://www.bitcraze.io/documentation/repository/crazyflie-lib-python/master/installation/usb_permissions/ postInstall = '' # Install udev rules mkdir -p $out/etc/udev/rules.d cat <<EOF > $out/etc/udev/rules.d/99-bitcraze.rules # Crazyradio (normal operation) SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="7777", MODE="0664", GROUP="plugdev" # Bootloader SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="0101", MODE="0664", GROUP="plugdev" # Crazyflie (over USB) SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0664", GROUP="plugdev" EOF ''; meta = { description = "Python library for the Crazyflie quadcopter by Bitcraze"; homepage = "https://github.com/bitcraze/crazyflie-lib-python"; changelog = "https://github.com/bitcraze/crazyflie-lib-python/releases/tag/${version}"; license = lib.licenses.gpl2Only; maintainers = [ lib.maintainers.brianmcgillion ]; platforms = lib.platforms.linux; }; }
pkgs/development/python-modules/libusb-package/default.nix 0 → 100644 +43 −0 Original line number Diff line number Diff line { lib, buildPythonPackage, fetchFromGitHub, setuptools, setuptools-scm, tomli, importlib-resources, libusb1, }: buildPythonPackage rec { pname = "libusb-package"; version = "1.0.26.3"; pyproject = true; src = fetchFromGitHub { owner = "pyocd"; repo = "libusb-package"; tag = "v${version}"; hash = "sha256-4zTyaidpSlledTcEztWzRgwj43oNV7xWrhMXCE9Qz3k="; }; build-system = [ setuptools setuptools-scm tomli ]; dependencies = [ importlib-resources libusb1 ]; meta = { description = "Python package for simplified libusb distribution and usage with pyOCD"; homepage = "https://github.com/pyocd/libusb-package"; changelog = "https://github.com/pyocd/libusb-package/releases/tag/v${version}"; license = lib.licenses.asl20; maintainers = [ lib.maintainers.brianmcgillion ]; platforms = lib.platforms.linux; }; }
pkgs/top-level/python-packages.nix +6 −0 Original line number Diff line number Diff line Loading @@ -2368,6 +2368,8 @@ self: super: with self; { cfgv = callPackage ../development/python-modules/cfgv { }; cflib = callPackage ../development/python-modules/cflib { }; cfn-flip = callPackage ../development/python-modules/cfn-flip { }; cfn-lint = callPackage ../development/python-modules/cfn-lint { }; Loading Loading @@ -8043,6 +8045,10 @@ self: super: with self; { libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { python3 = python; })).python; libusb-package = callPackage ../development/python-modules/libusb-package { inherit (pkgs) libusb1; }; libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; }; libusbsio = callPackage ../development/python-modules/libusbsio { inherit (pkgs) libusbsio; }; Loading