Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-06-03 13:38:20 +00:00
committed by GitHub
96 changed files with 2433 additions and 704 deletions
+1
View File
@@ -37,6 +37,7 @@ npm-install-hook.section.md
patch-rc-path-hooks.section.md
perl.section.md
pkg-config.section.md
pnpm.section.md
postgresql-test-hook.section.md
premake.section.md
python.section.md
+142
View File
@@ -0,0 +1,142 @@
# pnpmBuildHook {#pnpm-build-hook}
[pnpm](https://pnpm.io/) is a an NPM-compatible package manager focused on increasing managment speeds, and reducing disk space.
The `pnpmBuildHook` in Nixpkgs overrides the default build phase for building packages that use pnpm.
:::{.example #ex-pnpm-build-hook}
## pnpmBuildHook example code snippet {#pnpm-build-hook-code-snippet}
```
{
lib,
stdenv,
fetchFromGitHub,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
makeBinaryWrapper,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
stdenv.mkDerivation (finalAttrs: {
pname = "coolPackages";
version = "1.0";
src = fetchFromGitHub {
owner = "JaneCool";
repo = "coolpackage";
tag = finalAttrs.version;
hash = lib.fakeHash;
};
__structuredAttrs = true;
strictDeps = true;
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherversion = 4;
hash = lib.fakeHash;
};
nativeBuildInputs = [
pnpmConfigHook
pnpmBuildHook
makeBinaryWrapper
];
pnpmBuildScript = "build";
pnpmBuildFlags = [
"--mode"
"production"
];
pnpmWorkspaces = [
"test"
];
installPhase = ''
runHook preInstall
mkdir "$out"
cp -r dist/. "$out"
runHook postInstall
'';
meta = {
description = "very cool package that does cool things";
mainProgram = "cool";
};
})
```
:::
## Variables controlling pnpmBuildHook {#pnpm-build-hook-variables}
### pnpm Exclusive Variables {#pnpm-build-hook-exclusive-variables}
#### `pnpmBuildScript` {#pnpm-build-hook-script}
Controls the script ran to build the package, by default the script is `build`.
#### `pnpmFlags` {#pnpm-build-hook-flags}
Controls flags used for all invocations of pnpm across all hooks local to this derivation.
#### `pnpmBuildFlags` {#pnpm-build-hook-build-flags}
Controls the flags pass only to the pnpm build script invocation.
#### `dontPnpmBuild` {#pnpm-build-hook-dont}
Disables automatically running `pnpmBuildHook`. The build can still be run manually if needed, for example:
```
{
lib,
rustPlatform,
pnpmBuildHook,
pnpmConfigHook,
fetchPnpmDeps,
emptyDirectory,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "super-fast-application";
version = "1.0";
src = emptyDirectory;
cargoHash = lib.fakeHash;
nativeBuildInputs = [
pnpmBuildHook
pnpmConfigHook
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherversion = 3;
hash = lib.fakeHash;
}
dontPnpmBuild = true;
postBuild = ''
pnpmBuildHook
'';
})
```
### Honored Variables {#pnpm-build-hook-honored-variables}
The following variables are honored by `pnpmBuildHook`.
* [`pnpmRoot`](#javascript-pnpm-sourceRoot)
* [`pnpmWorkspaces`](#javascript-pnpm-workspaces)
@@ -309,6 +309,8 @@ pnpm is available as the top-level package `pnpm`. Additionally, there are varia
When packaging an application that includes a `pnpm-lock.yaml`, you need to fetch the pnpm store for that project using a fixed-output-derivation. The function `fetchPnpmDeps` can create this pnpm store derivation. In conjunction, the setup hook `pnpmConfigHook` will prepare the build environment to install the pre-fetched dependencies store. Here is an example for a package that contains `package.json` and a `pnpm-lock.yaml` files using the fetcher and setup hook above:
There is also the [`pnpmBuildHook`](#pnpm-build-hook) for building packages with `pnpm`, as seen in [](#ex-pnpm-build-hook).
```nix
{
fetchPnpmDeps,
@@ -511,10 +513,10 @@ Changes can include workarounds or bug fixes to existing PNPM issues.
##### Version history {#javascript-pnpm-fetcherVersion-versionHistory}
Version 3 is the recommended value for new packages. Versions 1 and 2 are deprecated and scheduled for removal in the 26.11 release; existing packages must migrate.
Version 3 is the minimum supported value. Versions 1 and 2 were removed in the 26.11 release; packages that still use them fail to evaluate and must migrate to `fetcherVersion = 3` (or later) and regenerate their hashes.
- 1: Initial version, nothing special.
- 2: [Ensure consistent permissions](https://github.com/NixOS/nixpkgs/pull/422975)
- 1: Initial version, nothing special. (removed in 26.11)
- 2: [Ensure consistent permissions](https://github.com/NixOS/nixpkgs/pull/422975) (removed in 26.11)
- 3: [Build a reproducible tarball](https://github.com/NixOS/nixpkgs/pull/469950)
- 4: [Dump SQLite database to an SQL file](https://github.com/NixOS/nixpkgs/pull/522703)
+30
View File
@@ -113,6 +113,9 @@
"ex-pkgs-replace-vars-with": [
"index.html#ex-pkgs-replace-vars-with"
],
"ex-pnpm-build-hook": [
"index.html#ex-pnpm-build-hook"
],
"ex-shfmt": [
"index.html#ex-shfmt"
],
@@ -346,6 +349,33 @@
"pkgs.treefmt.withConfig": [
"index.html#pkgs.treefmt.withConfig"
],
"pnpm-build-hook": [
"index.html#pnpm-build-hook"
],
"pnpm-build-hook-build-flags": [
"index.html#pnpm-build-hook-build-flags"
],
"pnpm-build-hook-code-snippet": [
"index.html#pnpm-build-hook-code-snippet"
],
"pnpm-build-hook-dont": [
"index.html#pnpm-build-hook-dont"
],
"pnpm-build-hook-exclusive-variables": [
"index.html#pnpm-build-hook-exclusive-variables"
],
"pnpm-build-hook-flags": [
"index.html#pnpm-build-hook-flags"
],
"pnpm-build-hook-script": [
"index.html#pnpm-build-hook-script"
],
"pnpm-build-hook-variables": [
"index.html#pnpm-build-hook-variables"
],
"pnpm-build-hook-honored-variables": [
"index.html#pnpm-build-hook-honored-variables"
],
"preface": [
"index.html#preface"
],
+7
View File
@@ -29,6 +29,13 @@
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
- `fetchPnpmDeps`' `fetcherVersion = 1` and `fetcherVersion = 2` have been
removed, as announced in the 26.05 release. Packages still using them now
throw an evaluation error and must migrate to `fetcherVersion = 3` (or later)
and regenerate their hashes. See the
[pnpm `fetcherVersion` section](#javascript-pnpm-fetcherVersion) of the manual
for details.
## Other Notable Changes {#sec-nixpkgs-release-26.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -9,6 +9,7 @@ let
cfg = config.services.weblate;
dataDir = "/var/lib/weblate";
cacheDir = "${dataDir}/cache";
settingsDir = "${dataDir}/settings";
finalPackage = cfg.package.overridePythonAttrs (old: {
@@ -362,6 +363,18 @@ in
];
inherit environment;
path = weblatePath;
# Weblate generates SSH wrappers with some preset options that use the
# absolute paths of the ssh and scp binaries internally.
# As the wrapper is only regenerated when the generator itself is changed,
# this absolute nix store path becomes unusable once ssh is updated and
# the path is garbage collected.
# As generating the wrappers is a quick operation, simply deleting the
# wrapper directory before service start ensures they are up to date.
preStart = ''
if [ -d "${cacheDir}/ssh" ]; then
rm -r "${cacheDir}/ssh"
fi
'';
serviceConfig = {
Type = "notify";
NotifyAccess = "all";
@@ -173,5 +173,18 @@
})
(lib.mkIf (config.system.etc.overlay.enable && !config.system.etc.overlay.mutable) {
# Systemd requires /etc/machine-id exists or can be initialized on first
# boot. This file should not be part of an image or system config because
# it is unique to the machine, so it is initialized at first boot and
# persisted in the system state directory, /var/lib/nixos.
environment.etc."machine-id".source = lib.mkDefault "/var/lib/nixos/machine-id";
boot.initrd.systemd.tmpfiles.settings.machine-id."/sysroot/var/lib/nixos/machine-id".f =
lib.mkDefault
{
argument = "uninitialized";
};
})
];
}
+15 -21
View File
@@ -14,7 +14,8 @@
];
specialisation.fstab-test.configuration = {
fileSystems."/plain" = {
# This can't be fileSytems, as the qemu machinery doesn't honor it.
virtualisation.fileSystems."/plain" = {
device = "/encrypted";
fsType = "fuse.gocryptfs";
options = [
@@ -27,31 +28,24 @@
};
testScript = ''
# Initialize a gocryptfs filesystem and mount it
machine.succeed("openssl rand -base64 32 > /tmp/password.txt")
machine.succeed("mkdir -p /encrypted /plain")
machine.succeed("gocryptfs -init /encrypted -passfile /tmp/password.txt -quiet")
machine.succeed("gocryptfs /encrypted /plain -passfile /tmp/password.txt -quiet")
# Generate a password
machine.execute("openssl rand -base64 32 > /tmp/password.txt")
# Drop a canary file and unmount
machine.succeed("echo success > /plain/data.txt")
machine.succeed("fusermount -u /plain")
# Initialize an encrypted vault
machine.execute("mkdir -p /encrypted /plain")
machine.execute("gocryptfs -init /encrypted -passfile /password.txt -quiet")
# Switch to a specialisation that has this in /etc/fstab
machine.succeed("/run/current-system/specialisation/fstab-test/bin/switch-to-configuration switch")
# Open and mount vault
machine.execute("gocryptfs /encrypted /plain -passfile /tmp/password.txt -quiet")
machine.execute("echo test > /plain/data.txt")
machine.execute("echo test > /tmp/data.txt")
# Unmount
machine.execute("fusermount -u /plain")
# Switch to the specialisation
machine.succeed("/run/current-system/specialisation/fstab-test/bin/switch-to-configuration test")
# Wait for mount
# Wait for mounts
machine.wait_for_unit("local-fs.target")
# Check data
machine.succeed("diff /plain/data.txt /tmp/data.txt")
# Ensure the canary is alive
machine.succeed("grep -q success /plain/data.txt")
'';
}
@@ -444,4 +444,51 @@ pkgs.lib.recurseIntoAttrs rec {
'';
inherit (vimPlugins) corePlugins;
nvim_require_check_lua_module =
let
inherit (neovim-unwrapped.lua.pkgs) luaexpat luassert;
in
vimUtils.buildVimPlugin {
pname = "neovim-require-check-lua-module-test";
version = "0";
src = runCommandLocal "neovim-require-check-lua-module-src" { } ''
mkdir -p "$out/lua/require-check-luamods"
mkdir -p "$out/plugin"
cat > "$out/plugin/require-check-luamods.vim" <<'EOF'
let g:require_check_luamods_plugin_loaded = 1
EOF
cat > "$out/lua/require-check-luamods/init.lua" <<'EOF'
if vim.g.require_check_luamods_plugin_loaded ~= 1 then
error("plugin script was not sourced")
end
-- lxp: direct C dependency from luaexpat (package.cpath)
require("lxp")
-- say: transitive dependency of luassert (package.path closure)
require("say")
return {}
EOF
'';
requiredLuaModules = [
luaexpat
luassert
];
};
nvim_require_check_passthru_lua_module =
let
inherit (neovim-unwrapped.lua.pkgs) luassert;
in
vimUtils.buildVimPlugin {
pname = "neovim-require-check-passthru-lua-module-test";
version = "0";
src = runCommandLocal "neovim-require-check-passthru-lua-module-src" { } ''
mkdir -p "$out/lua/require-check-passthru-luamods"
cat > "$out/lua/require-check-passthru-luamods/init.lua" <<'EOF'
require("say")
return {}
EOF
'';
passthru.requiredLuaModules = [ luassert ];
};
}
@@ -53,6 +53,12 @@ run_require_checks() {
local deps="${dependencies[*]}"
local nativeCheckInputs="${nativeBuildInputs[*]}"
local checkInputs="${buildInputs[*]}"
local -a luaPathArgs=()
if [ -n "${nvimRequireCheckLuaPath:-}" ] || [ -n "${nvimRequireCheckLuaCPath:-}" ]; then
luaPathArgs=(--cmd "lua package.path='${nvimRequireCheckLuaPath:-}'..';'..package.path; package.cpath='${nvimRequireCheckLuaCPath:-}'..';'..package.cpath")
fi
set +e
if [ -v 'nvimSkipModule' ]; then
@@ -85,6 +91,7 @@ run_require_checks() {
--cmd "set rtp+=$out,${deps// /,}" \
--cmd "set rtp+=$out,${nativeCheckInputs// /,}" \
--cmd "set rtp+=$out,${checkInputs// /,}" \
"${luaPathArgs[@]}" \
--cmd "set packpath^=$packPathDir" \
--cmd "packadd testPlugin" \
--cmd "lua require('$name')"; then
@@ -0,0 +1,63 @@
{
vimPlugins,
lib,
vimUtils,
rustPlatform,
stdenv,
nix-update-script,
fetchFromGitHub,
}:
let
version = "0.0.9";
src = fetchFromGitHub {
owner = "clabby";
repo = "difftastic.nvim";
rev = "6041ef0244b3fecf3b7f07de9af8cfbf8dbc4945";
hash = "sha256-23NGKhytF3OsLJgdrC51IH/sIGoqe/yBfmPsZKHOMSk=";
};
difftastic-nvim-lib = rustPlatform.buildRustPackage {
pname = "difftastic-nvim-lib";
inherit version src;
cargoHash = "sha256-VSlFlLa4knQ7bH8yFHSKTTtt1cQ76dstlCdWBAtkf1I=";
postInstall = ''
ln -s $out/lib/libdifftastic_nvim${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/difftastic_nvim.so
'';
env.RUSTFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-C link-arg=-undefined -C link-arg=dynamic_lookup";
};
in
vimUtils.buildVimPlugin {
pname = "difftastic-nvim";
inherit version src;
dependencies = [
vimPlugins.nui-nvim
];
postPatch = ''
substituteInPlace lua/difftastic-nvim/binary.lua \
--replace-fail \
'release_dir = plugin_root .. "/target/release"' \
"release_dir = '${difftastic-nvim-lib}/lib'"
'';
passthru = {
updateScript = nix-update-script {
attrPath = "vimPlugins.difftastic-nvim.difftastic-nvim-lib";
};
# needed for the update script
inherit difftastic-nvim-lib;
};
meta = {
description = "Neovim plugin that displays difftastic's structural diffs in a side-by-side view with syntax highlighting";
homepage = "https://github.com/clabby/difftastic.nvim/";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
auscyber
];
};
}
@@ -1372,35 +1372,6 @@ assertNoAdditions {
diffview-nvim = super.diffview-nvim.overrideAttrs (old: {
dependencies = [ self.plenary-nvim ];
nvimSkipModules = [
# https://github.com/sindrets/diffview.nvim/issues/498
"diffview.api.views.diff.diff_view"
"diffview.scene.layouts.diff_2"
"diffview.scene.layouts.diff_2_hor"
"diffview.scene.layouts.diff_2_ver"
"diffview.scene.layouts.diff_3"
"diffview.scene.layouts.diff_3_hor"
"diffview.scene.layouts.diff_3_mixed"
"diffview.scene.layouts.diff_3_ver"
"diffview.scene.layouts.diff_4"
"diffview.scene.layouts.diff_4_mixed"
"diffview.scene.views.diff.diff_view"
"diffview.scene.views.file_history.file_history_panel"
"diffview.scene.views.file_history.option_panel"
"diffview.scene.window"
"diffview.ui.panels.commit_log_panel"
"diffview.ui.panels.help_panel"
"diffview.ui.panel"
"diffview.vcs.adapters.git.init"
"diffview.vcs.adapters.hg.init"
"diffview.vcs.adapter"
"diffview.vcs.init"
"diffview.vcs.utils"
"diffview.job"
"diffview.lib"
"diffview.multi_job"
];
doInstallCheck = true;
meta = old.meta // {
license = lib.licenses.gpl3Plus;
@@ -2788,6 +2759,7 @@ assertNoAdditions {
dependencies = [ self.plenary-nvim ];
nvimSkipModules = [
# E5108: Error executing lua ...vim-2024-06-13/lua/diffview/api/views/diff/diff_view.lua:13: attempt to index global 'DiffviewGlobal' (a nil value)
# Requires diffview-nvim's plugin script to be sourced.
"neogit.integrations.diffview"
"neogit.popups.diff.actions"
"neogit.popups.diff.init"
@@ -4,6 +4,7 @@
stdenv,
vim,
vimPlugins,
neovim-unwrapped,
buildEnv,
symlinkJoin,
writeText,
@@ -516,35 +517,47 @@ rec {
drv:
let
drv-name = drv.name or "${drv.pname}-${drv.version}";
lua = neovim-unwrapped.lua;
in
drv.overrideAttrs (oldAttrs: {
name = "vimplugin-${drv-name}";
# dont move the "doc" folder since vim expects it
forceShare = [
"man"
"info"
];
nativeBuildInputs =
oldAttrs.nativeBuildInputs or [ ]
++ lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
vimGenDocHook
drv.overrideAttrs (
finalAttrs: oldAttrs:
let
getRequiredLuaModules = attrs: attrs.requiredLuaModules or attrs.passthru.requiredLuaModules or [ ];
modules = getRequiredLuaModules finalAttrs;
luaEnv = lua.withPackages (_: modules);
in
{
name = "vimplugin-${drv-name}";
# dont move the "doc" folder since vim expects it
forceShare = [
"man"
"info"
];
doCheck = oldAttrs.doCheck or true;
nativeBuildInputs =
oldAttrs.nativeBuildInputs or [ ]
++ lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
vimGenDocHook
];
nativeCheckInputs =
oldAttrs.nativeCheckInputs or [ ]
++ lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
vimCommandCheckHook
# many neovim plugins keep using buildVimPlugin
neovimRequireCheckHook
];
doCheck = oldAttrs.doCheck or true;
passthru = (oldAttrs.passthru or { }) // {
vimPlugin = true;
};
});
nativeCheckInputs =
oldAttrs.nativeCheckInputs or [ ]
++ lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
vimCommandCheckHook
# many neovim plugins keep using buildVimPlugin
neovimRequireCheckHook
];
nvimRequireCheckLuaPath = lib.optionalString (modules != [ ]) (lua.pkgs.getLuaPath luaEnv);
nvimRequireCheckLuaCPath = lib.optionalString (modules != [ ]) (lua.pkgs.getLuaCPath luaEnv);
passthru = (oldAttrs.passthru or { }) // {
vimPlugin = true;
};
}
);
}
// lib.optionalAttrs config.allowAliases {
vimWithRC = throw "vimWithRC was removed, please use vim.customize instead";
@@ -621,7 +621,7 @@ let
# clang++: error: unknown argument: '-fno-lifetime-dse'
./patches/chromium-147-llvm-22.patch
]
++ lib.optionals (chromiumVersionAtLeast "148" && lib.versionOlder llvmVersion "23") [
++ lib.optionals (versionRange "148" "149" && lib.versionOlder llvmVersion "23") [
# clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=return'
(fetchpatch {
name = "chromium-148-revert-build-Add--fsanitizer=return-config.patch";
@@ -651,7 +651,22 @@ let
hash = "sha256-jR0G9z2R8VGl2tkB3u0368RyWM1J6qYXqNWwKkYd5zU=";
})
]
++ lib.optionals (chromiumVersionAtLeast "148") [
++ lib.optionals (chromiumVersionAtLeast "149" && lib.versionOlder llvmVersion "23") [
# clang++: error: unknown argument: '-fdiagnostics-show-inlining-chain'
# clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=array-bounds'
# clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=return'
./patches/chromium-149-llvm-22.patch
]
++ lib.optionals (chromiumVersionAtLeast "149" && stdenv.hostPlatform.isAarch64) [
# [43731/56364] CXX obj/media/gpu/sandbox/sandbox/hardware_video_decoding_sandbox_hook_linux.o
# FAILED: [code=1] obj/media/gpu/sandbox/sandbox/hardware_video_decoding_sandbox_hook_linux.o
# clang++ -MD -MF obj/media/gpu/sandbox/sandbox/hardware_video_decoding_sandbox_hook_linux.o.d [...]
# ../../media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc:123:9: error: use of undeclared identifier 'ERROR'
# 123 | LOG(ERROR) << "dlopen(radeonsi_dri.so) failed with error: " << dlerror();
# | ^~~~~
./patches/chromium-149-use-of-undeclared-identifier-ERROR.patch
]
++ lib.optionals (versionRange "148" "149") [
# ninja: error: '../../third_party/rust-toolchain/bin/rustc', needed by 'phony/default_for_rust_host_build_tools_rust_bin_inputs', missing and no known rule to make it
(fetchpatch {
name = "chromium-148-revert-Reland-build-use-tool-inputs-instead-of-siso-config-for-rust-actions.patch";
@@ -792,6 +807,12 @@ let
mkdir -p third_party/gperf/cipd/bin
ln -s "${pkgsBuildHost.gperf}/bin/gperf" third_party/gperf/cipd/bin/gperf
''
# https://chromium-review.googlesource.com/c/chromium/src/+/7719879
# ninja: error: '../../third_party/rust-toolchain/bin/rustc', needed by 'phony/default_for_rust_host_build_tools_rust_bin_inputs', missing and no known rule to make it
+ lib.optionalString (chromiumVersionAtLeast "149") ''
mkdir -p third_party/rust-toolchain/bin
ln -s "${buildPackages.rustc}/bin/rustc" third_party/rust-toolchain/bin/rustc
''
+
lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform && stdenv.hostPlatform.isAarch64)
''
@@ -973,7 +994,11 @@ let
# Mute some warnings that are enabled by default. This is useful because
# our Clang is always older than Chromium's and the build logs have a size
# of approx. 25 MB without this option (and this saves e.g. 66 %).
env.NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option -Wno-unused-command-line-argument -Wno-shadow";
env.NIX_CFLAGS_COMPILE =
"-Wno-unknown-warning-option -Wno-unused-command-line-argument -Wno-shadow"
# warning: '_LIBCPP_HARDENING_MODE' macro redefined [-Wmacro-redefined]
# because of hardeningDisable = [ "strictflexarrays1" ];
+ lib.optionalString (chromiumVersionAtLeast "149") " -Wno-macro-redefined";
env.BUILD_CC = "$CC_FOR_BUILD";
env.BUILD_CXX = "$CXX_FOR_BUILD";
env.BUILD_AR = "$AR_FOR_BUILD";
@@ -1,44 +1,44 @@
{
"chromium": {
"version": "148.0.7778.215",
"version": "149.0.7827.53",
"chromedriver": {
"version": "148.0.7778.216",
"hash_darwin": "sha256-gsK7Q3rwfQQ0iE5e/st/3gGtU+D8dGsTycffpEejmhw=",
"hash_darwin_aarch64": "sha256-zHASbRPnYf2q1qq8FsKnYrLwPjzoGk0tzLxB9SdTXFw="
"version": "149.0.7827.53",
"hash_darwin": "sha256-JzeQy8O9gcoV195sQrfUV1TclUyAI4lzOcE5+BmgKrM=",
"hash_darwin_aarch64": "sha256-nEkMVGUVYP0q9UECGT0ibc2vzjVRIO69dFrYOB05lqg="
},
"deps": {
"depot_tools": {
"rev": "41c40cfaec7ee3bf0423c59925d8b23982a601f1",
"hash": "sha256-s9uvmYHCJKWnNhztmOPb+OHj/HbGo30PupwT4mHWjnM="
"rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90",
"hash": "sha256-Ttklyw6IdNeMExlzeiQg/qsCkTmqVhUJ34MFgYmCWD4="
},
"gn": {
"version": "0-unstable-2026-04-01",
"rev": "6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a",
"hash": "sha256-BTPD8WM1pVAMkFDlHekMdWFGyf63KdhKkKwsqikqoBQ="
"version": "0-unstable-2026-05-01",
"rev": "1740f5c25bcac5a650ee3d1c1ec22bfa25fcd756",
"hash": "sha256-oFs7fZAZEs/gQ7X1A4uigo9+Y+iEN9sMMQYwAjEuD04="
},
"npmHash": "sha256-JuVcY8iFRDWcPcP4Pg+qm5rnTXkiVfNsqSkXbDWqsE8="
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "7c855c70efe3f6ade6663c1520913fa7f63a0b2b",
"hash": "sha256-uDVYgSjxQ+xw8DHVd5UNkqnUrJ6P5ZWxL2tZToBhgQg=",
"rev": "9d2c8156a72129edca4785abb98866fad60ea338",
"hash": "sha256-RPFeHTWAeJUzbWU7QyRPmT3sqf3bAEuJ7/IJ3TP40pA=",
"recompress": true
},
"src/third_party/clang-format/script": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git",
"rev": "c2725e0622e1a86d55f14514f2177a39efea4a0e",
"hash": "sha256-f+BbQ6xIubloSzx/MhPSZ8ymCskmS+9+epDGtPjZqXc="
"rev": "6eddfb5ec5f92127a531eda66c568d3a11e7ec11",
"hash": "sha256-Cm6BOOlEyD0kdYxMSmk6Fj1Dnfs3zCzXsm+BOXgBme0="
},
"src/third_party/compiler-rt/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git",
"rev": "76287b5da8e155135536c8e3a67432d97d74fe3a",
"hash": "sha256-q6syHriTR8TCQSqTWbbAkVVK0a/i4wojdEGN7sWGxUY="
"rev": "0408cce08083f3d81379ed7d9f5bd26c03e1495b",
"hash": "sha256-kR5osTmp2girvNRVHzEKMZDCelgux9RrRuMoXMCRSGM="
},
"src/third_party/libc++/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
"rev": "7ab65651aed6802d2599dcb7a73b1f82d5179d05",
"hash": "sha256-7O/X2JW8ghkPTjmFZmT9cgG3Ui5zk3gUb436KlPww34="
"rev": "be1c391acca009d8d80535ce924e3d285451cdfa",
"hash": "sha256-zKb9PUiiBvhVhWnbQwR8uOFJ9gt3uYmfJ4M9ijpgKRc="
},
"src/third_party/libc++abi/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git",
@@ -47,13 +47,13 @@
},
"src/third_party/libunwind/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git",
"rev": "6ca46ff28e3578c57cbead6f233969eb3dabc176",
"hash": "sha256-JW4kqpVTCFDN4WZE2S5gEkX1O7eDycl+adm3KGlUoTU="
"rev": "71192be150bbe04d87bb5298512d464e38d2f654",
"hash": "sha256-PxXemxdWZoEavKDOovi67IVWEr2YW8YK2F0LXM3LZPw="
},
"src/third_party/llvm-libc/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git",
"rev": "2a826f2fda3cf8d75b47cbc3bb1d9b244f13a6ab",
"hash": "sha256-OWe2lAT5XbADWuxHgg53lZiU0My/ys86FEXvn4zlVx0="
"rev": "deb95b5e48e875920a2eaae799c8dbcd76a6a4db",
"hash": "sha256-oAgIT3+vjBrX86jgi/Pb0SCyco0lozjBjXlrKm6i56M="
},
"src/chrome/test/data/perf/canvas_bench": {
"url": "https://chromium.googlesource.com/chromium/canvas_bench.git",
@@ -72,8 +72,8 @@
},
"src/docs/website": {
"url": "https://chromium.googlesource.com/website.git",
"rev": "44319eca109f9678595924a90547c1f6650d8664",
"hash": "sha256-Trkan7bzRaLFlTkRfNGh7ssoZ3QpMh+mxQacsSM+d2I="
"rev": "c9a9ad55e9ec9934244e58a5a8cab9a295526010",
"hash": "sha256-2GKWEnlExrTzoIYMxeP4n2klLLT/phB5ZVJ5Nj3/aoY="
},
"src/media/cdm/api": {
"url": "https://chromium.googlesource.com/chromium/cdm.git",
@@ -82,8 +82,8 @@
},
"src/net/third_party/quiche/src": {
"url": "https://quiche.googlesource.com/quiche.git",
"rev": "21ffbe4c7b717d00d2d768c259b5b330fd754ac3",
"hash": "sha256-yKMmfdSBvbB3T042TJbZ1Mw+y0kyfHP0knQVFWAFPTg="
"rev": "fafc2fe9efc9f2e28a0815229fc14ca30c266ba8",
"hash": "sha256-4UmjE41MOFCBa3APDMyyJwkeV6LhHl5UsMxZpPRDsRY="
},
"src/testing/libfuzzer/fuzzers/wasm_corpus": {
"url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git",
@@ -92,8 +92,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "a101e2d1db6da927325273566fe8f5404fa3a9bd",
"hash": "sha256-uIqodvHxEY9xNse2IHNns2Mz9zLAUZSSIN7pAXB8cPs="
"rev": "ded782bca9d5f165d1c4a70124cdc5384043a8b3",
"hash": "sha256-7+Hhx/V554hO3zzGuIZswkaRVDElz7ost7vbnf2wyZc="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -102,18 +102,18 @@
},
"src/third_party/angle/third_party/rapidjson/src": {
"url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson",
"rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f",
"hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk="
"rev": "24b5e7a8b27f42fa16b96fc70aade9106cf7102f",
"hash": "sha256-oHHLYRDMb7Y/k0CwsdsxPC5lglr2IChQi0AiOMiFn78="
},
"src/third_party/angle/third_party/VK-GL-CTS/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS",
"rev": "f52e89f885064b9109501bca16c813bb29389993",
"hash": "sha256-3jx4QVR9nB3WggfrORGJGifmJQhAYVSPusa7RlR16qg="
"rev": "3fe33a325af90c1c820b1e8109f11ea0f4b60c9b",
"hash": "sha256-JgOdlwtjC5HiCWBAaeM+Ffp9KlbI7+erT0ZRZBlWxXI="
},
"src/third_party/anonymous_tokens/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git",
"rev": "fdff40da0398d2c229308aed169345f6ff1a150f",
"hash": "sha256-eJP45x3vXOG1rWvRl/0H0c2IV7nQ/9dYjAzJGHHszdc="
"rev": "208ea23596884f6d86476ea88b64e7931cdec08a",
"hash": "sha256-HLUX0mUzA3xcXbw71sIxFBNEkL8x86urcdJH2Yuuy04="
},
"src/third_party/readability/src": {
"url": "https://chromium.googlesource.com/external/github.com/mozilla/readability.git",
@@ -127,28 +127,23 @@
},
"src/third_party/dav1d/libdav1d": {
"url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git",
"rev": "d69235dd804b24c04ed05639cffcc912cd6cfd75",
"hash": "sha256-iKq6TYscIBK4ydv+0msNV3tcs82Ljk5ZNr954Qv2lII="
"rev": "5cfc3832687e3229117203905faf5425ac6bc0d7",
"hash": "sha256-MWDDrb8P5AIFszY0u5gCrK+kZlbYffIt9Y1b/thXL7I="
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "78a9030d63048d832c4b822839bffe38ad4f20e5",
"hash": "sha256-ZknkLN64TYAN5j9WsgtKlRBrAc3iCM084zpc8Zui8Ts="
"rev": "1815a06195d9c74ac737a96f87c05111926e04f8",
"hash": "sha256-71KbW0w60VB67+HM48WpOo18hrVId4/4QBDl+xl5pgo="
},
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
"rev": "043378876a67b092f5d0d3d9748660121a336dd3",
"hash": "sha256-4QSD1/uxWfYZPMjShB0h639eqAfuBRXAVfOm6BbZCBs="
"rev": "b00e6a8a88ad1b60c0a045e696301deb92c9a13e",
"hash": "sha256-uVJOf+D3bgS/CyEL1y52gvkml6VUTtNPMTU6X5/XyS4="
},
"src/third_party/dawn/third_party/dxc": {
"src/third_party/dawn/third_party/directx-shader-compiler/src": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler",
"rev": "eb67a9085c758516d940e1ce3fed0acfb6518209",
"hash": "sha256-z+yIuVweIyLdOiZDRfSppjTRoYq8S93+JNUla4Umot8="
},
"src/third_party/dawn/third_party/dxheaders": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
"rev": "980971e835876dc0cde415e8f9bc646e64667bf7",
"hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA="
"rev": "d73829d4e677ef00931e8e57de6d544396ab46cb",
"hash": "sha256-BIXNgVeF5x3BZWFWZ1Gz+zpNSOEl+hZWB0GgMEaNS2w="
},
"src/third_party/dawn/third_party/directx-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
@@ -157,33 +152,33 @@
},
"src/third_party/dawn/third_party/OpenGL-Registry/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry",
"rev": "5bae8738b23d06968e7c3a41308568120943ae77",
"hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE="
"rev": "9cb90ca4902d588bef3c830fbb1da484893bd5fb",
"hash": "sha256-mWVORjrbNFINr5WKAIDVnPs2T+96vkxWqZdJwp8oT9I="
},
"src/third_party/dawn/third_party/EGL-Registry/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry",
"rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071",
"hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A="
"rev": "3d7796b3721d93976b6bfe536aa97bbc4bce8667",
"hash": "sha256-csSV8Yp0p0UIrodbX5793uO5iZMjQfy+0D2wPif2+Fw="
},
"src/third_party/dawn/third_party/webgpu-cts": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts",
"rev": "09fdb847d90d0b5bfe57068ce2eb9283cb77fc7f",
"hash": "sha256-eTAwnTiAHq8rmbw7u9nAwSuAlS5adStUJKfITlYkcgU="
"rev": "5c6b119c4fa0d9059c45f7637df1fe26fc80a6e4",
"hash": "sha256-9DAdS2u2YtrCFJu0KTuwRJjTUNexFxdmnn7LkwQ+KiQ="
},
"src/third_party/dawn/third_party/webgpu-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers",
"rev": "7d3186c3dd2c708703524027b46b8703534ab3cc",
"hash": "sha256-yE3/mfhqc7YtVNg4f/nrUpuRUGRjOzdwl++vPvd+mvc="
"rev": "dc16b3e531cf4f31be54236d1a3e988ba5f295a2",
"hash": "sha256-tFn3OChLKsYz52Vml7WVgqyrK7SI6WR1Z2C2vvFfakI="
},
"src/third_party/highway/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/highway.git",
"rev": "84379d1c73de9681b54fbe1c035a23c7bd5d272d",
"hash": "sha256-HNrlqtAs1vKCoSJ5TASs34XhzjEbLW+ISco1NQON+BI="
"rev": "2607d3b5b0113992fe84d3848859eae13b3b52c1",
"hash": "sha256-YUYZO9KLffczjwIz3mBBceD6oM1giLCFLDHgDCevdRA="
},
"src/third_party/google_benchmark/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git",
"rev": "188e8278990a9069ffc84441cb5a024fd0bede37",
"hash": "sha256-GfqY2d+Nd7ovNrXxzTRm/AYWj7GuxIO6FawzUEzwOVA="
"rev": "8abf1e701fbd88c8170f48fe0558247e2e5f8e7d",
"hash": "sha256-M8QkA8+bckoRjlcVneYXNetmPEWEvmWy/mca5JA40Ho="
},
"src/third_party/libpfm4/src": {
"url": "https://chromium.googlesource.com/external/git.code.sf.net/p/perfmon2/libpfm4.git",
@@ -192,13 +187,13 @@
},
"src/third_party/boringssl/src": {
"url": "https://boringssl.googlesource.com/boringssl.git",
"rev": "d8be2b4a71155bf82da092ef543176351eeb59ff",
"hash": "sha256-fZc95YrREDbf0YcO6zahIjdX6TcRJANcH9MrkLIIIHw="
"rev": "65818adf16411ca394625f5747a1af28faf95d2c",
"hash": "sha256-tcTTzQnBp8Od1jdDMrFoCr9bnW0OCjGqUjH3QMnusmo="
},
"src/third_party/breakpad/breakpad": {
"url": "https://chromium.googlesource.com/breakpad/breakpad.git",
"rev": "8be0e3114685fcc1589561067282edf75ea1259a",
"hash": "sha256-igcX5XwacIwoGbqIcZKwlJYpRWl9Uc32WdpXyHO7UVA="
"rev": "afa2870e449ef33ad41545e7670c574cf70926a4",
"hash": "sha256-+N6FPtSiLQmNqf5+x5XDSksrRq/YDVSMVx5Rv1PGjfI="
},
"src/third_party/cast_core/public/src": {
"url": "https://chromium.googlesource.com/cast_core/public",
@@ -207,13 +202,13 @@
},
"src/third_party/catapult": {
"url": "https://chromium.googlesource.com/catapult.git",
"rev": "4f1d71f6841d210b3a06ab3ef2e2ed679af0ee56",
"hash": "sha256-aHlf8gw3KxbKoyyajP4w586iYybx7HSkcKtLcZIgiDE="
"rev": "6e4188cabb4f37314ea41e9adfcb2cf9b64e2641",
"hash": "sha256-/kleYYllR22KjxHT2gTMGf6LEUZ1Ud7j593fIIAgqAA="
},
"src/third_party/catapult/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "be48b5e3387780790ecc7723434b6ea6733bcc33",
"hash": "sha256-KcFUlQMltsMm4WlTVMLzZXfrvu67ffkKjmBcruwZye0="
"rev": "b7ac48f52cd298e966a76eb054412915c3e445d4",
"hash": "sha256-smtwB6vzLgCAePz0jNfrpm8TxrxBnBkigLxERhxUEvE="
},
"src/third_party/ced/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git",
@@ -232,13 +227,13 @@
},
"src/third_party/cpu_features/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git",
"rev": "936b9ab5515dead115606559502e3864958f7f6e",
"hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA="
"rev": "d3b2440fcfc25fe8e6d0d4a85f06d68e98312f5b",
"hash": "sha256-IBJc1sHHh4G3oTzQm1RAHHahsEECC+BDl14DHJ8M1Ys="
},
"src/third_party/cpuinfo/src": {
"url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git",
"rev": "7607ca500436b37ad23fb8d18614bec7796b68a7",
"hash": "sha256-LnLtCMMRg+DwB7MijBdt/tmCKD/zN5y2oTgXlYw3hTg="
"rev": "3681f0ce1446167d01dfe125d6db96ba2ac31c3c",
"hash": "sha256-PhWbzQgZSUb3eVyx+JTSnxVOAC2WzL2Dw1I9/6LEIsw="
},
"src/third_party/crc32c/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git",
@@ -247,28 +242,28 @@
},
"src/third_party/cros_system_api": {
"url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git",
"rev": "c27a09148de373889e5d2bf616c4e85a68050ae2",
"hash": "sha256-a/mAa1+if6B1FHe9crO8PDpc3o8M+CeIuXjXT0lwZOY="
"rev": "7ecd2b41460516ecd7b7d6e5c298db25e1436b6f",
"hash": "sha256-ehbAXv4DZStWDMC3iOjmWkAc4PhAamyI4C9bdXO7FfA="
},
"src/third_party/crossbench": {
"url": "https://chromium.googlesource.com/crossbench.git",
"rev": "c179f7919aade97c5cff64d14b9171736e7aaef9",
"hash": "sha256-Hxazf58z9imnGO1aj2NRtsQ+BYrfAuIuZscADpr1NVI="
"rev": "cecd70a5f49f777f603d38d11ac1f66c03c3e8af",
"hash": "sha256-zLwIY8fQVebkfN4KFMbitZODhmiN65JK2s9IG/5Cd+o="
},
"src/third_party/crossbench-web-tests": {
"url": "https://chromium.googlesource.com/chromium/web-tests.git",
"rev": "b19e4e52c33fb8a105c3fc99598b0b9b4bc59752",
"hash": "sha256-7vCQw91L2c97dnVdrJ53zL8hi0KZffDJJjk7GaG3b/U="
"rev": "baf176aadedccc44329231d5dd40346874c2a63e",
"hash": "sha256-oY1/uGB6ykePIklWe35rmJWsnpu/wjkER4TJeP4TTdw="
},
"src/third_party/depot_tools": {
"url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git",
"rev": "41c40cfaec7ee3bf0423c59925d8b23982a601f1",
"hash": "sha256-s9uvmYHCJKWnNhztmOPb+OHj/HbGo30PupwT4mHWjnM="
"rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90",
"hash": "sha256-Ttklyw6IdNeMExlzeiQg/qsCkTmqVhUJ34MFgYmCWD4="
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "1fb83ff123c44ab59a480056c8c1ba3d33c2caf0",
"hash": "sha256-S6agM7HMZ2g2W6e9tYdLSXr0Lc6zeQF9hAYLIeImAYQ="
"rev": "33c2f401a9c8ddad2159eb0ab83aa244a5247361",
"hash": "sha256-M9aULI+HECgA0ptAG47OPK0QuB+xzmb29iOtJ3whpB0="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@@ -282,8 +277,8 @@
},
"src/third_party/eigen3/src": {
"url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git",
"rev": "a3074053a614df7a3896cb4edbcba40222a5f549",
"hash": "sha256-9AHpSqemqdwXoMiP3hH1YuEd3+nrudeVGTpInw+8BU4="
"rev": "2cf9891537250255f50df5109ffe9e700e2a73de",
"hash": "sha256-1bu1Y9itHIKcwY5J0sF08DSyfElLHiZ6SRsNZkFjz8o="
},
"src/third_party/farmhash/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git",
@@ -292,18 +287,18 @@
},
"src/third_party/fast_float/src": {
"url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git",
"rev": "cb1d42aaa1e14b09e1452cfdef373d051b8c02a4",
"hash": "sha256-CG5je117WYyemTe5PTqznDP0bvY5TeXn8Vu1Xh5yUzQ="
"rev": "05087a303dad9c98768b33c829d398223a649bc6",
"hash": "sha256-ZQm8kDMYdwjKugc2vBG5mwTqXa01u6hODQc/Tai2I9A="
},
"src/third_party/federated_compute/src": {
"url": "https://chromium.googlesource.com/external/github.com/google-parfait/federated-compute.git",
"rev": "eb170f645b270c7979edb863fd2cf8edab2b2fd1",
"hash": "sha256-Cp0WQBbqWvPdrKCMQhH4Z6zl6YlIPLjafWZEwdkYWlc="
"rev": "3112513bf1a80872311e7718c5385f535a819b89",
"hash": "sha256-jnG3PCxjaYcClRgzOfIkHbbD3xU9TDLyQR3VZUwHIgU="
},
"src/third_party/ffmpeg": {
"url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git",
"rev": "b5e18fb9da84e26ceef30d4e4886696bf59337c0",
"hash": "sha256-JHAicFKBvtkwmZPRBKYPT6JVqYqF8hyXxU0H7kfgCBs="
"rev": "f45bab87ce4c5fafc67fd53fcde777578d01bfa0",
"hash": "sha256-fsZSqmG6vFOPJYuBgG6OSWkzRu27B3mv/PqAP8s4ARk="
},
"src/third_party/flac": {
"url": "https://chromium.googlesource.com/chromium/deps/flac.git",
@@ -332,8 +327,8 @@
},
"src/third_party/freetype/src": {
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
"rev": "6d9fc45fc4bca8aef0b8f65592520673638c3334",
"hash": "sha256-A21ONLz8HxoBkOL/jHfs5YwePmOnFyNdlNYSJa9wers="
"rev": "b6bcd2177f72bb4842c7701d7b7f633bb3fc951a",
"hash": "sha256-TUz3yUD9HxqUMCOpLk74rEf8J0tMTh4ZCuD94AD4+q4="
},
"src/third_party/fxdiv/src": {
"url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git",
@@ -342,18 +337,13 @@
},
"src/third_party/harfbuzz/src": {
"url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
"rev": "67bb413f586f36ba44d740319cb7a28b3d283ea6",
"hash": "sha256-WCPEkbiiU8dENM+ik0KokW9Uxmz0xlsRFVVPPOEOZXw="
"rev": "e6741e2205309752839da60ff075b7fa2e7cddd3",
"hash": "sha256-XjUuY17fcZi+dIZFojq+eDsDVrBxtAWRydPdudt56+8="
},
"src/third_party/ink/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink.git",
"rev": "9d5367423281a8fcf5bc1c418e20477a992b270a",
"hash": "sha256-uDaK/cDA52Cn+ioPW2bXAJze1eW8TK3xF7+bl/Ylh6Y="
},
"src/third_party/ink_stroke_modeler/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git",
"rev": "da42d439389c90ec7574f0381ec53e7f5be0c2eb",
"hash": "sha256-W5HgVe0v9O/EuhpKMHp83PLq4p6cuBul3QUGLYdF6rY="
"rev": "a988417b6d0b1ea03fb0b40269fbc42313acc6fd",
"hash": "sha256-6O+N/ULn8sqsdgFw7VZ7TMjWvCAZbYo398PruPScU/k="
},
"src/third_party/instrumented_libs": {
"url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git",
@@ -417,8 +407,8 @@
},
"src/third_party/fuzztest/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git",
"rev": "800c545cf9d6e9c01328a1974f93a7e6564a74fd",
"hash": "sha256-Pvz+CWTBcWE0N0yfNGZhXDgUrGeIaCNfEjP1jYmF6G0="
"rev": "e24a91020ab19c3d6f590bd0911b7acb492f81be",
"hash": "sha256-wFjuvJzGEaal+pIo5UtkdLHYTpoWxRE6Vf5OGLObGQk="
},
"src/third_party/domato/src": {
"url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git",
@@ -432,13 +422,13 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "343cee0a952f8c7d329e59ff3ac2c8bdbe70ec6a",
"hash": "sha256-H8Eu3BiUIiZcyReGDyFq9UvjdMJOX00ERjru8+I0zL8="
"rev": "33dba9e12a9f12e737eaa7c2624e8c580950a89a",
"hash": "sha256-01DbV0kQFg1yyFpVeo82KBoZHhizA7xnZ1qOuu4HTcs="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
"rev": "7466a44ac80893803d4a7168b98dc6cd02d1fe2d",
"hash": "sha256-x1MRNtGLmwlRNenoQKz2Bgm3J5eHlNiJZtzhT9lttmk="
"rev": "c433c9a32320aed983e4106931596fbbae3f77ee",
"hash": "sha256-yw1cXB6s6biD2vj2K/3sVbKiaNK7bt+NkbQovbYlJ2Q="
},
"src/third_party/nearby/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git",
@@ -492,8 +482,8 @@
},
"src/third_party/cros-components/src": {
"url": "https://chromium.googlesource.com/external/google3/cros_components.git",
"rev": "fb512780dcc5ba4b5be9e8a3118919002077c760",
"hash": "sha256-7wx73HZ6aqXQvLxwX6XnJAPefi/t47gIhvDH3FRT1j4="
"rev": "e580888fcc1c108e25c218ccf8b7a4372de18d57",
"hash": "sha256-p0Wfvhg/j8v9xL9Pueo7xPVHBKowOLI00AeIZXPQw4k="
},
"src/third_party/libdrm/src": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git",
@@ -520,20 +510,20 @@
"rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376",
"hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY="
},
"src/third_party/libphonenumber/dist": {
"src/third_party/libphonenumber/src": {
"url": "https://chromium.googlesource.com/external/libphonenumber.git",
"rev": "9d46308f313f2bf8dbce1dfd4f364633ca869ca7",
"hash": "sha256-ZbuDrZEUVp/ekjUP8WO/FsjAomRjeDBptT4nQZvTVi4="
"rev": "ade546d8856475d0493863ee270eb3be9628106b",
"hash": "sha256-cLtsM35Ir3iG3j8+Cy2McL1ysRB0Y1PXealAKl05Twg="
},
"src/third_party/libprotobuf-mutator/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git",
"rev": "7bf98f78a30b067e22420ff699348f084f802e12",
"hash": "sha256-EaEC6R7SzqLw4QjEcWXFXhZc84lNBp6RSa9izjGnWKE="
"rev": "c1c950eae0440c3808f2b8bd7c57d0c6a42c1a90",
"hash": "sha256-Su1SPr/GEFi7/N8/HrFkVbGfWH0vYdcJ5/on8zLMcyU="
},
"src/third_party/libsrtp": {
"url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git",
"rev": "e8383771af8aa4096f5bcfe3743a5ea128f88a9a",
"hash": "sha256-xC//VEFrI94nCkyLnRa6uQ+hJQqe41v0Qjm4LJ7K84I="
"rev": "cd5d177bf1fde755ddb4c7f0d9ff7693f8b49e5e",
"hash": "sha256-6tIbthIcUw58AgaNzvSenZPp/e5vHVTp5K2bpPF+Zg0="
},
"src/third_party/libsync/src": {
"url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git",
@@ -547,13 +537,13 @@
},
"src/third_party/libvpx/source/libvpx": {
"url": "https://chromium.googlesource.com/webm/libvpx.git",
"rev": "47ac1ec7f3de7d7cb3d070844c427c8f1fa9d6fc",
"hash": "sha256-RyYnkLYafiS6kQKeOmzohtxFRXudDzgEmQkG+qKHozc="
"rev": "640d4ce27ba918783e28a0da46a8a37abe4a65b6",
"hash": "sha256-uCa/MEfw2s05kK91uubi/TqztHulwattzt1vfr0LR4E="
},
"src/third_party/libwebm/source": {
"url": "https://chromium.googlesource.com/webm/libwebm.git",
"rev": "b7a1e4767fbb02ad467f45ba378e858e897028da",
"hash": "sha256-Lzfs15Us8MDDQYvLRVf6xKg9A76aXPnTukx/A8Mf7rw="
"rev": "6184f4484a826724b5293837134ab9492261b941",
"hash": "sha256-zXPuisCv2KkGQq23qTNhHeXpyCClUIeyjHra08DHJIw="
},
"src/third_party/libwebp/src": {
"url": "https://chromium.googlesource.com/webm/libwebp.git",
@@ -562,8 +552,8 @@
},
"src/third_party/libyuv": {
"url": "https://chromium.googlesource.com/libyuv/libyuv.git",
"rev": "30809ff64a9ca5e45f86439c0d474c2d3eef3d05",
"hash": "sha256-DW7PuRqA1x0K8/uJbxBJ4Cn9YEPFhZ9vhuGVVyGKK98="
"rev": "a7849e8a5e9c996bef2332efae897e7301055a20",
"hash": "sha256-ftOTwWULKNplqjQQ9oM9t+PU3S6/ySDOBoE5E/HWuHg="
},
"src/third_party/lss": {
"url": "https://chromium.googlesource.com/linux-syscall-support.git",
@@ -582,13 +572,13 @@
},
"src/third_party/nasm": {
"url": "https://chromium.googlesource.com/chromium/deps/nasm.git",
"rev": "45252858722aad12e545819b2d0f370eb865431b",
"hash": "sha256-0KsHYi76IaVNwk0dBhem2AnUXd9PpeS+jUsY+zPmeJ8="
"rev": "358842b6b7dd69b2ed635bef17f941e030a05e5f",
"hash": "sha256-YwjwubijMZ9OvYeMUVMSunWZ2VCuqUFEOyv/MK/oojc="
},
"src/third_party/neon_2_sse/src": {
"url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git",
"rev": "662a85912e8f86ec808f9b15ce77f8715ba53316",
"hash": "sha256-4OzG4wIPwnKbFD9LG+stxHt5O4qB85ZIXVeSrNqDAyM="
"rev": "ed59be8546632d5126ff69c87122ae5de20ffe4f",
"hash": "sha256-ydHSMPJS+axvW7KIR/9SLWNFq/lP67dpg9Yt7shLCng="
},
"src/third_party/openh264/src": {
"url": "https://chromium.googlesource.com/external/github.com/cisco/openh264",
@@ -597,8 +587,8 @@
},
"src/third_party/openscreen/src": {
"url": "https://chromium.googlesource.com/openscreen",
"rev": "448a19d1f24e0f8ce85ad0c1c6a50cf370ae69d7",
"hash": "sha256-hRDFnoqAH4HoWZ3oTWlzNge2nwlxpUC/GEq0MQVzBw8="
"rev": "684bcd767271a21f3e5d475b17a0fd862f16c65e",
"hash": "sha256-Yjz2E1/h+zp7L2x0zE0l+ktQIiSrJ4ZknXOhaVPKQVE="
},
"src/third_party/openscreen/src/buildtools": {
"url": "https://chromium.googlesource.com/chromium/src/buildtools",
@@ -612,13 +602,13 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "72ea487e4399c44c3a53a48b104f9612ca772008",
"hash": "sha256-0VgmDPyF5k81nBXdo88CcIIbz6XRhaiADnG8gwDGZZk="
"rev": "74d747ce1d383caca3ec0e604d77bac35ccd1e58",
"hash": "sha256-qMY6L93hlnMgGZ5Blk5ldDnI/LUXYyuk+b7FXCiVV6s="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
"rev": "46432bb2a7a60e10fcee516f1692e6846d098a8d",
"hash": "sha256-jVih4xWota4SZQi4yEtaIP+4qgD03OsELt2aaulIXik="
"rev": "846203c4b3b25f834a0bebc101fa8e1b8f9d0ca9",
"hash": "sha256-YOgOau9vNrOOqyUf6WylI/oQ2drCxoW7jnrHt7fAfQM="
},
"src/third_party/protobuf-javascript/src": {
"url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript",
@@ -627,8 +617,8 @@
},
"src/third_party/pthreadpool/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git",
"rev": "9003ee6c137cea3b94161bd5c614fb43be523ee1",
"hash": "sha256-Es9QNblzo5b+x4K7myQJwIiUKvqyP16QExWPhGqqDO8="
"rev": "a56dcd79c699366e7ac6466792c3025883ff7704",
"hash": "sha256-WfyuPfII4eSmLskZV0TAcu4K6OyW38TjkDHm+VUx5eY="
},
"src/third_party/pyelftools": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git",
@@ -657,13 +647,13 @@
},
"src/third_party/search_engines_data/resources": {
"url": "https://chromium.googlesource.com/external/search_engines_data.git",
"rev": "2ecec7b3a56bcb5d7a4a1fc9bc71d7e1cda2a8d1",
"hash": "sha256-UPP47dgdXxr+LPvTcEc6gi89OxmvdKD3CdwV4wKXvwQ="
"rev": "2345fee6ce4ae24d9c365d5c0884ece593c55c67",
"hash": "sha256-5qkra6FURaMvEOk+ZKMRH1hc8ixEnk3u4rxNm0G8tuQ="
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "03c3234e64f9fbbbcf6a7b9c79e94059df49dbfe",
"hash": "sha256-e0MSCbqv4u4995nowzipKorkn6mPpO7tf8+ygj3/nFY="
"rev": "53348aa333da02b77c4b5797e2de722f5abde7d0",
"hash": "sha256-Qh0ytA45zP67VQE417iUtjPcJmJmDzcu4BAatyh6p0w="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -682,8 +672,8 @@
},
"src/third_party/swiftshader": {
"url": "https://swiftshader.googlesource.com/SwiftShader.git",
"rev": "89556131bf9d48af3c5c9fbb9a3322e706da89a3",
"hash": "sha256-h0utcwCnzwhFufggkBNeA674x2Kqwu4sz3jQ/9eoQv0="
"rev": "f9d5d49a3c599a315e3493dc1e9b5309cffb3305",
"hash": "sha256-kBfqgXXJeEPT80mu6CJ2Bwmdv/y8jVzM6TedMXbzo4o="
},
"src/third_party/text-fragments-polyfill/src": {
"url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git",
@@ -692,23 +682,23 @@
},
"src/third_party/tflite/src": {
"url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git",
"rev": "de8d7f65b6eb670e4dad0225d0d6f99bebaab559",
"hash": "sha256-r2b+/VBffxsh1sRM2xcFiBx9K6GD6FsaQXpfFMBFUag="
"rev": "2216f531fb72119745382c62f232acf9790f4b6e",
"hash": "sha256-zySLNPmug5HS5pwJ/lEMAWjjZSOuxdTgup7Y90k7NZI="
},
"src/third_party/litert/src": {
"url": "https://chromium.googlesource.com/external/github.com/google-ai-edge/LiteRT.git",
"rev": "588075c77c6895cce6397d41d2890b1aa0a14372",
"hash": "sha256-rcEPZNSV0DiDrmoBCtJ07wFzzpmpM93jG4jYaEdNWvI="
"rev": "9b5418dd7a1a318eed20395743dcc868df17d8b0",
"hash": "sha256-80amwDPF3RrcoTaTQsunNmlvBGs6KCv369FW3J/Xcts="
},
"src/third_party/vulkan-deps": {
"url": "https://chromium.googlesource.com/vulkan-deps",
"rev": "0ced1107c62836f439f684a5696c4bd69e09fce3",
"hash": "sha256-VOyN618wzyyO2Wh18gCnw+FCr/NbegX3A/54MClyhwc="
"rev": "d234b7b29748c07ef389279dd24f533ebd04cadc",
"hash": "sha256-w49HOjPixSI/C5IGlxQMj/Ol9f/Lr2zI2oMhQzzu1zk="
},
"src/third_party/glslang/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang",
"rev": "715c8500e7cd67f2eba9e60e98852a1ed49d2f15",
"hash": "sha256-vSbMdTjlRVvYLi5ZvTVmfe76oAQ4AhqyD+ohvkvIYIs="
"rev": "458ff50a67cb69371850068a62b78f1990a1ff9a",
"hash": "sha256-2WauVjAEeZn16b4fE4ImKPX3wjDmeN92mqWi3NMiXSw="
},
"src/third_party/spirv-cross/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross",
@@ -717,38 +707,38 @@
},
"src/third_party/spirv-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers",
"rev": "6dd7ba990830f7c15ac1345ff3b43ef6ffdad216",
"hash": "sha256-UKBVs2s05hP+paPq1dZFaUEQQ9Kx9acHxYUyJVx22eY="
"rev": "126038020c2bd47efaa942ccc364ca5353ffccde",
"hash": "sha256-QBX2M+ZSWgVvCx58NeDIdf6mIkdJbecDktBfUWGPvNc="
},
"src/third_party/spirv-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools",
"rev": "2d14d2e76aa7de72404b17078eda15c20a6a0389",
"hash": "sha256-8Xtzq8WOdFEw+uEJqMW39LLHt2m165K9OJsIFZuifoM="
"rev": "2ec8457ab33d539b6f1fecc998360c0b8b05ed4f",
"hash": "sha256-9TBb/gnDXgZRZXhF27KEQ0XQI5itRHKJQjLrkFDQq7Q="
},
"src/third_party/vulkan-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers",
"rev": "afe9eb980aa928a66d1c9c06f38c55dd59868720",
"hash": "sha256-/yolWlC7ruRiJ0gSdCoSlqL9+j2uJAh+o+H0OG37pq4="
"rev": "f6a6f7ab165cedbfa2a7d0c93fe27a2d01ce09c8",
"hash": "sha256-ZbjmxbRUiVJADNRWziCH0UIM09qKf+lm9PRnWOhZFhQ="
},
"src/third_party/vulkan-loader/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader",
"rev": "df84d2be47457a8dfd7eb66f8c2b031683bd1ba5",
"hash": "sha256-8ParcURRRU3eS9Oej/vHTwOwvYy3HsVJsKh2wQLKUgM="
"rev": "15a84652b94e465e9a7b25eb507193929863bc2f",
"hash": "sha256-pdC3YCM0Nzeabi5TPD+qR5PVdsxmWMnf2L9HsOcbv84="
},
"src/third_party/vulkan-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools",
"rev": "90bf5bc4fd8bea0d300f6564af256a51a34124b8",
"hash": "sha256-tmTD/waVX/duaKXvj0FNUS+ncL1agM73kK7pEfHEsSA="
"rev": "7c46da2b39036a80ce088576d5794bf39e667f56",
"hash": "sha256-nAyNVveeGg9sA0E37YiEPm+UdKsy48nAOjnUYHQnuqw="
},
"src/third_party/vulkan-utility-libraries/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries",
"rev": "48b1fd1a65e436bae806cb6180c9338846b9de97",
"hash": "sha256-B3GXmwJEvnGcER5DJt0FGrwqNi3t8iV6VgX8uOrExlU="
"rev": "2c909c1ab6f9c6caba39a84a4887186b3fafdead",
"hash": "sha256-k3xeKHQbd2rTQJsOZKXEMPrYjcHwoCC1N12F6AIP6Ho="
},
"src/third_party/vulkan-validation-layers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers",
"rev": "ac146eef210b6f52b842111c5d3419ab32a7293f",
"hash": "sha256-GqjVHxtda1a47+9G+nqh4qNMJmQaUdZNMUGQ8kAIIkk="
"rev": "b105d8ea361af258abed65efb5a1565c031dcf1c",
"hash": "sha256-GgznBGYgnCFMNaqAOQ15dlw2dOFfSp3mAV2KokVLzgk="
},
"src/third_party/vulkan_memory_allocator": {
"url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
@@ -787,23 +777,23 @@
},
"src/third_party/webgpu-cts/src": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git",
"rev": "09fdb847d90d0b5bfe57068ce2eb9283cb77fc7f",
"hash": "sha256-eTAwnTiAHq8rmbw7u9nAwSuAlS5adStUJKfITlYkcgU="
"rev": "3b327ebc44f11212fd3872972a6dd394634fb9e3",
"hash": "sha256-RSZVKv2Z0pg2cGa3Elr2r5VZqdxlRJ+6mzm1Au1qg1I="
},
"src/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "be48b5e3387780790ecc7723434b6ea6733bcc33",
"hash": "sha256-KcFUlQMltsMm4WlTVMLzZXfrvu67ffkKjmBcruwZye0="
"rev": "b7ac48f52cd298e966a76eb054412915c3e445d4",
"hash": "sha256-smtwB6vzLgCAePz0jNfrpm8TxrxBnBkigLxERhxUEvE="
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "e3ee86921c57b9f8921045e77f098604803cb66c",
"hash": "sha256-n39HENOXmatsZLF6jdYRsb+wl2cM0i6ngT4Zbyu5ayE="
"rev": "5a7e0ff57a52e12f834d64c57d040d1105ea17f2",
"hash": "sha256-V1accCSU6LV5Ixhd+HBOvqZ7GxT57ALsvaF8ABLIXxM="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
"rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8",
"hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw="
"rev": "50869df0ea703b4f41b238bfe26aec6ec9c86889",
"hash": "sha256-V7inWJqH7Q4Ac/ZB//7XHrpgfAYUPBxWBerBem6Q/Kk="
},
"src/third_party/weston/src": {
"url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git",
@@ -812,8 +802,13 @@
},
"src/third_party/xnnpack/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git",
"rev": "1812bbe2928a32f26c5e48466712ba6460cf290c",
"hash": "sha256-xal21wjgeql3MjQXw6F1ezcRsnhVKod5jv0nYWroJ1o="
"rev": "2ad25fc09167df69c6c02eb8082a0b9658dd5e80",
"hash": "sha256-vBMGBXzJPCcsc2kMyGecjti68oZHWUwJKd7tkKub6kg="
},
"src/third_party/libei/src": {
"url": "https://chromium.googlesource.com/external/gitlab.freedesktop.org/libinput/libei.git",
"rev": "5d6d8e6590df210b75559a889baa9459c68d9366",
"hash": "sha256-lSrIC93Cke90/Xc8dqd3e/TU32tflYHYqc5fE8wglBI="
},
"src/third_party/zstd/src": {
"url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git",
@@ -822,8 +817,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "5e24a1fd6ffb840b93ee90a800897fcb4d60eeab",
"hash": "sha256-JcBGaXhqNRIA4NPPV4eANVM93wsQ9QxSLO/Ecz3wklU="
"rev": "5a39b146dd810a52812202fae891281d5dc4db7d",
"hash": "sha256-UbX88nE4VyWUm4PvFTOy3mC04MzSdgC006ZpQrEY8cQ="
}
}
},
@@ -0,0 +1,30 @@
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index f977c9fed76e6f50c50351ca22128e8c8c8897b1..81460f3591b734f3354a6f9ac7bb0990e5b28889 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -589,7 +589,7 @@ config("compiler") {
# Flags for diagnostics.
cflags += [ "-fcolor-diagnostics" ]
if (!is_win) {
- cflags += [ "-fdiagnostics-show-inlining-chain" ]
+ cflags += [ ]
} else {
# Combine after https://github.com/llvm/llvm-project/pull/192241
cflags += [ "/clang:-fdiagnostics-show-inlining-chain" ]
@@ -1911,7 +1911,7 @@ config("clang_warning_suppression") {
# See also: https://crbug.com/40891132#comment10
ubsan_hardening("c_array_bounds") {
sanitizer = "array-bounds"
- condition = !(is_asan && target_cpu == "x86")
+ condition = false
# Because we've enabled array-bounds sanitizing we also want to suppress
# the related warning about "unsafe-buffer-usage-in-static-sized-array",
@@ -1925,6 +1925,7 @@ ubsan_hardening("c_array_bounds") {
# `NOTREACHED()` at the end of such functions.
ubsan_hardening("return") {
sanitizer = "return"
+ condition = false
}
config("rustc_revision") {
@@ -0,0 +1,12 @@
diff --git a/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc b/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc
index 58ab0db508f73dbac36a84cb71ffdad972b3fc3c..b5b97f6c6b22a79fd5e4e53393859a107cc0f399 100644
--- a/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc
+++ b/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc
@@ -7,6 +7,7 @@
#include <dlfcn.h>
#include <sys/stat.h>
+#include "base/logging.h"
#include "base/process/process_metrics.h"
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
@@ -155,13 +155,13 @@
"vendorHash": "sha256-SO3CX7pZ+q7ytz/55cxTPlW7ByY1zKhxkQxMiqAvm8o="
},
"checkly_checkly": {
"hash": "sha256-v9px/k2b6zUza8ZvoOfxQLNyofcIKOLYVmGAmkyA3TQ=",
"hash": "sha256-C85OWP4y5Kh4coaUwxW07bgQWrB6LntEKtXia3Xu7Bg=",
"homepage": "https://registry.terraform.io/providers/checkly/checkly",
"owner": "checkly",
"repo": "terraform-provider-checkly",
"rev": "v1.23.0",
"rev": "v1.24.0",
"spdx": null,
"vendorHash": "sha256-fY1oLzNYYNmUvOVNCWZlo2pvn2SgGjc4JnMORZdt/ss="
"vendorHash": "sha256-CkrDrGP20Gby2wWsl+un3hp3u5gAmWOpjzgs9HQytjg="
},
"ciscodevnet_aci": {
"hash": "sha256-Z3qat3S7dv5kGpc82RxAwlgp3hfscFbkokVsgGnBRHY=",
@@ -17,8 +17,6 @@ let
pnpmLatest = pnpm;
supportedFetcherVersions = [
1 # First version. Here to preserve backwards compatibility
2 # Ensure consistent permissions. See https://github.com/NixOS/nixpkgs/pull/422975
3 # Build a reproducible tarball. See https://github.com/NixOS/nixpkgs/pull/469950
4 # Dump SQLite database to an SQL file. See https://github.com/NixOS/nixpkgs/pull/522703
];
@@ -63,178 +61,167 @@ in
fetcherVersion != null
|| throw "fetchPnpmDeps: `fetcherVersion` is not set, see https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion.";
assert
!(fetcherVersion == 1 || fetcherVersion == 2)
|| throw "fetchPnpmDeps: `fetcherVersion = ${toString fetcherVersion}` was removed in the 26.11 release. Please migrate `${pname}` to `fetcherVersion = 3` and regenerate the hash. See https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion.";
assert
builtins.elem fetcherVersion supportedFetcherVersions
|| throw "fetchPnpmDeps `fetcherVersion` is not set to a supported value (${lib.concatStringsSep ", " (map toString supportedFetcherVersions)}), see https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion.";
lib.warnIf (fetcherVersion < 3)
"fetchPnpmDeps: `fetcherVersion = ${toString fetcherVersion}` is deprecated and scheduled for removal in the 26.11 release. Please migrate `${pname}` to `fetcherVersion = 3` and regenerate the hash. See https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion."
stdenvNoCC.mkDerivation
stdenvNoCC.mkDerivation (
finalAttrs:
(
finalAttrs:
(
args'
// {
name = "${pname}-pnpm-deps";
args'
// {
name = "${pname}-pnpm-deps";
nativeBuildInputs = [
cacert
jq
moreutils
pnpm # from args
pnpm-fixup-state-db'
sqlite
writableTmpDirAsHomeHook
yq
zstd
]
++ args.nativeBuildInputs or [ ];
nativeBuildInputs = [
cacert
jq
moreutils
pnpm # from args
pnpm-fixup-state-db'
sqlite
writableTmpDirAsHomeHook
yq
zstd
]
++ args.nativeBuildInputs or [ ];
impureEnvVars =
lib.fetchers.proxyImpureEnvVars ++ [ "NIX_NPM_REGISTRY" ] ++ args.impureEnvVars or [ ];
impureEnvVars =
lib.fetchers.proxyImpureEnvVars ++ [ "NIX_NPM_REGISTRY" ] ++ args.impureEnvVars or [ ];
installPhase = ''
runHook preInstall
installPhase = ''
runHook preInstall
versionAtLeast () {
local cur_version=$1 min_version=$2
printf "%s\0%s" "$min_version" "$cur_version" | sort -zVC
}
versionAtLeast () {
local cur_version=$1 min_version=$2
printf "%s\0%s" "$min_version" "$cur_version" | sort -zVC
}
lockfileVersion="$(yq -r .lockfileVersion pnpm-lock.yaml)"
if [[ ''${lockfileVersion:0:1} -gt ${lib.versions.major pnpm.version} ]]; then
echo "ERROR: lockfileVersion $lockfileVersion in pnpm-lock.yaml is too new for the provided pnpm version ${lib.versions.major pnpm.version}!"
exit 1
lockfileVersion="$(yq -r .lockfileVersion pnpm-lock.yaml)"
if [[ ''${lockfileVersion:0:1} -gt ${lib.versions.major pnpm.version} ]]; then
echo "ERROR: lockfileVersion $lockfileVersion in pnpm-lock.yaml is too new for the provided pnpm version ${lib.versions.major pnpm.version}!"
exit 1
fi
# The pnpm store is bundled into a compressed tarball within $out,
# without distributing the uncompressed store files.
mkdir $out
storePath=$(mktemp -d)
pushd "$HOME"
pnpmVersion=$(pnpm --version)
if versionAtLeast "$pnpmVersion" "11"; then
# pnpm 11 uses a different mechanism to manage package manager versions
export pnpm_config_pm_on_fail=ignore
# Some packages produce platform dependent outputs. We do not want to cache those in the global store
export pnpm_config_side_effects_cache=false
export pnpm_config_update_notifier=false
else
pnpm config set manage-package-manager-versions false
pnpm config set side-effects-cache false
pnpm config set update-notifier false
fi
popd
pnpm config set store-dir $storePath
# Run any additional pnpm configuration commands that users provide.
${prePnpmInstall}
echo "Final pnpm config:"
pnpm config list
echo
# pnpm is going to warn us about using --force
# --force allows us to fetch all dependencies including ones that aren't meant for our host platform
pnpm install \
--force \
--ignore-scripts \
${lib.escapeShellArgs filterFlags} \
${lib.escapeShellArgs pnpmInstallFlags} \
--registry="$NIX_NPM_REGISTRY" \
--frozen-lockfile
# Record the fetcherVersion in the output for introspection.
echo ${toString fetcherVersion} > $out/.fetcher-version
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
# Remove timestamp and sort the json files
rm -rf $storePath/{v3,v10,v11}/tmp
for f in $(find $storePath -name "*.json"); do
jq --sort-keys "del(.. | .checkedAt?)" $f | sponge $f
done
if [ -f "$storePath/v11/index.db" ]; then
pnpm-fixup-state-db "$storePath/v11";
# Dump the SQLite database to a SQL text file for reproducibility.
# SQLite's binary format is non-deterministic (version-valid-for number, etc),
# so we store the logical contents as SQL statements and reconstruct during build.
if [[ ${toString fetcherVersion} -ge 4 ]]; then
sqlite3 "$storePath/v11/index.db" .dump > "$storePath/v11/index.db.sql"
rm "$storePath/v11/index.db"
fi
fi
# For fetcherVersion < 3, the pnpm store files are placed directly into $out.
# For fetcherVersion >= 3, it is bundled into a compressed tarball within $out,
# without distributing the uncompressed store files.
if [[ ${toString fetcherVersion} -ge 3 ]]; then
mkdir $out
storePath=$(mktemp -d)
else
storePath=$out
fi
# This folder contains symlinks to /build/source which we don't need
# since https://github.com/pnpm/pnpm/releases/tag/v10.27.0
rm -rf $storePath/{v3,v10,v11}/projects
pushd "$HOME"
pnpmVersion=$(pnpm --version)
# Ensure consistent permissions
# NOTE: For reasons not yet fully understood, pnpm might create files with
# inconsistent permissions, for example inside the ubuntu-24.04
# github actions runner.
# To ensure stable derivations, we need to set permissions
# consistently, namely:
# * All files with `-exec` suffix have 555.
# * All other files have 444.
# * All folders have 555.
# See https://github.com/NixOS/nixpkgs/pull/350063
# See https://github.com/NixOS/nixpkgs/issues/422889
find $storePath -type f -name "*-exec" -print0 | xargs --no-run-if-empty -0 chmod 555
find $storePath -type f -not -name "*-exec" -print0 | xargs --no-run-if-empty -0 chmod 444
find $storePath -type d -print0 | xargs --no-run-if-empty -0 chmod 555
if versionAtLeast "$pnpmVersion" "11"; then
# pnpm 11 uses a different mechanism to manage package manager versions
export pnpm_config_pm_on_fail=ignore
(
cd $storePath
# Some packages produce platform dependent outputs. We do not want to cache those in the global store
export pnpm_config_side_effects_cache=false
# Build a reproducible tarball, per instructions at https://reproducible-builds.org/docs/archives/
tar --sort=name \
--mtime="@$SOURCE_DATE_EPOCH" \
--owner=0 --group=0 --numeric-owner \
--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
--zstd -cf $out/pnpm-store.tar.zst .
)
export pnpm_config_update_notifier=false
else
pnpm config set manage-package-manager-versions false
pnpm config set side-effects-cache false
pnpm config set update-notifier false
fi
popd
runHook postFixup
'';
pnpm config set store-dir $storePath
# Run any additional pnpm configuration commands that users provide.
${prePnpmInstall}
echo "Final pnpm config:"
pnpm config list
echo
# pnpm is going to warn us about using --force
# --force allows us to fetch all dependencies including ones that aren't meant for our host platform
pnpm install \
--force \
--ignore-scripts \
${lib.escapeShellArgs filterFlags} \
${lib.escapeShellArgs pnpmInstallFlags} \
--registry="$NIX_NPM_REGISTRY" \
--frozen-lockfile
# Store newer fetcherVersion in case pnpmConfigHook also needs it
if [[ ${toString fetcherVersion} -gt 1 ]]; then
echo ${toString fetcherVersion} > $out/.fetcher-version
fi
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
# Remove timestamp and sort the json files
rm -rf $storePath/{v3,v10,v11}/tmp
for f in $(find $storePath -name "*.json"); do
jq --sort-keys "del(.. | .checkedAt?)" $f | sponge $f
done
if [ -f "$storePath/v11/index.db" ]; then
pnpm-fixup-state-db "$storePath/v11";
# Dump the SQLite database to a SQL text file for reproducibility.
# SQLite's binary format is non-deterministic (version-valid-for number, etc),
# so we store the logical contents as SQL statements and reconstruct during build.
if [[ ${toString fetcherVersion} -ge 4 ]]; then
sqlite3 "$storePath/v11/index.db" .dump > "$storePath/v11/index.db.sql"
rm "$storePath/v11/index.db"
fi
fi
# This folder contains symlinks to /build/source which we don't need
# since https://github.com/pnpm/pnpm/releases/tag/v10.27.0
rm -rf $storePath/{v3,v10,v11}/projects
# Ensure consistent permissions
# NOTE: For reasons not yet fully understood, pnpm might create files with
# inconsistent permissions, for example inside the ubuntu-24.04
# github actions runner.
# To ensure stable derivations, we need to set permissions
# consistently, namely:
# * All files with `-exec` suffix have 555.
# * All other files have 444.
# * All folders have 555.
# See https://github.com/NixOS/nixpkgs/pull/350063
# See https://github.com/NixOS/nixpkgs/issues/422889
if [[ ${toString fetcherVersion} -ge 2 ]]; then
find $storePath -type f -name "*-exec" -print0 | xargs --no-run-if-empty -0 chmod 555
find $storePath -type f -not -name "*-exec" -print0 | xargs --no-run-if-empty -0 chmod 444
find $storePath -type d -print0 | xargs --no-run-if-empty -0 chmod 555
fi
if [[ ${toString fetcherVersion} -ge 3 ]]; then
(
cd $storePath
# Build a reproducible tarball, per instructions at https://reproducible-builds.org/docs/archives/
tar --sort=name \
--mtime="@$SOURCE_DATE_EPOCH" \
--owner=0 --group=0 --numeric-owner \
--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
--zstd -cf $out/pnpm-store.tar.zst .
)
fi
runHook postFixup
'';
passthru = args.passthru or { } // {
inherit fetcherVersion;
serve = callPackage ./serve.nix {
inherit pnpm; # from args
pnpmDeps = finalAttrs.finalPackage;
};
passthru = args.passthru or { } // {
inherit fetcherVersion;
serve = callPackage ./serve.nix {
inherit pnpm; # from args
pnpmDeps = finalAttrs.finalPackage;
};
};
dontConfigure = true;
dontBuild = true;
outputHashMode = "recursive";
}
// hash'
)
dontConfigure = true;
dontBuild = true;
outputHashMode = "recursive";
}
// hash'
)
)
);
pnpmConfigHook = makeSetupHook {
@@ -40,7 +40,7 @@ pnpmConfigHook() {
echo "Found 'pnpm' with version '$pnpmVersion'"
fetcherVersion=$(cat "${pnpmDeps}/.fetcher-version" || echo 1)
fetcherVersion=$(cat "${pnpmDeps}/.fetcher-version")
echo "Using fetcherVersion: $fetcherVersion"
@@ -52,11 +52,7 @@ pnpmConfigHook() {
export npm_config_platform="@npmPlatform@"
export pnpm_config_platform="@npmPlatform@"
if [[ $fetcherVersion -ge 3 ]]; then
tar --zstd -xf "$pnpmDeps/pnpm-store.tar.zst" -C "$STORE_PATH"
else
cp -Tr "$pnpmDeps" "$STORE_PATH"
fi
tar --zstd -xf "$pnpmDeps/pnpm-store.tar.zst" -C "$STORE_PATH"
chmod -R +w "$STORE_PATH"
@@ -17,8 +17,6 @@ writeShellApplication {
text = ''
storePath=$(mktemp -d)
fetcherVersion=$(cat "${pnpmDeps}/.fetcher-version" || echo 1)
clean() {
echo "Cleaning up temporary store at '$storePath'..."
@@ -27,11 +25,7 @@ writeShellApplication {
echo "Copying pnpm store '${pnpmDeps}' to temporary store..."
if [[ $fetcherVersion -ge 3 ]]; then
tar --zstd -xf "${pnpmDeps}/pnpm-store.tar.zst" -C "$storePath"
else
cp -Tr "${pnpmDeps}" "$storePath"
fi
tar --zstd -xf "${pnpmDeps}/pnpm-store.tar.zst" -C "$storePath"
chmod -R +w "$storePath"
@@ -723,6 +723,7 @@ rec {
meta ? { },
passthru ? { },
substitutions ? { },
__structuredAttrs ? false,
}@args:
script:
runCommand name
@@ -735,7 +736,7 @@ rec {
# TODO(@Artturin:) substitutions should be inside the env attrset
# but users are likely passing non-substitution arguments through substitutions
# turn off __structuredAttrs to unbreak substituteAll
__structuredAttrs = false;
inherit __structuredAttrs;
pname = name;
version = "26.05pre-git";
inherit meta;
+3 -3
View File
@@ -6,16 +6,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "actool";
version = "2.1.2";
version = "2.2.4";
src = fetchFromGitHub {
owner = "viraptor";
repo = "actool";
tag = finalAttrs.version;
hash = "sha256-LN35yD9iynU1sCkp5kWL9jUgRIvNTkssherTBaSBenU=";
hash = "sha256-dDTa6J2by6uvg4gecwCcBIRGesZ1F0gAXSLr+6DYjGc=";
};
cargoHash = "sha256-Fw/0KmFDqXs3IjqnoYfvdrQS3QzF7QhIwmTRt18JEq4=";
cargoHash = "sha256-Q0fSZNXw/71kMemYzwVsBRFcAMNl4ItKu56YdB0AAdM=";
meta = {
description = "Apple's actool reimplementation";
+6 -1
View File
@@ -473,6 +473,7 @@
"kerberos"
"marshmallow"
"msgpack"
"pyjwt"
"werkzeug"
"wtforms"
];
@@ -644,7 +645,10 @@
};
jdbc = {
deps = [ "jaydebeapi" ];
deps = [
"jaydebeapi"
"jpype1"
];
imports = [
"airflow.providers.jdbc"
"airflow.providers.jdbc.get_provider_info"
@@ -754,6 +758,7 @@
deps = [
"aiomysql"
"mysqlclient"
"pymysql"
];
imports = [
"airflow.providers.mysql"
@@ -19,6 +19,7 @@
attrs,
babel,
buildPythonPackage,
cachetools,
cadwyn,
colorlog,
cron-descriptor,
@@ -88,13 +89,13 @@
enabledProviders,
}:
let
version = "3.2.1";
version = "3.2.2";
src = fetchFromGitHub {
owner = "apache";
repo = "airflow";
tag = version;
hash = "sha256-jwWxH9fTTCFdLAaAN18/FUAbN0cTCPkkk9+0ZMYNXek=";
hash = "sha256-nAFSLdcKmP2CNm3rx+/fwIsJnpju7wBl+fYWQV8p+sU=";
};
pnpm = pnpm_10;
@@ -119,7 +120,7 @@ let
pnpm
;
fetcherVersion = 3;
hash = "sha256-OkSDQoWsHQ6w1vIoX5W9zXHghV0obvL6Wji0HYN6CSs=";
hash = "sha256-wJ2u+y3umecL4IeVW/29/yDgYZ77ffOBQLHeplD3XlQ=";
};
buildPhase = ''
@@ -146,9 +147,14 @@ let
pnpmDeps = fetchPnpmDeps {
pname = "simple-auth-manager-ui";
inherit sourceRoot src version;
inherit
sourceRoot
src
version
pnpm
;
fetcherVersion = 3;
hash = "sha256-uQIVHzX0BcJuxgbPp6wqKhALbsfACSJjiMOdmrpuzOk=";
hash = "sha256-AKaafmDjIlg4eFJT1JGyelXVjcId8f0iXTR3JK4ZMq0=";
};
buildPhase = ''
@@ -212,6 +218,7 @@ let
sed -i -E 's/"GitPython==[^"]+"/"GitPython"/' pyproject.toml
sed -i -E 's/"trove-classifiers==[^"]+"/"trove-classifiers"/' pyproject.toml
sed -i -E 's/"smmap==[^"]+"/"smmap"/' pyproject.toml
sed -i -E 's/"pathspec==[^"]+"/"pathspec"/' pyproject.toml
# Copy built UI assets
cp -r ${airflowUi}/share/airflow/ui/dist src/airflow/ui/
@@ -235,6 +242,7 @@ let
argcomplete
asgiref
attrs
cachetools
cadwyn
colorlog
cron-descriptor
@@ -291,6 +299,8 @@ let
uvicorn
]
++ (map buildProvider requiredProviders);
pythonRelaxDeps = [ "starlette" ];
};
taskSdk = buildPythonPackage {
@@ -308,6 +318,7 @@ let
sed -i -E 's/"hatchling==[^"]+"/"hatchling"/' pyproject.toml
sed -i -E 's/"packaging==[^"]+"/"packaging"/' pyproject.toml
sed -i -E 's/"trove-classifiers==[^"]+"/"trove-classifiers"/' pyproject.toml
sed -i -E 's/"pathspec==[^"]+"/"pathspec"/' pyproject.toml
# task-sdk needs config.yml from core subpackage
mkdir -p src/airflow/config_templates
@@ -354,6 +365,7 @@ buildPythonPackage rec {
sed -i -E 's/"hatchling==[^"]+"/"hatchling"/' pyproject.toml
sed -i -E 's/"packaging==[^"]+"/"packaging"/' pyproject.toml
sed -i -E 's/"trove-classifiers==[^"]+"/"trove-classifiers"/' pyproject.toml
sed -i -E 's/"pathspec==[^"]+"/"pathspec"/' pyproject.toml
'';
nativeBuildInputs = [ writableTmpDirAsHomeHook ];
+3 -3
View File
@@ -11,13 +11,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ast-grep";
version = "0.42.3";
version = "0.43.0";
src = fetchFromGitHub {
owner = "ast-grep";
repo = "ast-grep";
tag = finalAttrs.version;
hash = "sha256-CbZDibpdEMQayd9tzNTZRUmyx4/9K5VzhbqeFatOn+Q=";
hash = "sha256-qQkG04aGaw3U/FFP1omlsoAKfNsVKafgJlVzAxvHkcA=";
};
# error: linker `aarch64-linux-gnu-gcc` not found
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
rm .cargo/config.toml
'';
cargoHash = "sha256-WhhSD2doqdwGnSKTVjnpjnuPep+4+nB2ZPiFFi8VbQQ=";
cargoHash = "sha256-YL76pCvCco9u8nAGIuiEciQrgUgaPx1s8hHyu2x3KmI=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -13,12 +13,12 @@
# reference: https://boringssl.googlesource.com/boringssl/+/refs/tags/0.20250818.0/BUILDING.md
stdenv.mkDerivation (finalAttrs: {
pname = "boringssl";
version = "0.20260508.0";
version = "0.20260526.0";
src = fetchgit {
url = "https://boringssl.googlesource.com/boringssl";
tag = finalAttrs.version;
hash = "sha256-7fW0OmOj+Hduq5YCc5xpcfICpC8qAc/05/UMgZ70jhM=";
hash = "sha256-SmyImyzGn7v2b5qGJbMmQZX5bODA9i6+8jy3uGwOawA=";
};
patches = [
@@ -34,13 +34,13 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "bottles-unwrapped";
version = "63.2";
version = "64.1";
src = fetchFromGitHub {
owner = "bottlesdevs";
repo = "bottles";
tag = finalAttrs.version;
hash = "sha256-cBqKUf96BLYyVD8onkvejL7pcxYrVCnhjhhT9FSwuNo=";
hash = "sha256-RwH2XLY9PmyDvIYu3Wr2qL89ErJBfC58i0jHLLNnKJQ=";
};
patches = [
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cimg";
version = "3.6.3";
version = "3.7.6";
src = fetchFromGitHub {
owner = "GreycLab";
repo = "CImg";
tag = "v.${finalAttrs.version}";
hash = "sha256-X99t7X6Z1OssRrcYSJdj/ptfn0Q7ocSzf1z6bzMdT1Q=";
hash = "sha256-7VZU1/iZH0mtnWaPLRXXYRmpv1tbHKlTglQXIFaocWs=";
};
outputs = [
+2 -2
View File
@@ -7,7 +7,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "daktari";
version = "0.0.324";
version = "0.0.328";
pyproject = true;
__structuredAttrs = true;
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "genio-learn";
repo = "daktari";
tag = "v${finalAttrs.version}";
hash = "sha256-f9TpdxarSTMmXhalrjFmGT+zIUNMY+add5OiTq/xW7A=";
hash = "sha256-WTxZTfW4KVACxR3wS9+nDV/pYlCrCu8TBQRVulxqiRo=";
};
patches = [ ./optional-pyclip.patch ];
@@ -0,0 +1,13 @@
diff --git a/src/LzFind.c b/src/LzFind.c
index 98d0ac6..f1bee55 100755
--- a/src/LzFind.c
+++ b/src/LzFind.c
@@ -229,7 +229,7 @@ static unsigned short * GetMatches2(UInt32 lenLimit, UInt32 curMatch, UInt32 pos
const unsigned char* _min = min;
unsigned cnt = 0;
if (_min < pb - (rle_len - len)) {_min = pb - (rle_len - len);}
- while (rle_pos > _min && *(uint64_t*)(rle_pos - 8) == starter_full) {rle_pos-=8; cnt+=8;}
+ while (rle_pos > _min && *(__typeof__(const uint64_t __attribute__((aligned(1))))*)(rle_pos - 8) == starter_full) {rle_pos-=8; cnt+=8;}
if (cnt) {
if (cnt + len > rle_len - 1) {cnt = rle_len - 1 - len;}
curMatch_rle -= cnt;
@@ -22,6 +22,11 @@ stdenv.mkDerivation (finalAttrs: {
fetchSubmodules = true;
};
patches = [
# from https://github.com/fhanau/Efficient-Compression-Tool/issues/145
./ect-gcc-15-O3-fix.patch
];
# devendor libpng
postPatch = ''
substituteInPlace src/CMakeLists.txt \
+15 -4
View File
@@ -10,6 +10,8 @@
doxygen,
cmake,
graphviz,
withDoc ? true, # upstream disable for cross, even if it seems to build fine
}:
stdenv.mkDerivation (finalAttrs: {
@@ -34,16 +36,25 @@ stdenv.mkDerivation (finalAttrs: {
outputs = [
"out"
"doc"
];
]
++ lib.optional withDoc "doc";
nativeBuildInputs = [
doxygen
cmake
]
++ lib.optionals withDoc [
doxygen
graphviz
];
postInstall = ''
cmakeFlags = [
(lib.cmakeBool "EIGEN_BUILD_DOC" withDoc)
];
postInstall = lib.optionalString withDoc ''
# Fontconfig error: No writable cache directories
export XDG_CACHE_HOME="$(mktemp -d)"
cmake --build . -t install-doc
'';
+2 -2
View File
@@ -33,14 +33,14 @@ let
in
python.pkgs.buildPythonApplication (finalAttrs: {
pname = "esphome";
version = "2026.5.1";
version = "2026.5.2";
pyproject = true;
src = fetchFromGitHub {
owner = "esphome";
repo = "esphome";
tag = finalAttrs.version;
hash = "sha256-faW44FhAymqGQG4khAUEcv6QoAn49KPSghi3YcXttNk=";
hash = "sha256-DLM4hzbEWaJURtCIpKdL9Igy53puEGW+qRiBpDdFZ4o=";
};
patches = [
+26 -4
View File
@@ -19,28 +19,39 @@
SDL2,
sqlite,
zlib,
versionCheckHook,
}:
let
version = "2.83.2";
version = "2.84.0";
fakeGit = writeScriptBin "git" ''
if [ "$1" = "describe" ]; then
echo "${version}"
fi
'';
binarySuffix =
if stdenv.hostPlatform.isx86_64 then
"x86_64"
else if stdenv.hostPlatform.isAarch64 then
"aarch64"
else if stdenv.hostPlatform.isi686 then
"386"
else
throw "Unsupported architecture: ${stdenv.hostPlatform.system}";
in
stdenv.mkDerivation {
pname = "etlegacy-unwrapped";
inherit version;
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "etlegacy";
repo = "etlegacy";
tag = "v${version}";
hash = "sha256-hZwLYaYV0j3YwFi8KRr4DZV73L2yIwFJ3XqCyq6L7hE=";
hash = "sha256-E1eR0OIfXn2QkSGYNu1JFXDIVrkz+pxM7IU0GVkvAFQ=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
fakeGit
@@ -69,6 +80,9 @@ stdenv.mkDerivation {
(lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")
(lib.cmakeBool "BUILD_SERVER" true)
(lib.cmakeBool "BUILD_CLIENT" true)
(lib.cmakeBool "BUNDLED_WOLFSSL" false)
(lib.cmakeBool "BUNDLED_OPENSSL" false)
(lib.cmakeBool "BUNDLED_CURL" false)
(lib.cmakeBool "BUNDLED_ZLIB" false)
(lib.cmakeBool "BUNDLED_CJSON" false)
(lib.cmakeBool "BUNDLED_JPEG" false)
@@ -86,12 +100,18 @@ stdenv.mkDerivation {
(lib.cmakeBool "INSTALL_OMNIBOT" false)
(lib.cmakeBool "INSTALL_GEOIP" false)
(lib.cmakeBool "INSTALL_WOLFADMIN" false)
(lib.cmakeBool "FEATURE_FREETYPE" true)
(lib.cmakeBool "FEATURE_GETTEXT" true)
(lib.cmakeBool "FEATURE_AUTOUPDATE" false)
(lib.cmakeBool "FEATURE_RENDERER2" false)
(lib.cmakeBool "RENDERER_DYNAMIC" true)
(lib.cmakeFeature "INSTALL_DEFAULT_BASEDIR" "${placeholder "out"}/lib/etlegacy")
(lib.cmakeFeature "INSTALL_DEFAULT_BINDIR" "${placeholder "out"}/bin")
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
meta = {
description = "ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license";
homepage = "https://etlegacy.com";
@@ -104,5 +124,7 @@ stdenv.mkDerivation {
maintainers = with lib.maintainers; [
ashleyghooper
];
mainProgram = "etl." + binarySuffix;
platforms = lib.platforms.linux;
};
}
+13 -2
View File
@@ -7,9 +7,20 @@
makeBinaryWrapper,
}:
let
binarySuffix =
if stdenv.hostPlatform.isx86_64 then
"x86_64"
else if stdenv.hostPlatform.isAarch64 then
"aarch64"
else if stdenv.hostPlatform.isi686 then
"386"
else
throw "Unsupported architecture: ${stdenv.hostPlatform.system}";
in
symlinkJoin {
pname = "etlegacy";
version = "2.83.2";
version = "2.84.0";
paths = [
etlegacy-assets
@@ -39,7 +50,7 @@ symlinkJoin {
for the popular online FPS game Wolfenstein: Enemy Territory - whose
gameplay is still considered unmatched by many, despite its great age.
'';
mainProgram = "etl." + (if stdenv.hostPlatform.isi686 then "i386" else "x86_64");
mainProgram = "etl." + binarySuffix;
maintainers = with lib.maintainers; [
ashleyghooper
];
+2 -2
View File
@@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "fulcrum";
version = "2.1.0";
version = "2.1.1";
src = fetchFromGitHub {
owner = "cculianu";
repo = "Fulcrum";
tag = "v${finalAttrs.version}";
hash = "sha256-5DsZcnmqO8ZuD3+H/1lkfBrKeGq7efAjji0JDXTPQ1M=";
hash = "sha256-ygUzDhqUDeoNgNNXjuIfcy1b5B1KxDGBV4dMdn83GR8=";
};
nativeBuildInputs = [
+4 -4
View File
@@ -31,7 +31,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gmic";
version = "3.6.3";
version = "3.7.6";
outputs = [
"out"
@@ -43,8 +43,8 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "GreycLab";
repo = "gmic";
rev = "v.${finalAttrs.version}";
hash = "sha256-+q4GnpL/XeroQ2FUxjrrENlEE5Zi1bEnDkIMtOVIZHQ=";
tag = "v.${finalAttrs.version}";
hash = "sha256-hewDoraw6DCmj1EryZrODFDqzbKI2RhgRuXAop+pg7c=";
};
# TODO: build this from source
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://gmic.eu/gmic_stdlib_community${
lib.replaceStrings [ "." ] [ "" ] finalAttrs.version
}.h";
hash = "sha256-dfn4ayQs4pg3TEMGvp1D+mllehNYFvWvzeqxR72F3aE=";
hash = "sha256-ek8w9uCp4ey5zT8Y1+yM9gXtzigNINOQ0XW6kT6Zj5Q=";
};
nativeBuildInputs = [
+3
View File
@@ -8,6 +8,7 @@
pandoc,
pkg-config,
libfido2,
nixosTests,
}:
buildGoModule (finalAttrs: {
@@ -63,6 +64,8 @@ buildGoModule (finalAttrs: {
ln -s $out/bin/gocryptfs $out/bin/mount.fuse.gocryptfs
'';
passthru.tests.gocryptfs = nixosTests.gocryptfs;
meta = {
description = "Encrypted overlay filesystem written in Go";
license = lib.licenses.mit;
+9 -9
View File
@@ -15,7 +15,7 @@
wasm-pack,
cargo-about,
nodejs,
wasm-bindgen-cli_0_2_100,
wasm-bindgen-cli_0_2_121,
xz,
removeReferencesTo,
cef-binary,
@@ -30,16 +30,16 @@
}:
let
version = "0-unstable-2026-05-02";
rev = "ab7f59ca61004a1b11f9ae4b1c511cefc7a0f404";
version = "0-unstable-2026-05-25";
rev = "bbbe04903f28673a86203910b250bf12f3d38b55";
srcHash = "sha256-DV3/1dgtUiTmGkOm4z3GVJcWzvCjO/crzc/l8ovW0XA=";
shaderHash = "sha256-76hOCx1fpFBI5nVmIAIGd2StCRzhbCgs+GHMvxbflLc=";
cargoHash = "sha256-ZesLyXKjz2CSrAWUT5Hq6w97pR55I+C79qPwF0dqXXI=";
srcHash = "sha256-aEOH0NFUIt0iQNKNlAdKXobVPqbZbeQYB96lDzEsJ3U=";
shaderHash = "sha256-4lKBrGh1rfhTBczmCDvIF2KxLyEHzHdKVGgQ+jLd/Dw=";
cargoHash = "sha256-iW1hk67zexp/b7HO4q4le8/7ARIn+/VJIZ54RBau238=";
npmHash = "sha256-AX5Jqk2E+WyQJyHbgvvq74MRsYmWUju4bOkabhYoeig=";
brandingRev = "1939ca82f3341427059e15bfa205f7c22aaf867a";
brandingHash = "sha256-SDnCpLuppHVE7cUVidevH2O/2ma0S2tuQDhFkS/JLvA=";
brandingRev = "0d004aa61e6b48d316e8e5db6d59ccc4788f192d";
brandingHash = "sha256-wAA6fR+NSxlCAqgwWmpiIAnji9k/jsMXpR0Vt04Ntmk=";
src = fetchFromGitHub {
owner = "GraphiteEditor";
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
npmHooks.npmConfigHook
binaryen
wasm-bindgen-cli_0_2_100
wasm-bindgen-cli_0_2_121
wasm-pack
nodejs
cargo-about
+11 -4
View File
@@ -4,11 +4,18 @@
^nix-update graphite --version=branch --version-regex '(0-unstable-.*)'
let pkg = "./pkgs/by-name/gr/graphite/package.nix"
let rev = (open $pkg | lines | where ($it | str contains 'rev = "') | first | str trim | parse 'rev = "{rev}";' | get 0.rev)
let meta = (http get $"https://raw.githubusercontent.com/GraphiteEditor/Graphite/($rev)/.branding" | lines)
let branding_rev = ($meta | get 0 | path basename | str replace ".tar.gz" "")
let branding_hash = (^nix hash convert --to sri --hash-algo sha256 ($meta | get 1) | str trim)
let rev = open $pkg | lines | where ($it | str contains 'rev = "') | first | str trim | parse 'rev = "{rev}";' | get 0.rev
let shader_url = $"https://raw.githubusercontent.com/timon-schelling/graphite-artifacts/refs/heads/main/rev/($rev)/raster_nodes_shaders_entrypoint.wgsl"
let shader_hash = ^nix store prefetch-file --hash-type sha256 $shader_url --json | from json | get hash
let branding = http get $"https://raw.githubusercontent.com/GraphiteEditor/Graphite/($rev)/.branding" | lines
let branding_url = $branding | get 0
let branding_rev = $branding_url | path basename | str replace ".tar.gz" ""
let branding_hash = ^nix store prefetch-file --hash-type sha256 --unpack $branding_url --json | from json | get hash
open $pkg
| str replace --regex 'shaderHash = "[^"]*"' $'shaderHash = "($shader_hash)"'
| str replace --regex 'brandingRev = "[^"]*"' $'brandingRev = "($branding_rev)"'
| str replace --regex 'brandingHash = "[^"]*"' $'brandingHash = "($branding_hash)"'
| save --force $pkg
+3 -3
View File
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "intelli-shell";
version = "3.4.1";
version = "3.4.2";
src = fetchFromGitHub {
owner = "lasantosr";
repo = "intelli-shell";
rev = "v${finalAttrs.version}";
hash = "sha256-s5gbpobCxTtrlEwe1AAidoM8p/1yU/mnZ7JKUu4A0Qk=";
hash = "sha256-p0o1KFNo+gR/eTaYGd3HkE1Ndwt8mqQOz0gHzM8lnBk=";
};
cargoHash = "sha256-D17BqWiUECM9DeOu/I3xN+aopmw8lZBbUyAIygse0kA=";
cargoHash = "sha256-xJ2hjv3JlzMcnjoTAzuXA8Hongb9gfuXxnWFBQkffOc=";
nativeBuildInputs = [
pkg-config
+29 -17
View File
@@ -6,6 +6,7 @@
python3,
python3Packages,
gettext,
gitMinimal,
stdenv,
yarnBuildHook,
yarnConfigHook,
@@ -13,12 +14,16 @@
}:
let
version = "1.2.6";
version = "1.3.0";
src = fetchFromGitHub {
owner = "inventree";
repo = "inventree";
tag = "${version}";
hash = "sha256-JJtjW0PAsGiDnM8vwqrSdDtO6QuzdVoyY4MeEyaSH4w=";
hash = "sha256-nsGqfm7XTwHblvqHmsMo8yQgl7ZtbtPdjOfrpXSQbn0=";
postCheckout = ''
git -C $out rev-parse HEAD > $out/commit_hash.txt
git -C $out show -s --format=%cd --date=short HEAD > $out/commit_date.txt
'';
};
frontend =
@@ -34,7 +39,7 @@ let
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-tZHrl6NC4MGpmH7+Ge2V/y9FRNd9NdbQ/NreHE10b10=";
hash = "sha256-PIhmMIFHW+6jVZcS394yU9L5Zn+wkfrWmJH7lAbevbU=";
};
nativeBuildInputs = [
@@ -119,6 +124,7 @@ python3Packages.buildPythonApplication rec {
feedparser
gunicorn
jinja2
nh3
pdf2image
pillow
pint
@@ -161,7 +167,10 @@ python3Packages.buildPythonApplication rec {
++ django-allauth.optional-dependencies.mfa;
build-system = [ python3Packages.setuptools ];
nativeBuildInputs = [ gettext ];
nativeBuildInputs = [
gettext
gitMinimal
];
prePatch =
let
@@ -188,7 +197,7 @@ python3Packages.buildPythonApplication rec {
# TODO figure out why this fails
"test_setting_object"
];
skippedFuncScripts = builtins.map (funcName: ''
skippedFuncScripts = map (funcName: ''
grep -rlZ ${funcName} . | while IFS= read -r -d "" file; do
substituteInPlace "$file" --replace-fail "${funcName}" "skip_${funcName}"
done
@@ -208,24 +217,27 @@ python3Packages.buildPythonApplication rec {
# Don't need to bother with a non-maintained library from ages ago
substituteInPlace src/backend/InvenTree/InvenTree/settings.py --replace-fail "django_slowtests.testrunner.DiscoverSlowestTestsRunner" "django.test.runner.DiscoverRunner"
mkdir -p $out/lib/${pname}/src/backend/InvenTree/web/
cp -r src $out/lib/${pname}
ln -s ${frontend}/static $out/lib/${pname}/src/backend/InvenTree/web
mkdir -p $out/lib/inventree/src/backend/InvenTree/web/
cp -r src $out/lib/inventree
ln -s ${frontend}/static $out/lib/inventree/src/backend/InvenTree/web
chmod +x $out/lib/${pname}/src/backend/InvenTree/manage.py
chmod +x $out/lib/inventree/src/backend/InvenTree/manage.py
makeWrapper $out/lib/${pname}/src/backend/InvenTree/manage.py $out/bin/${pname} \
--prefix PYTHONPATH : "${pythonPath}:$out/lib/${pname}/src/backend/InvenTree" \
--set INVENTREE_COMMIT_HASH abcdef \
--set INVENTREE_COMMIT_DATE 1970-01-01
INVENTREE_COMMIT_HASH=$(cat $src/commit_hash.txt)
INVENTREE_COMMIT_DATE=$(cat $src/commit_date.txt)
makeWrapper $out/lib/inventree/src/backend/InvenTree/manage.py $out/bin/inventree \
--prefix PYTHONPATH : "${pythonPath}:$out/lib/inventree/src/backend/InvenTree" \
--set INVENTREE_COMMIT_HASH $INVENTREE_COMMIT_HASH \
--set INVENTREE_COMMIT_DATE $INVENTREE_COMMIT_DATE
makeWrapper ${lib.getExe python3Packages.gunicorn} $out/bin/gunicorn \
--prefix PYTHONPATH : "${pythonPath}:$out/${python3.sitePackages}":"${pythonPath}:$out/lib/${pname}/src/backend/InvenTree" \
--set INVENTREE_COMMIT_HASH abcdef \
--set INVENTREE_COMMIT_DATE 1970-01-01
--prefix PYTHONPATH : "${pythonPath}:$out/${python3.sitePackages}":"${pythonPath}:$out/lib/inventree/src/backend/InvenTree" \
--set INVENTREE_COMMIT_HASH $INVENTREE_COMMIT_HASH \
--set INVENTREE_COMMIT_DATE $INVENTREE_COMMIT_DATE
# Generate static assets
pushd $out/lib/${pname}/src/backend/InvenTree &>/dev/null
pushd $out/lib/inventree/src/backend/InvenTree &>/dev/null
export INVENTREE_STATIC_ROOT=$out/lib/inventree/static
export INVENTREE_MEDIA_ROOT=$(mktemp -d)
export INVENTREE_BACKUP_DIR=$(mktemp -d)
@@ -0,0 +1,26 @@
From 29add00f50083f14b52f8fd18ee1913dacbb3271 Mon Sep 17 00:00:00 2001
From: phanirithvij <phanirithvij2000@gmail.com>
Date: Mon, 16 Mar 2026 14:16:24 +0530
Subject: [PATCH] FIX: test message
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
---
base/src/test/user_model/test_to_from_bytes.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/base/src/test/user_model/test_to_from_bytes.rs b/base/src/test/user_model/test_to_from_bytes.rs
index f9a9a2f..508a589 100644
--- a/base/src/test/user_model/test_to_from_bytes.rs
+++ b/base/src/test/user_model/test_to_from_bytes.rs
@@ -25,7 +25,7 @@ fn errors() {
let model_bytes = "Early in the morning, late in the century, Cricklewood Broadway.".as_bytes();
assert_eq!(
&UserModel::from_bytes(model_bytes, "en").unwrap_err(),
- "Error parsing workbook: invalid packing"
+ "Error parsing workbook: bitcode error"
);
}
--
2.53.0
+42
View File
@@ -0,0 +1,42 @@
{
lib,
buildNpmPackage,
ironcalc,
gitMinimal,
}:
buildNpmPackage {
pname = "ironcalc-docs";
inherit (ironcalc) version src;
postPatch = ''
cd docs
'';
npmDepsHash = "sha256-lH4HUUiVSGcF/5cSse0l2ZWial3tkwOO8peb5Wl35rI=";
nativeBuildInputs = [
gitMinimal
];
# https://discourse.nixos.org/t/nix-build-of-vuepress-project-is-slow-or-hangs/56521/5
buildPhase = ''
runHook preBuild
# Icons are expected in public/
mkdir -p src/public
cp -v src/*.svg src/*.png src/public/ || true
npm run build > tmp 2>&1
runHook postBuild
'';
installPhase = ''
mkdir -p $out/share/doc/ironcalc
cp -r src/.vitepress/dist/* $out/share/doc/ironcalc/
'';
meta = ironcalc.meta // {
description = "Documentation for IronCalc";
};
}
+183
View File
@@ -0,0 +1,183 @@
{
rustPlatform,
buildNpmPackage,
python3,
pkg-config,
binaryen,
bzip2,
zstd,
esbuild,
wasm-bindgen-cli_0_2_108,
wasm-pack,
nodejs,
typescript,
lld,
writableTmpDirAsHomeHook,
ironcalc,
}:
let
inherit (ironcalc)
version
src
cargoHash
;
wasm = rustPlatform.buildRustPackage {
pname = "ironcalc-wasm";
inherit
version
src
cargoHash
;
nativeBuildInputs = [
binaryen
pkg-config
python3
wasm-bindgen-cli_0_2_108
wasm-pack
nodejs
typescript
lld
writableTmpDirAsHomeHook
];
buildInputs = [
bzip2
zstd
];
buildPhase = ''
cd bindings/wasm
make tests
wasm-pack build --target web --scope ironcalc --release
cp README.pkg.md pkg/README.md
tsc types.ts --target esnext --module esnext
python3 fix_types.py
rm -f types.js
# wasm-pack generates a package.json, we must provide one
cat > pkg/package.json <<EOF
{
"name": "@ironcalc/wasm",
"version": "${ironcalc.version}",
"type": "module",
"files": [
"wasm_bg.wasm",
"wasm.js",
"wasm.d.ts"
],
"main": "wasm.js",
"module": "wasm.js",
"types": "wasm.d.ts",
"exports": {
".": {
"types": "./wasm.d.ts",
"import": "./wasm.js"
}
},
"sideEffects": false
}
EOF
'';
doCheck = true;
installPhase = ''
cp -r pkg $out
'';
__structuredAttrs = true;
strictDeps = true;
meta = ironcalc.meta // {
description = "Ironcalc wasm bindings";
};
};
widget = buildNpmPackage {
pname = "ironcalc-widget";
inherit version src;
sourceRoot = "source";
postPatch = ''
cd webapp/IronCalc
chmod -R u+w ../../..
mkdir -p ../../bindings/wasm/pkg
echo '{"name": "@ironcalc/wasm", "version": "${ironcalc.version}"}' > ../../bindings/wasm/pkg/package.json
'';
npmDepsHash = "sha256-jPnUUEOjW9WHVjpBH/qKB4P5RuMI0uvjog8C41cPQdY=";
preConfigure = ''
cp -rv ${wasm}/. ../../bindings/wasm/pkg/
'';
buildPhase = ''
npm run build
'';
installPhase = ''
mkdir -p $out
cp -r . $out
'';
__structuredAttrs = true;
strictDeps = true;
meta = ironcalc.meta // {
description = "Ironcalc frontend widget package";
};
};
frontend = buildNpmPackage {
pname = "ironcalc-frontend";
inherit version src;
sourceRoot = "source";
postPatch = ''
cd webapp/app.ironcalc.com/frontend
chmod -R u+w ../../..
# wasm location fix
mkdir -p ../../../bindings/wasm/pkg
cp -rv ${wasm}/. ../../../bindings/wasm/pkg/
rm -rf ../../IronCalc
cp -r ${widget} ../../IronCalc
chmod -R u+w ../../IronCalc
substituteInPlace src/components/WorkbookTitle.tsx \
--replace-warn 'onInput={handleChange}' 'onChange={handleChange}'
'';
npmDepsHash = "sha256-QVpUV3dxaqiWCF8RC1MR2ylYC500Lbp5pJgzzOrF20c=";
preBuild = ''
# wasm resolution fix
mkdir -p node_modules/@ironcalc
cp -rv ${wasm}/. node_modules/@ironcalc/wasm
'';
installPhase = ''
mkdir -p $out
cp -r dist/. $out
'';
__structuredAttrs = true;
strictDeps = true;
meta = ironcalc.meta // {
description = "Ironcalc frontend package";
};
};
in
{
inherit
wasm
widget
frontend
;
}
+84
View File
@@ -0,0 +1,84 @@
{
lib,
stdenv,
pnpm,
pnpmConfigHook,
fetchPnpmDeps,
rustPlatform,
pkg-config,
bzip2,
zstd,
ironcalc,
nodejs,
cargo,
rustc,
writableTmpDirAsHomeHook,
}:
stdenv.mkDerivation {
pname = "ironcalc-nodejs";
inherit (ironcalc) version src;
postPatch = ''
cd bindings/nodejs
'';
strictDeps = true;
__structuredAttrs = true;
pnpmDeps = fetchPnpmDeps {
inherit (ironcalc) src;
pname = "ironcalc-nodejs";
hash = "sha256-q0PTXKAX0mhrMKMnFzV65YU948lh+/rGn9ttWzBfdNc=";
fetcherVersion = 3;
preInstall = ''
cd bindings/nodejs
'';
};
makeCacheWritable = true;
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (ironcalc) src;
hash = ironcalc.cargoHash;
};
cargoRoot = "../..";
nativeBuildInputs = [
pkg-config
pnpm
nodejs
cargo
rustc
pnpmConfigHook
rustPlatform.cargoSetupHook
rustPlatform.cargoCheckHook
writableTmpDirAsHomeHook
];
buildPhase = ''
runHook preBuild
pnpm run build
runHook postBuild
'';
doCheck = true;
checkPhase = ''
runHook preCheck
pnpm run test
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/node_modules/@ironcalc/nodejs
cp index.js index.d.ts package.json *.node $out/lib/node_modules/@ironcalc/nodejs/
runHook postInstall
'';
meta = ironcalc.meta // {
description = "Node.js bindings for IronCalc";
};
}
+197
View File
@@ -0,0 +1,197 @@
{
lib,
callPackage,
fetchFromGitHub,
rustPlatform,
pkg-config,
python3,
python3Packages,
bzip2,
zstd,
stdenv,
coreutils,
sqlite,
writeShellApplication,
symlinkJoin,
nix-update-script,
}:
let
version = "0.7.1-unstable-2026-04-29";
src = fetchFromGitHub {
owner = "ironcalc";
repo = "ironcalc";
rev = "8461ff71347ab19145cd7ad50ef829181ba765c2";
hash = "sha256-vjI3M+hS9bXK8QQlopAy6f4dCISfQHGMvN9sMNKp88Q=";
};
cargoHash = "sha256-q5DnqhIYKUUqfJ4/TNHYF1QgTbH198QtgirQ+lP30wk=";
meta = {
description = "Open source selfhosted spreadsheet engine";
homepage = "https://github.com/ironcalc/IronCalc";
license = with lib.licenses; [
asl20
mit
];
mainProgram = "ironcalc";
maintainers = with lib.maintainers; [ phanirithvij ];
teams = with lib.teams; [ ngi ];
# see checkNoDefaultFeatures below
broken = stdenv.hostPlatform.isAarch64;
};
server = rustPlatform.buildRustPackage {
pname = "ironcalc-server";
inherit src version;
buildAndTestSubdir = "webapp/app.ironcalc.com/server";
cargoRoot = "webapp/app.ironcalc.com/server";
cargoHash = "sha256-46IwZJI9AOs+IQFbfz89A2yIi5db7rVMVNsO9W+tn+c=";
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
bzip2
zstd
];
postInstall = ''
install -Dm644 webapp/app.ironcalc.com/server/init_db.sql $out/share/ironcalc/init_db.sql
'';
meta = meta // {
description = "IronCalc server package";
mainProgram = "ironcalc_server";
};
};
frontend_packages = callPackage ./frontend.nix { };
inherit (frontend_packages)
frontend
wasm
widget
;
tools = rustPlatform.buildRustPackage {
pname = "ironcalc-tools";
inherit src version;
inherit cargoHash;
patches = [
# nix specific issue, can't reproduce without nix, not upstreaming
./0001-FIX-test-message.patch
];
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [
pkg-config
python3
];
buildInputs = [
bzip2
zstd
];
doCheck = true;
# for aarch64-darwin and aarch64-linux
# there are a lot of undefined references to Py
# https://github.com/PyO3/pyo3/issues/1800
checkNoDefaultFeatures = stdenv.hostPlatform.isAarch64;
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
{ $out/bin/xlsx_2_icalc 2>&1 || true; } | grep -q "Usage:"
$out/bin/xlsx_2_icalc xlsx/tests/docs/CHOOSE.xlsx test.ic
test -f test.ic
runHook postInstallCheck
'';
meta = meta // {
description = "IronCalc helper tools";
mainProgram = "xlsx_2_icalc";
};
};
wrapper = writeShellApplication {
name = "ironcalc";
runtimeInputs = [
coreutils
sqlite
server
];
text = ''
IRONCALC_DB_PATH="''${IRONCALC_DB_PATH:-ironcalc.sqlite}"
mkdir -p "$(dirname "$IRONCALC_DB_PATH")"
if [ ! -f "$IRONCALC_DB_PATH" ]; then
echo "Initializing database..."
sqlite3 "$IRONCALC_DB_PATH" < "${server}/share/ironcalc/init_db.sql"
fi
export ROCKET_DATABASES="{ironcalc={url=\"$IRONCALC_DB_PATH\"}}"
export IRONCALC_WEBAPP_DIR="''${IRONCALC_WEBAPP_DIR:-${frontend}}"
exec ironcalc_server "$@"
'';
};
python = python3Packages.ironcalc;
nodejs = callPackage ./nodejs.nix { };
docs = callPackage ./docs.nix { };
in
symlinkJoin {
pname = "ironcalc";
inherit version;
paths = [
tools
wrapper
];
__structuredAttrs = true;
strictDeps = true;
passthru =
let
exports = {
inherit
frontend
widget
server
tools
docs
wasm
nodejs
python
wrapper
;
};
in
{
inherit
src
cargoHash
;
updateScript = [ ./update.sh ];
tests = exports;
}
// exports;
inherit meta;
}
+56
View File
@@ -0,0 +1,56 @@
{
python3,
buildPythonPackage,
rustPlatform,
pkg-config,
bzip2,
zstd,
pytestCheckHook,
ironcalc,
}:
buildPythonPackage {
pname = "ironcalc";
inherit (ironcalc) src version;
pyproject = true;
postPatch = ''
cd bindings/python
'';
strictDeps = true;
__structuredAttrs = true;
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (ironcalc) src;
hash = ironcalc.cargoHash;
};
cargoRoot = "../..";
env.PYO3_PYTHON = "${python3}/bin/python3";
nativeBuildInputs = [
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
pkg-config
];
buildInputs = [
bzip2
zstd
];
doCheck = true;
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "ironcalc" ];
meta = ironcalc.meta // {
description = "Python bindings for IronCalc";
};
}
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts nix-update
set -euo pipefail
owner="ironcalc"
repo="ironcalc"
branch="main"
commit=$(curl -s "https://api.github.com/repos/$owner/$repo/branches/$branch" | jq -r .commit.sha)
date=$(curl -s "https://api.github.com/repos/$owner/$repo/commits/$commit" | jq -r .commit.committer.date | cut -d'T' -f1)
current_version=$(nix-instantiate --eval -A ironcalc.version 2>/dev/null | tr -d '"' || echo "0.0.0")
base_version=$(echo "$current_version" | sed -E 's/-unstable-.*//')
new_version="$base_version-unstable-$date"
echo "Updating ironcalc to $new_version ($commit)"
if [ "$current_version" = "$new_version" ]; then
echo "Already up to date: $current_version"
exit 0
fi
update-source-version ironcalc "$new_version" --rev="$commit"
echo "Updating hashes..."
nix-update ironcalc.tools --version=skip
nix-update ironcalc.server --version=skip
nix-update ironcalc.widget --version=skip
nix-update ironcalc.frontend --version=skip
nix-update ironcalc.nodejs --version=skip
+3 -3
View File
@@ -5,14 +5,14 @@
}:
buildGoModule (finalAttrs: {
pname = "kin-openapi";
version = "0.139.0";
vendorHash = "sha256-4/UfPkRSA/w7d73hIUkDsoKZLLpLshN9obLcusWtHMk=";
version = "0.140.0";
vendorHash = "sha256-o6JX0WWT0402VUDz2Y7Clq7txcjvAQhrLJk+8+Xj78k=";
src = fetchFromGitHub {
owner = "getkin";
repo = "kin-openapi";
tag = "v${finalAttrs.version}";
hash = "sha256-7nH6F8QSujWlgXXwDbrZfX9OJzaUjMLdEqCkjEtaJ9g=";
hash = "sha256-KmESbc9oPlBBTN9Mgx5xlBWcT6/tVXepxqd/uTWVpAk=";
};
checkFlags =
+4 -4
View File
@@ -14,23 +14,23 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "kiro-cli";
version = "2.4.1";
version = "2.5.1";
src =
let
darwinDmg = fetchurl {
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/Kiro%20CLI.dmg";
hash = "sha256-rJaKbNhNlSL3CfTRY4Fin5CUhrvjhOJrUuqGCTlRXkQ=";
hash = "sha256-fSwq1iMCB/st3u+WI7nNxhx/ZAVfjpKIcLcmv+jJfv4=";
};
in
{
x86_64-linux = fetchurl {
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-x86_64-linux.tar.gz";
hash = "sha256-fXTKu1lO5hPZn1YwRkHI6B+edNatR4KJGqHXzi9Epa8=";
hash = "sha256-hl3SeItsJ3uAXtZeoBISWJArefXfKBmLgzmnWKYVXxw=";
};
aarch64-linux = fetchurl {
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-aarch64-linux.tar.gz";
hash = "sha256-4/HJH3cHHX4Z3/P4eHfnWA6f43TAfAUiqQsZNIehRBY=";
hash = "sha256-DLJY/VHexAToA3EjwYaGwSz3E2aTtT7Xbxnw9nBQ0Pk=";
};
x86_64-darwin = darwinDmg;
aarch64-darwin = darwinDmg;
+10 -4
View File
@@ -22,22 +22,28 @@
wayland,
wayland-protocols,
wayland-scanner,
wlroots_0_19,
wlroots_0_20,
libxcb-wm,
xwayland,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "labwc";
version = "0.9.7";
version = "0.20.0";
src = fetchFromGitHub {
owner = "labwc";
repo = "labwc";
tag = finalAttrs.version;
hash = "sha256-7lq/lcaYSc+mJOTkjtwF0LjOAg4Uck3BwAc+2RIntYo=";
hash = "sha256-JSs1Xys0+XAPbxLv5pR91K0/e78mu5xLKu0HGdFFCEM=";
};
postPatch = ''
substituteInPlace meson.build \
--replace-fail "install_dir: systemd.get_variable('systemduserunitdir')" \
"install_dir: '$out/lib/systemd/user'"
'';
outputs = [
"out"
"doc"
@@ -67,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
pango
wayland
wayland-protocols
wlroots_0_19
wlroots_0_20
libxcb-wm
xwayland
];
+3 -3
View File
@@ -4,7 +4,7 @@
}:
let
version = "2.1.1";
version = "2.1.2";
in
{
inherit version;
@@ -13,10 +13,10 @@ in
owner = "lima-vm";
repo = "lima";
tag = "v${version}";
hash = "sha256-U054xA3utBcSfpyvsZi4MvgJGNa7QyAYJf9usNXpgXg=";
hash = "sha256-WN0HsSnxLh8MiA9UQoYWnfp5fJyEc6w1XJaencZCsL4=";
};
vendorHash = "sha256-C4YCuFVXkL5vS6lWZCGkEeZQgAkP55buPDGZ/wvMnAA=";
vendorHash = "sha256-8AksUgle1SlWuALi553TlpZ2qwO+jMA1kZQke91fimU=";
meta = {
homepage = "https://github.com/lima-vm/lima";
+2 -2
View File
@@ -1,6 +1,6 @@
{
lib,
buildGoModule,
buildGoLatestModule,
fetchFromGitHub,
pkg-config,
pcsclite,
@@ -10,7 +10,7 @@
versionCheckHook,
}:
buildGoModule (finalAttrs: {
buildGoLatestModule (finalAttrs: {
__structuredAttrs = true;
pname = "matcha";
@@ -1,7 +1,7 @@
diff --git a/webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx b/webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx
diff --git a/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx b/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx
index 93cb8ab263..3d12cd5e54 100644
--- a/webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx
+++ b/webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx
--- a/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx
+++ b/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_free_edition.tsx
@@ -57,7 +57,6 @@ const ProductBrandingFreeEdition = (): JSX.Element => {
width={116}
height={20}
@@ -10,10 +10,10 @@ index 93cb8ab263..3d12cd5e54 100644
</ProductBrandingFreeEditionContainer>
);
};
diff --git a/webapp/channels/src/components/header_footer_route/header.scss b/webapp/channels/src/components/header_footer_route/header.scss
index c2e6fbd187..bc1cedcff1 100644
--- a/webapp/channels/src/components/header_footer_route/header.scss
+++ b/webapp/channels/src/components/header_footer_route/header.scss
diff --git a/channels/src/components/header_footer_route/header.scss b/channels/src/components/header_footer_route/header.scss
index c2e6fbd187..828955cc79 100644
--- a/channels/src/components/header_footer_route/header.scss
+++ b/channels/src/components/header_footer_route/header.scss
@@ -47,20 +47,7 @@
}
@@ -36,23 +36,10 @@ index c2e6fbd187..bc1cedcff1 100644
}
}
}
@@ -83,12 +70,6 @@
margin-top: 12px;
}
}
-
- &.has-free-banner.has-custom-site-name {
- .header-back-button {
- bottom: -20px;
- }
- }
}
@media screen and (max-width: 699px) {
diff --git a/webapp/channels/src/components/widgets/menu/menu_items/menu_item.scss b/webapp/channels/src/components/widgets/menu/menu_items/menu_item.scss
diff --git a/channels/src/components/widgets/menu/menu_items/menu_item.scss b/channels/src/components/widgets/menu/menu_items/menu_item.scss
index dee9b57f8c..8ef4aa073a 100644
--- a/webapp/channels/src/components/widgets/menu/menu_items/menu_item.scss
+++ b/webapp/channels/src/components/widgets/menu/menu_items/menu_item.scss
--- a/channels/src/components/widgets/menu/menu_items/menu_item.scss
+++ b/channels/src/components/widgets/menu/menu_items/menu_item.scss
@@ -316,14 +316,7 @@
}
@@ -69,11 +56,11 @@ index dee9b57f8c..8ef4aa073a 100644
button {
padding: 3px 0;
diff --git a/webapp/channels/webpack.config.js b/webapp/channels/webpack.config.js
index f29f19f9ab..ab85fc3b86 100644
--- a/webapp/channels/webpack.config.js
+++ b/webapp/channels/webpack.config.js
@@ -469,6 +469,9 @@ if (targetIsDevServer) {
diff --git a/channels/webpack.config.js b/channels/webpack.config.js
index 852046de70..cf28fdcbd6 100644
--- a/channels/webpack.config.js
+++ b/channels/webpack.config.js
@@ -470,6 +470,9 @@ if (targetIsDevServer) {
historyApiFallback: {
index: '/static/root.html',
},
@@ -1,16 +1,46 @@
diff --git a/server/channels/app/limits.go b/server/channels/app/limits.go
index 4c88c1f049..3c1af8d02f 100644
index 4c88c1f049..fb7d84ef05 100644
--- a/server/channels/app/limits.go
+++ b/server/channels/app/limits.go
@@ -10,8 +10,8 @@ import (
)
@@ -18,23 +18,8 @@ func (a *App) GetServerLimits() (*model.ServerLimits, *model.AppError) {
limits := &model.ServerLimits{}
license := a.License()
const (
- maxUsersLimit = 200
- maxUsersHardLimit = 250
+ maxUsersLimit = 10000000
+ maxUsersHardLimit = 10000000
)
- if license == nil && maxUsersLimit > 0 {
- // Enforce hard-coded limits for unlicensed servers (no grace period).
- limits.MaxUsersLimit = maxUsersLimit
- limits.MaxUsersHardLimit = maxUsersHardLimit
- } else if license != nil && license.IsSeatCountEnforced && license.Features != nil && license.Features.Users != nil {
- // Enforce license limits as required by the license with configurable extra users.
- licenseUserLimit := int64(*license.Features.Users)
- limits.MaxUsersLimit = licenseUserLimit
-
- // Use ExtraUsers if configured, otherwise default to 0 (no extra users)
- extraUsers := 0
- if license.ExtraUsers != nil {
- extraUsers = *license.ExtraUsers
- }
-
- limits.MaxUsersHardLimit = licenseUserLimit + int64(extraUsers)
- }
+ limits.MaxUsersLimit = 0
+ limits.MaxUsersHardLimit = 0
func (a *App) GetServerLimits() (*model.ServerLimits, *model.AppError) {
// Check if license has post history limits and get the calculated timestamp
if license != nil && license.Limits != nil && license.Limits.PostHistory > 0 {
@@ -99,14 +84,5 @@ func (a *App) GetPostHistoryLimit() int64 {
}
func (a *App) isAtUserLimit() (bool, *model.AppError) {
- userLimits, appErr := a.GetServerLimits()
- if appErr != nil {
- return false, appErr
- }
-
- if userLimits.MaxUsersHardLimit == 0 {
- return false, nil
- }
-
- return userLimits.ActiveUserCount >= userLimits.MaxUsersHardLimit, appErr
+ return false, nil
}
+7 -7
View File
@@ -138,13 +138,9 @@ buildMattermost rec {
'';
};
patches =
lib.optionals removeFreeBadge [
./mattermost-remove-free-banner.patch
]
++ lib.optionals removeUserLimit [
./mattermost-remove-user-limit.patch
];
patches = lib.optionals removeUserLimit [
./mattermost-remove-user-limit.patch
];
# Needed because buildGoModule does not support go workspaces yet.
# We use go 1.22's workspace vendor command, which is not yet available
@@ -248,6 +244,10 @@ buildMattermost rec {
sourceRoot = "${src.name}/webapp";
patches = lib.optionals removeFreeBadge [
./mattermost-remove-free-banner.patch
];
# Remove deprecated image-webpack-loader causing build failures
# See: https://github.com/tcoopman/image-webpack-loader#deprecated
postPatch = ''
@@ -31,13 +31,13 @@ in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "modrinth-app-unwrapped";
version = "0.13.17";
version = "0.14.2";
src = fetchFromGitHub {
owner = "modrinth";
repo = "code";
tag = "v${finalAttrs.version}";
hash = "sha256-Qn4IlqJagLoIcP9p9QdKzu2wdcBDLvfq/2sgVwIjbm4=";
hash = "sha256-j4HaBmWzCFAmkzeEWln+nSwNuvlv5zmwf89ClGqCvus=";
};
patches = [
@@ -67,7 +67,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '1.0.0-local' '${finalAttrs.version}'
'';
cargoHash = "sha256-iI1AjFApd9fzss3hSVJLofHLZ6SJqUccHJ7PHqtBk+k=";
cargoHash = "sha256-VKz06Z3bFuJrzNEeIF6O4N0Mju1RtuZVQfw2ONIBwmg=";
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
@@ -78,7 +78,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-oPZt68SosRgzl50VR/xWozcc0weQKiY6T1UcvgMRq1M=";
hash = "sha256-bBXnRtFeMzBr3XvXqYsY2iGHD7q4qDrPhxW163N0MTo=";
};
nativeBuildInputs = [
+61 -10
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
# nativeBuildInputs
cmake,
@@ -33,6 +34,53 @@
nixosTests,
}:
let
# TODO(@doronbehar): Contribute this one day to lib/? See:
# https://discourse.nixos.org/t/rfc-nix-function-that-overrides-a-scope-with-automatic-inheritance-propagation/78025
overrideScopeFully =
s: scopeOverrideFunc:
let
partiallyOverriddenScope = s.overrideScope scopeOverrideFunc;
directlyOverriddenAttrs = builtins.attrNames (scopeOverrideFunc partiallyOverriddenScope s);
in
builtins.mapAttrs (
attrName: pkg:
pkg.override (
lib.pipe directlyOverriddenAttrs [
(builtins.filter (
oAttr:
# Don't include in this filter the attribute `attrName` from the
# full scope, if it is already part of the _directly_ overridden
# attributes.
!(builtins.elem attrName directlyOverriddenAttrs)
&& pkg ? override
# Continue with the creation of the `.override` arguments only for
# overridden attributes (`oAttr`) which are possible arguments to the
# `.override` function of the `pkg` at hand.
&& pkg.override.__functionArgs ? ${oAttr}
))
# Generate the `.override` argument using the attribute names `aNames`
(aNames: lib.genAttrs aNames (oAttr: partiallyOverriddenScope.${oAttr}))
]
)
) partiallyOverriddenScope;
kdePackages' = overrideScopeFully kdePackages (
self: super: {
# Fix for: https://github.com/NixOS/nixpkgs/issues/526825
# reported upstream at: https://github.com/musescore/MuseScore/issues/33015
qtdeclarative = super.qtdeclarative.overrideAttrs (
new: old: {
patches = old.patches ++ [
(fetchpatch {
url = "https://github.com/qt/qtdeclarative/commit/9d4d376726a6ce15c429128dc65b927e411e40da.patch";
hash = "sha256-XhfliF5wZuN4/E55f8hfipIRjxBe9V7vL1cgn5p4xqA=";
})
];
}
);
}
);
in
stdenv.mkDerivation (finalAttrs: {
pname = "musescore";
version = "4.7.2";
@@ -94,8 +142,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
kdePackages.qttools
kdePackages.wrapQtAppsHook
kdePackages'.qttools
kdePackages'.wrapQtAppsHook
ninja
pkg-config
]
@@ -108,12 +156,12 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
flac
freetype
kdePackages.qt5compat
kdePackages.qtbase
kdePackages.qtdeclarative
kdePackages.qtnetworkauth
kdePackages.qtscxml
kdePackages.qtsvg
kdePackages'.qt5compat
kdePackages'.qtbase
kdePackages'.qtdeclarative
kdePackages'.qtnetworkauth
kdePackages'.qtscxml
kdePackages'.qtsvg
lame
libjack2
libogg
@@ -130,9 +178,12 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
kdePackages.qtwayland
kdePackages'.qtwayland
];
strictDeps = true;
__structuredAttrs = true;
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p "$out/Applications"
mv "$out/mscore.app" "$out/Applications/mscore.app"
@@ -166,7 +217,7 @@ stdenv.mkDerivation (finalAttrs: {
# Don't run bundled upstreams tests, as they require a running X window system.
doCheck = false;
passthru.tests = nixosTests.musescore;
passthru.tests.nixos = nixosTests.musescore;
meta = {
description = "Music notation and composition software";
@@ -0,0 +1,14 @@
--- a/src/integrations/navidrome.py
+++ b/src/integrations/navidrome.py
@@ -556,11 +556,6 @@
process = None
def check_if_ready(self, row) -> bool:
- if get_navidrome_path():
- return True
- else:
- row.get_root().main_stack.set_visible_child_name('setup')
- row.get_root().main_stack.get_child_by_name('setup').set_integration(self)
return False
def start_instance(self) -> bool:
+5 -4
View File
@@ -12,7 +12,6 @@
glib,
glib-networking,
pkg-config,
cmake,
gtk4,
python3,
python3Packages,
@@ -50,7 +49,6 @@ stdenv.mkDerivation (finalAttrs: {
appstream
glib
pkg-config
cmake
gtk4
python3
];
@@ -64,6 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
];
pythonDependencies = [
@@ -73,7 +72,6 @@ stdenv.mkDerivation (finalAttrs: {
python3Packages.syncedlyrics
python3Packages.pycairo
python3Packages.colorthief
python3Packages.favicon
python3Packages.mpris-server
python3Packages.pillow
];
@@ -85,8 +83,11 @@ stdenv.mkDerivation (finalAttrs: {
)
'';
# avoid installing Navidrome at runtime if not available, incompatible with the nix store
patches = [ ./disable-navidrome-setup.patch ];
meta = {
description = "Adwaita Music Player and Library Manager";
description = "Adwaita music player for OpenSubsonic servers like Navidrome";
homepage = "https://jeffser.com/nocturne/";
changelog = "https://github.com/Jeffser/Nocturne/releases";
license = lib.licenses.gpl3Plus;
+2 -6
View File
@@ -5,6 +5,7 @@
pnpm_9,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
@@ -21,15 +22,10 @@ stdenvNoCC.mkDerivation rec {
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpmBuildHook
pnpm_9
];
buildPhase = ''
runHook preBuild
pnpm build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share
+7 -11
View File
@@ -5,6 +5,7 @@
pnpm_9,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
nodejs,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@@ -25,26 +26,21 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpmBuildHook
pnpm_9
];
buildPhase = ''
runHook preBuild
cd $pnpmRoot
pnpm build
mkdir -p assets/identifier/static
cp -v src/images/favicon.svg assets/identifier/static/favicon.svg
cp -v src/images/icon-lilac.svg assets/identifier/static/icon-lilac.svg
runHook postBuild
postBuild = ''
mkdir -p services/idp/assets/identifier/static
cp -v services/idp/src/images/favicon.svg services/idp/assets/identifier/static/favicon.svg
cp -v services/idp/src/images/icon-lilac.svg services/idp/assets/identifier/static/icon-lilac.svg
'';
installPhase = ''
runHook preInstall
mkdir $out
cp -r assets $out
cp -r services/idp/assets $out
runHook postInstall
'';
+2 -2
View File
@@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "openimageio";
version = "3.1.13.1";
version = "3.1.14.0";
src = fetchFromGitHub {
owner = "AcademySoftwareFoundation";
repo = "OpenImageIO";
tag = "v${finalAttrs.version}";
hash = "sha256-GlQ4e0YGHqQxlwcyC8SVf4y0mKZiEyaT4jtxw0Pva4U=";
hash = "sha256-sA4NzGdT+K9uQM+h8Ew1EvjO8TGMGyyLS5KYYMJAToE=";
};
outputs = [
+33 -7
View File
@@ -6,24 +6,24 @@
fetchzip,
nodejs,
openlistPnpm ? pnpm_10,
openlistPnpm ? pnpm_11,
pnpmConfigHook,
pnpm_10,
pnpm_11,
}:
buildNpmPackage (finalAttrs: {
pname = "openlist-frontend";
version = "4.2.1";
version = "4.2.2";
src = fetchFromGitHub {
owner = "OpenListTeam";
repo = "OpenList-Frontend";
tag = "v${finalAttrs.version}";
hash = "sha256-4WSL6j0dANUNlHFkMBb8j/KyNHWDQmLnC1y2FFJiBEI=";
hash = "sha256-RLuAGjiYELy+roip2TtvUXGOw6Vk+GkczT1LSI0Vx+8=";
};
i18n = fetchzip {
url = "https://github.com/OpenListTeam/OpenList-Frontend/releases/download/v${finalAttrs.version}/i18n.tar.gz";
hash = "sha256-VzHNZh0ZA2FncAkyozHeBilN4KKsPqbpMESx4QCppW0=";
hash = "sha256-ZO/ozyRNqh2W4/acQmGHoEMpjpf2jph7Gn/kOlwVSFs=";
stripRoot = false;
};
@@ -40,8 +40,8 @@ buildNpmPackage (finalAttrs: {
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = openlistPnpm;
fetcherVersion = 3;
hash = "sha256-rTDk1p568AKim+ZD00uq1q4XNNMeUFL1rGDBWx2C6DQ=";
fetcherVersion = 4;
hash = "sha256-ujsCuQexnKPNwoJzaWmhu3+4xMkZ0jR04m2exG674dI=";
};
npmConfigHook = pnpmConfigHook;
@@ -50,6 +50,13 @@ buildNpmPackage (finalAttrs: {
# Error: getaddrinfo ENOTFOUND localhost
__darwinAllowLocalNetworking = true;
preBuild = ''
rm -rf node_modules/mpegts.js
cp -R ${finalAttrs.passthru.mpegts-js}/lib/node_modules/mpegts.js node_modules/mpegts.js
chmod -R u+w node_modules/mpegts.js
test -f node_modules/mpegts.js/dist/mpegts.js
'';
installPhase = ''
runHook preInstall
@@ -59,6 +66,25 @@ buildNpmPackage (finalAttrs: {
runHook postInstall
'';
passthru = {
# OpenList depends on a forked mpegts.js git package whose source does not include the generated dist/
mpegts-js = buildNpmPackage {
pname = "mpegts-js-openlist";
version = "1.8.1-unstable-2026-05-16";
src = fetchFromGitHub {
owner = "OpenListTeam";
repo = "mpegts.js";
rev = "1e51e0f6f918cf08e05dfae9c7bfcf658d6b4ac2";
hash = "sha256-z+S3iSYqrMuxFRGa5JZIfGMyi7IErpnluwZUVLxqz2o=";
};
npmDepsHash = "sha256-UDI0iPK/ouVgpzscGrQXNnVUseLWYmR0W9THpBm4WqA=";
meta.license = lib.licenses.asl20;
};
};
meta = {
description = "Frontend of OpenList";
homepage = "https://github.com/OpenListTeam/OpenList-Frontend";
+8 -6
View File
@@ -8,18 +8,17 @@
installShellFiles,
libredirect,
versionCheckHook,
fuse,
}:
buildGoModule (finalAttrs: {
pname = "openlist";
version = "4.2.1";
version = "4.2.2";
src = fetchFromGitHub {
owner = "OpenListTeam";
repo = "OpenList";
tag = "v${finalAttrs.version}";
hash = "sha256-9MDcAQh06W6mOhYpFR49bxvTTrIoJnKY9P3WRVWsujI=";
hash = "sha256-MxoF+hpzn/44knjVeaINo4/1T4ia7HG8mm+tbvJEsfQ=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -35,17 +34,20 @@ buildGoModule (finalAttrs: {
frontend = callPackage ./frontend.nix { };
proxyVendor = true;
vendorHash = "sha256-Ho9zVKdzpGKZ/ftJmidUkMBsN4qfvLa96Fg3ayTfYac=";
vendorHash = "sha256-ScPfry0PtSlABdyG+7egMAndG7D3iz1+ceAAhLQPtkM=";
nativeBuildInputs = [
installShellFiles
]
++ lib.optional stdenv.hostPlatform.isDarwin libredirect.hook;
buildInputs = [ fuse ];
tags = [ "jsoniter" ];
subPackages = [
"."
"pkg/gowebdav/cmd/gowebdav"
];
ldflags = [
"-s"
"-X \"github.com/OpenListTeam/OpenList/v4/internal/conf.GitAuthor=The OpenList Projects Contributors <noreply@openlist.team>\""
+30 -1
View File
@@ -18,7 +18,6 @@ writeShellApplication {
];
text = ''
# get old info
oldVersion=$(nix-instantiate --eval --strict -A "openlist.version" | jq -e -r)
get_latest_release() {
@@ -27,6 +26,24 @@ writeShellApplication {
-s "https://api.github.com/repos/OpenListTeam/$repo/releases/latest" | jq -r ".tag_name"
}
get_github_commit_date() {
local repo=$1
local rev=$2
curl --fail ''${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
-s "https://api.github.com/repos/OpenListTeam/$repo/commits/$rev" \
| jq -e -r '.commit.committer.date[0:10]'
}
get_github_package_version_at_rev() {
local repo=$1
local rev=$2
curl --fail ''${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
-s "https://raw.githubusercontent.com/OpenListTeam/$repo/$rev/package.json" \
| jq -e -r '.version'
}
version=$(get_latest_release "OpenList")
version="''${version#v}"
frontendVersion=$(get_latest_release "OpenList-Frontend")
@@ -42,6 +59,18 @@ writeShellApplication {
--source-key=i18n --ignore-same-version \
--file=pkgs/by-name/op/openlist/frontend.nix
frontendLockFile="$(nix-build --no-out-link -A openlist.frontend.src)/pnpm-lock.yaml"
mpegtsRev=$(sed -nE 's/.*github:OpenListTeam\/mpegts\.js#([0-9a-f]{40}).*/\1/p' "$frontendLockFile"| head -n1)
mpegtsBaseVersion=$(get_github_package_version_at_rev "mpegts.js" "$mpegtsRev")
mpegtsDate=$(get_github_commit_date "mpegts.js" "$mpegtsRev")
update-source-version openlist.frontend.mpegts-js "$mpegtsBaseVersion-unstable-$mpegtsDate" \
--rev="$mpegtsRev" \
--file=pkgs/by-name/op/openlist/frontend.nix
nix-update openlist.frontend.mpegts-js \
--version=skip \
--override-filename=pkgs/by-name/op/openlist/frontend.nix
nix-update openlist --version="$version"
'';
}
+9
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
pkg-config,
zlib,
@@ -28,6 +29,14 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-s/3bIhPGa3+SKjMh0CNgsU3nOkhEaxPTpmEbc6VIn3Q=";
};
patches = [
(fetchpatch {
name = "CVE-2026-10275.patch";
url = "https://github.com/OpenSC/OpenSC/commit/814f745b3b6d100295f65f1935edd33d520d33ab.patch";
hash = "sha256-S8PeXCRAUlkKUPYOl/n5+4QIqWOZtHX3yEDnpFhJO8k=";
})
];
nativeBuildInputs = [
pkg-config
autoreconfHook
+10
View File
@@ -0,0 +1,10 @@
{
makeSetupHook,
}:
makeSetupHook {
# Shouldn't need to propagate anything because for this to do anything useful,
# the config hook must also be used.
name = "pnpm-build-hook";
__structuredAttrs = true;
} ./pnpm-build-hook.sh
@@ -0,0 +1,52 @@
# shellcheck shell=bash
pnpmBuildHook() {
echo "Executing pnpmBuildHook"
if [[ $pnpmRoot ]]; then
pushd "$pnpmRoot"
fi
# Add workspace flags before the other flags
local -a pnpmWorkspacesArray
concatTo pnpmWorkspacesArray pnpmWorkspaces
local -a pnpmBuildFlagsArray
concatTo pnpmBuildFlagsArray pnpmFlags pnpmBuildFlags
echo
echo "Running"
echo "pnpm run ${pnpmWorkspacesArray[*]/#/--filter=} ${pnpmBuildScript:-build} ${pnpmBuildFlagsArray[*]}"
echo
if ! pnpm run "${pnpmWorkspacesArray[@]/#/--filter=}" "${pnpmBuildScript:-build}" "${pnpmBuildFlagsArray[@]}"; then
echo
echo "ERROR: 'pnpm run ${pnpmBuildScript:-build}' failed"
echo
echo "Here are a few things you can try, depending on the error:"
echo "1. Make sure your build script (${pnpmBuildScript:-build}) exists"
echo ' If there isnt one, set `dontPnpmBuild = true`.'
echo
exit 1
fi
if [[ $pnpmRoot ]]; then
popd
fi
echo "Finished pnpmBuildHook"
}
pnpmBuildPhase() {
runHook preBuild
pnpmBuildHook
runHook postBuild
}
if [ -z "${dontPnpmBuild-}" ] && [ -z "${buildPhase-}" ]; then
buildPhase=pnpmBuildPhase
fi
+3 -3
View File
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "samloader-rs";
version = "1.1.0";
version = "1.2.0";
src = fetchFromGitHub {
owner = "topjohnwu";
repo = "samloader-rs";
tag = finalAttrs.version;
hash = "sha256-LgN/vGfb5hdy9/YH4x3+vFUjH97omGu2iNtkDJRMmsk=";
hash = "sha256-0EsSs7GI4D4N3w33NBHKIEDmGk29aRceOwzDA7cy924=";
};
cargoHash = "sha256-o0+Kb8teYhuhvl8U6FiAq8Z6vd4IWA8k4Z104Z9BkMw=";
cargoHash = "sha256-3i2232Rq9AEqPK8teVmu5kPX10ZopXTm7djUalfPFng=";
nativeBuildInputs = [ perl ];
+3 -3
View File
@@ -12,14 +12,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "seconlay";
version = "0-unstable-2026-05-21";
version = "0-unstable-2026-05-29";
src = fetchFromGitLab {
group = "alasca.cloud";
owner = "scl";
repo = "scl-management";
rev = "3ebeeda26e919750790c24899320ac1f6ba82904";
hash = "sha256-+erlSKH8FBG2Ncpn6D61itTiB2IhbMefgO7EZ7NgZa8=";
rev = "58c9b1ef34d950a356edde4da746e4238fc77c2c";
hash = "sha256-33YmlPS8Js0JebsBEzSj23qErUpyhdIINltcljVBKEI=";
};
cargoHash = "sha256-pb9xqdgWrf8Lc10jSkkDb/1n0e15fMQ3AcKNPw6/vi8=";
+3 -7
View File
@@ -9,6 +9,7 @@
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
electron,
makeWrapper,
makeDesktopItem,
@@ -84,6 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
pnpm
]
++ lib.optionals isLinux [
pnpmBuildHook
makeWrapper
copyDesktopItems
]
@@ -120,11 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
chmod -R u+w electron-dist
'';
buildPhase = ''
runHook preBuild
pnpm build
postBuild = ''
electronBuilderArgs=(
--dir
--config electron-builder-${platformId}.yml
@@ -134,8 +132,6 @@ stdenv.mkDerivation (finalAttrs: {
)
npm exec electron-builder -- "''${electronBuilderArgs[@]}"
runHook postBuild
'';
installPhase = ''
+2 -2
View File
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "strictdoc";
version = "0.21.1";
version = "0.22.0";
pyproject = true;
src = fetchFromGitHub {
owner = "strictdoc-project";
repo = "strictdoc";
tag = finalAttrs.version;
hash = "sha256-kKygvUCrkftEEKLoinVkP5DARsHGguSfsPaTpYYXPpU=";
hash = "sha256-mDsI/pGMIcyfFqX9uWWlg09As+4Mth9WK5xylQvSVGM=";
};
build-system = [
+8 -8
View File
@@ -1,21 +1,21 @@
{
"version": "0.63.2",
"version": "0.63.3",
"platforms": {
"x86_64-linux": {
"filename": "swiftlint_linux_amd64.zip",
"hash": "sha256-3RAXz9IKFFfyZFkLy1h1pu4GzXW5qdT3fNQ6VSSZFDs="
},
"aarch64-linux": {
"filename": "swiftlint_linux_arm64.zip",
"hash": "sha256-EE3t/3YhV/XP93UvHMKiibYPPqZ35y1lHG86Mof92Ug="
"hash": "sha256-1e/L7V7Byp63+DPf3Z+A9WKJdQtyWCx8Foa0Uo4YJFQ="
},
"x86_64-linux": {
"filename": "swiftlint_linux_amd64.zip",
"hash": "sha256-Jtt0HUPy8twmwM8WkREAo+GGw9HbtZ5VrTrIew3kU48="
},
"x86_64-darwin": {
"filename": "portable_swiftlint.zip",
"hash": "sha256-xZpAXIX5W5LO1nelAIBOCBWWpMrkpqSFr3YGVVfW7Sk="
"hash": "sha256-+wRehefLM3T0KkhAtrhaAQYwKvppA1wMbymvSkTIELY="
},
"aarch64-darwin": {
"filename": "portable_swiftlint.zip",
"hash": "sha256-xZpAXIX5W5LO1nelAIBOCBWWpMrkpqSFr3YGVVfW7Sk="
"hash": "sha256-+wRehefLM3T0KkhAtrhaAQYwKvppA1wMbymvSkTIELY="
}
}
}
+3 -3
View File
@@ -40,14 +40,14 @@ let
in
buildGo126Module (finalAttrs: {
pname = "tonearm";
version = "1.4.0";
version = "1.4.1";
src = fetchFromCodeberg {
owner = "dergs";
repo = "Tonearm";
tag = "v${finalAttrs.version}";
hash = "sha256-tfnJiEJD0SWKxi5MjGbDLVe80niMcMHpzNaOM1SNEQo=";
hash = "sha256-uhKWUF8IhihaCA+BkKBEIYB/kbnxdxmJwidsJ52L4yQ=";
};
vendorHash = "sha256-/pUSUfOt5heiObZNQRlZjN1a+j9JocB43F9072pyLjw=";
vendorHash = "sha256-vOkOSquBbWjx1eK7h3vmmHKzaopkbu2iL5mbknMo1Kg=";
ldflags = [
"-X \"codeberg.org/dergs/tonearm/internal/ui.Version=${finalAttrs.version}\""
+2 -8
View File
@@ -9,6 +9,7 @@
nodejs,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
pnpm_10,
prisma_7,
prisma-engines_7,
@@ -83,6 +84,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
makeWrapper
nodejs
pnpmConfigHook
pnpmBuildHook
pnpm
];
@@ -135,14 +137,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
env.PRISMA_QUERY_ENGINE_LIBRARY = "${finalAttrs.passthru.prisma-engines}/lib/libquery_engine.node";
env.PRISMA_SCHEMA_ENGINE_BINARY = "${finalAttrs.passthru.prisma-engines}/bin/schema-engine";
buildPhase = ''
runHook preBuild
pnpm build
runHook postBuild
'';
checkPhase = ''
runHook preCheck
@@ -0,0 +1,284 @@
Index: usb-modeswitch-2.6.2/Makefile
===================================================================
--- usb-modeswitch-2.6.2/Makefile
+++ usb-modeswitch-2.6.2/Makefile
@@ -5,17 +5,24 @@ CFLAGS += -Wall -Wno-deprecated-dec
LIBS = `pkg-config --libs --cflags libusb-1.0`
RM = /bin/rm -f
OBJS = usb_modeswitch.c
-PREFIX = $(DESTDIR)/usr
-ETCDIR = $(DESTDIR)/etc
+PREFIX = /usr/local
+ETCDIR = $(PREFIX)/etc
SYSDIR = $(ETCDIR)/systemd/system
UPSDIR = $(ETCDIR)/init
-UDEVDIR = $(DESTDIR)/lib/udev
+UDEVDIR = $(PREFIX)/lib/udev
SBINDIR = $(PREFIX)/sbin
MANDIR = $(PREFIX)/share/man/man1
+USE_UPSTART=$(shell if command -v initctl > /dev/null; then echo "true"; fi)
+USE_SYSTEMD=$(shell if command -v systemctl > /dev/null; then echo "true"; fi)
+
.PHONY: clean install install-common uninstall \
dispatcher-script dispatcher-dynlink dispatcher-statlink \
- install-script install-dynlink install-statlink
+ install-script install-dynlink install-statlink \
+ install-upstart install-systemd \
+ configure-dispatcher configure-script \
+ configure-upstart configure-systemd \
+ configure
all: all-with-script-dispatcher
@@ -28,7 +35,25 @@ all-with-statlink-dispatcher: $(PROG) di
$(PROG): $(OBJS) usb_modeswitch.h
$(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS)
-dispatcher-script: usb_modeswitch_dispatcher.tcl
+configure-dispatcher:
+ sed -i \
+ -e 's,^\(set setup(sbindir) \).*$$,\1$(SBINDIR),' \
+ -e 's,^\(set setup(etcdir) \).*$$,\1$(ETCDIR),' \
+ usb_modeswitch_dispatcher.tcl
+
+configure-script:
+ sed -i -e 's,^\(SBINDIR=\).*$$,\1$(SBINDIR),' usb_modeswitch.sh
+
+configure-systemd:
+ sed -i -e 's,@sbindir@,$(SBINDIR),' usb_modeswitch@.service
+
+configure-upstart:
+ sed -i -e 's,@sbindir@,$(SBINDIR),' usb-modeswitch-upstart.conf
+
+configure: configure-dispatcher configure-script \
+ configure-systemd configure-upstart
+
+dispatcher-script: configure-dispatcher usb_modeswitch_dispatcher.tcl
DISPATCH=dispatcher-script
cp -f usb_modeswitch_dispatcher.tcl usb_modeswitch_dispatcher
@@ -53,16 +78,28 @@ distclean: clean
# If the systemd folder is present, install the service for starting the dispatcher
# If not, use the dispatcher directly from the udev rule as in previous versions
-install-common: $(PROG) $(DISPATCH)
- install -D --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch
- install -D --mode=755 usb_modeswitch.sh $(UDEVDIR)/usb_modeswitch
- install -D --mode=644 usb_modeswitch.conf $(ETCDIR)/usb_modeswitch.conf
- install -D --mode=644 usb_modeswitch.1 $(MANDIR)/usb_modeswitch.1
- install -D --mode=644 usb_modeswitch_dispatcher.1 $(MANDIR)/usb_modeswitch_dispatcher.1
- install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher
+install-common: $(PROG) configure $(DISPATCH)
+ install -D --mode=755 usb_modeswitch $(DESTDIR)$(SBINDIR)/usb_modeswitch
+ install -D --mode=755 usb_modeswitch.sh $(DESTDIR)$(UDEVDIR)/usb_modeswitch
+ install -D --mode=644 usb_modeswitch.conf $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf
+ install -D --mode=644 usb_modeswitch.1 $(DESTDIR)$(MANDIR)/usb_modeswitch.1
+ install -D --mode=644 usb_modeswitch_dispatcher.1 $(DESTDIR)$(MANDIR)/usb_modeswitch_dispatcher.1
+ install -D --mode=755 usb_modeswitch_dispatcher $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher
install -d $(DESTDIR)/var/lib/usb_modeswitch
- test -d $(UPSDIR) -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf $(UPSDIR) || test 1
- test -d $(SYSDIR) -a \( -e /usr/bin/systemctl -o -e /bin/systemctl \) && install --mode=644 usb_modeswitch@.service $(SYSDIR) || test 1
+
+install-upstart:
+ install -D --mode=644 usb-modeswitch-upstart.conf $(DESTDIR)$(UPSDIR)/usb-modeswitch-upstart.conf
+
+install-systemd:
+ install -D --mode=644 usb_modeswitch@.service $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
+
+ifeq ($(USE_UPSTART),true)
+install-common: install-upstart
+endif
+
+ifeq ($(USE_SYSTEMD),true)
+install-common: install-systemd
+endif
install: install-script
@@ -73,10 +110,10 @@ install-dynlink: dispatcher-dynlink inst
install-statlink: dispatcher-statlink install-common
uninstall:
- $(RM) $(SBINDIR)/usb_modeswitch
- $(RM) $(SBINDIR)/usb_modeswitch_dispatcher
- $(RM) $(UDEVDIR)/usb_modeswitch
- $(RM) $(ETCDIR)/usb_modeswitch.conf
- $(RM) $(MANDIR)/usb_modeswitch.1
+ $(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch
+ $(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher
+ $(RM) $(DESTDIR)$(UDEVDIR)/usb_modeswitch
+ $(RM) $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf
+ $(RM) $(DESTDIR)$(MANDIR)/usb_modeswitch.1
$(RM) -R $(DESTDIR)/var/lib/usb_modeswitch
- $(RM) $(SYSDIR)/usb_modeswitch@.service
+ $(RM) $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
Index: usb-modeswitch-2.6.2/usb-modeswitch-upstart.conf
===================================================================
--- usb-modeswitch-2.6.2.orig/usb-modeswitch-upstart.conf
+++ usb-modeswitch-2.6.2/usb-modeswitch-upstart.conf
@@ -1,5 +1,5 @@
start on usb-modeswitch-upstart
task
script
- exec /usr/sbin/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
+ exec @sbindir@/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
end script
Index: usb-modeswitch-2.6.2/usb_modeswitch.sh
===================================================================
--- usb-modeswitch-2.6.2.orig/usb_modeswitch.sh
+++ usb-modeswitch-2.6.2/usb_modeswitch.sh
@@ -1,5 +1,9 @@
#!/bin/sh
# part of usb_modeswitch 2.6.2
+
+# Compile time configuration, injected by the Makefile
+SBINDIR=/usr/sbin
+
device_in()
{
if [ ! -e /var/lib/usb_modeswitch/$1 ]; then
@@ -37,7 +41,7 @@ if [ $(expr "$1" : "--.*") ]; then
v_id=$3
fi
fi
-PATH=/sbin:/usr/sbin:$PATH
+
case "$1" in
--driver-bind)
# driver binding code removed
@@ -46,9 +50,7 @@ case "$1" in
--symlink-name)
device_in "link_list" $v_id $p_id
if [ "$?" = "1" ]; then
- if [ -e "/usr/sbin/usb_modeswitch_dispatcher" ]; then
- exec usb_modeswitch_dispatcher $1 $2 2>>/dev/null
- fi
+ exec $SBINDIR/usb_modeswitch_dispatcher $1 $2 2>>/dev/null
fi
exit 0
;;
@@ -61,15 +63,13 @@ if [ "$p2" = "" -a "$p1" != "" ]; then
p2=$p1
fi
-PATH=/bin:/sbin:/usr/bin:/usr/sbin
-init_path=`readlink -f /sbin/init`
-if [ `basename $init_path` = "systemd" ]; then
+if command -v systemctl > /dev/null; then
systemctl --no-block restart usb_modeswitch@$p2.service
-elif [ -e "/etc/init/usb-modeswitch-upstart.conf" ]; then
+elif command -v initctl > /dev/null; then
initctl emit --no-wait usb-modeswitch-upstart UMS_PARAM=$p2
else
# only old distros, new udev will kill all subprocesses
exec 1<&- 2<&- 5<&- 7<&-
- exec usb_modeswitch_dispatcher --switch-mode $p2 &
+ exec $SBINDIR/usb_modeswitch_dispatcher --switch-mode $p2 &
fi
exit 0
Index: usb-modeswitch-2.6.2/usb_modeswitch@.service
===================================================================
--- usb-modeswitch-2.6.2.orig/usb_modeswitch@.service
+++ usb-modeswitch-2.6.2/usb_modeswitch@.service
@@ -3,7 +3,7 @@ Description=USB_ModeSwitch_%i
[Service]
Type=oneshot
-ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode %i
+ExecStart=@sbindir@/usb_modeswitch_dispatcher --switch-mode %i
# Testing
#ExecStart=/bin/echo "usb_modeswitch.service: device name is %i"
Index: usb-modeswitch-2.6.2/usb_modeswitch_dispatcher.tcl
===================================================================
--- usb-modeswitch-2.6.2.orig/usb_modeswitch_dispatcher.tcl
+++ usb-modeswitch-2.6.2/usb_modeswitch_dispatcher.tcl
@@ -24,6 +24,16 @@
#
# http://www.gnu.org/licenses/gpl.txt
+# Compile-time configuration, injected by the Makefile.
+set setup(sbindir) /usr/sbin
+set setup(etcdir) /etc
+
+# External dependency default location
+set setup(dbdir) /usr/share/usb_modeswitch
+
+# Derived configuration
+set setup(dbdir_etc) $setup(etcdir)/usb_modeswitch.d
+
set arg0 [lindex $argv 0]
if [regexp {\.tcl$} $arg0] {
if [file exists $arg0] {
@@ -115,10 +125,8 @@ if {![regexp {(.*?):.*$} $arg1 d device]
}
}
-set setup(dbdir) /usr/share/usb_modeswitch
-set setup(dbdir_etc) /etc/usb_modeswitch.d
if {![file exists $setup(dbdir)] && ![file exists $setup(dbdir_etc)]} {
- Log "\nError: no config database found in /usr/share or /etc. Exit"
+ Log "\nError: no config database found in $setup(dbdir) or $setup(dbdir_etc). Exit"
SafeExit
}
@@ -285,7 +293,7 @@ if {$config(NoMBIMCheck)==0 && $usb(bNum
if [CheckMBIM] {
Log " driver for MBIM devices is available"
Log "Find MBIM configuration number ..."
- if [catch {set cfgno [exec /usr/sbin/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] {
+ if [catch {set cfgno [exec $setup(sbindir)/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] {
Log "Error when trying to find MBIM configuration, switch to legacy modem mode"
} else {
set cfgno [string trim $cfgno]
@@ -321,7 +329,7 @@ if {$report == ""} {
# Now we are actually switching
if $flags(logging) {
Log "Command line:\nusb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f \$flags(config)"
- catch {set report [exec /usr/sbin/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
+ catch {set report [exec $setup(sbindir)/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
Log "\nVerbose debug output of usb_modeswitch and libusb follows"
Log "(Note that some USB errors are to be expected in the process)"
Log "--------------------------------"
@@ -329,7 +337,7 @@ if {$report == ""} {
Log "--------------------------------"
Log "(end of usb_modeswitch output)\n"
} else {
- catch {set report [exec /usr/sbin/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
+ catch {set report [exec $setup(sbindir)/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
}
}
@@ -522,12 +530,12 @@ return 1
proc {ParseGlobalConfig} {path} {
-global flags
+global flags setup
set configFile ""
if [string length $path] {
set places [list $path]
} else {
- set places [list /etc/usb_modeswitch.conf /etc/sysconfig/usb_modeswitch /etc/default/usb_modeswitch]
+ set places [list $setup(etcdir)/usb_modeswitch.conf $setup(etcdir)/sysconfig/usb_modeswitch $setup(etcdir)/default/usb_modeswitch]
}
foreach cfg $places {
if [file exists $cfg] {
@@ -923,10 +931,12 @@ proc {SysLog} {msg} {
global flags
if {![info exists flags(logger)]} {
- set flags(logger) ""
- foreach fn {/bin/logger /usr/bin/logger} {
- if [file exists $fn] {
- set flags(logger) $fn
+ set flags(logger) [exec sh -c "command -v logger || true"]
+ if {$flags(logger) == ""} {
+ foreach fn {/bin/logger /usr/bin/logger} {
+ if [file exists $fn] {
+ set flags(logger) $fn
+ }
}
}
Log "Logger is $flags(logger)"
+4 -1
View File
@@ -20,7 +20,10 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-96vTN3hKnRvTnLilh1GK/28qQ9kWFF6v2Asbi3FG22Y=";
};
patches = [ ./pkg-config.patch ];
patches = [
./configurable-usb-modeswitch.patch
./pkg-config.patch
];
# Remove attempts to write to /etc and /var/lib.
postPatch = ''
@@ -2,10 +2,10 @@
rec {
pname = "irrlicht";
version = "1.8.4";
version = "1.8.5";
src = fetchzip {
url = "mirror://sourceforge/irrlicht/${pname}-${version}.zip";
sha256 = "02sq067fn4xpf0lcyb4vqxmm43qg2nxx770bgrl799yymqbvih5f";
hash = "sha256-cTkzxquMLl84/cSDZnSSQsmXRX/htV8M5NUTbnQuHoM=";
};
}
@@ -43,5 +43,6 @@ stdenv.mkDerivation {
license = lib.licenses.zlib;
description = "Open source high performance realtime 3D engine written in C++";
platforms = lib.platforms.darwin;
broken = true;
};
}
+2 -2
View File
@@ -5,14 +5,14 @@
# nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa
rec {
pname = "mesa";
version = "26.1.1";
version = "26.1.2";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mesa";
repo = "mesa";
rev = "mesa-${version}";
hash = "sha256-OmhBmBGR12Tl+5msiyL8lYQ3XYcDYCqUUjQObEqjytI=";
hash = "sha256-GqIU9BL57n+ihpeXug+K9kOtvHZ+LCUQg1wi/rrYWuc=";
};
meta = {
@@ -59,6 +59,13 @@ stdenv.mkDerivation {
./opencl.patch
];
postPatch = ''
# Darwin only installs `swrast_dri.so`. It is symlinked to `libdril_dri.dylib`, but the script never terminates
# checking for `swrast_dri.dylib`, which isnt what will be created.
substituteInPlace bin/install_megadrivers.py \
--replace-fail " while ext != '.' + args.libname_suffix" " while ext != '.so'"
'';
outputs = [
"out"
"dev"
@@ -8,7 +8,7 @@
buildPythonPackage (finalAttrs: {
pname = "disposable-email-domains";
version = "0.0.188";
version = "0.0.193";
pyproject = true;
__structuredAttrs = true;
@@ -16,7 +16,7 @@ buildPythonPackage (finalAttrs: {
src = fetchPypi {
pname = "disposable_email_domains";
inherit (finalAttrs) version;
hash = "sha256-CRSFrSo7wSUIBY3l/n5Uf3wM0AwbrxRiELepz0NWOXQ=";
hash = "sha256-5XT3UtSwPM2xQM44QgezX0YitUXR4xS/2tICH/O6BB4=";
};
build-system = [
@@ -28,17 +28,18 @@ let
in
buildPythonPackage.override { inherit (torch) stdenv; } (finalAttrs: {
pname = "flash-mla";
version = "0-unstable-2026-03-31";
version = "0-unstable-2026-04-29";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "deepseek-ai";
repo = "FlashMLA";
rev = "71c737929f2567bd0a094ae140f8f60f390b1232";
rev = "9241ae3ef9bac614dd25e45e507e089f888280e0";
# Using the cutlass git subodules is necessary to get cutlass/util/command_line.h which is not
# shipped in cudaPackages.cutlass
fetchSubmodules = true;
hash = "sha256-d8Hh+1QFwD6cl9fE8/XSYdWiJJjY9bSRk5h4N2sEV2U=";
hash = "sha256-rHHoDGEbBIvLRT0ZYOWQHrqyPBWtCpmF/AIcqFieomE=";
};
patches = [
@@ -14,14 +14,14 @@
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-abstractions";
version = "1.10.1";
version = "1.10.2";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-abstractions-v${finalAttrs.version}";
hash = "sha256-KBCjVNZDPMh0wxWm8UVLsrfl2AYp3rKMjAT5c8F7+64=";
hash = "sha256-rj0NpuXvqS5rB6TrD3FyuMWb7Dl8/SIBcW/Lzj4cY6I=";
};
sourceRoot = "${finalAttrs.src.name}/packages/abstractions/";
@@ -2,6 +2,7 @@
lib,
stdenv,
buildPythonPackage,
replaceVars,
fetchPypi,
setuptools,
pkgs,
@@ -9,13 +10,13 @@
mesa,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "pyopengl";
version = "3.1.10";
pyproject = true;
src = fetchPypi {
inherit pname version;
inherit (finalAttrs) pname version;
hash = "sha256-xKAtaGa1TrEZyOmz+wT6g1qVq4At2WYHq0zbABLfgzU=";
};
@@ -23,46 +24,20 @@ buildPythonPackage rec {
dependencies = [ pillow ];
patchPhase =
let
ext = stdenv.hostPlatform.extensions.sharedLibrary;
in
lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
# Theses lines are patching the name of dynamic libraries
# so pyopengl can find them at runtime.
substituteInPlace OpenGL/platform/glx.py \
--replace-fail "'OpenGL'" '"${pkgs.libGL}/lib/libOpenGL${ext}"' \
--replace-fail "'GL'" '"${pkgs.libGL}/lib/libGL${ext}"' \
--replace-fail '"GLU",' '"${pkgs.libGLU}/lib/libGLU${ext}",' \
--replace-fail "'GLX'" '"${pkgs.libglvnd}/lib/libGLX${ext}"' \
--replace-fail '"glut",' '"${pkgs.libglut}/lib/libglut${ext}",' \
--replace-fail '"GLESv1_CM",' '"${pkgs.libGL}/lib/libGLESv1_CM${ext}",' \
--replace-fail '"GLESv2",' '"${pkgs.libGL}/lib/libGLESv2${ext}",' \
--replace-fail '"gle",' '"${pkgs.gle}/lib/libgle${ext}",' \
--replace-fail "'EGL'" "'${pkgs.libGL}/lib/libEGL${ext}'"
substituteInPlace OpenGL/platform/egl.py \
--replace-fail "('OpenGL','GL')" "('${pkgs.libGL}/lib/libOpenGL${ext}', '${pkgs.libGL}/lib/libGL${ext}')" \
--replace-fail "'GLU'," "'${pkgs.libGLU}/lib/libGLU${ext}'," \
--replace-fail "'glut'," "'${pkgs.libglut}/lib/libglut${ext}'," \
--replace-fail "'GLESv1_CM'," "'${pkgs.libGL}/lib/libGLESv1_CM${ext}'," \
--replace-fail "'GLESv2'," "'${pkgs.libGL}/lib/libGLESv2${ext}'," \
--replace-fail "'gle'," '"${pkgs.gle}/lib/libgle${ext}",' \
--replace-fail "'EGL'," "'${pkgs.libGL}/lib/libEGL${ext}',"
substituteInPlace OpenGL/platform/darwin.py \
--replace-fail "'OpenGL'," "'${pkgs.libGL}/lib/libGL${ext}'," \
--replace-fail "'GLUT'," "'${pkgs.libglut}/lib/libglut${ext}',"
''
+ ''
# https://github.com/NixOS/nixpkgs/issues/76822
# pyopengl introduced a new "robust" way of loading libraries in 3.1.4.
# The later patch of the filepath does not work anymore because
# pyopengl takes the "name" (for us: the path) and tries to add a
# few suffix during its loading phase.
# The following patch put back the "name" (i.e. the path) in the
# list of possible files.
substituteInPlace OpenGL/platform/ctypesloader.py \
--replace-fail "filenames_to_try = [base_name]" "filenames_to_try = [name]"
'';
passthru.runtimeLibs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
"/run/opengl-driver/lib"
pkgs.libglvnd
pkgs.libGLU
pkgs.libglut
pkgs.gle
];
patches = lib.optionals (finalAttrs.passthru.runtimeLibs != [ ]) [
# patch OpenGL.platform.ctypesloader::_loadLibraryPosix with extra search paths
(replaceVars ./ld-preload-gl.patch {
GL_LD_LIBRARY_PATH = lib.makeLibraryPath finalAttrs.passthru.runtimeLibs;
})
];
# Need to fix test runner
# Tests have many dependencies
@@ -70,12 +45,19 @@ buildPythonPackage rec {
# Should run test suite from $out/${python.sitePackages}
doCheck = false; # does not affect pythonImportsCheck
# OpenGL looks for libraries during import, making this a somewhat decent test of the flaky patching above.
# PyOpenGL looks for libraries during import, making this a somewhat decent test of our patching
# (these are impure deps on darwin)
pythonImportsCheck = [
"OpenGL"
"OpenGL.GL"
"OpenGL.GLE"
"OpenGL.GLU"
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"OpenGL.EGL"
"OpenGL.GLES1"
"OpenGL.GLES2"
"OpenGL.GLES3"
"OpenGL.GLX"
];
@@ -91,4 +73,4 @@ buildPythonPackage rec {
license = lib.licenses.bsd3;
inherit (mesa.meta) platforms;
};
}
})
@@ -0,0 +1,17 @@
diff --git a/OpenGL/platform/ctypesloader.py b/OpenGL/platform/ctypesloader.py
index d9ff006..ce7d99e 100644
--- a/OpenGL/platform/ctypesloader.py
+++ b/OpenGL/platform/ctypesloader.py
@@ -59,6 +59,12 @@ def _loadLibraryPosix(dllType, name, mode):
])))
err = None
+ filenames_to_try = [
+ (f"{prefix}/{filename}" if prefix else filename)
+ for prefix in ":@GL_LD_LIBRARY_PATH@".split(":")
+ for filename in filenames_to_try
+ ]
+
for filename in filenames_to_try:
try:
result = dllType(filename, mode)
@@ -14,12 +14,12 @@
buildPythonPackage rec {
pname = "pyutil";
version = "3.3.6";
version = "3.4.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-XcPWu5xbq6u10Ldz4JQEXXVxLos0ry0psOKGAmaCZ8A=";
hash = "sha256-8RHsCEieQ3/uHPkNai+sUBR2hDJAVrYy5DMlp6YRw6c=";
};
prePatch = lib.optionalString isPyPy ''
@@ -20,14 +20,14 @@
buildPythonPackage (finalAttrs: {
pname = "stanza";
version = "1.12.0";
version = "1.12.1";
pyproject = true;
src = fetchFromGitHub {
owner = "stanfordnlp";
repo = "stanza";
tag = "v${finalAttrs.version}";
hash = "sha256-uarx5HY6sxm2Fr12Vti4IluqOhFosf8QYIP2WMxdFfI=";
hash = "sha256-e4f/Th9zCVBe05v7NI+IXiSbCfcKVZvDFAKq8ZrsQjA=";
};
build-system = [ setuptools ];
@@ -0,0 +1,94 @@
{
lib,
buildPythonPackage,
cudaPackages,
fetchFromGitHub,
symlinkJoin,
# build-system
setuptools,
# nativeBuildInputs
autoAddDriverRunpath,
# dependencies
torch,
# tests
nvidia-ml-py,
pytestCheckHook,
torch-memory-saver,
}:
buildPythonPackage.override { inherit (torch) stdenv; } (finalAttrs: {
pname = "torch-memory-saver";
version = "0.0.9.post1";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "fzyzcjy";
repo = "torch_memory_saver";
# branch 0.0.9.post1
rev = "0c88c358824bd304daeec34ac792a55e3fa2c1f2";
hash = "sha256-xYkHhfCj3cOzAK5pmWCDfRw5FL8BzBkeUaDnqVlmSiY=";
};
# fix CUDA library_dirs
postPatch = ''
substituteInPlace setup.py \
--replace-fail lib64 lib
'';
build-system = [
setuptools
];
nativeBuildInputs = [
autoAddDriverRunpath
];
env = {
TMS_CUDA_MAJOR = cudaPackages.cudaMajorVersion;
CUDA_HOME = symlinkJoin {
name = "cudatoolkit-joined";
paths = [
cudaPackages.cuda_nvcc # crt/host_defines.h
cudaPackages.cuda_cudart # cuda_runtime_api.h
];
};
};
dependencies = [
nvidia-ml-py
torch
];
pythonImportsCheck = [ "torch_memory_saver" ];
preCheck = ''
rm -r torch_memory_saver
'';
# requires GPU
doCheck = false;
nativeCheckInputs = [
# propagated from torch
nvidia-ml-py
pytestCheckHook
];
passthru.gpuCheck = torch-memory-saver.overridePythonAttrs {
requiredSystemFeatures = [ "cuda" ];
doCheck = true;
};
meta = {
description = "Library that allows tensor memory to be temporarily released and resumed later";
homepage = "https://github.com/fzyzcjy/torch_memory_saver";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ prince213 ];
# TODO: ROCm
broken = !torch.cudaSupport;
};
})
@@ -22,6 +22,7 @@
# tests
pytestCheckHook,
tomli-w,
triton,
writableTmpDirAsHomeHook,
}:
@@ -60,6 +61,7 @@ buildPythonPackage (finalAttrs: {
pytestCheckHook
tomli-w
transformers
triton
writableTmpDirAsHomeHook
];
@@ -185,7 +185,6 @@ let
X86_INTEL_LPSS = yes;
X86_INTEL_PSTATE = yes;
X86_AMD_PSTATE = whenAtLeast "5.17" yes;
X86_AMD_PSTATE_DYNAMIC_EPP = whenAtLeast "7.1" yes;
# Intel DPTF (Dynamic Platform and Thermal Framework) Support
ACPI_DPTF = yes;
@@ -0,0 +1,69 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
fetchPnpmDeps,
pnpmConfigHook,
pnpm_10,
nodejs,
}:
let
pnpm = pnpm_10;
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "lovelace-expander-card";
version = "0.1.5";
src = fetchFromGitHub {
owner = "Alia5";
repo = "lovelace-expander-card";
tag = finalAttrs.version;
hash = "sha256-D76gZR2yEZJrfaesomrpyMg/OPRfVjdDUwcl0EqqNmg=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 3;
hash = "sha256-L+lLJICyh7BhW9CF0+yhYginUx95EQ4de9gXQl8XmOo=";
};
nativeBuildInputs = [
pnpmConfigHook
pnpm
nodejs
];
# Upstream tries to get the version via git; since Nix' fetchers don't give us
# the .git directory this'll fail, so we provide it manually
postPatch = ''
substituteInPlace package.json \
--replace-fail 'VERSION=$(git describe --tags)' 'VERSION=${finalAttrs.version}'
'';
buildPhase = ''
runHook preBuild
pnpm run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
cp dist/*.js "$out"
runHook postInstall
'';
meta = {
description = "Home Assistant Lovelace card that wraps other cards in a collapsible expander";
homepage = "https://github.com/Alia5/lovelace-expander-card";
changelog = "https://github.com/Alia5/lovelace-expander-card/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ kilyanni ];
platforms = lib.platforms.all;
};
})
+6
View File
@@ -7832,6 +7832,10 @@ self: super: with self; {
irm-kmi-api = callPackage ../development/python-modules/irm-kmi-api { };
ironcalc = callPackage ../by-name/ir/ironcalc/python.nix {
inherit (pkgs) ironcalc;
};
isal = callPackage ../development/python-modules/isal { };
isbnlib = callPackage ../development/python-modules/isbnlib { };
@@ -19830,6 +19834,8 @@ self: super: with self; {
torch-geometric = callPackage ../development/python-modules/torch-geometric { };
torch-memory-saver = callPackage ../development/python-modules/torch-memory-saver { };
# Required to test triton
torch-no-triton = self.torch.override { tritonSupport = false; };