Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-04-16 18:26:01 +00:00
committed by GitHub
64 changed files with 853 additions and 860 deletions
@@ -66,7 +66,7 @@ in
"qcow2"
"vpc"
];
default = "vpc";
default = "raw";
description = "The image format to output";
};
};
+19 -5
View File
@@ -89,6 +89,12 @@ in
};
};
fileSystems."/nix/store" = lib.mkDefault {
device = "/usr/nix/store";
fsType = "none";
options = [ "bind" ];
};
image.repart.partitions = {
# dm-verity hash partition
${cfg.partitionIds.store-verity}.repartConfig = {
@@ -96,6 +102,7 @@ in
Verity = "hash";
VerityMatchKey = lib.mkDefault verityMatchKey;
Label = lib.mkDefault "store-verity";
Minimize = lib.mkDefault "best";
};
# dm-verity data partition that contains the nix store
${cfg.partitionIds.store} = {
@@ -106,23 +113,29 @@ in
Format = lib.mkDefault "erofs";
VerityMatchKey = lib.mkDefault verityMatchKey;
Label = lib.mkDefault "store";
Minimize = lib.mkDefault "best";
};
};
};
system.build = {
finalImage = lib.warn "system.build.finalImage has been renamed to system.build.image" config.system.build.image;
# intermediate system image without ESP
intermediateImage =
(config.system.build.image.override {
(config.image.repart.image.override {
# always disable compression for the intermediate image
compression.enable = false;
}).overrideAttrs
(
_: previousAttrs: {
# make it easier to identify the intermediate image in build logs
pname = "${previousAttrs.pname}-intermediate";
name =
if previousAttrs ? pname then
"${previousAttrs.pname}-${previousAttrs.version}-intermediate"
else
"${previousAttrs.name}-intermediate";
# do not prepare the ESP, this is done in the final image
systemdRepartFlags = previousAttrs.systemdRepartFlags ++ [ "--defer-partitions=esp" ];
@@ -162,8 +175,8 @@ in
);
# final system image that is created from the intermediate image by injecting the UKI from above
finalImage =
(config.system.build.image.override {
image = lib.mkOverride 99 (
(config.image.repart.image.override {
# continue building with existing intermediate image
createEmpty = false;
}).overrideAttrs
@@ -216,7 +229,8 @@ in
rm -v repart-output_orig.json
'';
}
);
)
);
};
};
+41 -30
View File
@@ -282,6 +282,15 @@ in
'';
};
image = lib.mkOption {
type = lib.types.package;
internal = true;
readOnly = true;
description = ''
The image built by this module. Used as the default for `system.build.image`.
'';
};
assertions = lib.mkOption {
type = options.assertions.type;
default = [ ];
@@ -356,6 +365,37 @@ in
finalPartitions = lib.mapAttrs addClosure cfg.partitions;
image =
let
fileSystems = lib.filter (f: f != null) (
lib.mapAttrsToList (_n: v: v.repartConfig.Format or null) cfg.partitions
);
format = pkgs.formats.ini { listsAsDuplicateKeys = true; };
definitionsDirectory = utils.systemdUtils.lib.definitions "repart.d" format (
lib.mapAttrs (_n: v: { Partition = v.repartConfig; }) cfg.finalPartitions
);
mkfsEnv = mkfsOptionsToEnv cfg.mkfsOptions;
val = pkgs.callPackage ./repart-image.nix {
systemd = cfg.package;
inherit (config.image) baseName;
inherit (cfg)
name
version
compression
split
seed
imageSize
sectorSize
finalPartitions
;
inherit fileSystems definitionsDirectory mkfsEnv;
};
in
lib.asserts.checkAssertWarn cfg.assertions cfg.warnings val;
assertions = lib.mapAttrsToList (
fileName: partitionConfig:
let
@@ -401,36 +441,7 @@ in
);
};
system.build.image =
let
fileSystems = lib.filter (f: f != null) (
lib.mapAttrsToList (_n: v: v.repartConfig.Format or null) cfg.partitions
);
format = pkgs.formats.ini { listsAsDuplicateKeys = true; };
definitionsDirectory = utils.systemdUtils.lib.definitions "repart.d" format (
lib.mapAttrs (_n: v: { Partition = v.repartConfig; }) cfg.finalPartitions
);
mkfsEnv = mkfsOptionsToEnv cfg.mkfsOptions;
val = pkgs.callPackage ./repart-image.nix {
systemd = cfg.package;
inherit (config.image) baseName;
inherit (cfg)
name
version
compression
split
seed
imageSize
sectorSize
finalPartitions
;
inherit fileSystems definitionsDirectory mkfsEnv;
};
in
lib.asserts.checkAssertWarn cfg.assertions cfg.warnings val;
system.build.image = cfg.image;
};
meta.maintainers = with lib.maintainers; [
+1 -13
View File
@@ -9,9 +9,6 @@ let
cfg = config.services.mysql;
isMariaDB = lib.getName cfg.package == lib.getName pkgs.mariadb;
isOracle = lib.getName cfg.package == lib.getName pkgs.mysql84;
# Oracle MySQL has supported "notify" service type since 8.0
hasNotify = isMariaDB || (isOracle && lib.versionAtLeast cfg.package.version "8.0");
mysqldOptions = "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${cfg.package}";
@@ -576,15 +573,6 @@ in
superUser = if isMariaDB then cfg.user else "root";
in
''
${lib.optionalString (!hasNotify) ''
# Wait until the MySQL server is available for use
while [ ! -e /run/mysqld/mysqld.sock ]
do
echo "MySQL daemon not yet started. Waiting for 1 second..."
sleep 1
done
''}
${lib.optionalString isMariaDB ''
# If MariaDB is used in an Galera cluster, we have to check if the sync is done,
# or it will fail to init the database while joining, so we get in an broken non recoverable state
@@ -689,7 +677,7 @@ in
serviceConfig = lib.mkMerge [
{
Type = if hasNotify then "notify" else "simple";
Type = "notify";
Restart = "on-abnormal";
RestartSec = "5s";
+2 -2
View File
@@ -214,7 +214,7 @@ let
# and try reading it from /dev/console with a timeout
IFS= read -t 1 -r passphrase
if [ -n "$passphrase" ]; then
if [ $? = 0 ]; then
${
if luks.reusePassphrases then
''
@@ -232,7 +232,7 @@ let
fi
done
echo -n "Verifying passphrase for ${dev.device}..."
echo -n "$passphrase" | ${csopen} --key-file=-
echo "$passphrase" | ${csopen}
if [ $? == 0 ]; then
echo " - success"
${
@@ -10,31 +10,20 @@
willibutz
];
nodes.machine =
{
config,
lib,
pkgs,
...
}:
defaults =
{ config, lib, ... }:
let
inherit (config.image.repart.verityStore) partitionIds;
in
{
imports = [ ../modules/image/repart.nix ];
virtualisation.fileSystems = lib.mkVMOverride {
virtualisation.fileSystems = lib.mkVMOverride { };
fileSystems = {
"/" = {
fsType = "tmpfs";
options = [ "mode=0755" ];
};
# bind-mount the store
"/nix/store" = {
device = "/usr/nix/store";
fsType = "none";
options = [ "bind" ];
};
};
image.repart = {
@@ -55,12 +44,6 @@
SizeMinBytes = if config.nixpkgs.hostPlatform.isx86_64 then "64M" else "96M";
};
};
${partitionIds.store-verity}.repartConfig = {
Minimize = "best";
};
${partitionIds.store}.repartConfig = {
Minimize = "best";
};
};
};
@@ -75,10 +58,7 @@
initrd.systemd.enable = true;
};
system.image = {
id = "nixos-appliance";
version = "1";
};
system.image.id = "nixos-appliance";
# don't create /usr/bin/env
# this would require some extra work on read-only /usr
@@ -86,6 +66,12 @@
system.activationScripts.usrbinenv = lib.mkForce "";
};
nodes.machine = {
system.image.version = "1";
};
nodes.without-version = { };
testScript =
{ nodes, ... }: # python
''
@@ -93,32 +79,50 @@
import subprocess
import tempfile
tmp_disk_image = tempfile.NamedTemporaryFile()
def create_disk_image(qemu_img, backing_file):
tmp = tempfile.NamedTemporaryFile()
subprocess.run([
qemu_img,
"create",
"-f",
"qcow2",
"-b",
backing_file,
"-F",
"raw",
tmp.name,
], check=True)
return tmp
subprocess.run([
def run_verity_tests(machine):
with subtest("Running with volatile root"):
machine.succeed("findmnt --kernel --type tmpfs /")
with subtest("/nix/store is backed by dm-verity protected fs"):
verity_info = machine.succeed("dmsetup info --target verity usr")
assert "ACTIVE" in verity_info, f"unexpected verity info: {verity_info}"
backing_device = machine.succeed("df --output=source /nix/store | tail -n1").strip()
assert "/dev/mapper/usr" == backing_device, f"unexpected backing device: {backing_device}"
tmp_disk_machine = create_disk_image(
"${nodes.machine.virtualisation.qemu.package}/bin/qemu-img",
"create",
"-f",
"qcow2",
"-b",
"${nodes.machine.system.build.finalImage}/${nodes.machine.image.repart.imageFile}",
"-F",
"raw",
tmp_disk_image.name,
])
os.environ['NIX_DISK_IMAGE'] = tmp_disk_image.name
"${nodes.machine.system.build.image}/${nodes.machine.image.filePath}",
)
os.environ['NIX_DISK_IMAGE'] = tmp_disk_machine.name
machine.wait_for_unit("default.target")
run_verity_tests(machine)
with subtest("Image version is set"):
machine.succeed("grep IMAGE_VERSION=1 /etc/os-release")
with subtest("Running with volatile root"):
machine.succeed("findmnt --kernel --type tmpfs /")
with subtest("/nix/store is backed by dm-verity protected fs"):
verity_info = machine.succeed("dmsetup info --target verity usr")
assert "ACTIVE" in verity_info,f"unexpected verity info: {verity_info}"
backing_device = machine.succeed("df --output=source /nix/store | tail -n1").strip()
assert "/dev/mapper/usr" == backing_device,"unexpected backing device: {backing_device}"
tmp_disk_without_version = create_disk_image(
"${nodes."without-version".virtualisation.qemu.package}/bin/qemu-img",
"${nodes."without-version".system.build.image}/${nodes."without-version".image.filePath}",
)
os.environ['NIX_DISK_IMAGE'] = tmp_disk_without_version.name
without_version.wait_for_unit("default.target")
run_verity_tests(without_version)
with subtest("Image version is not set"):
without_version.succeed('grep IMAGE_VERSION="" /etc/os-release')
'';
}
+1 -1
View File
@@ -109,7 +109,7 @@ in
"-f",
"qcow2",
"-b",
"${nodes.machine.system.build.image}/${nodes.machine.image.repart.imageFile}",
"${nodes.machine.system.build.image}/${nodes.machine.image.filePath}",
"-F",
"raw",
tmp_disk_image.name,
+23 -11
View File
@@ -3,7 +3,7 @@ import ./make-test-python.nix {
nodes = {
smtp1 =
{ pkgs, ... }:
{ config, pkgs, ... }:
{
imports = [ common/user-account.nix ];
networking = {
@@ -26,7 +26,7 @@ import ./make-test-python.nix {
serverConfiguration = ''
listen on 0.0.0.0
action dovecot_deliver mda \
"${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}"
"${config.services.dovecot2.package}/libexec/dovecot/deliver -d %{user.username}"
match from any for local action dovecot_deliver
action relay_smtp2 relay host "smtp://192.168.1.2"
@@ -35,14 +35,20 @@ import ./make-test-python.nix {
};
services.dovecot2 = {
enable = true;
enableImap = true;
mailLocation = "maildir:~/mail";
protocols = [ "imap" ];
enablePAM = true;
settings = {
dovecot_config_version = "2.4.3";
dovecot_storage_version = config.services.dovecot2.package.version;
mail_driver = "maildir";
mail_path = "~/mail";
protocols.imap = true;
auth_allow_cleartext = true;
};
};
};
smtp2 =
{ pkgs, ... }:
{ config, pkgs, ... }:
{
imports = [ common/user-account.nix ];
networking = {
@@ -72,15 +78,21 @@ import ./make-test-python.nix {
filter rspamd proc-exec "${pkgs.opensmtpd-filter-rspamd}/bin/filter-rspamd"
listen on 0.0.0.0 filter rspamd
action dovecot_deliver mda \
"${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}"
"${config.services.dovecot2.package}/libexec/dovecot/deliver -d %{user.username}"
match from any for local action dovecot_deliver
'';
};
services.dovecot2 = {
enable = true;
enableImap = true;
mailLocation = "maildir:~/mail";
protocols = [ "imap" ];
enablePAM = true;
settings = {
dovecot_config_version = "2.4.3";
dovecot_storage_version = config.services.dovecot2.package.version;
mail_driver = "maildir";
mail_path = "~/mail";
protocols.imap = true;
auth_allow_cleartext = true;
};
};
};
@@ -146,7 +158,7 @@ import ./make-test-python.nix {
smtp1.wait_for_unit("opensmtpd")
smtp2.wait_for_unit("opensmtpd")
smtp2.wait_for_unit("rspamd")
smtp2.wait_for_unit("dovecot2")
smtp2.wait_for_unit("dovecot")
# To prevent sporadic failures during daemon startup, make sure
# services are listening on their ports before sending requests
File diff suppressed because it is too large Load Diff
@@ -193,10 +193,8 @@ assertNoAdditions {
};
aider-nvim = super.aider-nvim.overrideAttrs {
patches = [
(replaceVars ./patches/aider-nvim/bin.patch {
aider = lib.getExe aider-chat;
})
runtimeDeps = [
aider-chat
];
};
@@ -243,10 +241,8 @@ assertNoAdditions {
};
aw-watcher-vim = super.aw-watcher-vim.overrideAttrs {
patches = [
(replaceVars ./patches/aw-watcher-vim/program_paths.patch {
curl = lib.getExe curl;
})
runtimeDeps = [
curl
];
};
@@ -328,6 +324,10 @@ assertNoAdditions {
dependencies = [ self.plenary-nvim ];
};
blink-cmp-latex = super.blink-cmp-latex.overrideAttrs {
dependencies = [ self.blink-cmp ];
};
blink-cmp-nixpkgs-maintainers = super.blink-cmp-nixpkgs-maintainers.overrideAttrs {
dependencies = [ self.blink-cmp ];
};
@@ -1388,10 +1388,8 @@ assertNoAdditions {
};
gx-nvim = super.gx-nvim.overrideAttrs {
patches = lib.optionals stdenv.hostPlatform.isLinux [
(replaceVars ./patches/gx-nvim/fix-paths.patch {
inherit xdg-utils;
})
runtimeDeps = [
xdg-utils
];
nvimRequireCheck = "gx";
@@ -1928,10 +1926,8 @@ assertNoAdditions {
};
in
super.markdown-preview-nvim.overrideAttrs {
patches = [
(replaceVars ./patches/markdown-preview-nvim/fix-node-paths.patch {
node = "${nodejs}/bin/node";
})
runtimeDeps = [
nodejs
];
postInstall = ''
cp -r ${nodeDep} $out/app/node_modules
@@ -2802,10 +2798,14 @@ assertNoAdditions {
nvimSkipModules = [ "install_parsers" ];
};
# TODO: raise warning at 26.04; drop at 26.11
nvim-treesitter-legacy = super.nvim-treesitter-legacy.overrideAttrs (
callPackage ./nvim-treesitter-legacy/overrides.nix { } self super
);
# TODO: raise warning at 26.05; drop at 26.11
nvim-treesitter-legacy =
let
drv = super.nvim-treesitter-legacy.overrideAttrs (
callPackage ./nvim-treesitter-legacy/overrides.nix { } self super
);
in
lib.warnOnInstantiate "nvim-treesitter-legacy is deprecated, please migrate to the new version. This will become an error in 26.11" drv;
nvim-treesitter-pairs = super.nvim-treesitter-pairs.overrideAttrs {
dependencies = [ self.nvim-treesitter-legacy ];
@@ -2971,9 +2971,12 @@ assertNoAdditions {
# The plugin depends on either skim-vim or fzf-vim, but we don't want to force the user so we
# avoid choosing one of them and leave it to the user
openscad-nvim = super.openscad-nvim.overrideAttrs {
runtimeDeps = [
openscad
];
buildInputs = [
zathura
htop
openscad
];
@@ -2983,12 +2986,6 @@ assertNoAdditions {
"openscad.snippets.openscad"
"openscad.utilities"
];
patches = [
(replaceVars ./patches/openscad.nvim/program_paths.patch {
htop = lib.getExe htop;
openscad = lib.getExe openscad;
})
];
};
org-notebook-nvim = super.org-notebook-nvim.overrideAttrs {
@@ -3073,12 +3070,14 @@ assertNoAdditions {
};
peek-nvim = super.peek-nvim.overrideAttrs (old: {
runtimeDeps = [
deno
];
patches = [
# Patch peek-nvim to run using nixpkgs deno
# This means end-users have to build peek-nvim the first time they use it...
(replaceVars ./patches/peek-nvim/cmd.patch {
deno = lib.getExe deno;
})
./patches/peek-nvim/cmd.patch
];
});
@@ -3123,10 +3122,8 @@ assertNoAdditions {
};
Preview-nvim = super.Preview-nvim.overrideAttrs {
patches = [
(replaceVars ./patches/preview-nvim/hardcode-mdt-binary-path.patch {
mdt = lib.getExe md-tui;
})
runtimeDeps = [
md-tui
];
};
@@ -3193,11 +3190,9 @@ assertNoAdditions {
};
ranger-nvim = super.ranger-nvim.overrideAttrs {
patches = [ ./patches/ranger.nvim/fix-paths.patch ];
postPatch = ''
substituteInPlace lua/ranger-nvim.lua --replace-fail '@ranger@' ${ranger}/bin/ranger
'';
runtimeDeps = [
ranger
];
};
refactoring-nvim = super.refactoring-nvim.overrideAttrs {
@@ -1,15 +0,0 @@
diff --git a/lua/aider.lua b/lua/aider.lua
index 98b5071..589b06d 100644
--- a/lua/aider.lua
+++ b/lua/aider.lua
@@ -61,9 +61,9 @@ function M.AiderOpen(args, window_type)
log("Existing aider buffer found, opening in new window")
helpers.open_buffer_in_new_window(window_type, M.aider_buf)
else
log("No existing aider buffer, creating new one")
- local command = "aider " .. (args or "")
+ local command = "@aider@ " .. (args or "")
log("Opening window with type: " .. window_type)
helpers.open_window(window_type)
log("Adding buffers to command")
command = helpers.add_buffers_to_command(command, is_valid_buffer)
@@ -1,13 +0,0 @@
diff --git a/plugin/activitywatch.vim b/plugin/activitywatch.vim
index 6986553..7462b02 100644
--- a/plugin/activitywatch.vim
+++ b/plugin/activitywatch.vim
@@ -29,7 +29,7 @@ let s:heartbeat_apiurl = printf('%s/heartbeat?pulsetime=30', s:bucket_apiurl)
let s:http_response_code = {}
function! HTTPPostJson(url, data)
- let l:req = ['curl', '-s', a:url,
+ let l:req = ['@curl@', '-s', a:url,
\ '-H', 'Content-Type: application/json',
\ '-X', 'POST',
\ '-d', json_encode(a:data),
@@ -1,13 +0,0 @@
diff --git a/lua/gx/init.lua b/lua/gx/init.lua
index 12272d4..c51771a 100644
--- a/lua/gx/init.lua
+++ b/lua/gx/init.lua
@@ -73,7 +73,7 @@ local function get_open_browser_app()
if sysname == "Darwin" then
app = "open"
elseif sysname == "Linux" then
- app = "xdg-open"
+ app = "@xdg-utils@/bin/xdg-open"
elseif sysname == "Windows_NT" then
app = "powershell.exe"
end
@@ -1,31 +0,0 @@
diff --git a/autoload/health/mkdp.vim b/autoload/health/mkdp.vim
index 323b57b..8053ea8 100644
--- a/autoload/health/mkdp.vim
+++ b/autoload/health/mkdp.vim
@@ -8,8 +8,8 @@ function! health#mkdp#check() abort
lua vim.health.info('Pre build: ' .. vim.api.nvim_eval('l:mkdp_server_script'))
lua vim.health.info('Pre build version: ' .. vim.fn['mkdp#util#pre_build_version']())
lua vim.health.ok('Using pre build')
- elseif executable('node')
- lua vim.health.info('Node version: ' .. string.gsub(vim.fn.system('node --version'), '^%s*(.-)%s*$', '%1'))
+ else
+ lua vim.health.info('Node version: ' .. string.gsub(vim.fn.system('@node@ --version'), '^%s*(.-)%s*$', '%1'))
let l:mkdp_server_script = s:mkdp_root_dir .. '/app/server.js'
lua vim.health.info('Script: ' .. vim.api.nvim_eval('l:mkdp_server_script'))
lua vim.health.info('Script exists: ' .. vim.fn.filereadable(vim.api.nvim_eval('l:mkdp_server_script')))
diff --git a/autoload/mkdp/rpc.vim b/autoload/mkdp/rpc.vim
index b257571..57f04e7 100644
--- a/autoload/mkdp/rpc.vim
+++ b/autoload/mkdp/rpc.vim
@@ -41,9 +41,9 @@ function! mkdp#rpc#start_server() abort
let l:mkdp_server_script = s:mkdp_root_dir . '/app/bin/markdown-preview-' . mkdp#util#get_platform()
if executable(l:mkdp_server_script)
let l:cmd = [l:mkdp_server_script, '--path', s:mkdp_root_dir . '/app/server.js']
- elseif executable('node')
+ else
let l:mkdp_server_script = s:mkdp_root_dir . '/app/index.js'
- let l:cmd = ['node', l:mkdp_server_script, '--path', s:mkdp_root_dir . '/app/server.js']
+ let l:cmd = ['@node@', l:mkdp_server_script, '--path', s:mkdp_root_dir . '/app/server.js']
endif
if exists('l:cmd')
if s:is_vim
@@ -1,26 +0,0 @@
diff --git a/autoload/health/openscad_nvim.vim b/autoload/health/openscad_nvim.vim
index d6d4b4c..9853877 100644
--- a/autoload/health/openscad_nvim.vim
+++ b/autoload/health/openscad_nvim.vim
@@ -15,7 +15,7 @@ function! s:check_zathura_installed() abort
endfunction
function! s:check_htop_installed() abort
- if !executable('htop')
+ if !executable('@htop@')
call v:lua.vim.health.error('has(htop)','install htop')
else
call v:lua.vim.health.ok("htop is installed")
diff --git a/lua/openscad.lua b/lua/openscad.lua
index 0a26d08..1264989 100644
--- a/lua/openscad.lua
+++ b/lua/openscad.lua
@@ -126,7 +126,7 @@ function M.exec_openscad()
jobCommand = '/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD ' .. filename
else
-- TODO: What about Windows?
- jobCommand = 'openscad ' .. filename
+ jobCommand = '@openscad@ ' .. filename
end
vim.fn.jobstart(jobCommand)
@@ -1,16 +1,3 @@
diff --git a/app/src/main.ts b/app/src/main.ts
index c82d914..e8542f3 100644
--- a/app/src/main.ts
+++ b/app/src/main.ts
@@ -73,7 +73,7 @@ async function init(socket: WebSocket) {
const onListen: Deno.ServeOptions['onListen'] = ({ hostname, port }) => {
const serverUrl = `${hostname.replace('0.0.0.0', 'localhost')}:${port}`;
logger.info(`listening on ${serverUrl}`);
- const webview = new Deno.Command('deno', {
+ const webview = new Deno.Command('@deno@', {
cwd: dirname(fromFileUrl(Deno.mainModule)),
args: [
'run',
diff --git a/lua/peek/app.lua b/lua/peek/app.lua
index af5148e..5e67563 100644
--- a/lua/peek/app.lua
@@ -22,7 +9,7 @@ index af5148e..5e67563 100644
- 'deno',
- 'task',
- '--quiet',
+ '@deno@',
+ 'deno',
'run',
+ '--allow-read',
+ '--allow-write',
@@ -1,22 +0,0 @@
diff --git a/lua/preview.lua b/lua/preview.lua
index 6d9875d..729cc70 100644
--- a/lua/preview.lua
+++ b/lua/preview.lua
@@ -28,7 +28,7 @@ local function open_window(file)
vim.env.MDT_WIDTH = width
vim.cmd.vnew()
- vim.fn.termopen("mdt " .. file)
+ vim.fn.termopen("@mdt@ " .. file)
vim.cmd("setlocal nonumber norelativenumber")
vim.api.nvim_feedkeys("a", "t", false)
@@ -49,7 +49,7 @@ end
function M.setup()
-- Check if "mdt" is installed
if vim.fn.executable("mdt") == 0 then
- install()
+ -- install()
end
set_cmd()
@@ -1,31 +0,0 @@
diff --git a/lua/ranger-nvim.lua b/lua/ranger-nvim.lua
index be95e36..3bd1587 100644
--- a/lua/ranger-nvim.lua
+++ b/lua/ranger-nvim.lua
@@ -127,7 +127,7 @@ local function build_ranger_cmd(select_current_file)
local selectfile_flag = select_current_file and " --selectfile=" .. selected_file or ""
if select_current_file then
return string.format(
- "ranger --choosefiles=%s %s %s",
+ "@ranger@ --choosefiles=%s %s %s",
SELECTED_FILEPATH,
selectfile_flag,
create_ranger_cmd_flags(create_cmd_values(opts.keybinds))
@@ -135,7 +135,7 @@ local function build_ranger_cmd(select_current_file)
else
vim.api.nvim_buf_delete(1, { force = true })
return string.format(
- "ranger --choosefiles=%s %s %s",
+ "@ranger@ --choosefiles=%s %s %s",
SELECTED_FILEPATH,
create_ranger_cmd_flags(create_cmd_values(opts.keybinds)),
get_absolute_argument()
@@ -209,7 +209,7 @@ end
---Opens ranger and open selected files on exit.
---@param select_current_file boolean|nil open ranger and select the current file. Defaults to true.
function M.open(select_current_file)
- if vim.fn.executable("ranger") ~= 1 then
+ if vim.fn.executable("@ranger@") ~= 1 then
vim.api.nvim_err_write(
"ranger executable not found, please check that ranger is installed and is in your path\n"
)
@@ -1254,6 +1254,7 @@ https://github.com/vim-scripts/timestamp.vim/,,
https://github.com/levouh/tint.nvim/,HEAD,
https://github.com/tinted-theming/tinted-nvim/,HEAD,
https://github.com/tinted-theming/tinted-vim/,HEAD,
https://github.com/rachartier/tiny-cmdline.nvim/,HEAD,
https://github.com/rachartier/tiny-devicons-auto-colors.nvim/,HEAD,
https://github.com/rachartier/tiny-glimmer.nvim/,HEAD,
https://github.com/rachartier/tiny-inline-diagnostic.nvim/,HEAD,
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "claude-code";
publisher = "anthropic";
version = "2.1.107";
hash = "sha256-3RhHJzkY2Lkp5zI8NWXueUfiqd+RuKLfSqcLF4fxvSA=";
version = "2.1.111";
hash = "sha256-NfmPJl/+PyJTImKsN+cES6XxJryEQW0+dUoOyZsYq4k=";
};
postInstall = ''
@@ -1970,8 +1970,8 @@ let
mktplcRef = {
publisher = "github";
name = "vscode-pull-request-github";
version = "0.134.0";
hash = "sha256-gzzFCGSuV4Qofs7BI9ihd6lBGN8zOCvFntgKfS0bIIA=";
version = "0.136.0";
hash = "sha256-WUdA5aD3EC45gHBo4ctxVUog8QTEIq6IXlCOPZBBXmo=";
};
meta = {
license = lib.licenses.mit;
@@ -3306,8 +3306,8 @@ let
mktplcRef = {
publisher = "ms-vscode";
name = "cmake-tools";
version = "1.22.28";
hash = "sha256-ZVtVZ53wvFBchXd9wRCxm1NQkkoTn9Yn4vcbY46GQmY=";
version = "1.23.51";
hash = "sha256-5AcmkJmk5ccZjHPx/4gZ/WW6c6RlHcosaPXHjey2a0M=";
};
meta.license = lib.licenses.mit;
};
@@ -5088,8 +5088,8 @@ let
mktplcRef = {
publisher = "vscjava";
name = "vscode-java-dependency";
version = "0.27.1";
hash = "sha256-QMZ26Es+TMVBa3a7VwkbOkAQUbSZ3ragVJBUVJov5yY=";
version = "0.27.2";
hash = "sha256-1ix/MtZ801uX0Q1/t+S6AG3sSkILDugouecOq9BO1IQ=";
};
meta = {
license = lib.licenses.mit;
@@ -5100,8 +5100,8 @@ let
mktplcRef = {
publisher = "vscjava";
name = "vscode-java-test";
version = "0.44.0";
hash = "sha256-Qr4Ms15Nq+/yygWYBDvN5dHIKpQ0yYQjI1p/RNFMWjw=";
version = "0.45.0";
hash = "sha256-6GEuijuVilhJ73isdrZPzD+xhZjRDXYQNCgcSBoyIdo=";
};
meta = {
license = lib.licenses.mit;
@@ -5128,8 +5128,8 @@ let
mktplcRef = {
publisher = "vscjava";
name = "vscode-maven";
version = "0.45.1";
hash = "sha256-ZMfw04RhSz6VlNlgxZuJWHprpI9PyjsfyzOihjrhuo8=";
version = "0.45.2";
hash = "sha256-iXmOePF+i/gaYSMpEa0YPfKzmYRy1sRg64iHfqlc3AY=";
};
meta = {
license = lib.licenses.mit;
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "lean4";
publisher = "leanprover";
version = "0.0.229";
hash = "sha256-gwyBpoUXlTVbxljU+/bxeIvMhS7/t5QYlop6z474nWg=";
version = "0.0.234";
hash = "sha256-pChzzyJ49LAlSHWl83G6GaH3mTJB2ZZTjMygxWpubtE=";
};
meta = {
@@ -27,13 +27,13 @@
"vendorHash": null
},
"aiven_aiven": {
"hash": "sha256-/Vrz9KuImtTDhuOMM6Ql8N2KTDQKZyzU5bgWPlN7HdI=",
"hash": "sha256-nh8ZxBPWeH4J8+/E0LppTmzx7WInkJVmt2NluC91OcY=",
"homepage": "https://registry.terraform.io/providers/aiven/aiven",
"owner": "aiven",
"repo": "terraform-provider-aiven",
"rev": "v4.53.0",
"rev": "v4.54.0",
"spdx": "MIT",
"vendorHash": "sha256-aKD+3Y80B3BUmsBsbeAiSpCx7Qh3U/LlTtB2fk/tlTI="
"vendorHash": "sha256-Ai51lUT782wnua4DIcFkxXCbnSBIhTduUO91zL7LBJY="
},
"akamai_akamai": {
"hash": "sha256-/+IE06obx4Rxzz3uh5QbeS/FhGlK2qTJJFWGAlDWJaw=",
@@ -580,13 +580,13 @@
"vendorHash": "sha256-39r9+dFJYJrzL0EOK3vXLcftOSqyw/pR5q+zm2lipYY="
},
"hashicorp_google-beta": {
"hash": "sha256-ySzZTmsiPEvgPsqxTi2FMclfp9zR97aaGfmZba2lScM=",
"hash": "sha256-iEAe+eRMRSnsxS8CtmF/vr1PwGcMvhnba/eedx+hS6w=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
"owner": "hashicorp",
"repo": "terraform-provider-google-beta",
"rev": "v7.27.0",
"rev": "v7.28.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Wf2Lh2bLUA+Jco2LukHFq1PtbytnObBUPC6+nWDUFE0="
"vendorHash": "sha256-6AUZpHNEqruuOcnkmEiLe53D+cUf8TmbvEHS0kuHyzU="
},
"hashicorp_helm": {
"hash": "sha256-S4Fe65f+gEWWxRMC+/i93dwwe7QigPccx4wiqNBpcL8=",
@@ -109,6 +109,7 @@ rec {
allowSubstitutes ? false,
preferLocalBuild ? true,
derivationArgs ? { },
pos ? builtins.unsafeGetAttrPos "name" args,
}@args:
assert lib.assertMsg (destination != "" -> (lib.hasPrefix "/" destination && destination != "/")) ''
destination must be an absolute path, relative to the derivation's out path,
@@ -123,8 +124,8 @@ rec {
runCommand name
(
{
pos = builtins.unsafeGetAttrPos "name" args;
inherit
pos
text
executable
checkPhase
@@ -261,6 +262,7 @@ rec {
inheritPath ? true,
}@args:
writeTextFile {
pos = builtins.unsafeGetAttrPos "name" args;
inherit
name
meta
@@ -130,7 +130,9 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
inherit (finalAttrs) offlineCache;
inherit translations;
tests = nixosTests.actual;
updateScript = ./update.sh;
};
meta = {
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts coreutils git jq nix-prefetch-github yarn-berry.yarn-berry-fetcher
set -o errexit -o nounset -o pipefail
package="actual-server"
owner="actualbudget"
repo="actual"
translations_repo="translations"
package_dir="pkgs/by-name/${package::2}/${package}"
#
# package
#
current_version=$(nix-instantiate --eval --expr "with import ./. {}; ${package}.version" --raw)
echo "Current version: ${current_version}"
latest_version=$(list-git-tags --url="https://github.com/${owner}/${repo}" | grep -oP '^v\K[0-9.]+$' | sort --version-sort | tail --lines=1)
echo "Latest version: ${latest_version}"
if [[ "${current_version}" == "${latest_version}" ]]; then
echo "${package} is up to date: ${current_version}"
exit 0
fi
echo "Updating ${package} from ${current_version} to ${latest_version}"
update-source-version "${package}" "${latest_version}"
#
# translations
#
echo "Updating translations repo"
old_translations_rev=$(nix-instantiate --eval --expr "with import ./. {}; ${package}.translations.rev" --raw)
old_translations_hash=$(nix-instantiate --eval --expr "with import ./. {}; ${package}.translations.outputHash" --raw)
translations_rev=$(git ls-remote "https://github.com/${owner}/${translations_repo}" HEAD | cut -f1)
echo "Latest translations rev: ${translations_rev}"
translations_hash=$(nix-prefetch-github --json --rev "${translations_rev}" "${owner}" "${translations_repo}" | jq --raw-output .hash)
echo "Translations hash: ${translations_hash}"
sed -i "s|${old_translations_rev}|${translations_rev}|" "${package_dir}/package.nix"
sed -i "s|${old_translations_hash}|${translations_hash}|" "${package_dir}/package.nix"
#
# yarn deps
#
echo "Regenerating missing-hashes.json…"
src_path=$(nix-build --attr "${package}.src" --no-link)
yarn-berry-fetcher missing-hashes "${src_path}/yarn.lock" >"${package_dir}/missing-hashes.json"
echo "Updating offline cache hash…"
update-source-version "${package}" --ignore-same-version --source-key=offlineCache
echo "Done."
+5
View File
@@ -19,6 +19,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-hKIufS5o5tfsbVchwTJxms1n5Im1iTfY3KGWD1s5g9M=";
};
# BUILD file exists and darwin can't deal with case insensitive collisions
preConfigure = ''
cmakeBuildDir=alt_build
'';
nativeBuildInputs = [
cmake
eigen
+18 -18
View File
@@ -1,46 +1,46 @@
{
"version": "2.1.107",
"buildDate": "2026-04-14T04:25:18Z",
"version": "2.1.111",
"buildDate": "2026-04-16T14:30:47Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "af95a2929cea1ac50feb32ac76bcaa9bf4791fdd25c3186ad7b514da0788deaf",
"size": 202518512
"checksum": "2620cc83dbee72c24858b3519ce5de050fef91f0d3d17b309176d61e679f95ee",
"size": 203956832
},
"darwin-x64": {
"binary": "claude",
"checksum": "cdfae1d314063e17f7a6fbc153bd9f4f6727e565517b5b9453635acf87f028bb",
"size": 204016640
"checksum": "16d897d570c93b83d100a16a7a33ca3adbd43b1b0f818ab66bef1a364b2460a6",
"size": 205442640
},
"linux-arm64": {
"binary": "claude",
"checksum": "b3f1d3acde0a247c67a93638208911dd2f676743d16cb3f9bd3987ffb3498a00",
"size": 234883648
"checksum": "99376866bf7ec367142d3be548c17184a79f30a97318441ee9a00f78e51246e7",
"size": 236128832
},
"linux-x64": {
"binary": "claude",
"checksum": "8abe3909c55b3afafa8939d28c2cc2fcf73ba9424a46b4f435bbadda7e0eb00d",
"size": 234576512
"checksum": "5d4df970040b0f83aac434ae540b409126a4778a379e8c9b4c793560e3bfa060",
"size": 235842176
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "2827a84aa631859be0d3a100f97b9549879bb5098bf311caff4f8ed72c282035",
"size": 227936704
"checksum": "39f1d4b9c328ced97dae1de8ca000769e935e15aaa89f54f4c6663016c834ff5",
"size": 228854208
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "2a47436fae6444bedbbf2f34ba3cae11244761bd61c10bcf568078bec4c2caa0",
"size": 228891072
"checksum": "cb789bbf32c90aa7b658f0cf1cedd7116b45afc5e0438f6fda4af0bac5996c9f",
"size": 230107584
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "d8cddb8c37da11a5a68e1cbde922b472974e93b459d1e4270be6d5856592685f",
"size": 244154016
"checksum": "51024dbcd60382b6fb881b5cda6754a0fe445a90d3ad02eb5f13a2733ac3262e",
"size": 245423264
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "ffa590ddd68e10803c6ea708a1a28ecd24dbe2e24c6a245d286f2d266589ae79",
"size": 240854688
"checksum": "8381c9964a39cb231e4243d5ec7bf0158719fc292de1130f7c0f07e8b3137327",
"size": 242154656
}
}
}
+2 -1
View File
@@ -95,8 +95,9 @@ stdenv.mkDerivation (finalAttrs: {
"x86_64-linux"
];
maintainers = with lib.maintainers; [
xiaoxiangmoe
mirkolenz
oskarwires
xiaoxiangmoe
];
mainProgram = "claude";
};
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@anthropic-ai/claude-code",
"version": "2.1.107",
"version": "2.1.111",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@anthropic-ai/claude-code",
"version": "2.1.107",
"version": "2.1.111",
"license": "SEE LICENSE IN README.md",
"bin": {
"claude": "cli.js"
+4 -3
View File
@@ -15,14 +15,14 @@
}:
buildNpmPackage (finalAttrs: {
pname = "claude-code";
version = "2.1.107";
version = "2.1.111";
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz";
hash = "sha256-FpJ7grsXbBJxzbqSZTN6uICd1sGxizMEpHbs1n9yW3s=";
hash = "sha256-K3qhZXVJ2DIKv7YL9f/CHkuUYnK0lkIR1wjEa+xeSCk=";
};
npmDepsHash = "sha256-OVmbHfANAqNe6QLzQaSH1oZP50InstIW6RmN2crvQJw=";
npmDepsHash = "sha256-6f68qUMnDk6tn+qypVi8bPtNrxbtcf15tHrgtlhEaK4=";
strictDeps = true;
@@ -81,6 +81,7 @@ buildNpmPackage (finalAttrs: {
malo
markus1189
omarjatoi
oskarwires
xiaoxiangmoe
];
mainProgram = "claude";
@@ -7,16 +7,16 @@
}:
buildGoModule (finalAttrs: {
pname = "cloudflare-dynamic-dns";
version = "4.4.3";
version = "4.4.4";
src = fetchFromGitHub {
owner = "zebradil";
repo = "cloudflare-dynamic-dns";
tag = finalAttrs.version;
hash = "sha256-7KGNLz/VwvICUNJuoeWMEFV+gpbqPATF5xILzcHIk+g=";
hash = "sha256-VBBuBZ5J5ioLDzlslNahSwVGJ7RFJLmWs4WWs11SQaI=";
};
vendorHash = "sha256-rqp+K5pnslgfwpVxK/Ul3g1MGRKsWl8lpeMsS5Qqk10=";
vendorHash = "sha256-UPzv8W18vdeTL/Rx32z5rJVcWHjFlImUKlUb9gt3TTM=";
subPackages = ".";
@@ -1,19 +0,0 @@
commit a1f0a46b4932ed1c98ceb872e6b346b370f1b638
Author: Patrick Chilton <chpatrick@gmail.com>
Date: Wed Mar 18 15:59:05 2026 +0100
Disambiguate ceres::GradientChecker constructor
diff --git a/src/colmap/estimators/cost_functions/reprojection_error_test.cc b/src/colmap/estimators/cost_functions/reprojection_error_test.cc
index 25e6ffdc..7a1e4777 100644
--- a/src/colmap/estimators/cost_functions/reprojection_error_test.cc
+++ b/src/colmap/estimators/cost_functions/reprojection_error_test.cc
@@ -106,7 +106,7 @@ TEST(ReprojErrorCostFunctor, AnalyticalVersusAutoDiff) {
ceres::NumericDiffOptions numeric_diff_options;
ceres::GradientChecker gradient_checker(
- analytical_cost_function.get(), nullptr, numeric_diff_options);
+ analytical_cost_function.get(), static_cast<const std::vector<const ceres::Manifold*>*>(nullptr), numeric_diff_options);
ceres::GradientChecker::ProbeResults results;
EXPECT_TRUE(
gradient_checker.Probe(parameter_blocks.data(), kEps, &results));
+53 -12
View File
@@ -2,7 +2,8 @@
lib,
fetchFromGitHub,
fetchpatch,
gitUpdater,
fetchurl,
nix-update-script,
cmake,
boost,
ceres-solver,
@@ -31,6 +32,9 @@
sqlite,
llvmPackages,
gtest,
curl,
enableTests ? true,
}:
assert cudaSupport -> cudaPackages != { };
@@ -65,30 +69,54 @@ let
# TODO: migrate to redist packages
inherit (cudaPackages) cudatoolkit;
# COLMAP needs these model files to run the ONNX tests
# Based on: https://github.com/colmap/colmap/blob/79efc74b2b614935a3c69b1f983f2bad23a836a1/src/colmap/feature/resources.h#L36
modelsForTesting = [
{
name = "aliked-n16rot.onnx";
url = "https://github.com/colmap/colmap/releases/download/3.13.0/aliked-n16rot.onnx";
sha256 = "39c423d0a6f03d39ec89d3d1d61853765c2fb6a8b8381376c703e5758778a547";
}
{
name = "aliked-n32.onnx";
url = "https://github.com/colmap/colmap/releases/download/3.13.0/aliked-n32.onnx";
sha256 = "a077728a02d2de1a775c66df6de8cfeb7c6b51ca57572c64c680131c988c8b3c";
}
{
name = "aliked-lightglue.onnx";
url = "https://github.com/colmap/colmap/releases/download/3.13.0/aliked-lightglue.onnx";
sha256 = "b9a5de7204648b18a8cf5dcac819f9d30de1a5961ef03756803c8b86c2dceb8d";
}
{
name = "bruteforce-matcher.onnx";
url = "https://github.com/colmap/colmap/releases/download/3.13.0/bruteforce-matcher.onnx";
sha256 = "3c1282f96d83f5ffc861a873298d08bbe5219f59af59223f5ceab5c41a182a47";
}
{
name = "sift-lightglue.onnx";
url = "https://github.com/colmap/colmap/releases/download/3.13.0/sift-lightglue.onnx";
sha256 = "e0500228472b43f92b3d36881a09b3310d3b058b56187b246cc7b9ab6429096e";
}
];
in
stdenv'.mkDerivation {
version = "4.0.2";
version = "4.0.3";
pname = "colmap";
src = fetchFromGitHub {
owner = "colmap";
repo = "colmap";
rev = "d927f7e518fc20afa33390712c4cc20d85b730b8";
hash = "sha256-+cPkksfCLyEo7A70nuRWnOBEkhx8BFevQ9XWTipEkpM=";
rev = "e5b4a3e2276fe0cb81c3643d8ffdf124020c372e";
hash = "sha256-VV+ROjhrg7bEMV3QU6r4zCcMzC7tAPwTu6gV6/cmiH0=";
};
patches = [
./suitesparse-no-include-subdir.patch
# Remove when https://github.com/colmap/colmap/pull/4265 is merged
./disambiguate-gradientchecker.patch
];
cmakeFlags = [
(lib.cmakeBool "DOWNLOAD_ENABLED" false)
(lib.cmakeBool "DOWNLOAD_ENABLED" true) # We want COLMAP to be able to fetch models like LightGlue.
(lib.cmakeBool "UNINSTALL_ENABLED" false)
(lib.cmakeBool "FETCH_POSELIB" false)
(lib.cmakeBool "FETCH_FAISS" false)
(lib.cmakeBool "FETCH_ONNX" false)
(lib.cmakeBool "TESTS_ENABLED" true)
(lib.cmakeBool "TESTS_ENABLED" enableTests)
(lib.cmakeFeature "CHOLMOD_INCLUDE_DIR_HINTS" "${suitesparse.dev}/include")
(lib.cmakeFeature "CHOLMOD_LIBRARY_DIR_HINTS" "${suitesparse}/lib")
]
@@ -114,6 +142,7 @@ stdenv'.mkDerivation {
gmp
mpfr
libsm
curl
]
++ depsAlsoForPycolmap;
@@ -126,7 +155,19 @@ stdenv'.mkDerivation {
autoAddDriverRunpath
];
doCheck = enableTests;
preCheck = lib.optionalString enableTests ''
export GTEST_FILTER='-*Gpu*:*GPU*:*OpenGL*' # Disable any test involving OpenGL or GPU, these won't work in the sandbox.
export HOME=$PWD
# Pre-fetch the ONNX models into COLMAP's cache dir so we can run their tests.
mkdir -p .cache/colmap
${lib.concatMapStringsSep "\n" (model: ''
ln -s ${fetchurl model} .cache/colmap/${model.sha256}-${model.name}
'') modelsForTesting}
'';
passthru.depsAlsoForPycolmap = depsAlsoForPycolmap;
passthru.updateScript = nix-update-script { };
meta = {
description = "Structure-From-Motion and Multi-View Stereo pipeline";
@@ -1,22 +0,0 @@
diff --git a/cmake/FindCHOLMOD.cmake b/cmake/FindCHOLMOD.cmake
index a5daf0e3..b0f13e3e 100644
--- a/cmake/FindCHOLMOD.cmake
+++ b/cmake/FindCHOLMOD.cmake
@@ -57,7 +57,7 @@ if(TARGET CHOLMOD::CHOLMOD)
else()
find_path(CHOLMOD_INCLUDE_DIRS
NAMES
- suitesparse/cholmod.h
+ cholmod.h
PATHS
${CHOLMOD_INCLUDE_DIR_HINTS}
/usr/include
@@ -89,7 +89,7 @@ else()
add_library(CHOLMOD::CHOLMOD INTERFACE IMPORTED)
target_include_directories(
- CHOLMOD::CHOLMOD INTERFACE ${CHOLMOD_INCLUDE_DIRS}/suitesparse)
+ CHOLMOD::CHOLMOD INTERFACE ${CHOLMOD_INCLUDE_DIRS})
target_link_libraries(
CHOLMOD::CHOLMOD INTERFACE ${CHOLMOD_LIBRARIES})
endif()
+10 -7
View File
@@ -1,20 +1,23 @@
{
lib,
stdenv,
fetchurl,
fetchFromGitLab,
pkg-config,
fuse,
fuse3,
attr,
asciidoc-full,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "disorderfs";
version = "0.5.11";
version = "0.6.2";
src = fetchurl {
url = "http://http.debian.net/debian/pool/main/d/disorderfs/disorderfs_${finalAttrs.version}.orig.tar.bz2";
sha256 = "sha256-KqAMKVUykCgVdNyjacZjpVXqVdeob76v0iOuSd4TNIY=";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "reproducible-builds";
repo = "disorderfs";
tag = finalAttrs.version;
hash = "sha256-1ehGbNYbOewnDrQ1JhozKMvfVaCH7sDCxrD0dvwAfw0=";
};
nativeBuildInputs = [
@@ -23,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
fuse
fuse3
attr
];
+3 -3
View File
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "git-statuses";
version = "0.8.0";
version = "0.8.1";
src = fetchFromGitHub {
owner = "bircni";
repo = "git-statuses";
tag = finalAttrs.version;
hash = "sha256-R0PQIgZ6dXzXmBacNMV9Xc4zwkViKBvEtW1BP/X5Res=";
hash = "sha256-p200nv8H/tuO48ZBsTQvM0JBGN4Yu58kXLhYl8AJxfc=";
};
cargoHash = "sha256-WU8fRtmoYHsvEw2DhDhLX50PzynDJJt3pTpnFvH3G4g=";
cargoHash = "sha256-MJekW/AzVe1dCr5La4+FKBeyGFAjN0fCBUiGnMoAtdI=";
# Needed to get openssl-sys to use pkg-config.
env.OPENSSL_NO_VENDOR = 1;
+9 -4
View File
@@ -1,7 +1,12 @@
{
gnuplot,
}:
...
}@args:
gnuplot.override {
withQt = true;
}
gnuplot.override (
{
withQt = true;
withWxGTK = false; # Explicitly prevent dual-GUI bloat
}
// removeAttrs args [ "gnuplot" ]
)
+2 -2
View File
@@ -5,12 +5,12 @@
}:
let
version = "1.5.7";
version = "1.6.0";
pname = "gsender";
src = fetchurl {
url = "https://github.com/Sienci-Labs/gsender/releases/download/v${version}/gSender-${version}-Linux-Intel-64Bit.AppImage";
hash = "sha256-J+GpDJ1PU07sxAmLON3GLE6RnsrSGPYfhsdESsFU/jQ=";
hash = "sha256-rksLPTwyTzILughUsN69o/gIPmSJ/OTKo3H9YZyaqKs=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "honeycomb-refinery";
version = "3.1.2";
version = "3.2.0";
src = fetchFromGitHub {
owner = "honeycombio";
repo = "refinery";
rev = "v${finalAttrs.version}";
hash = "sha256-6MrV/MOsMH1PHQkuQg4OgRqhG23xN+If172wUDu1Fek=";
hash = "sha256-8UzFoIxi9Vvf5/67rFsED/XTOz1pGeyxyuvLlTO7mVc=";
};
env.NO_REDIS_TEST = true;
@@ -37,7 +37,7 @@ buildGoModule (finalAttrs: {
"-X main.BuildID=${finalAttrs.version}"
];
vendorHash = "sha256-oA9upZD0F7J2AYylohsixy9Wdof2ww2RPDoq3f+HTmc=";
vendorHash = "sha256-nzz4SdJnISM6/yCgwelg2w7wlPBInQU1YizT5Ds2z5Y=";
doCheck = true;
+3
View File
@@ -4,6 +4,7 @@
rustPlatform,
pkg-config,
openssl,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -28,6 +29,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
openssl
];
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://git.kittencollective.com/nebkor/joecalsend";
description = "Rust terminal client for Localsend";
+2 -2
View File
@@ -23,13 +23,13 @@
buildGoModule (finalAttrs: {
pname = "kubernetes";
version = "1.35.3";
version = "1.35.4";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
tag = "v${finalAttrs.version}";
hash = "sha256-woIp7AnW7r3y0rpKO03+0t6ONyNXTS1IYxW40E1O8DA=";
hash = "sha256-UXYkReGD77Uu0P0iYvkK58Uj0f7CuXGMb1WJBD7/61U=";
};
vendorHash = null;
+1 -1
View File
@@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "(a|rc)";
ignoredVersions = "[a-zA-Z]";
};
};
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "myks";
version = "5.12.0";
version = "5.12.2";
src = fetchFromGitHub {
owner = "mykso";
repo = "myks";
tag = "v${finalAttrs.version}";
hash = "sha256-n53f2ZdMTyStzMlNMKSYkwCv2KGqKCDnBV8cVjcHMY0=";
hash = "sha256-CQCxsuZhqRo5PMahc1UBy5T2SvwDs50JWHmhm4qU3FI=";
};
vendorHash = "sha256-7PUuVHBt2Ki/Jm0DvRsYrRcKpFe8A2oRQO5KT2Cr0zo=";
vendorHash = "sha256-BFuJBaOGzttc8Q1ZxMIx0SWnBWmHg7TwU5VG8Wgydb0=";
subPackages = ".";
+3 -3
View File
@@ -7,16 +7,16 @@
php.buildComposerProject2 (finalAttrs: {
pname = "phel";
version = "0.31.0";
version = "0.32.0";
src = fetchFromGitHub {
owner = "phel-lang";
repo = "phel-lang";
tag = "v${finalAttrs.version}";
hash = "sha256-r9owO2VCkVP/uxuzN+xH103PrwyxglbIH+U5Qn/ZjAI=";
hash = "sha256-h+YNS9CWSAlP2K2RV9BVMko6iYC/aJUiD6YexCrRHNI=";
};
vendorHash = "sha256-az0WAecyBi20XjOwy6AVB3pEX7AhJsourXPFhh9QBvk=";
vendorHash = "sha256-efobguWNFK6cC17WYtmXyTu3MGFQnT0Y69E8CZ3++fA=";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
+2 -2
View File
@@ -7,11 +7,11 @@
}:
let
pname = "proxyman";
version = "3.10.0";
version = "3.11.0";
src = fetchurl {
url = "https://github.com/ProxymanApp/proxyman-windows-linux/releases/download/${version}/Proxyman-${version}.AppImage";
hash = "sha256-kprkRi50/GASHZ/NiP6tuYiVp0019W4wIjUXL9H4aBg=";
hash = "sha256-hzpSei0gR9apcJ6AVNoiqSUJLMvP0V/6STmGKeUg5vI=";
};
appimageContents = appimageTools.extract {
@@ -1,5 +1,5 @@
diff --git a/deps.edn b/deps.edn
index 195de4e..6ebe31b 100644
index f33f54f..5e448d3 100644
--- a/deps.edn
+++ b/deps.edn
@@ -1,8 +1,7 @@
+4 -4
View File
@@ -22,13 +22,13 @@
}:
buildNpmPackage (finalAttrs: {
pname = "repath-studio";
version = "0.4.12";
version = "0.4.13";
src = fetchFromGitHub {
owner = "repath-studio";
repo = "repath-studio";
tag = "v${finalAttrs.version}";
hash = "sha256-sdM3owUYI0P12+R4YyYtF/20Zl0EpJY6t4Z1q/K5EqM=";
hash = "sha256-YqBbhx5WDAElfNpPpSf1qXddK3kZhqGnHhXu/qVl1BA=";
};
patches = [
@@ -47,7 +47,7 @@ buildNpmPackage (finalAttrs: {
makeCacheWritable = true;
npmDepsHash = "sha256-Zihy5VYlkeQtmZUS25kgu3aYGPfQdUxjNSK33WHOEeQ=";
npmDepsHash = "sha256-uTcHerTZwzeTFhjNs5ExgJU6u2fjDT5YlZemo3qNQOg=";
nativeBuildInputs = [
finalAttrs.passthru.clojureWithCache
@@ -181,7 +181,7 @@ buildNpmPackage (finalAttrs: {
dontFixup = true;
outputHash = "sha256-ytS7JiQUC7U0vxuQddxQfDnm0Pt4stkRBfiIlbOpeTk=";
outputHash = "sha256-rh9dcgk4qZkBDguUGFCE6ZcPnqBG/v4jlT8py1PUHYM=";
outputHashMode = "recursive";
outputHashAlgo = "sha256";
};
@@ -1,5 +1,5 @@
diff --git a/deps.edn b/deps.edn
index 195de4e..02098e5 100644
index f33f54f..66fbfc4 100644
--- a/deps.edn
+++ b/deps.edn
@@ -1,5 +1,6 @@
+3
View File
@@ -3,6 +3,7 @@
fetchFromGitHub,
rustPlatform,
pcre2,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -22,6 +23,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
buildFeatures = [ "pcre2-engine" ];
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/brevity1swos/rgx";
description = "Terminal regex tester with real-time matching and multi-engine support";
+2 -2
View File
@@ -9,7 +9,7 @@
let
baseName = "scalafmt";
version = "3.10.7";
version = "3.11.0";
deps = stdenv.mkDerivation {
name = "${baseName}-deps-${version}";
buildCommand = ''
@@ -19,7 +19,7 @@ let
cp $(< deps) $out/share/java/
'';
outputHashMode = "recursive";
outputHash = "sha256-egN5P6jH/xvWm/5TXE/QyIyLdJqu8YQwkfIA40geRXs=";
outputHash = "sha256-oCfwYvyyMZqJh+N6rnzIIWiP9ufWApRUDUOuJ3eXyB4=";
};
in
stdenv.mkDerivation {
+1 -1
View File
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
};
updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "(a|rc)";
ignoredVersions = "[a-zA-Z]";
};
};
+2 -2
View File
@@ -11,12 +11,12 @@
python3Packages.buildPythonApplication rec {
pname = "streamlink";
version = "8.2.1";
version = "8.3.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-r6Jlgsq/ND9Jcz154ryaW76QrsfbskbsX5d5ZJnGN+4=";
hash = "sha256-bP/lW0LfOzwubdHAzEH8AUd6+8SWuoZ0D/pe7FwzPTQ=";
};
patches = [
@@ -13,13 +13,13 @@
buildNpmPackage (finalAttrs: {
pname = "sub-store-frontend";
version = "2.16.46";
version = "2.16.55";
src = fetchFromGitHub {
owner = "sub-store-org";
repo = "Sub-Store-Front-End";
tag = finalAttrs.version;
hash = "sha256-2E1g4QlakBKT8B81BYGjJMttutg02e2Azo2XVpbzkgM=";
hash = "sha256-9QBgy+5sIvFcbZpxFc9mOowH4dw4rewqLYZfUKwPOjU=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -15,13 +15,13 @@
buildNpmPackage (finalAttrs: {
pname = "sub-store";
version = "2.21.81";
version = "2.21.98";
src = fetchFromGitHub {
owner = "sub-store-org";
repo = "Sub-Store";
tag = finalAttrs.version;
hash = "sha256-ERmNMStNVLXyNWQRQnAtvH2Y2kLU6jAi4tflCcHr4/w=";
hash = "sha256-r2zlOZQ6pPxm/zjtaJkMMaG3vM/05xvS+hTDg4bydo8=";
};
sourceRoot = "${finalAttrs.src.name}/backend";
+2 -2
View File
@@ -8,13 +8,13 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "voikko-fi";
version = "2.5";
version = "2.6";
src = fetchFromGitHub {
owner = "voikko";
repo = "corevoikko";
tag = "rel-voikko-fi-${finalAttrs.version}";
hash = "sha256-0MIQ54dCxyAfdgYWmmTVF+Yfa15K2sjJyP1JNxwHP2M=";
hash = "sha256-yYV8DHhILpcAG9gbEO67fdrX44Z2hOqkLbp9bBTSNuk=";
};
sourceRoot = "${finalAttrs.src.name}/voikko-fi";
+9 -7
View File
@@ -27,16 +27,18 @@ index b820304f3a..aafb6b1ef5 100644
}
signatures['pdf-worker'] = { hash };
diff --git a/js-build/reader.js b/js-build/reader.js
index 67a02a3ad2..5de2f3ada8 100644
index 12b5df6a92..20c3f20a57 100644
--- a/js-build/reader.js
+++ b/js-build/reader.js
@@ -36,9 +36,6 @@ async function getReader(signatures) {
@@ -36,11 +36,6 @@ async function getReader(signatures) {
await fs.remove(path.join(targetDir, 'zotero'));
}
catch (e) {
- console.error(e);
- if (!e.message?.includes('The requested URL returned error: 403')) {
- console.error(e);
- }
- await exec('npm ci', { cwd: modulePath });
- await exec('npm run build', { cwd: modulePath });
await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir);
}
signatures['reader'] = { hash };
- await exec('npm run build:zotero', { cwd: modulePath });
if (!fs.pathExists(path.join(modulePath, 'build', 'zotero', 'pdf', 'build', 'pdf.mjs'))) {
throw new Error('pdf.js build failed to produce output');
}
+13 -8
View File
@@ -16,6 +16,7 @@
copyDesktopItems,
libGL,
pciutils,
speechd-minimal,
wrapGAppsHook3,
nix-update-script,
xvfb-run,
@@ -27,14 +28,14 @@ let
nodejs = nodejs_22;
pname = "zotero";
version = "8.0.5";
version = "9.0.0";
src = fetchFromGitHub {
owner = "zotero";
repo = "zotero";
tag = version;
hash = "sha256-Amk2ehdzrQjFhx1eEHcnq+Z+un+2bT/u4kpbWqD5Sbc=";
fetchSubmodules = true;
hash = "sha256-70kVFnypdF3YDXfrA+BFSoGkBfQAjDVa2pWOmaoetBI=";
};
pdf-js = buildNpmPackage {
@@ -88,8 +89,11 @@ let
pname = "zotero-pdf-reader";
inherit version nodejs;
src = "${src}/reader";
npmDepsHash = "sha256-p8O2gIF0S7QO0AR9TPPQsWUtRnKnf58zSl3JZN0lnuc=";
patches = [ ./pdf-reader-locales.patch ];
npmDepsHash = "sha256-8marAeBAW5cKDaJT3xbVsXyVfGa5ehZYUYijDzFng38=";
patches = [
./pdf-reader-locales.patch
./pdf-reader-build-fix.patch
];
postPatch = ''
rm -rf pdfjs/pdf.js
cp -r ${pdf-js} pdfjs/pdf.js
@@ -102,6 +106,7 @@ let
mkdir -p locales/en-US/
cp -r ${src}/chrome/locale/en-US/zotero/* locales/en-US/
'';
npmBuildScript = "build:zotero";
installPhase = ''
runHook preInstall
@@ -208,12 +213,11 @@ buildNpmPackage (finalAttrs: {
# Skip some flaky/failing tests
rm test/tests/retractionsTest.js
for test in \
"should throw error on broken symlink" \
"should use BrowserDownload for 403 when enforcing file type" \
"should use BrowserDownload for a JS redirect page" \
"should keep attachments pane status after changing selection" \
"should render preview robustly after making dense calls to render and discard" \
"should discard attachment pane preview after becoming invisible" \
"should throw error on broken symlink" \
"should switch dialog from add note to add/edit citation" \
"should vacuum the database with force option" \
; do
sed -i "s|it(\"$test|it.skip(\"$test|" test/tests/*.js
done
@@ -312,6 +316,7 @@ buildNpmPackage (finalAttrs: {
lib.makeLibraryPath [
libGL
pciutils
speechd-minimal
]
})
'';
@@ -0,0 +1,12 @@
diff --git a/pdfjs/build b/pdfjs/build
index abd34be..509932f 100755
--- a/pdfjs/build
+++ b/pdfjs/build
@@ -14,7 +14,6 @@ BUILD_BASE=./build
# Move into the PDF.js directory, install dependencies, and build
pushd pdfjs/pdf.js
-npm ci
if [[ $PDFJS_CONFIG != "web" ]]; then
npx gulp generic
fi
@@ -6,6 +6,7 @@
wrapQtAppsHook,
kwin,
lib,
fetchpatch2,
}:
stdenv.mkDerivation rec {
pname = "sierra-breeze-enhanced";
@@ -18,6 +19,13 @@ stdenv.mkDerivation rec {
hash = "sha256-7mQnJCQr/zm9zEdg2JPr7jQn8uajyCXvyYRQZWxG+Q8=";
};
patches = [
(fetchpatch2 {
url = "https://github.com/kupiqu/SierraBreezeEnhanced/pull/155.patch";
hash = "sha256-taj7AqiewiUU4wOTKPgfvua0rDuQ8ssH+/maxz/A3G8=";
})
];
nativeBuildInputs = [
cmake
extra-cmake-modules
@@ -13,13 +13,13 @@
}:
php.buildComposerProject2 (finalAttrs: {
pname = "composer";
version = "2.9.5";
version = "2.9.7";
src = fetchFromGitHub {
owner = "composer";
repo = "composer";
tag = finalAttrs.version;
hash = "sha256-e9z0H6Bw3yIaLjgEbspgi6skIpUJs1s0KNkcgFqoy34=";
hash = "sha256-cmz5YaxfykkUlF7Ai0Yu8L6sfNePmx3v24g6131+/RM=";
};
nativeBuildInputs = [
@@ -33,7 +33,7 @@ php.buildComposerProject2 (finalAttrs: {
inherit (finalAttrs.passthru) pharHash;
};
vendorHash = "sha256-Tqtpz/IV4PGOaye0doWZgY9u7SuvS94eH22wM2+myqU=";
vendorHash = "sha256-yMT32j3Qt4X0IbE1Mmge7PjVjVVrA4fvJm8O/8sz/V4=";
postInstall = ''
wrapProgram $out/bin/composer \
@@ -55,7 +55,7 @@ php.buildComposerProject2 (finalAttrs: {
# use together with the version from this package to keep the
# bootstrap phar file up-to-date together with the end user composer
# package.
passthru.pharHash = "sha256-yGzmA/6Da/CGGjjJOsVmyPHmmsRLJEXZt6ahfqLplyo=";
passthru.pharHash = "sha256-08aAHqbl3SkdDxSSlaTQ8VOadNUjGVj+j9qoiaSX5s8=";
meta = {
changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}";
@@ -7,6 +7,7 @@
pendulum,
pyjwt,
pytestCheckHook,
pytest-cov-stub,
pytz,
requests,
responses,
@@ -15,7 +16,7 @@
zeep,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "simple-salesforce";
version = "1.12.9";
pyproject = true;
@@ -23,7 +24,7 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "simple-salesforce";
repo = "simple-salesforce";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-eMO/K6W9ROljYxR3gK9QjCHdlbAuN4DYjOyTO1WcalQ=";
};
@@ -41,17 +42,24 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
pytz
responses
];
disabledTests = [
"test_connected_app_login_failure"
"test_token_login_failure"
"test_token_login_failure_with_warning"
];
pythonImportsCheck = [ "simple_salesforce" ];
meta = {
description = "Very simple Salesforce.com REST API client for Python";
homepage = "https://github.com/simple-salesforce/simple-salesforce";
changelog = "https://github.com/simple-salesforce/simple-salesforce/blob/${src.tag}/CHANGES";
changelog = "https://github.com/simple-salesforce/simple-salesforce/blob/${finalAttrs.src.tag}/CHANGES";
license = lib.licenses.asl20;
maintainers = [ ];
};
}
})
@@ -15,11 +15,11 @@ assert lib.versionAtLeast ocaml.version "4.08.0";
stdenv.mkDerivation (finalAttrs: {
pname = "opam";
version = "2.5.0";
version = "2.5.1";
src = fetchurl {
url = "https://github.com/ocaml/opam/releases/download/${finalAttrs.version}/opam-full-${finalAttrs.version}.tar.gz";
hash = "sha256-JfuY+WLEInwSYeFCr8aKQWd45ugZYAvV7j7EoYrh4jg=";
hash = "sha256-SMW/r19cQEjMX0ACXec4X1utOoJpdWIWzW3S8hUAM+0=";
};
strictDeps = true;
@@ -10,13 +10,13 @@
buildHomeAssistantComponent rec {
owner = "jmcollin78";
domain = "versatile_thermostat";
version = "9.3.2";
version = "9.3.3";
src = fetchFromGitHub {
inherit owner;
repo = domain;
tag = version;
hash = "sha256-fHmCakDFD6na3IQcQCX2g9XYIIJp0DTaZ9qEcSgw+78=";
hash = "sha256-TiaJFFx3nEUYHVB5Ka71MaP8pngcPSdHxt920NSCQ8c=";
};
dependencies = [