Merge master into staging-next
This commit is contained in:
@@ -21463,6 +21463,12 @@
|
||||
githubId = 4033651;
|
||||
name = "Keagan McClelland";
|
||||
};
|
||||
prophetofxenu = {
|
||||
email = "xenu@prophetofxenu.net";
|
||||
github = "prophetofxenu";
|
||||
githubId = 20529712;
|
||||
name = "William Harrell";
|
||||
};
|
||||
protoben = {
|
||||
email = "protob3n@gmail.com";
|
||||
github = "protoben";
|
||||
|
||||
@@ -163,6 +163,8 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- [hardware.xpadneo](#opt-hardware.xpadneo.enable) now supports configuring kernel module parameters via a freeform [settings](#opt-hardware.xpadneo.settings) option, with convenience options for [rumble attenuation](#opt-hardware.xpadneo.rumbleAttenuation) and [controller quirks](#opt-hardware.xpadneo.quirks).
|
||||
|
||||
- Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details.
|
||||
|
||||
- Cinnamon has been updated to 6.6, please check the [upstream announcement](https://www.linuxmint.com/rel_zena_whatsnew.php) for more details.
|
||||
|
||||
@@ -1,17 +1,126 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.hardware.xpadneo;
|
||||
|
||||
modprobeConfig =
|
||||
let
|
||||
params = lib.mapAttrsToList (name: value: "${name}=${toString value}") cfg.settings;
|
||||
in
|
||||
lib.optionalString (params != [ ]) "options hid_xpadneo ${lib.concatStringsSep " " params}";
|
||||
in
|
||||
{
|
||||
options.hardware.xpadneo = {
|
||||
enable = lib.mkEnableOption "the xpadneo driver for Xbox One wireless controllers";
|
||||
|
||||
rumbleAttenuation = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
options = {
|
||||
overall = lib.mkOption {
|
||||
type = lib.types.ints.between 0 100;
|
||||
default = 0;
|
||||
description = ''
|
||||
Overall force feedback attenuation as a percentage.
|
||||
`0` means full rumble, `100` means no rumble.
|
||||
Applies to both main and trigger rumble.
|
||||
'';
|
||||
};
|
||||
triggers = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.ints.between 0 100);
|
||||
default = null;
|
||||
description = ''
|
||||
Extra attenuation for trigger rumble as a percentage, applied
|
||||
on top of {option}`overall`. For example, `overall = 50` and
|
||||
`triggers = 50` results in 50% main rumble and 25% trigger rumble.
|
||||
Set to `100` to disable trigger rumble while keeping main rumble.
|
||||
`null` means no extra trigger attenuation.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
overall = 50; # 50% overall rumble
|
||||
triggers = 50; # 25% trigger rumble (50% of 50%)
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Force feedback attenuation settings. Higher values reduce rumble strength.
|
||||
|
||||
See <https://github.com/atar-axis/xpadneo/blob/master/docs/CONFIGURATION.md>
|
||||
for more information.
|
||||
'';
|
||||
};
|
||||
|
||||
quirks = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.ints.u16);
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"11:22:33:44:55:66" = 7; # Applies flags 1 + 2 + 4
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Controller-specific quirk flags, keyed by MAC address.
|
||||
Flags are combined as a bitmask to address compatibility issues
|
||||
with specific controllers.
|
||||
|
||||
The value is a sum of individual flag values. For example, to apply
|
||||
flags 1, 2, and 4, use `7` (1 + 2 + 4). To apply flags 2, 4, and 32,
|
||||
use `38` (2 + 4 + 32).
|
||||
|
||||
See <https://github.com/atar-axis/xpadneo/blob/master/docs/CONFIGURATION.md>
|
||||
for available quirk flags and their values.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.oneOf [
|
||||
lib.types.int
|
||||
lib.types.str
|
||||
]
|
||||
);
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
disable_deadzones = 1;
|
||||
trigger_rumble_mode = 2;
|
||||
disable_shift_mode = 1;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Kernel module parameters for hid_xpadneo. These are passed directly
|
||||
to the module via modprobe.
|
||||
|
||||
See <https://github.com/atar-axis/xpadneo/blob/master/docs/CONFIGURATION.md>
|
||||
for available parameters and their values.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.xpadneo.settings =
|
||||
lib.optionalAttrs (cfg.rumbleAttenuation.overall != 0 || cfg.rumbleAttenuation.triggers != null) {
|
||||
rumble_attenuation =
|
||||
toString cfg.rumbleAttenuation.overall
|
||||
+ lib.optionalString (cfg.rumbleAttenuation.triggers != null) (
|
||||
"," + toString cfg.rumbleAttenuation.triggers
|
||||
);
|
||||
}
|
||||
// lib.optionalAttrs (cfg.quirks != { }) {
|
||||
quirks = lib.concatStringsSep "," (
|
||||
lib.mapAttrsToList (mac: flags: "${mac}:${toString flags}") cfg.quirks
|
||||
);
|
||||
};
|
||||
|
||||
boot = {
|
||||
# Must disable Enhanced Retransmission Mode to support bluetooth pairing
|
||||
# https://wiki.archlinux.org/index.php/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
|
||||
extraModprobeConfig = lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "5.12") "options bluetooth disable_ertm=1";
|
||||
extraModprobeConfig = lib.mkMerge [
|
||||
# Must disable Enhanced Retransmission Mode to support bluetooth pairing
|
||||
# https://wiki.archlinux.org/index.php/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
|
||||
(lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "5.12") "options bluetooth disable_ertm=1")
|
||||
modprobeConfig
|
||||
];
|
||||
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
|
||||
kernelModules = [ "hid_xpadneo" ];
|
||||
};
|
||||
|
||||
@@ -105,7 +105,7 @@ in
|
||||
};
|
||||
|
||||
outputDir = mkOption {
|
||||
type = types.path;
|
||||
type = types.nullOr types.path;
|
||||
default = "${cfg.configDir}/output";
|
||||
defaultText = "\${cfg.configDir}/output";
|
||||
description = "Directory where cross-seed will place torrent files it finds.";
|
||||
@@ -193,7 +193,8 @@ in
|
||||
inherit (cfg) group user;
|
||||
mode = "700";
|
||||
};
|
||||
|
||||
}
|
||||
// lib.optionalAttrs (cfg.settings.outputDir != null) {
|
||||
${cfg.settings.outputDir}.d = {
|
||||
inherit (cfg) group user;
|
||||
mode = "750";
|
||||
@@ -222,7 +223,7 @@ in
|
||||
LoadCredential = lib.mkIf (cfg.settingsFile != null) "secretSettingsFile:${cfg.settingsFile}";
|
||||
|
||||
StateDirectory = "cross-seed";
|
||||
ReadWritePaths = [ cfg.settings.outputDir ];
|
||||
ReadWritePaths = lib.optional (cfg.settings.outputDir != null) cfg.settings.outputDir;
|
||||
ReadOnlyPaths = lib.optional (cfg.settings.torrentDir != null) cfg.settings.torrentDir;
|
||||
};
|
||||
|
||||
@@ -231,7 +232,7 @@ in
|
||||
RequiresMountsFor = lib.flatten [
|
||||
cfg.settings.dataDirs
|
||||
cfg.settings.linkDirs
|
||||
cfg.settings.outputDir
|
||||
(lib.optional (cfg.settings.outputDir != null) cfg.settings.outputDir)
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
+16
-1
@@ -5,7 +5,17 @@
|
||||
|
||||
nodes = {
|
||||
machine = {
|
||||
config.hardware.xpadneo.enable = true;
|
||||
config.hardware.xpadneo = {
|
||||
enable = true;
|
||||
rumbleAttenuation = {
|
||||
overall = 50;
|
||||
triggers = 25;
|
||||
};
|
||||
settings = {
|
||||
disable_deadzones = 1;
|
||||
trigger_rumble_mode = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -15,5 +25,10 @@
|
||||
testScript = ''
|
||||
machine.start();
|
||||
machine.succeed("modinfo hid_xpadneo | grep 'version:\s\+${pkgs.linuxPackages.xpadneo.version}'")
|
||||
|
||||
machine.succeed("grep 'options hid_xpadneo' /etc/modprobe.d/nixos.conf")
|
||||
machine.succeed("grep 'disable_deadzones=1' /etc/modprobe.d/nixos.conf")
|
||||
machine.succeed("grep 'trigger_rumble_mode=2' /etc/modprobe.d/nixos.conf")
|
||||
machine.succeed("grep 'rumble_attenuation=50,25' /etc/modprobe.d/nixos.conf")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "claude-dev";
|
||||
publisher = "saoudrizwan";
|
||||
version = "3.57.1";
|
||||
hash = "sha256-EBRuYqZ6UTuu2FRjxdDCRqRm4DKzH/3yWyOypoIxJRU=";
|
||||
version = "3.62.0";
|
||||
hash = "sha256-CIeLmwNlOFdFq6VTKv5YYTEN1YofdwROKFzTfvg/Gls=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -39,6 +39,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
zstd
|
||||
];
|
||||
|
||||
patches = [
|
||||
./skip-icon-macos.patch
|
||||
];
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package"
|
||||
"tauri-cli"
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
diff --git a/crates/tauri-bundler/src/bundle/macos/dmg/bundle_dmg b/crates/tauri-bundler/src/bundle/macos/dmg/bundle_dmg
|
||||
index fee840034..cfa584d52 100644
|
||||
--- a/crates/tauri-bundler/src/bundle/macos/dmg/bundle_dmg
|
||||
+++ b/crates/tauri-bundler/src/bundle/macos/dmg/bundle_dmg
|
||||
@@ -461,12 +461,6 @@ if [[ -n "$QL_LINK" ]]; then
|
||||
ln -s "/Library/QuickLook" "$MOUNT_DIR/QuickLook"
|
||||
fi
|
||||
|
||||
-if [[ -n "$VOLUME_ICON_FILE" ]]; then
|
||||
- echo "Copying volume icon file '$VOLUME_ICON_FILE'..."
|
||||
- cp "$VOLUME_ICON_FILE" "$MOUNT_DIR/.VolumeIcon.icns"
|
||||
- SetFile -c icnC "$MOUNT_DIR/.VolumeIcon.icns"
|
||||
-fi
|
||||
-
|
||||
if [[ -n "$ADD_FILE_SOURCES" ]]; then
|
||||
echo "Copying custom files..."
|
||||
for i in "${!ADD_FILE_SOURCES[@]}"; do
|
||||
@@ -538,11 +532,6 @@ else
|
||||
echo "Skipping blessing on sandbox"
|
||||
fi
|
||||
|
||||
-if [[ -n "$VOLUME_ICON_FILE" ]]; then
|
||||
- # Tell the volume that it has a special file attribute
|
||||
- SetFile -a C "$MOUNT_DIR"
|
||||
-fi
|
||||
-
|
||||
# Delete unnecessary file system events log if possible
|
||||
echo "Deleting .fseventsd"
|
||||
rm -rf "${MOUNT_DIR}/.fseventsd" || true
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "cross-seed";
|
||||
version = "6.13.5";
|
||||
version = "6.13.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cross-seed";
|
||||
repo = "cross-seed";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-WdKd20vzJfWvnZKBID6IzXOScrZgPKDDafzT2PY9N9k=";
|
||||
hash = "sha256-E2tnlDU2/msNcSsoDXvwGWFhWpXEByloUmlVp2tckwo=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-iTho+dbJAt7B2R+dN2xo6jnRo/psjQE76GHYksoojdA=";
|
||||
npmDepsHash = "sha256-tR7zPoIX6yjlRx8QbRSxskvueQ1BsP3gGAlonKHH0RY=";
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script;
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
|
||||
let
|
||||
pname = "fflogs";
|
||||
version = "8.19.70";
|
||||
version = "8.20.17";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
|
||||
hash = "sha256-uDcQUAXDytrO3XFArJkuI0oV5/Z2dUJyY8OLx1WtraU=";
|
||||
hash = "sha256-2gul6DwuhB9iy3BR8u+rIIWz2G+nX1IA7c6cqq1QYlg=";
|
||||
};
|
||||
extracted = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "lasuite-meet-frontend";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "suitenumerique";
|
||||
repo = "meet";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-VUOTGRI3U9G4BfZMBk81MifcpALGA6OY3g++rCFZC5U=";
|
||||
hash = "sha256-j5kkmaB91y6KDROZjkUbosdmSG+udo6D/gcyfsU4Bbs=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/src/frontend";
|
||||
@@ -21,7 +21,7 @@ buildNpmPackage rec {
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit version src;
|
||||
sourceRoot = "source/src/frontend";
|
||||
hash = "sha256-7dSXPkSXiOL43AUtkrYztkH8n8ZzS75LTkQWJIsY/OE=";
|
||||
hash = "sha256-IIwTRAdEJX4Uk+//5aGQsLMNtQDbaw6w8c91M9p4fQc=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -13,14 +13,14 @@ in
|
||||
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "lasuite-meet";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "suitenumerique";
|
||||
repo = "meet";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-VUOTGRI3U9G4BfZMBk81MifcpALGA6OY3g++rCFZC5U=";
|
||||
hash = "sha256-j5kkmaB91y6KDROZjkUbosdmSG+udo6D/gcyfsU4Bbs=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/src/backend";
|
||||
@@ -40,6 +40,7 @@ python.pkgs.buildPythonApplication rec {
|
||||
brevo-python
|
||||
brotli
|
||||
celery
|
||||
dj-database-url
|
||||
django
|
||||
django-configurations
|
||||
django-cors-headers
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "openimageio";
|
||||
version = "3.1.9.0";
|
||||
version = "3.1.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AcademySoftwareFoundation";
|
||||
repo = "OpenImageIO";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-0XN/Bcmpi3jUBtgvTlcqXLFuMS51UrzbpZ+eAb7QPRI=";
|
||||
hash = "sha256-xErP9zBKIBwCrw698oAaCxXCO9rqBDuz+6R+uU+9n3E=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "oxlint";
|
||||
version = "1.43.0";
|
||||
version = "1.47.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oxc-project";
|
||||
repo = "oxc";
|
||||
tag = "oxlint_v${finalAttrs.version}";
|
||||
hash = "sha256-J32iHYWfUSPgs0TbB9kHxwgdPB7/cPvKTI28K5nUlVU=";
|
||||
hash = "sha256-fzM+sVCQmZkBfMbD/Ko6R2zwosgOe0xJWBgOKbJ26uY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-2W0X9uy1V6cKJTjIIWNfd5vhptITrmh6uJYeCleXG8E=";
|
||||
cargoHash = "sha256-e5DqyFqK/imxEkRchycpDZp+7B1lXdsYJLzVNzzQ7Kw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{ python3Packages }: with python3Packages; toPythonApplication pymcuprog
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-axes";
|
||||
version = "8.2.0";
|
||||
version = "8.3.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = "django-axes";
|
||||
tag = version;
|
||||
hash = "sha256-obh137DbFkkSodR67hWRzQg8wHXsFdT3NDnxDg/jmR0=";
|
||||
hash = "sha256-DcoKXNldTXNcJTauI1torupjnKNvqmTo4/BbFXBZyFA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools-scm ];
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
pythonAtLeast,
|
||||
|
||||
# build-system
|
||||
hatchling,
|
||||
@@ -51,22 +49,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "papis";
|
||||
version = "0.14.1";
|
||||
version = "0.15.0";
|
||||
pyproject = true;
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "fix-support-new-click-in-papisrunner.patch";
|
||||
url = "https://github.com/papis/papis/commit/0e3ffff4bd1b62cdf0a9fdc7f54d6a2e2ab90082.patch?full_index=1";
|
||||
hash = "sha256-KUw5U5izTTWqXHzGWLibtqHWAsVxla6SA8x6SJ07/zU=";
|
||||
})
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "papis";
|
||||
repo = "papis";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-V4YswLNYwfBYe/Td0PEeDG++ClZoF08yxXjUXuyppPI=";
|
||||
hash = "sha256-G+ryUMBUEbGxUG+u2YwZbT04IAzOmajtIPXP12MaXsY=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
@@ -129,6 +119,10 @@ buildPythonPackage (finalAttrs: {
|
||||
|
||||
disabledTests = [
|
||||
# Require network access
|
||||
"test_add_folder_name_cli"
|
||||
"test_add_link_cli"
|
||||
"test_get_matching_importers_by_name"
|
||||
"test_matching_importers_by_uri"
|
||||
"test_yaml_unicode_dump"
|
||||
# FileNotFoundError: Command not found: 'init'
|
||||
"test_git_cli"
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
cython,
|
||||
hidapi,
|
||||
pyserial,
|
||||
|
||||
# tests
|
||||
pytestCheckHook,
|
||||
mock,
|
||||
}:
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "pyedbglib";
|
||||
version = "2.24.2.18";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microchip-pic-avr-tools";
|
||||
repo = "pyedbglib";
|
||||
# the repo currently does not tag releases, so using the
|
||||
# commit ID for now
|
||||
rev = "9bbeceba942772ef31b9c059b761460a782313e";
|
||||
hash = "sha256-iZB/+JEBy5n1zfajmJmEqRVQ2hPzJD/U85SvmyFiGhc=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
cython
|
||||
hidapi
|
||||
pyserial
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pyedbglib" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
mock
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Low-level protocol library for communicating with Microchip CMSIS-DAP based debuggers";
|
||||
homepage = "https://github.com/microchip-pic-avr-tools/pyedbglib";
|
||||
changelog = "https://github.com/microchip-pic-avr-tools/pyedbglib/blob/main/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ prophetofxenu ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
appdirs,
|
||||
intelhex,
|
||||
pyedbglib,
|
||||
pyserial,
|
||||
pyyaml,
|
||||
|
||||
# tests
|
||||
mock,
|
||||
parameterized,
|
||||
pytestCheckHook,
|
||||
versionCheckHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "pymcuprog";
|
||||
version = "3.19.4.61";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microchip-pic-avr-tools";
|
||||
repo = "pymcuprog";
|
||||
# the repo currently does not tag releases, so using the
|
||||
# commit ID for now
|
||||
rev = "e2fa9a7f0b9cc413367c51b9ccf19d93cdca6c8";
|
||||
hash = "sha256-RmFGQ6LbuwwM/WHr01nYGZYoWG7Qbasz/TL4r8l1NUk";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
appdirs
|
||||
intelhex
|
||||
pyedbglib
|
||||
pyserial
|
||||
pyyaml
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pymcuprog" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
mock
|
||||
parameterized
|
||||
pytestCheckHook
|
||||
versionCheckHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
versionCheckKeepEnvironment = "HOME";
|
||||
|
||||
meta = {
|
||||
description = "Python utility for programming various Microchip MCU devices using Microchip CMSIS-DAP based debuggers";
|
||||
mainProgram = "pymcuprog";
|
||||
homepage = "https://github.com/microchip-pic-avr-tools/pymcuprog";
|
||||
changelog = "https://github.com/microchip-pic-avr-tools/pymcuprog/blob/main/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ prophetofxenu ];
|
||||
};
|
||||
}
|
||||
@@ -13461,6 +13461,8 @@ self: super: with self; {
|
||||
|
||||
pyecowitt = callPackage ../development/python-modules/pyecowitt { };
|
||||
|
||||
pyedbglib = callPackage ../development/python-modules/pyedbglib { };
|
||||
|
||||
pyedflib = callPackage ../development/python-modules/pyedflib { };
|
||||
|
||||
pyedimax = callPackage ../development/python-modules/pyedimax { };
|
||||
@@ -14007,6 +14009,8 @@ self: super: with self; {
|
||||
|
||||
pymc = callPackage ../development/python-modules/pymc { };
|
||||
|
||||
pymcuprog = callPackage ../development/python-modules/pymcuprog { };
|
||||
|
||||
pymdown-extensions = callPackage ../development/python-modules/pymdown-extensions { };
|
||||
|
||||
pymdstat = callPackage ../development/python-modules/pymdstat { };
|
||||
|
||||
Reference in New Issue
Block a user