diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d57d8e157777..ae2df2599021 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1230,6 +1230,19 @@ githubId = 3017212; name = "Alex S. Kaye"; }; + alexstaeding = { + email = "alex@staeding.com"; + github = "alexstaeding"; + githubId = 24614463; + keys = [ + # Primary key + { fingerprint = "AE72 51E3 A241 ECDA FB6B F59D 4399 191B 9DD5 FABA"; } + # Subkey + { fingerprint = "F352 C405 5653 B943 0FE0 341A E4B4 7D6A 9A56 73CD"; } + ]; + matrix = "@alexstaeding:matrix.org"; + name = "Alexander Städing"; + }; alexvorobiev = { email = "alexander.vorobiev@gmail.com"; github = "alexvorobiev"; diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/cdi-generate.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/cdi-generate.nix index 33a47013bab4..f959e78a335d 100644 --- a/nixos/modules/services/hardware/nvidia-container-toolkit/cdi-generate.nix +++ b/nixos/modules/services/hardware/nvidia-container-toolkit/cdi-generate.nix @@ -37,6 +37,7 @@ writeScriptBin "nvidia-cdi-generator" '' } --discovery-mode ${discovery-mode} \ --device-name-strategy ${device-name-strategy} \ + --disable-hook create-symlinks \ --ldconfig-path ${lib.getExe' glibc "ldconfig"} \ --library-search-path ${lib.getLib nvidia-driver}/lib \ --nvidia-cdi-hook-path ${lib.getOutput "tools" nvidia-container-toolkit}/bin/nvidia-cdi-hook \ diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix index 35a32b9ddcdb..cdfa8f6b5123 100644 --- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix +++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix @@ -188,6 +188,10 @@ ]) ]; + services.udev.extraRules = '' + KERNEL=="nvidia", RUN+="${lib.getExe' config.systemd.package "systemctl"} restart nvidia-container-toolkit-cdi-generator.service'" + ''; + virtualisation = { containers.containersConf.settings = { engine = { @@ -232,12 +236,8 @@ containerPath = pkgs.addDriverRunpath.driverLink; } { - hostPath = "${lib.getLib nvidia-driver}/etc"; - containerPath = "${lib.getLib nvidia-driver}/etc"; - } - { - hostPath = "${lib.getLib nvidia-driver}/share"; - containerPath = "${lib.getLib nvidia-driver}/share"; + hostPath = "${lib.getLib nvidia-driver}"; + containerPath = "${lib.getLib nvidia-driver}"; } { hostPath = "${lib.getLib pkgs.glibc}/lib"; @@ -289,11 +289,52 @@ systemd.services.nvidia-container-toolkit-cdi-generator = { description = "Container Device Interface (CDI) for Nvidia generator"; + requiredBy = lib.mkMerge [ + (lib.mkIf config.virtualisation.docker.enable [ "docker.service" ]) + (lib.mkIf config.virtualisation.podman.enable [ "podman.service" ]) + ]; wantedBy = [ "multi-user.target" ]; - after = [ "systemd-udev-settle.service" ]; serviceConfig = { RuntimeDirectory = "cdi"; RemainAfterExit = true; + ExecStartPre = pkgs.writeShellScript "wait-for-nvidia-devices" '' + set -eu + + gpus_dir="/proc/driver/nvidia/gpus" + max_wait_seconds=60 + + if [ ! -d "$gpus_dir" ]; then + echo "wait-for-nvidia-devices: $gpus_dir does not exist; nothing to wait for." + exit 0 + fi + + gpu_count=$(find "$gpus_dir" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ') + + if [ "$gpu_count" -eq 0 ]; then + echo "wait-for-nvidia-devices: no GPU entries found in $gpus_dir; nothing to wait for." + exit 0 + fi + + echo "wait-for-nvidia-devices: expecting $gpu_count /dev/nvidiaN device node(s)." + + elapsed=0 + while true; do + dev_count=$(find /dev -mindepth 1 -maxdepth 1 -type c -regex '.*/nvidia[0-9]+' 2>/dev/null | wc -l | tr -d ' ') + + if [ "$dev_count" -eq "$gpu_count" ]; then + echo "wait-for-nvidia-devices: found $dev_count matching device node(s)." + exit 0 + fi + + if [ "$elapsed" -ge "$max_wait_seconds" ]; then + echo "wait-for-nvidia-devices: timed out after $max_wait_seconds seconds; expected $gpu_count node(s) but found $dev_count." >&2 + exit 1 + fi + + sleep 1 + elapsed=$((elapsed + 1)) + done + ''; ExecStart = let script = pkgs.callPackage ./cdi-generate.nix { diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index f662322c4ce6..2936d0bf5280 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -4,6 +4,7 @@ fetchurl, fetchzip, unzip, + config, }: rec { @@ -145,13 +146,13 @@ rec { version = "1.3.5.201612301822"; srcFeature = fetchurl { - url = "https://mihnita.github.io/ansi-econsole/install/features/net.mihai-nita.ansicon_${version}.jar"; - sha256 = "086ylxpsrlpbvwv5mw7v6b44j63cwzgi8apg2mq058ydr5ak6hxs"; + url = "https://github.com/mihnita/ansi-econsole/raw/refs/heads/main/AnsiConSitePublished/features/net.mihai-nita.ansicon_${version}.jar"; + hash = "sha256-o9hnMuZeohU+AKS+ueU8dWS9HomrnqaKpWYMG5vMeJs="; }; srcPlugin = fetchurl { - url = "https://mihnita.github.io/ansi-econsole/install/plugins/net.mihai-nita.ansicon.plugin_${version}.jar"; - sha256 = "1j42l0xxzs89shqkyn91lb0gia10mifzy0i73c3n7gj7sv2ddbjq"; + url = "https://github.com/mihnita/ansi-econsole/raw/refs/heads/main/AnsiConSitePublished/plugins/net.mihai-nita.ansicon.plugin_${version}.jar"; + hash = "sha256-WK7WxNZHvmMHGycC/12sIKj4wKIhWT8x1Anp3zuggsg="; }; meta = with lib; { @@ -211,16 +212,16 @@ rec { anyedittools = buildEclipsePlugin rec { name = "anyedit-${version}"; - version = "2.7.2.202006062100"; + version = "2.7.3.202502241151"; srcFeature = fetchurl { - url = "https://github.com/iloveeclipse/plugins/blob/latest/features/AnyEditTools_${version}.jar"; - sha256 = "0dwwwvz8by10f5gnws1ahmg02g6v4xbaqcwc0cydvv1h52cyb40g"; + url = "https://github.com/iloveeclipse/plugins/raw/refs/heads/latest/features/AnyEditTools_${version}.jar"; + hash = "sha256-liEw+H8yTCrYQMe3gVQhJuxPXlSpEs4QwB2yv8n/CiE="; }; srcPlugin = fetchurl { - url = "https://github.com/iloveeclipse/plugins/blob/latest/plugins/de.loskutov.anyedit.AnyEditTools_${version}.jar"; - sha256 = "1ip8dk92ka7bczw1bkbs3zkclmwr28ds5q1wrzh525wb70x8v6fi"; + url = "https://github.com/iloveeclipse/plugins/raw/refs/heads/latest/plugins/de.loskutov.anyedit.AnyEditTools_${version}.jar"; + hash = "sha256-LrWCWJWZxsnMiBnTwXdWaXUoyXMYpLqXMUkHEOna2kk="; }; meta = with lib; { @@ -255,29 +256,6 @@ rec { }; }; - bytecode-outline = buildEclipsePlugin rec { - name = "bytecode-outline-${version}"; - version = "1.0.1.202006062100"; - - srcFeature = fetchurl { - url = "https://github.com/iloveeclipse/plugins/blob/latest/features/org.eclipse.jdt.bcoview.feature_${version}.jar"; - sha256 = "0zbcph72lgv8cb5n4phcl3qsybc5q5yviwbv8yjv4v12m4l15wpk"; - }; - - srcPlugin = fetchurl { - url = "https://github.com/iloveeclipse/plugins/blob/latest/plugins/org.eclipse.jdt.bcoview_${version}.jar"; - sha256 = "1bx860k4haqcnhy8825kn4df0pyzd680qbnvjmxfrlxrqhr66fbb"; - }; - - meta = with lib; { - homepage = "https://github.com/iloveeclipse/plugins"; - description = "Shows disassembled bytecode of current java editor or class file"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.bsd2; - platforms = platforms.all; - }; - }; - cdt = buildEclipseUpdateSite rec { name = "cdt-${version}"; # find current version at https://github.com/eclipse-cdt/cdt/releases @@ -588,24 +566,6 @@ rec { }; }; - scala = buildEclipseUpdateSite rec { - name = "scala-${version}"; - version = "4.4.1.201605041056"; - - src = fetchzip { - url = "http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/base-20160504-1321.zip"; - sha256 = "13xgx2rwlll0l4bs0g6gyvrx5gcc0125vzn501fdj0wv2fqxn5lw"; - }; - - meta = with lib; { - homepage = "http://scala-ide.org/"; - description = "Scala IDE for Eclipse"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.bsd3; - platforms = platforms.all; - }; - }; - spotbugs = buildEclipseUpdateSite rec { name = "spotbugs-${version}"; version = "3.1.11"; @@ -630,13 +590,13 @@ rec { version = "6.9.13.201609291640"; srcFeature = fetchurl { - url = "http://beust.com/eclipse-old/eclipse_${version}/features/org.testng.eclipse_${version}.jar"; - sha256 = "02wzcysl7ga3wnvnwp6asl8d77wgc547c5qqawixw94lw6fn1a15"; + url = "https://github.com/testng-team/testng-eclipse-update-site/raw/refs/heads/main/updatesites/${version}/features/org.testng.eclipse_${version}.jar"; + hash = "sha256-JahgneGUJN4jVxgXdkhhj5/TENXKXG635UO9Q7Vnnws="; }; srcPlugin = fetchurl { - url = "http://beust.com/eclipse-old/eclipse_${version}/plugins/org.testng.eclipse_${version}.jar"; - sha256 = "1j4zw6392q3q6z3pcy803k3g0p220gk1x19fs99p0rmmdz83lc8d"; + url = "https://github.com/testng-team/testng-eclipse-update-site/raw/refs/heads/main/updatesites/${version}/plugins/org.testng.eclipse_${version}.jar"; + hash = "sha256-DTE60G+1ZnBT0i6FHuYDQlzwxhwAeXbHN3hgkYbhn8g="; }; meta = with lib; { @@ -711,104 +671,13 @@ rec { maintainers = [ maintainers.romildo ]; }; }; - - ivyde = buildEclipsePlugin rec { - name = "ivyde-${version}"; - version = "2.2.0.final-201311091524-RELEASE"; - - srcFeature = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/features/org.apache.ivyde.feature_${version}.jar"; - hash = "sha256-iKe7oOPjy6th0HmKt6NXexOHN60EDpQe1r+n6K+uoyw="; - }; - - srcPlugin = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/plugins/org.apache.ivyde.eclipse_${version}.jar"; - hash = "sha256-lhwFwdMDwCIUrQjdWfe5ZSutCIsKtZSBT6FWthUipdk="; - }; - - meta = with lib; { - homepage = "https://ant.apache.org/ivy/ivyde/index.html"; - description = "Plugin which integrates Apache Ivy's dependency management"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.r3dl3g ]; - }; - }; - - ivyderv = buildEclipsePlugin rec { - name = "ivyderv-${version}"; - version = "2.2.0.final-201311091524-RELEASE"; - - srcFeature = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/features/org.apache.ivyde.eclipse.resolvevisualizer.feature_${version}.jar"; - hash = "sha256-PSH5NtE7hN2hHoHUhVK1CLkHN7YSDdTTqBP7711X4rU="; - }; - - srcPlugin = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/plugins/org.apache.ivyde.eclipse.resolvevisualizer_${version}.jar"; - hash = "sha256-qjTvn1j7viSfzLkWnYjyS9Pj2ExqsiFGLzot3+oB0Tw="; - }; - - meta = with lib; { - homepage = "https://ant.apache.org/ivy/ivyde/index.html"; - description = "Graph viewer of the resolved dependencies"; - longDescription = '' - Apache IvyDE Resolve Visualizer is an optional dependency of Apache IvyDE since - it requires additional plugins to be installed (Zest). - ''; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.r3dl3g ]; - }; - }; - - ivy = buildEclipsePlugin rec { - name = "ivy-${version}"; - version = "2.5.0.final_20191020104435"; - - srcFeature = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/features/org.apache.ivy.eclipse.ant.feature_${version}.jar"; - sha256 = "de6134171a0edf569bb9b4c3a91639d469f196e86804d218adfdd60a5d7fa133"; - }; - - srcPlugin = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/plugins/org.apache.ivy.eclipse.ant_${version}.jar"; - sha256 = "9e8ea20480cf73d0f0f3fb032d263c7536b24fd2eef71beb7d62af4e065f9ab5"; - }; - - meta = with lib; { - homepage = "https://ant.apache.org/ivy/index.html"; - description = "Popular dependency manager focusing on flexibility and simplicity"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.r3dl3g ]; - }; - }; - - ivyant = buildEclipsePlugin rec { - name = "ivyant-${version}"; - version = "2.5.0.final_20191020104435"; - - srcFeature = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/features/org.apache.ivy.eclipse.ant.feature_${version}.jar"; - sha256 = "de6134171a0edf569bb9b4c3a91639d469f196e86804d218adfdd60a5d7fa133"; - }; - - srcPlugin = fetchurl { - url = "https://downloads.apache.org/ant/ivyde/updatesite/ivy-${version}/plugins/org.apache.ivy.eclipse.ant_${version}.jar"; - sha256 = "9e8ea20480cf73d0f0f3fb032d263c7536b24fd2eef71beb7d62af4e065f9ab5"; - }; - - meta = with lib; { - homepage = "https://ant.apache.org/ivy/ivyde/index.html"; - description = "Ant Tasks integrated into Eclipse's Ant runtime"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.r3dl3g ]; - }; - }; +} +// lib.optionalAttrs config.allowAliases { + # Added 2025-11-16 + bytecode-outline = throw "eclipses.plugins.bytecode-outline has been removed due to being removed upstream."; + ivyde = throw "eclipses.plugins.ivyde has been removed due to being archived upstream."; + ivyderv = throw "eclipses.plugins.inyderv has been removed due to being archived upstream."; + ivy = throw "eclipses.plugins.ivy has been removed due to being archived upstream."; + ivyant = throw "eclipses.plugins.ivyant has been removed due to being archived upstream."; + scala = throw "eclipses.plugins.scala has been removed due to being deprecated upstream."; } diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/package.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/package.nix index 211aaf2df4be..c5a797ec4ad4 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/package.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/package.nix @@ -8,13 +8,13 @@ melpaBuild { pname = "edraw"; - version = "1.2.0-unstable-2025-02-21"; + version = "1.2.0-unstable-2025-05-23"; src = fetchFromGitHub { owner = "misohena"; repo = "el-easydraw"; - rev = "f6b0f43138693b73cb65327d28bd2a4ee1b6caa7"; - hash = "sha256-IU+DMw8q1Si3CJ4FhJVkaRsjkh1Oc3psmbzdUgh0YMI="; + rev = "8007f50c1c1734325c47939904f486753c7dd8ee"; + hash = "sha256-YESpl+gSSC1eIOEQ8QevfTZ0Ar9wO4pzC12wVmDpDOA="; }; propagatedUserEnvPkgs = [ gzip ]; diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 3a8068db189a..ffaf40631fd4 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -2800,6 +2800,8 @@ let }; }; + leanprover.lean4 = callPackage ./leanprover.lean4 { }; + leonardssh.vscord = buildVscodeMarketplaceExtension { mktplcRef = { name = "vscord"; diff --git a/pkgs/applications/editors/vscode/extensions/leanprover.lean4/default.nix b/pkgs/applications/editors/vscode/extensions/leanprover.lean4/default.nix new file mode 100644 index 000000000000..b081e16eceb7 --- /dev/null +++ b/pkgs/applications/editors/vscode/extensions/leanprover.lean4/default.nix @@ -0,0 +1,21 @@ +{ + lib, + vscode-utils, +}: + +vscode-utils.buildVscodeMarketplaceExtension { + mktplcRef = { + name = "lean4"; + publisher = "leanprover"; + version = "0.0.221"; + hash = "sha256-OoDM9PuhQBRln41OHdVbI8EcXaqIQPArnqgFt+63aJg="; + }; + + meta = { + description = "This extension provides VS Code support for the Lean 4 theorem prover and programming language"; + downloadPage = "https://marketplace.visualstudio.com/items?itemName=leanprover.lean4"; + homepage = "https://github.com/leanprover/vscode-lean4"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ alexstaeding ]; + }; +} diff --git a/pkgs/applications/emulators/wine/base.nix b/pkgs/applications/emulators/wine/base.nix index 92a849b8cdac..034130c88b6c 100644 --- a/pkgs/applications/emulators/wine/base.nix +++ b/pkgs/applications/emulators/wine/base.nix @@ -209,7 +209,7 @@ stdenv.mkDerivation ( # LD_LIBRARY_PATH. NIX_LDFLAGS = toString ( map (path: "-rpath " + path) ( - map (x: "${lib.getLib x}/lib") [ stdenv.cc.cc ] + map (x: "${lib.getLib x}/lib") ([ stdenv.cc.cc ] ++ finalAttrs.buildInputs) # libpulsecommon.so is linked but not found otherwise ++ lib.optionals supportFlags.pulseaudioSupport ( map (x: "${lib.getLib x}/lib/pulseaudio") (toBuildInputs pkgArches (pkgs: [ pkgs.libpulseaudio ])) diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix index 8886b8f7c368..a39ee4b78846 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix @@ -100,8 +100,8 @@ rec { thunderbird-140 = common { applicationName = "Thunderbird ESR"; - version = "140.4.0esr"; - sha512 = "23a7c99f51a346f9df6e0da257040a78da0b9afd70966a0fd5c0f5a4dcd4806520f8d510a382cf5d76a099aa889219a5eec185b774a6a9b65c4ccdcb75662554"; + version = "140.5.0esr"; + sha512 = "ce0d0ab4715831656e6c841d75a69109db6d64b4151ab69ecc954f1d3a045abf64e641e0fa46113cc7f3149bfe237687d4c11de1c14d013ce76e55679cadb1c5"; updateScript = callPackage ./update.nix { attrPath = "thunderbirdPackages.thunderbird-140"; diff --git a/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix b/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix index 453dd880a92e..b536a92691d7 100644 --- a/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix @@ -3,7 +3,7 @@ stdenv, fetchFromGitHub, obs-studio, - ffmpeg, + ffmpeg_7, libjpeg, libimobiledevice, libusbmuxd, @@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: { libusbmuxd libplist obs-studio - ffmpeg + ffmpeg_7 ]; nativeBuildInputs = [ @@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: { "IMOBILEDEV_DIR=${lib.getDev libimobiledevice}" "IMOBILEDEV_DIR=${lib.getLib libimobiledevice}" "LIBOBS_INCLUDES=${obs-studio}/include/obs" - "FFMPEG_INCLUDES=${lib.getLib ffmpeg}" + "FFMPEG_INCLUDES=${lib.getLib ffmpeg_7}" "LIBUSBMUXD=libusbmuxd-2.0" "LIBIMOBILEDEV=libimobiledevice-1.0" ]; diff --git a/pkgs/by-name/ap/applgrid/package.nix b/pkgs/by-name/ap/applgrid/package.nix index e239286c4151..23bb457edd2a 100644 --- a/pkgs/by-name/ap/applgrid/package.nix +++ b/pkgs/by-name/ap/applgrid/package.nix @@ -38,7 +38,10 @@ stdenv.mkDerivation rec { '' + (lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace src/Makefile.in \ - --replace-fail "gfortran -print-file-name=libgfortran.a" "gfortran -print-file-name=libgfortran.dylib" + --replace-fail "gfortran -print-file-name=libgfortran.a" "gfortran -print-file-name=libgfortran.dylib" \ + --replace-fail 'libfAPPLgrid_la_LIBADD =' 'libfAPPLgrid_la_LIBADD = $(FRTLLIB)' \ + --replace-fail '$(CXXLINK) -rpath $(libdir) $(libfAPPLgrid_la_OBJECTS) $(libfAPPLgrid_la_LIBADD) $(LIBS)' \ + '$(CXXLINK) -rpath $(libdir) $(libfAPPLgrid_la_OBJECTS) $(libfAPPLgrid_la_LIBADD) $(LIBS) -Wl,-undefined,dynamic_lookup' ''); enableParallelBuilding = false; # broken diff --git a/pkgs/by-name/ar/arcan/package.nix b/pkgs/by-name/ar/arcan/package.nix index 0f723a613e20..43dd94383e6d 100644 --- a/pkgs/by-name/ar/arcan/package.nix +++ b/pkgs/by-name/ar/arcan/package.nix @@ -4,6 +4,7 @@ callPackage, cmake, espeak-ng, + fetchpatch2, ffmpeg, file, freetype, @@ -163,6 +164,17 @@ stdenv.mkDerivation (finalAttrs: { popd ''; + patches = [ + # Upstream patch to support ffmpeg 8 + (fetchpatch2 { + name = "0001-build-fix-build-with-latest-ffmpeg.patch"; + url = "https://chiselapp.com/user/letoram/repository/arcan/vpatch?from=cc6f24de2134282a&to=25bbde5eec7033d3"; + hash = "sha256-i8d/X/xmEGWpO9fG6BerW//JnosPwDolXvMFsuv39IM="; + stripLen = 1; + extraPrefix = "src/"; + }) + ]; + postPatch = '' substituteInPlace ./src/platform/posix/paths.c \ --replace-fail "/usr/bin" "$out/bin" \ diff --git a/pkgs/by-name/az/azure-cli/extensions-manual.nix b/pkgs/by-name/az/azure-cli/extensions-manual.nix index 9c1ab1ed328a..ebfb1c49a26e 100644 --- a/pkgs/by-name/az/azure-cli/extensions-manual.nix +++ b/pkgs/by-name/az/azure-cli/extensions-manual.nix @@ -83,9 +83,9 @@ containerapp = mkAzExtension rec { pname = "containerapp"; - version = "1.2.0b4"; + version = "1.3.0b1"; url = "https://azcliprod.blob.core.windows.net/cli-extensions/containerapp-${version}-py2.py3-none-any.whl"; - hash = "sha256-v2Mu46qVpDKjGARgGkKzQm5QcK4Msj4XgdgWZwI8fS0="; + hash = "sha256-gEFo2qBqQ19SSIMx1BWPoc19xv7lCUkuZMSUz9qPqrE="; description = "Microsoft Azure Command-Line Tools Containerapp Extension"; propagatedBuildInputs = with python3Packages; [ docker diff --git a/pkgs/by-name/bl/bloop/package.nix b/pkgs/by-name/bl/bloop/package.nix index 4de4e5ff5007..7f1d0db780a1 100644 --- a/pkgs/by-name/bl/bloop/package.nix +++ b/pkgs/by-name/bl/bloop/package.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { pname = "bloop"; - version = "2.0.16"; + version = "2.0.17"; platform = if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64 then @@ -42,11 +42,11 @@ stdenv.mkDerivation rec { url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-${platform}"; sha256 = if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64 then - "sha256-66TYu/2HMvd58z2hDdOfQ51feZ/yYvzVfMmjD9U7lHs=" + "sha256-pvqIotxcKVtrCQlMdbMGNkPvrMcNyw8CmtnUkQjAF8Y=" else if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64 then - "sha256-k8mUKcQcJZuqlEfphOIhXSTU4ny5WD0zHEhUsbtpVg0=" + "sha256-W54MoUGEQ48ju+h1PVUxlJZ0RxV2NLjYhlq6QacBEto=" else if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then - "sha256-eYKjT5k3UeSt/FUddzaYQ1xbYaC9Rf/HCEbYxkLaz50=" + "sha256-7FtS1dlDK5v/zlwFA5rPSkyLaEVbKhAaKdOhZkZcFPg=" else throw "unsupported platform"; }; diff --git a/pkgs/by-name/bo/bottom/package.nix b/pkgs/by-name/bo/bottom/package.nix index 9afdac3ebfdf..b649db34aa16 100644 --- a/pkgs/by-name/bo/bottom/package.nix +++ b/pkgs/by-name/bo/bottom/package.nix @@ -4,18 +4,19 @@ fetchFromGitHub, autoAddDriverRunpath, installShellFiles, + writableTmpDirAsHomeHook, versionCheckHook, nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "bottom"; version = "0.11.3"; src = fetchFromGitHub { owner = "ClementTsang"; repo = "bottom"; - tag = version; + tag = finalAttrs.version; hash = "sha256-7rVvKAqK8hqICnSr/Ax9ndsIZAdTaUyOAoVZ13W5BJs="; }; @@ -26,6 +27,10 @@ rustPlatform.buildRustPackage rec { installShellFiles ]; + env = { + BTM_GENERATE = true; + }; + postInstall = '' installManPage target/tmp/bottom/manpage/btm.1 installShellCompletion \ @@ -35,24 +40,20 @@ rustPlatform.buildRustPackage rec { install -Dm444 desktop/bottom.desktop -t $out/share/applications ''; - preCheck = '' - HOME=$(mktemp -d) - ''; - doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook + writableTmpDirAsHomeHook ]; versionCheckProgram = "${placeholder "out"}/bin/btm"; - - BTM_GENERATE = true; + versionCheckProgramArg = "--version"; passthru = { updateScript = nix-update-script { }; }; meta = { - changelog = "https://github.com/ClementTsang/bottom/blob/${version}/CHANGELOG.md"; + changelog = "https://github.com/ClementTsang/bottom/blob/${finalAttrs.version}/CHANGELOG.md"; description = "Cross-platform graphical process/system monitor with a customizable interface"; homepage = "https://github.com/ClementTsang/bottom"; license = lib.licenses.mit; @@ -62,4 +63,4 @@ rustPlatform.buildRustPackage rec { gepbird ]; }; -} +}) diff --git a/pkgs/by-name/br/bruno/package.nix b/pkgs/by-name/br/bruno/package.nix index da03f9443d09..377798e30595 100644 --- a/pkgs/by-name/br/bruno/package.nix +++ b/pkgs/by-name/br/bruno/package.nix @@ -20,20 +20,20 @@ buildNpmPackage rec { pname = "bruno"; - version = "2.14.0"; + version = "2.14.2"; src = fetchFromGitHub { owner = "usebruno"; repo = "bruno"; tag = "v${version}"; - hash = "sha256-fmT+KA8v/fdVQu7KUkZNOkNtcl5uPxzHVKplml2HbSM="; + hash = "sha256-YJosHQ2NQAXijPj+6OQJ7zTAOXGNPBqRrhBYQ8moLQ8="; postFetch = '' ${lib.getExe npm-lockfile-fix} $out/package-lock.json ''; }; - npmDepsHash = "sha256-H2v9dm4VCRQrhs9g/D1QOu1L5AeN+Vqhez4qrBdd9Gs="; + npmDepsHash = "sha256-w/LcSiRi4iHEu3gzitqtwfmdyyPIO2ZsLa9bhvEqkRQ="; npmFlags = [ "--legacy-peer-deps" ]; nativeBuildInputs = [ diff --git a/pkgs/by-name/ce/cegui/cmake-minimum-required.patch b/pkgs/by-name/ce/cegui/cmake-minimum-required.patch new file mode 100644 index 000000000000..244c8256683d --- /dev/null +++ b/pkgs/by-name/ce/cegui/cmake-minimum-required.patch @@ -0,0 +1,96 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 16b26eac8..7bbdab0c7 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,13 +1,13 @@ + ################################################################################ + # Top-level CMakeLists.txt file for Crazy Eddie's GUI System + ################################################################################ +-cmake_minimum_required(VERSION 3.1) ++cmake_minimum_required(VERSION 3.10) + if (POLICY CMP0017) +- cmake_policy(SET CMP0017 OLD) ++ cmake_policy(SET CMP0017 NEW) + endif() + + if (POLICY CMP0045) +- cmake_policy(SET CMP0045 OLD) ++ cmake_policy(SET CMP0045 NEW) + endif() + + if (APPLE AND NOT CMAKE_OSX_ARCHITECTURES) +@@ -112,7 +112,7 @@ if(NOT ${OGRE_FOUND}) + endif() + if(${OGRE_FOUND}) + if (${OGRE_VERSION} VERSION_GREATER 1.11) +- set(CMAKE_CXX_STANDARD 11) ++ set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) + +diff --git a/cmake/CEGUIMacros.cmake b/cmake/CEGUIMacros.cmake +index 2aca3ff3d..6c3384d63 100644 +--- a/cmake/CEGUIMacros.cmake ++++ b/cmake/CEGUIMacros.cmake +@@ -51,17 +51,15 @@ endmacro() + macro (cegui_target_link_libraries _TARGET_NAME) + target_link_libraries(${_TARGET_NAME} ${ARGN}) + +- get_target_property(_TARGET_EXISTS ${_TARGET_NAME}_Static TYPE) +- if (_TARGET_EXISTS) ++ if (TARGET ${_TARGET_NAME}_Static) + foreach(_LIB ${ARGN}) + if (${_LIB} STREQUAL optimized OR ${_LIB} STREQUAL debug OR ${_LIB} STREQUAL general) + set (_BUILD ${_LIB}) + else() +- get_target_property(_LIB_IS_IN_PROJECT ${_LIB}_Static TYPE) +- +- if (_LIB_IS_IN_PROJECT) ++ if (TARGET ${_LIB}_Static) + target_link_libraries(${_TARGET_NAME}_Static ${_BUILD} ${_LIB}_Static) + else() ++ # Fall back to the provided dependency if it is not a CMake target + target_link_libraries(${_TARGET_NAME}_Static ${_BUILD} ${_LIB}) + endif() + endif() +@@ -73,9 +71,7 @@ endmacro() + # add dynamic dependency libraries to a target + # + macro (cegui_add_dependency_dynamic_libs _TARGET_NAME _DEP_NAME) +- get_target_property(_TARGET_EXISTS ${_TARGET_NAME} TYPE) +- +- if (_TARGET_EXISTS) ++ if (TARGET ${_TARGET_NAME}) + if (${_DEP_NAME}_LIBRARIES) + if (${_DEP_NAME}_LIBRARIES_DBG) + foreach(_LIB ${${_DEP_NAME}_LIBRARIES}) +@@ -98,9 +94,7 @@ endmacro() + # if static do not exist) + # + macro (cegui_add_dependency_static_libs _TARGET_NAME _DEP_NAME) +- get_target_property(_TARGET_EXISTS ${_TARGET_NAME} TYPE) +- +- if (_TARGET_EXISTS) ++ if (TARGET ${_TARGET_NAME}) + if (${_DEP_NAME}_LIBRARIES_STATIC) + if (${_DEP_NAME}_LIBRARIES_STATIC_DBG) + foreach(_LIB ${${_DEP_NAME}_LIBRARIES_STATIC}) +@@ -137,8 +131,16 @@ endmacro() + # + macro (cegui_add_dependency _TARGET_NAME _DEP_NAME) + # Optional additional arguments: "SCOPE" "IS_SYSTEM" +- get_target_property(_DYNAMIC_EXISTS ${_TARGET_NAME} TYPE) +- get_target_property(_STATIC_EXISTS ${_TARGET_NAME}_Static TYPE) ++ if (TARGET ${_TARGET_NAME}) ++ set(_DYNAMIC_EXISTS TRUE) ++ else() ++ set(_DYNAMIC_EXISTS FALSE) ++ endif() ++ if (TARGET ${_TARGET_NAME}_Static) ++ set(_STATIC_EXISTS TRUE) ++ else() ++ set(_STATIC_EXISTS FALSE) ++ endif() + if ("${ARGC}" GREATER 2) + if (("${ARGC}" GREATER 3) AND "${ARGV3}") + if (_DYNAMIC_EXISTS) diff --git a/pkgs/by-name/ce/cegui/package.nix b/pkgs/by-name/ce/cegui/package.nix index f95bd65faef8..8415b5492972 100644 --- a/pkgs/by-name/ce/cegui/package.nix +++ b/pkgs/by-name/ce/cegui/package.nix @@ -22,6 +22,10 @@ stdenv.mkDerivation { hash = "sha256-9lZ7eBwmxZ33XNDJXQ2lbCcH5JyH0KoY1mj/g+2HOJs="; }; + patches = [ + ./cmake-minimum-required.patch + ]; + strictDeps = true; nativeBuildInputs = [ diff --git a/pkgs/by-name/ce/celeste/missing-unsafe-block.patch b/pkgs/by-name/ce/celeste/missing-unsafe-block.patch new file mode 100644 index 000000000000..3810ec496f11 --- /dev/null +++ b/pkgs/by-name/ce/celeste/missing-unsafe-block.patch @@ -0,0 +1,25 @@ +From 96ec13b49ee2fcb2869f87b1f9e8c6cfc92275df Mon Sep 17 00:00:00 2001 +From: Tom van Dijk <18gatenmaker6@gmail.com> +Date: Fri, 14 Nov 2025 18:55:40 +0100 +Subject: [PATCH] rust 2024 fixes + +--- + src/main.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/main.rs b/src/main.rs +index 127f649..5ef526e 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -103,7 +103,7 @@ fn main() { + } + } else { + // Set `RUST_BACKTRACE` so we get a better backtrace for reporting. +- env::set_var("RUST_BACKTRACE", "1"); ++ unsafe { env::set_var("RUST_BACKTRACE", "1"); } + + // Run the command and get the stderr, checking for a backtrace. + let mut args = vec!["run-gui"]; +-- +2.51.0 + diff --git a/pkgs/by-name/ce/celeste/package.nix b/pkgs/by-name/ce/celeste/package.nix index 38754f36997a..911d3f54429a 100644 --- a/pkgs/by-name/ce/celeste/package.nix +++ b/pkgs/by-name/ce/celeste/package.nix @@ -31,6 +31,9 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-OBGDnhpVLOPdYhofWfeaueklt7KBkLhM02JNvuvUQ2Q="; + # rust 2024 requires that you put an unsafe block around std::env::set_var + patches = [ ./missing-unsafe-block.patch ]; + postPatch = '' pushd $cargoDepsCopy/librclone-sys-* oldHash=$(sha256sum build.rs | cut -d " " -f 1) @@ -45,6 +48,10 @@ rustPlatform.buildRustPackage rec { --replace "{{ env_var('DESTDIR') }}/usr" "${placeholder "out"}" # buildRustPackage takes care of installing the binary sed -i "#/bin/celeste#d" justfile + + # fix: as of rust 1.85, it is required that you specify edition 2024 for let chains + substituteInPlace Cargo.toml \ + --replace-warn 'edition = "2021"' 'edition = "2024"' ''; RUSTC_BOOTSTRAP = 1; diff --git a/pkgs/by-name/cl/cliphist/package.nix b/pkgs/by-name/cl/cliphist/package.nix index 5fa6d02cb331..4aede5af1156 100644 --- a/pkgs/by-name/cl/cliphist/package.nix +++ b/pkgs/by-name/cl/cliphist/package.nix @@ -1,5 +1,6 @@ { lib, + bash, buildGoModule, fetchFromGitHub, nix-update-script, @@ -26,6 +27,8 @@ buildGoModule rec { updateScript = nix-update-script { }; }; + buildInputs = [ bash ]; + meta = with lib; { description = "Wayland clipboard manager"; homepage = "https://github.com/sentriz/cliphist"; diff --git a/pkgs/by-name/dj/djv/package.nix b/pkgs/by-name/dj/djv/package.nix index 9cc1ae9d1317..2a861f28d7c8 100644 --- a/pkgs/by-name/dj/djv/package.nix +++ b/pkgs/by-name/dj/djv/package.nix @@ -6,7 +6,7 @@ pkg-config, bzip2, feather-tk, - ffmpeg, + ffmpeg_7, freetype, glfw, imath, @@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ bzip2 feather-tk - ffmpeg + ffmpeg_7 freetype glfw imath diff --git a/pkgs/by-name/do/door-knocker/package.nix b/pkgs/by-name/do/door-knocker/package.nix index 37429ed2f5cd..9e02c2ebed2e 100644 --- a/pkgs/by-name/do/door-knocker/package.nix +++ b/pkgs/by-name/do/door-knocker/package.nix @@ -15,14 +15,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "door-knocker"; - version = "0.7.0"; + version = "0.8.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "tytan652"; repo = "door-knocker"; rev = finalAttrs.version; - hash = "sha256-6QHjmjR2ioR0I6JXtJ0Q+9Dl1fcTnQCGgWlcyFt9WoA="; + hash = "sha256-Yz/HVffOJNpu0D8SE32ehwI3UQ7yPKMqR6yYIAVuBDc="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/fi/firejail/package.nix b/pkgs/by-name/fi/firejail/package.nix index dcf9348383c4..4fdde82d3778 100644 --- a/pkgs/by-name/fi/firejail/package.nix +++ b/pkgs/by-name/fi/firejail/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "firejail"; - version = "0.9.74"; + version = "0.9.76"; src = fetchFromGitHub { owner = "netblue30"; repo = "firejail"; rev = version; - sha256 = "sha256-BKEW2IWatzePGREAA479eaP6bJb1i2fRs/GZcyLinrM="; + sha256 = "sha256-0zb5olSuXOHeRj4dqeevubedjqOuDnUEBQaD/vOj2CM="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/fi/firmware-manager/package.nix b/pkgs/by-name/fi/firmware-manager/package.nix index 534c18095aa0..2c8949881e06 100644 --- a/pkgs/by-name/fi/firmware-manager/package.nix +++ b/pkgs/by-name/fi/firmware-manager/package.nix @@ -10,8 +10,8 @@ udev, gtk3, wrapGAppsHook3, + xz, # for liblzma }: - stdenv.mkDerivation rec { pname = "firmware-manager"; version = "0.1.5"; @@ -38,6 +38,7 @@ stdenv.mkDerivation rec { pkg-config rustPlatform.cargoSetupHook wrapGAppsHook3 + xz ]; buildInputs = [ diff --git a/pkgs/by-name/ge/gerrit/package.nix b/pkgs/by-name/ge/gerrit/package.nix index f6071285086e..3665f860d65b 100644 --- a/pkgs/by-name/ge/gerrit/package.nix +++ b/pkgs/by-name/ge/gerrit/package.nix @@ -8,11 +8,11 @@ stdenvNoCC.mkDerivation rec { pname = "gerrit"; - version = "3.12.3"; + version = "3.13.1"; src = fetchurl { url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war"; - hash = "sha256-egPuxGfRk8uB+7hzdrrEOT9wfBxlkaSjRpw2z9RYXAI="; + hash = "sha256-4+Z1q1cHEM5IaG+SAS7JgiCypfjM8W2Zaa25/KGaoqw="; }; buildCommand = '' diff --git a/pkgs/by-name/gi/github-copilot-cli/package.nix b/pkgs/by-name/gi/github-copilot-cli/package.nix index 7ce880ba0030..6a6daf0d42c6 100644 --- a/pkgs/by-name/gi/github-copilot-cli/package.nix +++ b/pkgs/by-name/gi/github-copilot-cli/package.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "github-copilot-cli"; - version = "0.0.354"; + version = "0.0.358"; src = fetchzip { url = "https://registry.npmjs.org/@github/copilot/-/copilot-${finalAttrs.version}.tgz"; - hash = "sha256-W0KiqTThHv/G69X35Sma0KBGH0JAdZhC4/goosSZUDs="; + hash = "sha256-+OjC5m5KnZrp0qquMT/Nf4xFoXS/Dz7XBG8djwktYMk="; }; nativeBuildInputs = [ makeBinaryWrapper ]; diff --git a/pkgs/by-name/gn/gnome-shell-extensions/fix_gmenu.patch b/pkgs/by-name/gn/gnome-shell-extensions/fix_gmenu.patch index 1254f532d611..189c05b09904 100644 --- a/pkgs/by-name/gn/gnome-shell-extensions/fix_gmenu.patch +++ b/pkgs/by-name/gn/gnome-shell-extensions/fix_gmenu.patch @@ -15,7 +15,7 @@ index 6eb58f1..28e1195 100644 import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'; import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; -+GIRepository.Repository.prepend_search_path('@gmenu_path@'); ++GIRepository.Repository.dup_default().prepend_search_path('@gmenu_path@'); +const {default: GMenu} = await import('gi://GMenu'); const appSys = Shell.AppSystem.get_default(); diff --git a/pkgs/by-name/gn/gnome-shell-extensions/fix_gtop.patch b/pkgs/by-name/gn/gnome-shell-extensions/fix_gtop.patch index 61c90f184d1e..b9ec9275ba39 100644 --- a/pkgs/by-name/gn/gnome-shell-extensions/fix_gtop.patch +++ b/pkgs/by-name/gn/gnome-shell-extensions/fix_gtop.patch @@ -17,7 +17,7 @@ index 37d2eb1..232d0d5 100644 import * as Main from 'resource:///org/gnome/shell/ui/main.js'; -+GIRepository.Repository.prepend_search_path('@gtop_path@'); ++GIRepository.Repository.dup_default().prepend_search_path('@gtop_path@'); +const GTop = (await import("gi://GTop")).default; + const THRESHOLD_HIGH = 0.80; diff --git a/pkgs/by-name/ho/hotpatch/package.nix b/pkgs/by-name/ho/hotpatch/package.nix index b1b2ae543716..79a195b575bf 100644 --- a/pkgs/by-name/ho/hotpatch/package.nix +++ b/pkgs/by-name/ho/hotpatch/package.nix @@ -34,6 +34,12 @@ stdenv.mkDerivation rec { patches = [ ./no-loader-test.patch ]; + postPatch = '' + substituteInPlace CMakeLists.txt --replace-fail \ + 'cmake_minimum_required(VERSION 2.6 FATAL_ERROR)' \ + 'cmake_minimum_required(VERSION 4.0)' + ''; + meta = with lib; { description = "Hot patching executables on Linux using .so file injection"; mainProgram = "hotpatcher"; diff --git a/pkgs/by-name/nh/nhentai/package.nix b/pkgs/by-name/nh/nhentai/package.nix index be50623cdefc..dc42621d9d6a 100644 --- a/pkgs/by-name/nh/nhentai/package.nix +++ b/pkgs/by-name/nh/nhentai/package.nix @@ -17,14 +17,6 @@ let hash = "sha256-MoEee4He7iBj6m0ulPiBmobR84EeSdI2I6QfqDK+8D8="; }; }); - urllib3 = super.urllib3.overridePythonAttrs (old: rec { - version = "1.26.20"; - src = fetchPypi { - pname = "urllib3"; - inherit version; - hash = "sha256-QMLcDGgeR+uPkOfie/b/ffLmd0If1GdW2hFhw5ynDTI="; - }; - }); }; in python3.override { @@ -64,6 +56,10 @@ python.pkgs.buildPythonApplication rec { chardet ]; + pythonRelaxDeps = [ + "urllib3" + ]; + meta = { homepage = "https://github.com/RicterZ/nhentai"; description = "CLI tool for downloading doujinshi from adult site(s)"; diff --git a/pkgs/by-name/ol/olivetin/package.nix b/pkgs/by-name/ol/olivetin/package.nix index 85bd6725b49d..dbaee9acdd8f 100644 --- a/pkgs/by-name/ol/olivetin/package.nix +++ b/pkgs/by-name/ol/olivetin/package.nix @@ -86,13 +86,13 @@ buildGoModule ( { pname = "olivetin"; - version = "2025.11.06"; + version = "2025.11.11"; src = fetchFromGitHub { owner = "OliveTin"; repo = "OliveTin"; tag = finalAttrs.version; - hash = "sha256-81AcegFKG5TacKAv9kZgbSOKcAx+ZmK3rqrk3ia/res="; + hash = "sha256-dyApBkhtlPu3TjgjrTu0sY9VqMzMJc+kbGaylwtUCv4="; }; modRoot = "service"; diff --git a/pkgs/by-name/op/opencl-cts/package.nix b/pkgs/by-name/op/opencl-cts/package.nix new file mode 100644 index 000000000000..e49e10599024 --- /dev/null +++ b/pkgs/by-name/op/opencl-cts/package.nix @@ -0,0 +1,58 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + opencl-headers, + spirv-headers, + spirv-tools, + ocl-icd, + python3, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "opencl-cts"; + version = "2025-08-21-00"; + + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "OpenCL-CTS"; + rev = "v${finalAttrs.version}"; + hash = "sha256-/VVT7Q45OvVivbZvULInXf78//Tb3EeV8zqbcDR2Pf4="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + python3 + ]; + + buildInputs = [ + opencl-headers + spirv-headers + spirv-tools + ocl-icd + ]; + + # Build errors when format hardening is enabled: + # cc1: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security] + hardeningDisable = [ "format" ]; + + cmakeFlags = [ + (lib.cmakeFeature "CL_INCLUDE_DIR" "${lib.getInclude opencl-headers}/include") + # Intentionally no suffix, CMakeLists adds for SPIRV and not for CL ¯\_(ツ)_/¯ + (lib.cmakeFeature "SPIRV_INCLUDE_DIR" "${lib.getInclude spirv-headers}") + (lib.cmakeFeature "CL_LIB_DIR" "${lib.getLib ocl-icd}/lib") + (lib.cmakeFeature "SPIRV_TOOLS_DIR" "${lib.getBin spirv-tools}/bin") + (lib.cmakeFeature "OPENCL_LIBRARIES" "OpenCL") + ]; + + meta = { + description = "OpenCL Conformance Test Suite"; + homepage = "https://github.com/KhronosGroup/OpenCL-CTS"; + license = lib.licenses.asl20; + platforms = lib.platforms.unix; + teams = [ lib.teams.rocm ]; + }; +}) diff --git a/pkgs/by-name/op/opendungeons/package.nix b/pkgs/by-name/op/opendungeons/package.nix index 8af16ad1da9e..ccb6529ebe51 100644 --- a/pkgs/by-name/op/opendungeons/package.nix +++ b/pkgs/by-name/op/opendungeons/package.nix @@ -46,9 +46,14 @@ stdenv.mkDerivation { ]; # source/utils/StackTraceUnix.cpp:122:2: error: #error Unsupported architecture. - postPatch = lib.optionalString (!stdenv.hostPlatform.isx86_64) '' - cp source/utils/StackTrace{Stub,Unix}.cpp - ''; + postPatch = + lib.optionalString (!stdenv.hostPlatform.isx86_64) '' + cp source/utils/StackTrace{Stub,Unix}.cpp + '' + + '' + substituteInPlace CMakeLists.txt \ + --replace-fail "cmake_minimum_required(VERSION 2.8)" "cmake_minimum_required(VERSION 3.10)" + ''; strictDeps = true; diff --git a/pkgs/by-name/os/osquery/info.json b/pkgs/by-name/os/osquery/info.json index e7ae2785b883..ec830a52ebed 100644 --- a/pkgs/by-name/os/osquery/info.json +++ b/pkgs/by-name/os/osquery/info.json @@ -5,9 +5,9 @@ }, "osquery": { "fetchSubmodules": true, - "hash": "sha256-O5FfbPZt0cxl7Zia8gSn4xLhLyTlA9Z0SDDvGSgTTyw=", + "hash": "sha256-VWe4dh5Y+9Umzt+MXL/eIqSGhGq7X6UWqDUBsBLSudE=", "owner": "osquery", "repo": "osquery", - "rev": "5.19.0" + "rev": "5.20.0" } } diff --git a/pkgs/by-name/os/osu-lazer-bin/package.nix b/pkgs/by-name/os/osu-lazer-bin/package.nix index 0f697eaf9f97..5ce5be4cd8f4 100644 --- a/pkgs/by-name/os/osu-lazer-bin/package.nix +++ b/pkgs/by-name/os/osu-lazer-bin/package.nix @@ -90,6 +90,11 @@ else extraPkgs = pkgs: with pkgs; [ icu ]; + # fix OpenGL renderer on nvidia + wayland + extraBwrapArgs = [ + "--ro-bind-try /etc/egl/egl_external_platform.d /etc/egl/egl_external_platform.d" + ]; + extraInstallCommands = let contents = appimageTools.extract { inherit pname version src; }; diff --git a/pkgs/by-name/ph/photonvision/package.nix b/pkgs/by-name/ph/photonvision/package.nix index 7ab5dc237b68..43ec02cfa8a4 100644 --- a/pkgs/by-name/ph/photonvision/package.nix +++ b/pkgs/by-name/ph/photonvision/package.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { }; "aarch64-linux" = fetchurl { url = "https://github.com/PhotonVision/photonvision/releases/download/v${version}/photonvision-v${version}-linuxarm64.jar"; - hash = "sha256-mNQk8gaTASsmyJUpLLIbG7QRMjbdSN2LMCXx6j3gbCU="; + hash = "sha256-YG9wyh+MCsv/RBdiFvgrF6Fw/6AnN7OEi4ofkMptfT0="; }; } .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); diff --git a/pkgs/by-name/pk/pkg-config-unwrapped/package.nix b/pkgs/by-name/pk/pkg-config-unwrapped/package.nix index 2f2d616e8f24..9a5b9191d5dd 100644 --- a/pkgs/by-name/pk/pkg-config-unwrapped/package.nix +++ b/pkgs/by-name/pk/pkg-config-unwrapped/package.nix @@ -65,7 +65,11 @@ stdenv.mkDerivation rec { # Silence "incompatible integer to pointer conversion passing 'gsize'" when building with Clang. lib.optionals stdenv.cc.isClang [ "-Wno-int-conversion" ] # Silence fprintf format errors when building for Windows. - ++ lib.optionals stdenv.hostPlatform.isWindows [ "-Wno-error=format" ] + ++ lib.optionals stdenv.hostPlatform.isWindows [ + "-Wno-incompatible-pointer-types" + "-Wno-int-conversion" + "-Wno-error=format" + ] ); enableParallelBuilding = true; diff --git a/pkgs/by-name/sh/shader-slang/package.nix b/pkgs/by-name/sh/shader-slang/package.nix index e33e8f48b12d..03341bc0ba39 100644 --- a/pkgs/by-name/sh/shader-slang/package.nix +++ b/pkgs/by-name/sh/shader-slang/package.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "shader-slang"; - version = "2025.22"; + version = "2025.22.1"; src = fetchFromGitHub { owner = "shader-slang"; repo = "slang"; tag = "v${finalAttrs.version}"; - hash = "sha256-D3XB6mf3tKTH6t4jG5kYgE9sNAhFwZyi8Ynrh+4A9v8="; + hash = "sha256-aLiJXEnk3YoTYG9y64bFs4R0wukE7dXZOkdN70GGm2M="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/sh/shell-gpt/package.nix b/pkgs/by-name/sh/shell-gpt/package.nix index a008b0955810..96d8144e83a2 100644 --- a/pkgs/by-name/sh/shell-gpt/package.nix +++ b/pkgs/by-name/sh/shell-gpt/package.nix @@ -23,6 +23,7 @@ python3.pkgs.buildPythonApplication rec { "typer" "instructor" "jinja2" + "openai" ]; build-system = with python3.pkgs; [ hatchling ]; diff --git a/pkgs/by-name/sl/slade/package.nix b/pkgs/by-name/sl/slade/package.nix index db8fbf298497..85c3758264d1 100644 --- a/pkgs/by-name/sl/slade/package.nix +++ b/pkgs/by-name/sl/slade/package.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "slade"; - version = "3.2.8"; + version = "3.2.9"; src = fetchFromGitHub { owner = "sirjuddington"; repo = "SLADE"; tag = finalAttrs.version; - hash = "sha256-skJpcxLSInAzBHGtxdTWAqocXQKKQY7vJfUx8ZAlMqc="; + hash = "sha256-N+rCtrfvVJnkfj8kU4ahzF6o7lp1VWJbVmkvaZoxBv8="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/te/temporal_capi/package.nix b/pkgs/by-name/te/temporal_capi/package.nix new file mode 100644 index 000000000000..2ef74966e4b7 --- /dev/null +++ b/pkgs/by-name/te/temporal_capi/package.nix @@ -0,0 +1,102 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + nix-update-script, + testers, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "temporal_capi"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "boa-dev"; + repo = "temporal"; + tag = "v${finalAttrs.version}"; + hash = "sha256-JmNYoskoQZewmWAU/SUBdjKdN+pnpMdLZUVv+jysS5A="; + }; + + cargoHash = "sha256-jIPbroAtS7D/l4QJtGCgXNa7QaQLdsF4Gh9O4NaRBCw="; + + postPatch = '' + # Force crate-type to include staticlib + echo ' + [lib] + crate-type = ["${if stdenv.hostPlatform.isStatic then "staticlib" else "cdylib"}"] + ' >> temporal_capi/Cargo.toml + ''; + + cargoBuildFlags = [ + "--package" + "temporal_capi" + "--features" + "zoneinfo64,compiled_data" + ]; + + installPhase = '' + runHook preInstall + + install -Dm644 target/*/release/libtemporal_capi.* -t $out/lib + + install -Dm644 -t $out/include/temporal_rs \ + temporal_capi/bindings/cpp/temporal_rs/*.hpp + install -Dm644 -t $out/include \ + temporal_capi/bindings/c/*.h + + runHook postInstall + ''; + postInstall = '' + mkdir $out/lib/pkgconfig + cat -> $out/lib/pkgconfig/temporal_capi.pc < -+imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0') ++imports.gi.GIRepository.Repository.dup_default().prepend_search_path('@vte@/lib/girepository-1.0') + const Lang = imports.lang; const Gettext = imports.gettext.domain("drop-down-terminal"); @@ -25,7 +25,7 @@ // Author: Stéphane Démurget + -+imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0') ++imports.gi.GIRepository.Repository.dup_default().prepend_search_path('@vte@/lib/girepository-1.0') + const Lang = imports.lang; diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/apps-menu_at_gnome-shell-extensions.gcampax.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/apps-menu_at_gnome-shell-extensions.gcampax.github.com.patch index 58f539d1525f..66f5ba3d7eba 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/apps-menu_at_gnome-shell-extensions.gcampax.github.com.patch +++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/apps-menu_at_gnome-shell-extensions.gcampax.github.com.patch @@ -9,7 +9,7 @@ index c608441..2b25335 100644 -import GMenu from 'gi://GMenu'; + +import GIRepository from 'gi://GIRepository'; -+GIRepository.Repository.prepend_search_path('@gmenu_path@'); ++GIRepository.Repository.dup_default().prepend_search_path('@gmenu_path@'); +const {default: GMenu} = await import('gi://GMenu'); + import GObject from 'gi://GObject'; diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor-next_at_paradoxxx.zero.gmail.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor-next_at_paradoxxx.zero.gmail.com.patch index 19eedbf27a98..18812eddd852 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor-next_at_paradoxxx.zero.gmail.com.patch +++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor-next_at_paradoxxx.zero.gmail.com.patch @@ -22,7 +22,7 @@ index ee8c3a9..ca72885 100644 import * as Util from "resource:///org/gnome/shell/misc/util.js"; -+GIRepository.Repository.prepend_search_path('@gtop_path@'); ++GIRepository.Repository.dup_default().prepend_search_path('@gtop_path@'); +const GTop = (await import("gi://GTop")).default; + const NetworkManager = NM; diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch index eb8fc58169fa..506967bcc3b7 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch +++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch @@ -17,7 +17,7 @@ index 37d2eb1..232d0d5 100644 import * as Main from 'resource:///org/gnome/shell/ui/main.js'; -+GIRepository.Repository.prepend_search_path('@gtop_path@'); ++GIRepository.Repository.dup_default().prepend_search_path('@gtop_path@'); +const GTop = (await import("gi://GTop")).default; + const THRESHOLD_HIGH = 0.80; diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/vitals_at_corecoding.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/vitals_at_corecoding.com.patch index 96f763d04312..c2b96d76a0f2 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/vitals_at_corecoding.com.patch +++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/vitals_at_corecoding.com.patch @@ -6,7 +6,7 @@ index 39d175a..9815b77 100644 import { gettext as _ } from 'resource:///org/gnome/shell/extensions/extension.js'; import NM from 'gi://NM'; -+imports.gi.GIRepository.Repository.prepend_search_path('@gtop_path@'); ++imports.gi.GIRepository.Repository.dup_default().prepend_search_path('@gtop_path@'); + let GTop, hasGTop = true; try { diff --git a/pkgs/desktops/gnome/extensions/extensionRenames.nix b/pkgs/desktops/gnome/extensions/extensionRenames.nix index 6758dcace559..996cf61ffe6c 100644 --- a/pkgs/desktops/gnome/extensions/extensionRenames.nix +++ b/pkgs/desktops/gnome/extensions/extensionRenames.nix @@ -12,6 +12,7 @@ "system-monitor@gnome-shell-extensions.gcampax.github.com" = "system-monitor"; "System_Monitor@bghome.gmail.com" = "system-monitor-2"; + "system-monitor@axet.github.com" = "system-monitor-3"; "FuzzyClock@fire-man-x" = "fuzzy-clock-3"; "FuzzyClock@johngoetz" = "fuzzy-clock"; diff --git a/pkgs/desktops/gnome/extensions/gsconnect/default.nix b/pkgs/desktops/gnome/extensions/gsconnect/default.nix index 594bd158950d..9f3a2377bd23 100644 --- a/pkgs/desktops/gnome/extensions/gsconnect/default.nix +++ b/pkgs/desktops/gnome/extensions/gsconnect/default.nix @@ -68,14 +68,14 @@ stdenv.mkDerivation (finalAttrs: { ]; mesonFlags = [ - "-Dgnome_shell_libdir=${gnome-shell}/lib" - "-Dchrome_nmhdir=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts" - "-Dchromium_nmhdir=${placeholder "out"}/etc/chromium/native-messaging-hosts" - "-Dopenssl_path=${openssl}/bin/openssl" - "-Dsshadd_path=${openssh}/bin/ssh-add" - "-Dsshkeygen_path=${openssh}/bin/ssh-keygen" - "-Dsession_bus_services_dir=${placeholder "out"}/share/dbus-1/services" - "-Dinstalled_test_prefix=${placeholder "installedTests"}" + (lib.mesonOption "gnome_shell_libdir" "${gnome-shell}/lib") + (lib.mesonOption "chrome_nmhdir" "${placeholder "out"}/etc/opt/chrome/native-messaging-hosts") + (lib.mesonOption "chromium_nmhdir" "${placeholder "out"}/etc/chromium/native-messaging-hosts") + (lib.mesonOption "openssl_path" "${openssl}/bin/openssl") + (lib.mesonOption "sshadd_path" "${openssh}/bin/ssh-add") + (lib.mesonOption "sshkeygen_path" "${openssh}/bin/ssh-keygen") + (lib.mesonOption "session_bus_services_dir" "${placeholder "out"}/share/dbus-1/services") + (lib.mesonOption "installed_test_prefix" "${placeholder "installedTests"}") ]; postPatch = '' diff --git a/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch b/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch index 2ab8f86cf672..cef649450e6f 100644 --- a/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch +++ b/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch @@ -18,7 +18,7 @@ index 00000000..d009dfd9 +++ b/src/__nix-prepend-search-paths.js @@ -0,0 +1,2 @@ +import GIRepository from 'gi://GIRepository'; -+'@typelibPath@'.split(':').forEach(path => GIRepository.Repository.prepend_search_path(path)); ++'@typelibPath@'.split(':').forEach(path => GIRepository.Repository.dup_default().prepend_search_path(path)); diff --git a/src/extension.js b/src/extension.js index 53ecd5fc..78782357 100644 --- a/src/extension.js diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix index d8751b9e6c7d..0489821f7a82 100644 --- a/pkgs/development/python-modules/astropy/default.nix +++ b/pkgs/development/python-modules/astropy/default.nix @@ -40,12 +40,15 @@ bottleneck, fsspec, s3fs, + uncompresspy, # testing + hypothesis, pytestCheckHook, pytest-xdist, pytest-astropy-header, - pytest-astropy, + pytest-doctestplus, + pytest-remotedata, threadpoolctl, }: @@ -112,6 +115,7 @@ buildPythonPackage rec { bottleneck fsspec s3fs + uncompresspy ] ++ self.recommended ++ self.ipython @@ -121,11 +125,16 @@ buildPythonPackage rec { }); nativeCheckInputs = [ + hypothesis pytestCheckHook pytest-xdist pytest-astropy-header - pytest-astropy + pytest-doctestplus + pytest-remotedata threadpoolctl + # FIXME remove in 7.2.0 + # see https://github.com/astropy/astropy/pull/18882 + uncompresspy ] ++ optional-dependencies.recommended; diff --git a/pkgs/development/python-modules/azure-cosmos/default.nix b/pkgs/development/python-modules/azure-cosmos/default.nix index 7f26998b10d7..12389ddba27c 100644 --- a/pkgs/development/python-modules/azure-cosmos/default.nix +++ b/pkgs/development/python-modules/azure-cosmos/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "azure-cosmos"; - version = "4.9.0"; + version = "4.14.2"; pyproject = true; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "azure_cosmos"; inherit version; - hash = "sha256-xw20y/VbD/Jh7Xu4qjJaXfpWXTxuqkPXXSauXirW108="; + hash = "sha256-f7dGRJ7xWTBMWvb+aHVI5WHB8eJX/WUF1gFY0AEB7G4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/cachecontrol/default.nix b/pkgs/development/python-modules/cachecontrol/default.nix index fdcfbe5c24f4..cc614b5d954f 100644 --- a/pkgs/development/python-modules/cachecontrol/default.nix +++ b/pkgs/development/python-modules/cachecontrol/default.nix @@ -3,18 +3,17 @@ buildPythonPackage, cherrypy, fetchFromGitHub, - flit-core, filelock, - mock, msgpack, pytestCheckHook, redis, requests, + uv-build, }: buildPythonPackage rec { pname = "cachecontrol"; - version = "0.14.3"; + version = "0.14.4"; pyproject = true; __darwinAllowLocalNetworking = true; @@ -23,10 +22,10 @@ buildPythonPackage rec { owner = "ionrock"; repo = "cachecontrol"; tag = "v${version}"; - hash = "sha256-V8RWTDxhKCvf5bz2j6anp8bkCzkicTRY+Kd6eHu1peg="; + hash = "sha256-627SqJocVOO0AfI8vswPqOr15MA/Lx7RLAdRAXzWu84="; }; - build-system = [ flit-core ]; + build-system = [ uv-build ]; dependencies = [ msgpack @@ -40,9 +39,7 @@ buildPythonPackage rec { nativeCheckInputs = [ cherrypy - mock pytestCheckHook - requests ] ++ lib.flatten (builtins.attrValues optional-dependencies); diff --git a/pkgs/development/python-modules/chatlas/default.nix b/pkgs/development/python-modules/chatlas/default.nix new file mode 100644 index 000000000000..602b45e4a467 --- /dev/null +++ b/pkgs/development/python-modules/chatlas/default.nix @@ -0,0 +1,168 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + hatch-vcs, + hatchling, + + # dependencies + jinja2, + openai, + orjson, + pydantic, + requests, + rich, + + # tests + anthropic, + google-genai, + htmltools, + matplotlib, + pillow, + pytest-asyncio, + pytest-snapshot, + pytestCheckHook, + tenacity, +}: + +buildPythonPackage rec { + pname = "chatlas"; + version = "0.13.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "posit-dev"; + repo = "chatlas"; + tag = "v${version}"; + hash = "sha256-uCgpNvDJZKwxX4HYF8tyvJ1AiQLmybuxrZkYK/u5xlg="; + }; + + build-system = [ + hatch-vcs + hatchling + ]; + + dependencies = [ + jinja2 + openai + orjson + pydantic + requests + rich + ]; + + pythonImportsCheck = [ "chatlas" ]; + + nativeCheckInputs = [ + anthropic + google-genai + htmltools + matplotlib + pillow + pytest-asyncio + pytest-snapshot + pytestCheckHook + tenacity + ]; + + disabledTestPaths = [ + # Require an Openai API key and/or internet access + "tests/test_batch_chat.py" + "tests/test_content.py" + "tests/test_provider_anthropic.py" + "tests/test_provider_azure.py" + "tests/test_provider_databricks.py" + "tests/test_provider_google.py" + "tests/test_provider_openai.py" + "tests/test_provider_snowflake.py" + "tests/test_register_tool_models.py" + ]; + + disabledTests = [ + # Require an Openai API key + "test_async_tool_yielding_multiple_results" + "test_basic_export" + "test_basic_repr" + "test_basic_str" + "test_chat_callbacks" + "test_chat_structured" + "test_chat_structured_async" + "test_chat_tool_request_reject" + "test_chat_tool_request_reject2" + "test_compute_cost" + "test_content_tool_request_serializable" + "test_cross_provider_compatibility" + "test_deepcopy_chat" + "test_get_token_prices" + "test_get_tools_after_registration" + "test_get_tools_empty" + "test_google_provider_model_params" + "test_google_provider_parameter_mapping" + "test_invoke_tool_returns_tool_result" + "test_json_serialize" + "test_last_turn_retrieval" + "test_model_params_integration_with_provider" + "test_model_params_kwargs_priority" + "test_model_params_preserved_across_calls" + "test_modify_system_prompt" + "test_old_style_tool_invocation_still_works" + "test_parameter_validation_edge_cases" + "test_provider_parameter_differences" + "test_register_tool" + "test_register_tool_duplicate_name_error" + "test_register_tool_force_overwrite" + "test_register_tool_instance_basic" + "test_register_tool_instance_force_overwrite" + "test_register_tool_instance_with_custom_name" + "test_register_tool_instance_with_model_override" + "test_register_tool_with_complex_parameters" + "test_register_tool_with_custom_name" + "test_register_tool_with_same_name_different_function" + "test_set_model_params_all_parameters" + "test_set_model_params_basic" + "test_set_model_params_empty_call" + "test_set_model_params_incremental_updates" + "test_set_model_params_invalid_temperature" + "test_set_model_params_invalid_top_p" + "test_set_model_params_kwargs" + "test_set_model_params_kwargs_replacement" + "test_set_model_params_missing_values" + "test_set_model_params_multiple_unsupported" + "test_set_model_params_none_reset" + "test_set_model_params_reset_specific_param" + "test_set_model_params_type_validation" + "test_set_model_params_unsupported_parameter" + "test_set_model_params_updates_existing" + "test_set_model_params_with_stop_sequences" + "test_set_tools_mixed" + "test_set_tools_replaces_existing" + "test_set_tools_with_functions" + "test_set_tools_with_tool_objects" + "test_simple_async_batch_chat" + "test_simple_batch_chat" + "test_simple_streaming_chat" + "test_simple_streaming_chat_async" + "test_supported_model_params_openai" + "test_system_prompt_retrieval" + "test_token_count_method" + "test_tokens_method" + "test_tool_custom_result" + "test_tool_yielding_content_tool_results" + "test_tool_yielding_multiple_results" + "test_tool_yielding_single_result_still_works" + "test_tool_yielding_with_error" + "test_translate_model_params_openai" + "test_unknown_tool_error_format_updated" + ]; + + meta = { + description = "Friendly guide to building LLM chat apps in Python with less effort and more clarity"; + homepage = "https://posit-dev.github.io/chatlas"; + downloadPage = "https://github.com/posit-dev/chatlas"; + changelog = "https://github.com/posit-dev/chatlas/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/development/python-modules/coiled/default.nix b/pkgs/development/python-modules/coiled/default.nix index 5f8ebb42ed03..d459e1c6342d 100644 --- a/pkgs/development/python-modules/coiled/default.nix +++ b/pkgs/development/python-modules/coiled/default.nix @@ -39,12 +39,12 @@ buildPythonPackage rec { pname = "coiled"; - version = "1.129.1"; + version = "1.129.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-aPAcYgui6AfM9bjaNsHTtKUNEG+3RZ/p9rHNEWw+MRc="; + hash = "sha256-lzjJfIQbEZjrjf4GClkgaW+r4yl34uvCudgt7DK4Y8w="; }; build-system = [ diff --git a/pkgs/development/python-modules/jsonpath/default.nix b/pkgs/development/python-modules/jsonpath/default.nix index 24228a27cd1b..0c48c16822f1 100644 --- a/pkgs/development/python-modules/jsonpath/default.nix +++ b/pkgs/development/python-modules/jsonpath/default.nix @@ -3,31 +3,31 @@ buildPythonPackage, fetchPypi, pytestCheckHook, - pythonOlder, + setuptools, }: buildPythonPackage rec { pname = "jsonpath"; version = "0.82.2"; - format = "setuptools"; - - disabled = pythonOlder "3.7"; + pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-2H7yvLze1o7pa8NMGAm2lFfs7JsMTdRxZYoSvTkQAtE="; }; + build-system = [ setuptools ]; + nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "jsonpath" ]; enabledTestPaths = [ "test/test*.py" ]; - meta = with lib; { + meta = { description = "XPath for JSON"; - homepage = "https://github.com/json-path/JsonPath"; - license = licenses.mit; - maintainers = with maintainers; [ mic92 ]; + homepage = "https://www.ultimate.com/phil/python/#jsonpath"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mic92 ]; }; } diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix index 7f6e9fc13ef1..ecb9fa3e0a28 100644 --- a/pkgs/development/python-modules/libcst/default.nix +++ b/pkgs/development/python-modules/libcst/default.nix @@ -22,14 +22,14 @@ buildPythonPackage rec { pname = "libcst"; - version = "1.8.5"; + version = "1.8.6"; pyproject = true; src = fetchFromGitHub { owner = "Instagram"; repo = "LibCST"; tag = "v${version}"; - hash = "sha256-4FFkxy8UrLOXuZwvGvGQNZGtY27yLtiTWAzTbxLm3Eo="; + hash = "sha256-AJm3grS+I/NXZ8ame4rmHPOxRHGO0Ofo35RtSDO2tyI="; }; cargoDeps = rustPlatform.fetchCargoVendor { @@ -39,7 +39,7 @@ buildPythonPackage rec { src cargoRoot ; - hash = "sha256-eFdcyqzH7meF4kIVT2qhbKVxEB6KtZVEONMgYw4sBew="; + hash = "sha256-7/Yf2yn7wjW0CDG1Ha3SsvOIytbU1bJCpR9WFAFiPEA="; }; cargoRoot = "native"; @@ -77,6 +77,8 @@ buildPythonPackage rec { "TypeInferenceProviderTest" # we'd need to run `python -m libcst.codegen.generate all` but shouldn't modify $out "test_codegen_clean_visitor_functions" + "test_codegen_clean_matcher_classes" + "test_codegen_clean_return_types" ]; # circular dependency on hypothesmith and ufmt diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix index f0ce75afc207..78cc884abc32 100644 --- a/pkgs/development/python-modules/mitmproxy/default.nix +++ b/pkgs/development/python-modules/mitmproxy/default.nix @@ -18,6 +18,7 @@ ldap3, mitmproxy-rs, msgpack, + nixosTests, publicsuffix2, pyopenssl, pyparsing, @@ -50,6 +51,7 @@ buildPythonPackage rec { pythonRelaxDeps = [ "bcrypt" + "brotli" "cryptography" "flask" "h2" @@ -146,6 +148,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "mitmproxy" ]; + passthru.tests = { + inherit (nixosTests) mitmproxy; + }; + meta = with lib; { description = "Man-in-the-middle proxy"; homepage = "https://mitmproxy.org/"; diff --git a/pkgs/development/python-modules/pyezvizapi/default.nix b/pkgs/development/python-modules/pyezvizapi/default.nix index a3bbd534b800..87642de5b210 100644 --- a/pkgs/development/python-modules/pyezvizapi/default.nix +++ b/pkgs/development/python-modules/pyezvizapi/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyezvizapi"; - version = "1.0.4.3"; + version = "1.0.4.4"; pyproject = true; src = fetchFromGitHub { owner = "RenierM26"; repo = "pyEzvizApi"; tag = version; - hash = "sha256-uvEDaA7UFIugh0PiNhMid+hV1vqVjuY5VtqB9zBQ/9Q="; + hash = "sha256-ReGGyB7qxiBK5zNQJP2oCzTF3IeQDu1ljM5IF7vZcXk="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pymobiledevice3/default.nix b/pkgs/development/python-modules/pymobiledevice3/default.nix index 582f2da789b0..00e7cfe14cd0 100644 --- a/pkgs/development/python-modules/pymobiledevice3/default.nix +++ b/pkgs/development/python-modules/pymobiledevice3/default.nix @@ -47,14 +47,14 @@ buildPythonPackage rec { pname = "pymobiledevice3"; - version = "5.1.2"; + version = "5.1.4"; pyproject = true; src = fetchFromGitHub { owner = "doronz88"; repo = "pymobiledevice3"; tag = "v${version}"; - hash = "sha256-HKkLkkPCu9d7iBy7FEPWR6cnNuYFgxSGN6beMCCiuyo="; + hash = "sha256-O7GGOYdwzArjVWkURQvNXHDcRRGaph7cUyytcuZ1WgM="; }; build-system = [ diff --git a/pkgs/development/python-modules/pytask/default.nix b/pkgs/development/python-modules/pytask/default.nix index a43fc8065bd7..a0865556572f 100644 --- a/pkgs/development/python-modules/pytask/default.nix +++ b/pkgs/development/python-modules/pytask/default.nix @@ -26,20 +26,16 @@ }: buildPythonPackage rec { pname = "pytask"; - version = "0.5.5"; + version = "0.5.6"; pyproject = true; src = fetchFromGitHub { owner = "pytask-dev"; repo = "pytask"; tag = "v${version}"; - hash = "sha256-0e1pJzoszTW8n+uFJlEeYstvHf4v+I2Is7oEHJ1qV7o="; + hash = "sha256-mWjuXfH0u3MCG9RpmDin0buXyLPofXgEllzF5M8y6Jo="; }; - patches = [ - ./dont-use-uv-in-tests.patch - ]; - build-system = [ hatchling hatch-vcs diff --git a/pkgs/development/python-modules/pytask/dont-use-uv-in-tests.patch b/pkgs/development/python-modules/pytask/dont-use-uv-in-tests.patch deleted file mode 100644 index 13229c9020e1..000000000000 --- a/pkgs/development/python-modules/pytask/dont-use-uv-in-tests.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff --git a/tests/test_capture.py b/tests/test_capture.py -index ba37be8..8f70c9e 100644 ---- a/tests/test_capture.py -+++ b/tests/test_capture.py -@@ -87,7 +87,7 @@ def test_show_capture_with_build(tmp_path, show_capture): - """ - tmp_path.joinpath("workflow.py").write_text(textwrap.dedent(source)) - -- result = run_in_subprocess(("uv", "run", "python", "workflow.py"), cwd=tmp_path) -+ result = run_in_subprocess(("python", "workflow.py"), cwd=tmp_path) - - assert result.exit_code == ExitCode.FAILED - -@@ -128,7 +128,7 @@ def test_wrong_capture_method(tmp_path): - """ - tmp_path.joinpath("workflow.py").write_text(textwrap.dedent(source)) - -- result = run_in_subprocess(("uv", "run", "python", "workflow.py"), cwd=tmp_path) -+ result = run_in_subprocess(("python", "workflow.py"), cwd=tmp_path) - assert result.exit_code == ExitCode.CONFIGURATION_FAILED - assert "Value 'a' is not a valid" in result.stdout - assert "Traceback" not in result.stdout -@@ -255,7 +255,7 @@ def test_capturing_unicode_with_build(tmp_path, method): - tmp_path.joinpath("workflow.py").write_text( - textwrap.dedent(source), encoding="utf-8" - ) -- result = run_in_subprocess(("uv", "run", "python", "workflow.py"), cwd=tmp_path) -+ result = run_in_subprocess(("python", "workflow.py"), cwd=tmp_path) - assert result.exit_code == ExitCode.OK - assert "1 Succeeded" in result.stdout - -diff --git a/tests/test_config.py b/tests/test_config.py -index c46f5ed..eaa0934 100644 ---- a/tests/test_config.py -+++ b/tests/test_config.py -@@ -114,7 +114,7 @@ def test_paths_are_relative_to_configuration_file(tmp_path): - session = build(paths=[Path("src")]) - """ - tmp_path.joinpath("script.py").write_text(textwrap.dedent(source)) -- result = run_in_subprocess(("uv", "run", "python", "script.py"), cwd=tmp_path) -+ result = run_in_subprocess(("python", "script.py"), cwd=tmp_path) - assert result.exit_code == ExitCode.OK - assert "1 Succeeded" in result.stdout - -diff --git a/tests/test_dag_command.py b/tests/test_dag_command.py -index 3ca41ba..7c0c4fc 100644 ---- a/tests/test_dag_command.py -+++ b/tests/test_dag_command.py -@@ -92,7 +92,7 @@ def test_create_graph_via_task(tmp_path, format_, layout, rankdir): - tmp_path.joinpath("input.txt").touch() - - result = subprocess.run( -- ("uv", "run", "python", "task_example.py"), -+ ("python", "task_example.py"), - cwd=tmp_path, - check=True, - capture_output=True, -diff --git a/tests/test_execute.py b/tests/test_execute.py -index 1a23316..6532b48 100644 ---- a/tests/test_execute.py -+++ b/tests/test_execute.py -@@ -26,7 +26,7 @@ from tests.conftest import run_in_subprocess - def test_python_m_pytask(tmp_path): - tmp_path.joinpath("task_module.py").write_text("def task_example(): pass") - result = run_in_subprocess( -- ("uv", "run", "python", "-m", "pytask", tmp_path.as_posix()) -+ ("python", "-m", "pytask", tmp_path.as_posix()) - ) - assert result.exit_code == ExitCode.OK - -@@ -602,7 +602,7 @@ def test_execute_tasks_via_functional_api(tmp_path): - """ - tmp_path.joinpath("task_module.py").write_text(textwrap.dedent(source)) - result = subprocess.run( -- ("uv", "run", "python", tmp_path.joinpath("task_module.py").as_posix()), -+ ("python", tmp_path.joinpath("task_module.py").as_posix()), - check=False, - ) - assert result.returncode == ExitCode.OK -@@ -632,7 +632,7 @@ def test_execute_tasks_multiple_times_via_api(tmp_path): - """ - tmp_path.joinpath("task_module.py").write_text(textwrap.dedent(source)) - result = run_in_subprocess( -- ("uv", "run", "python", tmp_path.joinpath("task_module.py").as_posix()) -+ ("python", tmp_path.joinpath("task_module.py").as_posix()) - ) - assert result.exit_code == ExitCode.OK - -diff --git a/tests/test_hook_module.py b/tests/test_hook_module.py -index eba4868..e26288a 100644 ---- a/tests/test_hook_module.py -+++ b/tests/test_hook_module.py -@@ -25,8 +25,6 @@ def test_add_new_hook_via_cli(tmp_path, module_name): - - if module_name: - args = ( -- "uv", -- "run", - "python", - "-m", - "pytask", -@@ -37,8 +35,6 @@ def test_add_new_hook_via_cli(tmp_path, module_name): - ) - else: - args = ( -- "uv", -- "run", - "pytask", - "build", - "--hook-module", -@@ -70,9 +66,6 @@ def test_add_new_hook_via_config(tmp_path, module_name): - - if module_name: - args = ( -- "uv", -- "run", -- "--no-project", - "python", - "-m", - "pytask", -@@ -80,7 +73,7 @@ def test_add_new_hook_via_config(tmp_path, module_name): - "--help", - ) - else: -- args = ("uv", "run", "--no-project", "pytask", "build", "--help") -+ args = ("pytask", "build", "--help") - - result = run_in_subprocess(args, cwd=tmp_path) - assert result.exit_code == ExitCode.OK -diff --git a/tests/test_task.py b/tests/test_task.py -index a2f70ad..510619e 100644 ---- a/tests/test_task.py -+++ b/tests/test_task.py -@@ -667,7 +667,7 @@ def test_task_will_be_executed_after_another_one_with_function_session( - tmp_path.joinpath("task_example.py").write_text(textwrap.dedent(source)) - - result = subprocess.run( -- ("uv", "run", "python", "task_example.py"), -+ ("python", "task_example.py"), - cwd=tmp_path, - capture_output=True, - check=False, -diff --git a/tests/test_warnings.py b/tests/test_warnings.py -index 8811018..5aae724 100644 ---- a/tests/test_warnings.py -+++ b/tests/test_warnings.py -@@ -148,7 +148,7 @@ def test_deprecation_warnings_are_not_captured(tmp_path, warning): - path_to_warn_module.write_text(textwrap.dedent(warn_module)) - - # Cannot use runner since then warnings are not ignored by default. -- result = run_in_subprocess(("uv", "run", "pytask"), cwd=tmp_path) -+ result = run_in_subprocess(("pytask"), cwd=tmp_path) - assert result.exit_code == ExitCode.OK - assert "Warnings" not in result.stdout - assert "warning!!!" not in result.stdout diff --git a/pkgs/development/python-modules/pytest-astropy/default.nix b/pkgs/development/python-modules/pytest-astropy/default.nix index f620e14a51b6..9228e00bf94d 100644 --- a/pkgs/development/python-modules/pytest-astropy/default.nix +++ b/pkgs/development/python-modules/pytest-astropy/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchPypi, - attrs, hypothesis, pytest, pytest-arraydiff, @@ -14,7 +13,6 @@ pytest-remotedata, setuptools, setuptools-scm, - pythonOlder, }: buildPythonPackage rec { @@ -22,22 +20,19 @@ buildPythonPackage rec { version = "0.11.0"; pyproject = true; - disabled = pythonOlder "3.7"; - src = fetchPypi { inherit pname version; hash = "sha256-Tq6qme2RFj7Y+arBMscKgfJbxMEvPNVNujKfwmxnObU="; }; - nativeBuildInputs = [ + build-system = [ setuptools setuptools-scm ]; buildInputs = [ pytest ]; - propagatedBuildInputs = [ - attrs + dependencies = [ hypothesis pytest-arraydiff pytest-astropy-header @@ -51,10 +46,11 @@ buildPythonPackage rec { # pytest-astropy is a meta package that only propagates requirements doCheck = false; - meta = with lib; { + meta = { + changelog = "https://github.com/astropy/pytest-astropy/releases/tag/v${version}"; description = "Meta-package containing dependencies for testing"; - homepage = "https://astropy.org"; - license = licenses.bsd3; + homepage = "https://github.com/astropy/pytest-astropy"; + license = lib.licenses.bsd3; maintainers = [ ]; }; } diff --git a/pkgs/development/python-modules/python-xapp/default.nix b/pkgs/development/python-modules/python-xapp/default.nix index 698f9735fd21..54d8e7a256e1 100644 --- a/pkgs/development/python-modules/python-xapp/default.nix +++ b/pkgs/development/python-modules/python-xapp/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "python-xapp"; - version = "2.4.2"; + version = "3.0.0"; format = "other"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "linuxmint"; repo = "python-xapp"; rev = version; - hash = "sha256-Gbm4YT9ZyrROOAbKz5xYd9J9YG9cUL2Oo6dDCPciaBs="; + hash = "sha256-OvYbMu/2cQLTHHbHh4zESf1X22AfZe8ZEfzeOBDcU90="; }; nativeBuildInputs = [ @@ -43,6 +43,10 @@ buildPythonPackage rec { postPatch = '' substituteInPlace "xapp/os.py" \ --replace-fail "/usr/bin/pkexec" "${polkit}/bin/pkexec" + + # We actually want the localedir provided by the caller. + substituteInPlace "xapp/util/__init__.py" \ + --replace-fail "/usr/share/locale" "/run/current-system/sw/share/locale" ''; doCheck = false; diff --git a/pkgs/development/python-modules/shiny/default.nix b/pkgs/development/python-modules/shiny/default.nix index e8624fe25831..88d3b9137486 100644 --- a/pkgs/development/python-modules/shiny/default.nix +++ b/pkgs/development/python-modules/shiny/default.nix @@ -8,7 +8,6 @@ setuptools-scm, # dependencies - appdirs, asgiref, click, htmltools, @@ -19,9 +18,11 @@ narwhals, orjson, packaging, + platformdirs, prompt-toolkit, python-multipart, questionary, + shinychat, starlette, typing-extensions, uvicorn, @@ -47,14 +48,14 @@ buildPythonPackage rec { pname = "shiny"; - version = "1.4.0"; + version = "1.5.0"; pyproject = true; src = fetchFromGitHub { owner = "posit-dev"; repo = "py-shiny"; tag = "v${version}"; - hash = "sha256-SsMZ+aiGFtP6roTiuBZWnHqPso3ZiWLgBToaTLiC2ko="; + hash = "sha256-zRKfSY0rE+jzwYUcrRTIFW3OVmavhMDbAQEpry46zCI="; }; build-system = [ @@ -63,7 +64,6 @@ buildPythonPackage rec { ]; dependencies = [ - appdirs asgiref click htmltools @@ -73,10 +73,12 @@ buildPythonPackage rec { narwhals orjson packaging + platformdirs prompt-toolkit python-multipart questionary setuptools + shinychat starlette typing-extensions uvicorn @@ -110,6 +112,14 @@ buildPythonPackage rec { ] ++ lib.flatten (lib.attrValues optional-dependencies); + pytestFlags = [ + # ERROR: 'fixture' is not a valid asyncio_default_fixture_loop_scope. + # Valid scopes are: function, class, module, package, session. + # https://github.com/pytest-dev/pytest-asyncio/issues/924 + "-o asyncio_mode=auto" + "-o asyncio_default_fixture_loop_scope=function" + ]; + env.SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; disabledTests = [ diff --git a/pkgs/development/python-modules/shinychat/default.nix b/pkgs/development/python-modules/shinychat/default.nix new file mode 100644 index 000000000000..851247d54448 --- /dev/null +++ b/pkgs/development/python-modules/shinychat/default.nix @@ -0,0 +1,129 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + hatch-vcs, + hatchling, + + # dependencies + htmltools, + + # optional-dependencies + anthropic, + chatlas, + google-generativeai, + langchain-core, + ollama, + openai, + pydantic, + tokenizers, + + # tests + pillow, + playwright, + pytest-playwright, + pytestCheckHook, + shiny, + shinychat, +}: + +buildPythonPackage rec { + pname = "shinychat"; + version = "0.2.8"; + pyproject = true; + + src = fetchFromGitHub { + owner = "posit-dev"; + repo = "shinychat"; + tag = "py/v${version}"; + hash = "sha256-thdLaZ+rnD8yumxhjXOLhufcSBD0oNKOWSxxDdJ9tNU="; + }; + + build-system = [ + hatch-vcs + hatchling + ]; + + pythonRemoveDeps = [ + "shiny" # circular dependency + ]; + dependencies = [ + htmltools + ]; + + optional-dependencies = { + providers = [ + anthropic + chatlas + google-generativeai + langchain-core + ollama + openai + pydantic + tokenizers + ]; + }; + + pythonImportsCheck = [ + # ImportError: cannot import name 'Chat' from partially initialized module 'shinychat' (most likely due to a circular import) + # "shinychat" + ]; + + nativeCheckInputs = [ + pillow + playwright + pytest-playwright + pytestCheckHook + shiny + ] + ++ lib.flatten (lib.attrValues optional-dependencies); + + disabledTests = [ + # AssertionError: assert False + "test_as_langchain_message" + + # AssertionError: assert 'AIMessage' == 'BaseMessage' + "test_langchain_normalization" + + # RuntimeError: Failed to download a default tokenizer + "test_chat_message_trimming" + + # Require running a headless chromium browser + "test_latest_stream_result" + "test_validate_chat" + "test_validate_chat_append_user_message" + "test_validate_chat_append_user_message" + "test_validate_chat_basic" + "test_validate_chat_basic" + "test_validate_chat_basic" + "test_validate_chat_basic_error" + "test_validate_chat_input_suggestion" + "test_validate_chat_message_stream_context" + "test_validate_chat_shiny_output" + "test_validate_chat_shiny_output" + "test_validate_chat_stream_result" + "test_validate_chat_transform" + "test_validate_chat_transform_assistant" + "test_validate_chat_transform_assistant" + "test_validate_chat_update_user_input" + "test_validate_stream_basic" + "test_validate_stream_shiny_ui" + ]; + + # Circular dependency with shiny + doCheck = false; + passthru.tests.pytest = shinychat.overridePythonAttrs { + doCheck = true; + }; + + meta = { + description = "Chat UI component for Shiny"; + homepage = "https://posit-dev.github.io/shinychat"; + downloadPage = "https://github.com/posit-dev/shinychat"; + changelog = "https://github.com/posit-dev/shinychat/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/development/python-modules/thermopro-ble/default.nix b/pkgs/development/python-modules/thermopro-ble/default.nix index ceb42d8fdbb3..46e415f1ca45 100644 --- a/pkgs/development/python-modules/thermopro-ble/default.nix +++ b/pkgs/development/python-modules/thermopro-ble/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "thermopro-ble"; - version = "1.1.0"; + version = "1.1.2"; pyproject = true; disabled = pythonOlder "3.9"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "bluetooth-devices"; repo = "thermopro-ble"; tag = "v${version}"; - hash = "sha256-m4koagyGOOuwFCctQK1oz5riwCbrC0I8js+bnrHxwMY="; + hash = "sha256-xn6scfK2nz2AU4DkUOVj3drku0hOzZSgeBiBudnH2bU="; }; build-system = [ poetry-core ]; @@ -45,7 +45,7 @@ buildPythonPackage rec { meta = with lib; { description = "Library for Thermopro BLE devices"; homepage = "https://github.com/bluetooth-devices/thermopro-ble"; - changelog = "https://github.com/Bluetooth-Devices/thermopro-ble/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/Bluetooth-Devices/thermopro-ble/releases/tag/${src.tag}"; license = licenses.mit; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/development/python-modules/uncompresspy/default.nix b/pkgs/development/python-modules/uncompresspy/default.nix new file mode 100644 index 000000000000..1e453ca0d57a --- /dev/null +++ b/pkgs/development/python-modules/uncompresspy/default.nix @@ -0,0 +1,32 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, +}: + +buildPythonPackage rec { + pname = "uncompresspy"; + version = "0.4.1"; + pyproject = true; + + # no tags on GitHub + src = fetchPypi { + inherit pname version; + hash = "sha256-556tZurtjUI2TYB8C6PzqK7w4Ah6m+rxpg8jqAimwUc="; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "uncompresspy" ]; + + # upstream has no tests + doCheck = false; + + meta = { + description = "Pure Python package for uncompressing LZW files (.Z), such as the ones created by Unix's shell tool compress"; + homepage = "https://github.com/kYwzor/uncompresspy"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.dotlambda ]; + }; +} diff --git a/pkgs/servers/home-assistant/custom-components/localtuya/package.nix b/pkgs/servers/home-assistant/custom-components/localtuya/package.nix index ab9b95a2b7a5..b4bf9f47ba49 100644 --- a/pkgs/servers/home-assistant/custom-components/localtuya/package.nix +++ b/pkgs/servers/home-assistant/custom-components/localtuya/package.nix @@ -7,13 +7,13 @@ buildHomeAssistantComponent rec { owner = "xZetsubou"; domain = "localtuya"; - version = "2025.10.0"; + version = "2025.11.0"; src = fetchFromGitHub { owner = "xZetsubou"; repo = "hass-localtuya"; tag = version; - hash = "sha256-PjxDPZK/T4meafMFX3WFoA5ur0NPJsbPOxaOuL0+NWg="; + hash = "sha256-TISiZchkLZ3AaNh622nolIyBjDgdJBQrc30oBHN/INE="; }; meta = with lib; { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 81a649444d2d..f76b5278c31b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2569,6 +2569,8 @@ self: super: with self; { chat-downloader = callPackage ../development/python-modules/chat-downloader { }; + chatlas = callPackage ../development/python-modules/chatlas { }; + check-manifest = callPackage ../development/python-modules/check-manifest { }; checkdmarc = callPackage ../development/python-modules/checkdmarc { }; @@ -16929,6 +16931,8 @@ self: super: with self; { shiny = callPackage ../development/python-modules/shiny { }; + shinychat = callPackage ../development/python-modules/shinychat { }; + shippinglabel = callPackage ../development/python-modules/shippinglabel { }; shiv = callPackage ../development/python-modules/shiv { }; @@ -19699,6 +19703,8 @@ self: super: with self; { uncertainties = callPackage ../development/python-modules/uncertainties { }; + uncompresspy = callPackage ../development/python-modules/uncompresspy { }; + uncompyle6 = callPackage ../development/python-modules/uncompyle6 { }; undefined = callPackage ../development/python-modules/undefined { };