Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-02-14 16:18:02 +00:00
committed by GitHub
20 changed files with 331 additions and 39 deletions
+6
View File
@@ -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.
+112 -3
View File
@@ -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
View File
@@ -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 = {
+4
View File
@@ -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
+3 -3
View File
@@ -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;
+2 -2
View File
@@ -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 = ''
+3 -2
View File
@@ -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
+2 -2
View File
@@ -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 = [
+3 -3
View File
@@ -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
+1
View File
@@ -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 ];
};
}
+4
View File
@@ -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 { };