Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-09-26 12:12:11 +00:00
committed by GitHub
76 changed files with 1022 additions and 1163 deletions

View File

@@ -1,12 +1,8 @@
# Styleguide
## Writing Principles
A consistent style greatly increases the usability of all documentation and communication.
Use this page as a reference and style guide for our internal and external documentation.
### Knowledge Expectations
## Assumptions about the reader
**Assume competence, not familiarity.**
@@ -26,7 +22,7 @@ Write for someone who knows a great deal — up to but not including this projec
If specific knowledge is required, mention it at the start of the page.
#### Show, Don't Tell
### Show, Don't Tell
The fastest path to understanding is a working example.
People learn by doing, not by reading about doing.
@@ -38,7 +34,7 @@ People learn by doing, not by reading about doing.
- Cover edge cases or variations
- Link to further information instead of including it
#### Grammar and Style
### Grammar and Style
**Sentence structure:**
@@ -58,7 +54,7 @@ Users care about *detecting hardware*, not *the tool that does it*.
> This command detects your hardware and saves the configuration.
#### Content Organization
### Content Organization
Lead with value. State what the reader will accomplish before explaining how.
@@ -87,7 +83,7 @@ Use **progressive disclosure**. Introduce concepts only when needed.
3. Explain concepts if needed
4. Provide advanced options separately or link to the reference
#### No Meta-commentary
### No Meta-commentary
Don't describe what the documentation does. Just do it.
@@ -101,7 +97,7 @@ Don't describe what the documentation does. Just do it.
> Configure networking by setting:
> Set up a web server:
#### Code Examples
### Code Examples
**Keep examples focused:**
@@ -134,7 +130,7 @@ Paste code examples directly and without further alteration.
}
```
#### Lead with Practical Examples
### Lead with Practical Examples
Don't front-load theory. Readers want to accomplish something first, then understand why it works.
@@ -160,7 +156,7 @@ This adds nginx to your system configuration. Rebuild to apply:
sudo nixos-rebuild switch
```
#### Teach Nix through examples, not theory
### Teach Nix through examples, not theory
Users learn the NixOS module system by seeing patterns first.
@@ -170,7 +166,7 @@ Users learn the NixOS module system by seeing patterns first.
- Link deeper concepts instead of inlining them
- Link to `nix.dev` for optional learning
#### General Rules
### General Rules
- Abbreviate keys like `ssh-ed25519 AAAAC3NzaC…`
- Abbreviate IP addresses like `192.168.XXX.XXX`
@@ -179,7 +175,7 @@ Users learn the NixOS module system by seeing patterns first.
- Do **not** describe missing code parts (`#elided`, `#omitted`)
- **Machine vs Host**: use "machine" for the NixOS system identity, "host" for the physical or virtual hardware
#### Capitalization
### Capitalization
- GB / RAM / HDD
- bootable USB drive
@@ -188,7 +184,7 @@ Users learn the NixOS module system by seeing patterns first.
- Flakes
- git
#### Headings
### Headings
Use sentence case. A reader scanning only headings should understand the page.
@@ -204,7 +200,7 @@ Use sentence case. A reader scanning only headings should understand the page.
> Configure networking
> Add a user to the system
#### Imperative Mood, Voice, and Person
### Imperative Mood, Voice, and Person
Use imperative mood for instructions. Address the reader as "you", not "the user". Use active voice; in other words, make the subject do the action.
@@ -220,7 +216,7 @@ Use imperative mood for instructions. Address the reader as "you", not "the user
> Update the configuration.
> The system generates the key.
#### Tense
### Tense
Use present tense for descriptions. Future tense makes documentation feel tentative.
@@ -234,7 +230,7 @@ Use present tense for descriptions. Future tense makes documentation feel tentat
> This creates a new folder.
> Running this command installs the package.
#### Be Confident
### Be Confident
State facts. Don't hedge with "should," "might," "typically," or "usually" unless the behavior genuinely varies.
@@ -248,7 +244,7 @@ State facts. Don't hedge with "should," "might," "typically," or "usually" unles
> This creates the configuration file.
> The service starts automatically.
#### Avoid Nominalizations
### Avoid Nominalizations
A nominalization is a verb turned into a noun, often by adding *-tion*, *-meant*, or *-ance* (e.g. "explanation", "selection"). The fix: find the hidden verb and use it directly.
@@ -262,7 +258,7 @@ A nominalization is a verb turned into a noun, often by adding *-tion*, *-meant*
> Select from the list.
> Explain the error.
#### Plain Words
### Plain Words
Technical precision for technical terms; plain language for everything else.
@@ -274,7 +270,7 @@ Technical precision for technical terms; plain language for everything else.
- "set up" not "establish"
- "find out" not "ascertain"
#### Filler Words and Weak Phrases
### Filler Words and Weak Phrases
Cut words and phrases that add length without meaning.
@@ -300,7 +296,7 @@ Delete on sight:
Every word must earn its place.
#### Writing Procedures
### Writing Procedures
One instruction per sentence. Don't pack multiple actions into one sentence.
@@ -324,7 +320,7 @@ Don't bury the negative. Key limitations should be prominent, not a footnote aft
> This service does not support multiple instances.
#### Consistent Terminology
### Consistent Terminology
Pick a term and stick to it. Don't swap synonyms to avoid repetition. In technical documentation, repetition is clarity.
@@ -336,7 +332,7 @@ Pick a term and stick to it. Don't swap synonyms to avoid repetition. In technic
> Create a machine... configure the machine... deploy the machine.
#### Links
### Links
Use descriptive link text. Never use "click here" or "this link."
@@ -363,7 +359,7 @@ Only link when the destination is directly relevant, not for generic background
> See `[database schema](url)` for the full table structure.
#### UI Language
### UI Language
Match UI element names exactly: wording, casing, and spacing (even if a label seems oddly worded).
@@ -385,7 +381,7 @@ Consistency between documentation and interface builds confidence. Words are par
This can be tricky as UI changes; we don't yet have a policy in place for how to handle this. We welcome comments and suggestions.
:::
#### Clean system discipline
### Clean system discipline
Your machine has things new users don't: cached credentials, installed tools, environment variables, existing configuration. When writing or updating documentation:
@@ -401,7 +397,7 @@ Your machine has things new users don't: cached credentials, installed tools, en
Also think in combinations: WSL vs native Linux, with and without existing keys. You don't need to test every matrix square — but you need to know which ones diverge.
#### Never type code — always copy-paste
### Never type code — always copy-paste
Always copy commands and code from a terminal where you just ran them successfully. Never retype from memory.

View File

@@ -46,6 +46,8 @@
- [scx_loader](https://github.com/sched-ext/scx-loader), a system daemon and DBus-based loader for sched_ext schedulers. `scxctl` is the command-line client for interacting with the loader, allowing users to switch schedulers, modes, and arguments dynamically. Available as [services.scx-loader](#opt-services.scx-loader.enable)
- [Renderdoc](https://renderdoc.org/), a graphics debugger for Vulkan, D3D11, D3D12, OpenGL, and OpenGL ES. Available as [programs.renderdoc](#opt-programs.renderdoc.enable).
- [tap](https://github.com/bluesky-social/indigo/tree/main/cmd/tap), an ATProtocol firehose synchronisation utility. Available as [services.tap](#opt-services.tap.enable).
- [Nezha](https://github.com/nezhahq/nezha), a self-hosted, lightweight server and website monitoring and O&M tool. Available as [services.nezha](#opt-services.nezha.enable).

View File

@@ -316,6 +316,7 @@
./programs/qgroundcontrol.nix
./programs/qt5ct.nix
./programs/quark-goldleaf.nix
./programs/renderdoc.nix
./programs/rog-control-center.nix
./programs/rush.nix
./programs/rust-motd.nix

View File

@@ -0,0 +1,63 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.programs.renderdoc;
hasVulkanLayers = cfg.package ? passthru.vulkanLayers;
layerDir = "${cfg.package}/share/vulkan/implicit_layer.d";
in
{
options.programs.renderdoc = {
enable = lib.mkEnableOption "RenderDoc a frame-capture based graphics debugger";
package = lib.mkPackageOption pkgs "renderdoc" {
example = "renderdoc";
};
installVulkanLayer = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Installs the Vulkan layer for RenderDoc,
which is required for Vulkan applications to be captured.
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
assertions = [
{
assertion = cfg.installVulkanLayer -> hasVulkanLayers;
message = ''
programs.renderdoc.package (${
cfg.package.name or "renderdoc"
}) does not expose `passthru.vulkanLayers`,
which is required to install the Vulkan implicit layer manifest(s) to /etc/vulkan/implicit_layer.d.
Either use the upstream `renderdoc` package, add `passthru.vulkanLayers` to your override,
or set `programs.renderdoc.installVulkanLayer = false;`.
'';
}
];
environment.etc = lib.mkIf (cfg.installVulkanLayer && hasVulkanLayers) (
lib.listToAttrs (
map (name: {
name = "vulkan/implicit_layer.d/${name}";
value = {
source = "${layerDir}/${name}";
};
}) cfg.package.passthru.vulkanLayers
)
);
};
meta.maintainers = with lib.maintainers; [
ShyAssassin
pbsds
];
}

View File

@@ -199,6 +199,7 @@ let
while true; do
echo -n "Passphrase for ${dev.device}: "
passphrase=
${lib.optionalString (dev.timeout != null) "time_passed=0"}
while true; do
if [ -e /crypt-ramfs/passphrase ]; then
echo "reused"
@@ -229,6 +230,13 @@ let
echo
break
fi
${lib.optionalString (dev.timeout != null) ''
time_passed=$((time_passed + 1))
if [ $time_passed -ge ${builtins.toString dev.timeout} ]; then
echo "Timeout reached"
poweroff -f
fi
''}
fi
done
echo -n "Verifying passphrase for ${dev.device}..."
@@ -328,6 +336,7 @@ let
${optionalString dev.yubikey.twoFactor ''
echo -n "Enter two-factor passphrase: "
k_user=
${lib.optionalString (dev.timeout != null) "time_passed=0"}
while true; do
if [ -e /crypt-ramfs/passphrase ]; then
echo "reused"
@@ -351,6 +360,13 @@ let
echo
break
fi
${lib.optionalString (dev.timeout != null) ''
time_passed=$((time_passed + 1))
if [ $time_passed -ge ${builtins.toString dev.timeout} ]; then
echo "Timeout reached"
poweroff -f
fi
''}
fi
done
''}
@@ -451,6 +467,7 @@ let
for try in $(seq 3); do
echo -n "PIN for GPG Card associated with device ${dev.device}: "
pin=
${lib.optionalString (dev.timeout != null) "time_passed=0"}
while true; do
if [ -e /crypt-ramfs/passphrase ]; then
echo "reused"
@@ -474,6 +491,13 @@ let
echo
break
fi
${lib.optionalString (dev.timeout != null) ''
time_passed=$((time_passed + 1))
if [ $time_passed -ge ${builtins.toString dev.timeout} ]; then
echo "Timeout reached"
poweroff -f
fi
''}
fi
done
echo -n "Verifying passphrase for ${dev.device}..."
@@ -523,8 +547,22 @@ let
''
else
''
read -rsp "FIDO2 salt for ${dev.device}: " passphrase
echo
${lib.optionalString (dev.timeout != null) "time_passed=0"}
echo -n "FIDO2 salt for ${dev.device}: "
while true; do
IFS= read -t 1 -rs passphrase
if [ -n "$passphrase" ]; then
echo
break
fi
${lib.optionalString (dev.timeout != null) ''
time_passed=$((time_passed + 1))
if [ $time_passed -ge ${builtins.toString dev.timeout} ]; then
echo "Timeout reached"
poweroff -f
fi
''}
done
''
}
${optionalString (lib.versionOlder kernelPackages.kernel.version "5.4") ''
@@ -562,27 +600,62 @@ let
${dev.postOpenCommands}
'';
askPass = pkgs.writeScriptBin "cryptsetup-askpass" ''
#!/bin/sh
askPass =
let
configHasTimeouts = lib.any (dev: dev.timeout != null) (lib.attrValues luks.devices);
in
pkgs.writeScriptBin "cryptsetup-askpass" ''
#!/bin/sh
${commonFunctions}
${commonFunctions}
while true; do
wait_target "luks" /crypt-ramfs/device 10 "LUKS to request a passphrase" || die "Passphrase is not requested now"
device=$(cat /crypt-ramfs/device)
get_timeout_for_device() {
${lib.pipe luks.devices [
(lib.filterAttrs (name: dev: dev.timeout != luks.timeout))
(lib.mapAttrsToList (
name: dev: ''
if [ "$1" = "${lib.escapeShellArg dev.device}" ]; then
echo "${toString dev.timeout}"
return
fi
''
))
(lib.concatStringsSep "\n")
]}
echo "${builtins.toString luks.timeout}"
}
echo -n "Passphrase for $device: "
IFS= read -rs passphrase
ret=$?
echo
if [ $ret -ne 0 ]; then
die "End of file reached. Exiting shell."
fi
while true; do
wait_target "luks" /crypt-ramfs/device 10 "LUKS to request a passphrase" || die "Passphrase is not requested now"
device=$(cat /crypt-ramfs/device)
${lib.optionalString configHasTimeouts "time_passed=0"}
timeout=$(get_timeout_for_device $device)
rm /crypt-ramfs/device
echo -n "$passphrase" > /crypt-ramfs/passphrase
done
'';
echo -n "Passphrase for $device: "
while true; do
IFS= read -t 1 -r passphrase
ret=$?
if [ $ret -eq 1 ]; then
echo
die "End of file reached. Exiting shell."
fi
if [ -n "$passphrase" ]; then
echo
break
fi
${lib.optionalString configHasTimeouts ''
time_passed=$((time_passed + 1))
if [ $timeout -gt 0 && $time_passed -ge $timeout ]; then
echo "Timeout reached"
poweroff -f
fi
''}
done
rm /crypt-ramfs/device
echo -n "$passphrase" > /crypt-ramfs/passphrase
done
'';
preLVM = filterAttrs (n: v: v.preLVM) luks.devices;
postLVM = filterAttrs (n: v: !v.preLVM) luks.devices;
@@ -1015,6 +1088,16 @@ in
Extra options to append to the last column of the generated crypttab file.
'';
};
timeout = mkOption {
type = types.nullOr types.ints.positive;
default = luks.timeout;
defaultText = "{option}`boot.initrd.luks.timeout`";
description = ''
The amount of time in seconds to wait on the passphrase prompt.
If the timeout is reached, the system will power off.
'';
};
};
config = mkIf (clevis.enable && (hasAttr name clevis.devices)) {
@@ -1060,6 +1143,15 @@ in
'';
};
boot.initrd.luks.timeout = mkOption {
type = types.nullOr types.ints.positive;
default = null;
description = ''
The amount of time in seconds to wait on the passphrase prompt.
If the timeout is reached, the system will power off.
'';
};
};
config = mkIf (luks.devices != { } || luks.forceLuksSupportInInitrd) {
@@ -1251,42 +1343,58 @@ in
boot.initrd.systemd.services =
let
devicesWithClevis = filterAttrs (device: _: (hasAttr device clevis.devices)) luks.devices;
devicesWithTimeout = filterAttrs (_: dev: dev.timeout != null) luks.devices;
in
mkIf (clevis.enable && systemd.enable) (
mapAttrs' (
name: _:
nameValuePair "cryptsetup-clevis-${name}" {
wantedBy = [ "systemd-cryptsetup@${utils.escapeSystemdPath name}.service" ];
before = [
"systemd-cryptsetup@${utils.escapeSystemdPath name}.service"
"initrd-switch-root.target"
"shutdown.target"
];
wants = optional clevis.useTang "network-online.target";
after = [
"systemd-modules-load.service"
"tpm2.target"
]
++ optional clevis.useTang "network-online.target";
script = ''
mkdir -p /clevis-${name}
mount -t ramfs none /clevis-${name}
umask 277
clevis decrypt < /etc/clevis/${name}.jwe > /clevis-${name}/decrypted
'';
conflicts = [
"initrd-switch-root.target"
"shutdown.target"
];
unitConfig.DefaultDependencies = "no";
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStop = "${config.boot.initrd.systemd.package.util-linux}/bin/umount /clevis-${name}";
};
}
) devicesWithClevis
);
mkMerge [
(mkIf (clevis.enable && systemd.enable) (
mapAttrs' (
name: _:
nameValuePair "cryptsetup-clevis-${name}" {
wantedBy = [ "systemd-cryptsetup@${utils.escapeSystemdPath name}.service" ];
before = [
"systemd-cryptsetup@${utils.escapeSystemdPath name}.service"
"initrd-switch-root.target"
"shutdown.target"
];
wants = optional clevis.useTang "network-online.target";
after = [
"systemd-modules-load.service"
"tpm2.target"
]
++ optional clevis.useTang "network-online.target";
script = ''
mkdir -p /clevis-${name}
mount -t ramfs none /clevis-${name}
umask 277
clevis decrypt < /etc/clevis/${name}.jwe > /clevis-${name}/decrypted
'';
conflicts = [
"initrd-switch-root.target"
"shutdown.target"
];
unitConfig.DefaultDependencies = "no";
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStop = "${config.boot.initrd.systemd.package.util-linux}/bin/umount /clevis-${name}";
};
}
) devicesWithClevis
))
(mkIf systemd.enable (
mapAttrs' (
name: dev:
nameValuePair "systemd-cryptsetup@${utils.escapeSystemdPath name}" {
overrideStrategy = "asDropin";
unitConfig = {
JobTimeoutSec = dev.timeout;
JobTimeoutAction = "poweroff";
};
}
) devicesWithTimeout
))
];
environment.systemPackages = [ pkgs.cryptsetup ];
};

View File

@@ -46,4 +46,6 @@ stdenv.mkDerivation {
cp ${wrapper} $out/bin/bitwig-studio
cp -r ${bitwig-studio-unwrapped}/share $out
'';
meta.license = bitwig-studio-unwrapped.meta.license;
}

View File

@@ -56,6 +56,7 @@ vimUtils.buildVimPlugin {
description = "Performant, batteries-included completion plugin for Neovim";
homepage = "https://github.com/saghen/blink.cmp";
changelog = "https://github.com/Saghen/blink.cmp/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
balssh
redxtech

View File

@@ -8,4 +8,14 @@ vimUtils.buildVimPlugin {
# https://hurl.dev/
src = "${hurl.src}/contrib/vim";
meta = {
inherit (hurl.meta)
description
homepage
changelog
maintainers
license
;
};
}

View File

@@ -65,6 +65,7 @@ vimUtils.buildVimPlugin {
description = "Interactive database client for neovim";
homepage = "https://github.com/kndndrj/nvim-dbee";
changelog = "https://github.com/kndndrj/nvim-dbee/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ PerchunPak ];
};
}

View File

@@ -6,4 +6,14 @@ vimUtils.buildVimPlugin {
pname = "skim";
inherit (skim) version;
src = skim.vim;
meta = {
inherit (skim.meta)
description
homepage
changelog
license
maintainers
;
};
}

View File

@@ -5,4 +5,14 @@
vimUtils.buildVimPlugin {
inherit (taskwarrior2) version pname;
src = "${taskwarrior2.src}/scripts/vim";
meta = {
inherit (taskwarrior2.meta)
description
homepage
license
maintainers
platforms
;
};
}

View File

@@ -5,4 +5,15 @@
vimUtils.buildVimPlugin {
inherit (taskwarrior3) version pname;
src = "${taskwarrior3.src}/scripts/vim";
meta = {
inherit (taskwarrior3.meta)
changelog
description
homepage
license
maintainers
platforms
;
};
}

View File

@@ -200,13 +200,13 @@
"vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk="
},
"clevercloud_clevercloud": {
"hash": "sha256-JVdhdMFjwlB02KwmRe8JEKF9gefck9L9VqrW0xzvhWs=",
"hash": "sha256-JKjsEGICQnYZAd/Ywu7OLQaCqqeAyn9AiRIvNYt4BA8=",
"homepage": "https://registry.terraform.io/providers/clevercloud/clevercloud",
"owner": "CleverCloud",
"repo": "terraform-provider-clevercloud",
"rev": "v2.2.0",
"rev": "v2.2.1",
"spdx": "Apache-2.0",
"vendorHash": "sha256-AB6VVC/I5E+CoHvdww38gXlHJ9yh4t5jV6ZrvDDTQeE="
"vendorHash": "sha256-BeFD02YByrmdvIMIYlLQqYGQkfD53Dxeox5EzKd5SJA="
},
"cloudamqp_cloudamqp": {
"hash": "sha256-WD4ZIUTg8xGfxa4oqA7EGVwcggBzJK/MRchxdldypqU=",
@@ -589,13 +589,13 @@
"vendorHash": "sha256-gv54RqpkWri5yL40ajcLnqzF0XvMEzFoFEEV2/g1paE="
},
"hashicorp_google": {
"hash": "sha256-saCI+FFwPZSkofk3C3GxvR2SB+9Hajo1WRwG4iTTfD0=",
"hash": "sha256-a3ONfrpRvBpy6rXGiduIgp+6Vfa7FxjWUHQCxxMvd1w=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
"owner": "hashicorp",
"repo": "terraform-provider-google",
"rev": "v8.2.0",
"rev": "v8.4.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-EikYOTTTkj5E82xza6nYvd1AWFg8fzo1ka2umc+25/k="
"vendorHash": "sha256-9DiGgBQyN2lv7w4IkjMuWGNo9oTIvdK1qcdEpKpy5NE="
},
"hashicorp_google-beta": {
"hash": "sha256-EvcjgQupjAPKkbPObTTXNUsyyo7Udwc6rriD4/K7UhE=",

View File

@@ -116,7 +116,9 @@ rec {
in
finalAttrs:
{
name,
pname ? null,
version ? null,
name ? "${pname}-${version}",
text,
executable ? false,
destination ? "",
@@ -126,7 +128,7 @@ rec {
allowSubstitutes ? false,
preferLocalBuild ? true,
derivationArgs ? { },
pos ? builtins.unsafeGetAttrPos "name" args,
pos ? builtins.unsafeGetAttrPos (if pname != null then "pname" else "name") args,
}@args:
{
inherit
@@ -138,6 +140,10 @@ rec {
allowSubstitutes
preferLocalBuild
;
${if pname != null then "pname" else null} = pname;
${if version != null then "version" else null} = version;
destination =
assert
(destination != "" -> (hasRootPrefix destination && destination != "/"))

View File

@@ -7,13 +7,13 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-nextest";
version = "0.9.144";
version = "0.9.146";
src = fetchFromGitHub {
owner = "nextest-rs";
repo = "nextest";
tag = "cargo-nextest-${finalAttrs.version}";
hash = "sha256-Lvwiqs5vhxndL4it/kmhYChWqh3/BkheOGGewgsTrm4=";
hash = "sha256-2ndrHZ1pmu1oBZGlq5pyv0vhSEUf23gNRyyenNw0fdk=";
};
# FIXME: we don't support dtrace probe generation on macOS until we have a dtrace build: https://github.com/NixOS/nixpkgs/pull/392918
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
./no-dtrace-macos.patch
];
cargoHash = "sha256-jWG7OlUJxVGaRkU6KGzwGVkRuZepElpIyQK9fsXpD+Y=";
cargoHash = "sha256-ZW0/JQ9RECxfDn479ww4bO4ixoMGaM+GtGUOCWy2Cyg=";
cargoBuildFlags = [
"-p"

View File

@@ -6,7 +6,7 @@
}:
buildGoModule (finalAttrs: {
pname = "cloudflare-dynamic-dns";
version = "4.5.9";
version = "4.5.10";
__structuredAttrs = true;
@@ -14,10 +14,10 @@ buildGoModule (finalAttrs: {
owner = "zebradil";
repo = "cloudflare-dynamic-dns";
tag = finalAttrs.version;
hash = "sha256-Z2NHq8iG6t+mlm8Sm0IecBwlFJQdE108/Sa0IXIg4J0=";
hash = "sha256-DW4Lijn+oghw790mV6YVlGJceYc8kpnIwx4cIb2AAc0=";
};
vendorHash = "sha256-U1UTZIqa6bPfU8iLDBAV0291+jbUD5Mqhuc/HtFxznk=";
vendorHash = "sha256-qAT6q+bNZhWbNpy06fwc6aIcfb0G3s4jmSWY/xkC4po=";
subPackages = ".";

View File

@@ -0,0 +1,11 @@
--- a/features/src/lib.rs
+++ b/features/src/lib.rs
@@ -941,7 +941,7 @@
id: Feature::DaemonAutoStart,
key: "daemon_auto_start",
stage: Stage::Stable,
- default_enabled: true,
+ default_enabled: false,
},
FeatureSpec {
id: Feature::TranscriptV2,

View File

@@ -59,6 +59,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
"codex-code-mode-host"
];
patches = [
# https://github.com/openai/codex/issues/48195
./no-daemon_auto_start.patch
];
postPatch = ''
substituteInPlace Cargo.toml \
--replace-fail 'lto = "thin"' "" \

View File

@@ -17,13 +17,13 @@
buildGoModule (finalAttrs: {
pname = "cri-o";
version = "1.37.0";
version = "1.37.1";
src = fetchFromGitHub {
owner = "cri-o";
repo = "cri-o";
tag = "v${finalAttrs.version}";
hash = "sha256-JbiHVRuwB58ZZDGYCDPTrFT7k0Aymb35xQciPQdNcdk=";
hash = "sha256-9DJrYsX9t7fCi8mYfRgutdSen6oBR800SAS4R8kIueE=";
};
vendorHash = null;

View File

@@ -2,31 +2,42 @@
lib,
stdenv,
fetchFromGitHub,
# nativeBuildInputs
cmake,
doxygen,
ninja,
pkg-config,
qt6,
# nativeCheckInputs
writableTmpDirAsHomeHook,
# buildInputs (Linux and Darwin)
gtest,
libei,
libportal,
libx11,
libxkbfile,
libxtst,
libxinerama,
libxi,
libxrandr,
libxkbcommon,
openssl,
pugixml,
python3,
# buildInputs (Linux-specific)
gdk-pixbuf,
libnotify,
qt6,
xkeyboard_config,
wayland-protocols,
wayland,
libsysprof-capture,
lerc,
doxygen,
writableTmpDirAsHomeHook,
libei,
libnotify,
libportal,
libsysprof-capture,
libx11,
libxi,
libxinerama,
libxkbcommon,
libxkbfile,
libxrandr,
libxtst,
wayland,
wayland-protocols,
xkeyboard_config,
# Update script for `passthru`.
nix-update-script,
}:
@@ -41,57 +52,69 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-XcSG47Ysjn+wrJH5DC/XXGXcneXcW7xIhAn6sguuv+s=";
};
postPatch = ''
substituteInPlace src/lib/deskflow/unix/AppUtilUnix.cpp \
--replace-fail "/usr/share/X11/xkb/rules/evdev.xml" "${xkeyboard_config}/share/X11/xkb/rules/evdev.xml"
substituteInPlace deploy/linux/deploy.cmake \
--replace-fail 'message(FATAL_ERROR "Unable to read file /etc/os-release")' 'set(RELEASE_FILE_CONTENTS "")'
'';
nativeBuildInputs = [
cmake
doxygen
ninja
pkg-config
qt6.wrapQtAppsHook
doxygen # docs
];
buildInputs = [
gtest
openssl
pugixml
python3
qt6.qtbase
qt6.qttools
qt6.qttranslations
]
++ (lib.optionals stdenv.hostPlatform.isLinux [
gdk-pixbuf
lerc
libei
libnotify
libportal
libsysprof-capture
libx11
libxi
libxinerama
libxkbcommon
libxkbfile
libxrandr
libxtst
qt6.qtdeclarative
qt6.qtwayland
wayland
wayland-protocols
]);
preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
export PATH="${qt6.qtbase}/bin:$PATH"
'';
postPatch = ''
${lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace src/lib/deskflow/unix/AppUtilUnix.cpp \
--replace-fail "/usr/share/X11/xkb/rules/evdev.xml" "${xkeyboard_config}/share/X11/xkb/rules/evdev.xml"
substituteInPlace deploy/linux/deploy.cmake \
--replace-fail 'message(FATAL_ERROR "Unable to read file /etc/os-release")' 'set(RELEASE_FILE_CONTENTS "")'
''}
substituteInPlace translations/CMakeLists.txt \
--replace-fail 'PATHS ''${QT_ROOT_DIR} PATH_SUFFIXES "translations" "share/qt/translations"' 'PATHS "${qt6.qttranslations}/translations"'
substituteInPlace src/lib/net/CMakeLists.txt \
--replace-fail "set(OPENSSL_USE_STATIC_LIBS TRUE)" ""
'';
cmakeFlags = [
"-DCMAKE_SKIP_RPATH=ON" # Avoid generating incorrect RPATH
"-DSKIP_BUILD_TESTS=ON" # Perform unit tests in `checkPhase` manually, with one job at a time.
];
qtWrapperArgs = lib.optional stdenv.hostPlatform.isLinux "--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt6.qtwayland}/${qt6.qtbase.qtPluginPrefix}/platforms";
strictDeps = true;
buildInputs = [
gtest
libei
libportal
libx11
libxkbfile
libxinerama
libxi
libxrandr
libxtst
libxkbcommon
pugixml
gdk-pixbuf
libnotify
python3
qt6.qtbase
wayland-protocols
qt6.qtwayland
qt6.qtdeclarative
qt6.qttools
wayland
libsysprof-capture
lerc
];
qtWrapperArgs = [
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt6.qtwayland}/${qt6.qtbase.qtPluginPrefix}/platforms"
];
doCheck = true;
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
@@ -100,7 +123,8 @@ stdenv.mkDerivation (finalAttrs: {
runHook preCheck
export QT_QPA_PLATFORM=offscreen
ctest --test-dir "src/unittests" --output-on-failure
ctest --test-dir "src/unittests" --output-on-failure \
--exclude-regex "OSX(KeyState|Clipboard)Tests"
./bin/legacytests
runHook postCheck
@@ -127,9 +151,9 @@ stdenv.mkDerivation (finalAttrs: {
];
license = with lib.licenses; [
gpl2Plus
openssl
lib.licenses.openssl # We have to be explicit here, as `openssl` is a buildInput.
mit # share/applications/org.deskflow.deskflow.desktop
];
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
})

View File

@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "fut";
version = "3.3.7";
version = "3.3.8";
src = fetchFromGitHub {
owner = "fusionlanguage";
repo = "fut";
tag = "fut-${finalAttrs.version}";
hash = "sha256-SeCp6DhkYv31yrJHm2PbujKpbGRiRP0E9jweCk3GHoE=";
hash = "sha256-PyPEDAFbOrdpnqNS+EMi+KEHRsxSvGK79ebfsS4XM/U=";
};
buildPhase = ''

View File

@@ -1,6 +1,6 @@
{ callPackage }:
callPackage ./generic.nix {
version = "3.12.9";
hash = "sha256-iSMxBrJ+M3/I+X3dxBOUHmcEQ0VqLjq38mUJuII3hUY=";
version = "3.12.11";
hash = "sha256-ZBr9Av6SJgAZNdzZl/qXK8+iQFDbhzv+D/mrM9A1Oo0=";
}

View File

@@ -1,6 +1,6 @@
{ callPackage }:
callPackage ./generic.nix {
version = "3.13.8";
hash = "sha256-7/S+SuXItnBabW0e5h/n9tezhW5sV/Ix8CmEOdx9EYA=";
version = "3.13.10";
hash = "sha256-Pn06NU4HxaqQ0lp6OGOz32FVFfFor9r1z/A1ewZqkpc=";
}

View File

@@ -1,6 +1,6 @@
{ callPackage }:
callPackage ./generic.nix {
version = "3.14.2";
hash = "sha256-OuM96W9++2QKD2O2IwkzDjmBaC9Ej/6ReHY/Rwujuno=";
version = "3.14.4";
hash = "sha256-+sAGXBQlkEFKMe4Tf0yfZo5Sdm1MEUxOtXA3rfSNRqc=";
}

View File

@@ -1,24 +1,24 @@
{
lib,
buildGoModule,
buildGo127Module,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
nixosTests,
}:
buildGoModule (finalAttrs: {
buildGo127Module (finalAttrs: {
pname = "glance";
version = "0.8.5";
version = "0.8.6";
src = fetchFromGitHub {
owner = "glanceapp";
repo = "glance";
tag = "v${finalAttrs.version}";
hash = "sha256-2WFX1Gca7ign9i1zOQ9lRdtOSGq9QG33vIA5QTnq9E8=";
hash = "sha256-qwDinEolS5YdWOmMjrDyEPM1yjXKg1ixeTgeFB6Bgsc=";
};
vendorHash = "sha256-a92V/duqvrWEb8QSJLA5rHYYZCcJ4fBC962SEr4FJDA=";
vendorHash = "sha256-LDrwxkWKNPWUiJOG3NAOquWstdYX88KiOe2LO42WliA=";
ldflags = [
"-s"

View File

@@ -15,6 +15,7 @@
pkg-config,
vala,
desktop-file-utils,
directoryListingUpdater,
wrapGAppsHook3,
}:
@@ -78,6 +79,8 @@ stdenv.mkDerivation (finalAttrs: {
--subst-var-by typelibDir "${placeholder "out"}/lib/girepository-1.0"
'';
passthru.updateScript = directoryListingUpdater { pname = "GPaste"; };
meta = {
homepage = "https://github.com/Keruspe/GPaste";
changelog = "https://github.com/Keruspe/GPaste/blob/v${finalAttrs.version}/NEWS";

File diff suppressed because it is too large Load Diff

View File

@@ -6,13 +6,13 @@
}:
buildNpmPackage rec {
pname = "i18next-cli";
version = "1.73.3";
version = "1.74.1";
src = fetchFromGitHub {
owner = "i18next";
repo = "i18next-cli";
tag = "v${version}";
hash = "sha256-AKfm/VVkag3H7aSOT8b/nJn+0p4GQhyQ6rjafs32EHU=";
hash = "sha256-Kqz4OUuqq6WzP1lZttJKYawSQ6pEpG2UjBjGu9oKa3I=";
};
# NOTE: Generating lock-file
@@ -21,7 +21,7 @@ buildNpmPackage rec {
cp ${./package-lock.json} package-lock.json
'';
npmDepsHash = "sha256-3TbtnDlV/K42JJ+RK/CyHlEPyhJkY4V4tWM9+Bx0Jvg=";
npmDepsHash = "sha256-m5VMXE7ceVqZmNdAbSnjYmbkX5Fp8teCcU6iv58BNhw=";
passthru.updateScript = nix-update-script {
extraArgs = [ "--generate-lockfile" ];

View File

@@ -2,36 +2,41 @@
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
cmake,
pkg-config,
fftwFloat,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libspecbleach";
version = "0.2.0";
version = "0.3.1";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "lucianodato";
repo = "libspecbleach";
rev = "v${finalAttrs.version}";
sha256 = "sha256-s8eHryJfLz63m08O7l3r2iXOAgFqiuVTEcD774C3iXE=";
tag = "v${finalAttrs.version}";
hash = "sha256-l8qVSE8ZBb/IWDcN7wJALtOtjnXk6/FqjTi0xI6TlSk=";
};
nativeBuildInputs = [
meson
ninja
cmake
pkg-config
];
buildInputs = [
fftwFloat
buildInputs = [ fftwFloat ];
cmakeFlags = [
(lib.cmakeBool "USE_SYSTEM_FFTW" true)
(lib.cmakeBool "ENABLE_EXAMPLES" false)
];
meta = {
description = "C library for audio noise reduction";
homepage = "https://github.com/lucianodato/libspecbleach";
license = lib.licenses.lgpl2;
changelog = "https://github.com/lucianodato/libspecbleach/releases/tag/v${finalAttrs.version}";
license = lib.licenses.lgpl2Plus;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.unix;
};

View File

@@ -84,6 +84,10 @@ stdenv.mkDerivation {
CXXFLAGS = FLAGS;
};
cmakeFlags = [
(lib.cmakeFeature "ETPAN_LIB" "${mailspring-libetpan}/lib/libetpan${stdenv.hostPlatform.extensions.sharedLibrary}")
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'IF(''${CMAKE_SYSTEM_NAME} MATCHES "Linux")' 'if(TRUE)'
@@ -91,18 +95,12 @@ stdenv.mkDerivation {
# Replace hardcoded host paths and vendored dependencies
substituteInPlace CMakeLists.txt \
--replace-fail "/usr/include/libxml2" "${lib.getDev libxml2}/include/libxml2" \
--replace-fail "find_library(RESOLV_LIB NAMES libresolv.a libresolv)" "set(RESOLV_LIB \"resolv\")" \
--replace-fail "target_link_libraries(mailsync libetpan.a)" "target_link_libraries(mailsync ${mailspring-libetpan}/lib/libetpan${stdenv.hostPlatform.extensions.sharedLibrary})" \
--replace-fail "target_link_libraries(mailsync libMailCore.a)" "target_link_libraries(mailsync ${mailspring-mailcore2}/lib/libMailCore.a)"
# Replace hardcoded references to archives with library references
# Transforms 'NAMES libfoo.a libfoo' into 'NAMES foo'
sed -i -E 's/NAMES lib([a-zA-Z0-9]+)\.a lib\1/NAMES \1/g' CMakeLists.txt
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# UUID_LIB is provided by system frameworks
substituteInPlace CMakeLists.txt \
--replace-fail "find_library(UUID_LIB NAMES uuid)" "set(UUID_LIB \"\")"
--replace-fail "find_library(UUID_LIB NAMES libuuid.a uuid REQUIRED)" "set(UUID_LIB \"\")"
# Remove GCC related linker flags
substituteInPlace CMakeLists.txt \

View File

@@ -4,6 +4,7 @@
buildNpmPackage,
callPackage,
fetchFromGitHub,
nix-update-script,
actool,
makeBinaryWrapper,
@@ -11,29 +12,28 @@
wrapGAppsHook3,
zip,
electron_43,
electron_44,
html-tidy,
# Command line arguments which are always set e.g "--password-store=kwallet6"
commandLineArgs ? "",
}:
let
version = "1.23.0";
version = "1.25.0";
src = fetchFromGitHub {
owner = "Foundry376";
repo = "Mailspring";
tag = version;
hash = "sha256-GbY3lov3MT8c8LehEifzOH28VAYpBWDbwXrqEfFfwJg=";
hash = "sha256-gY8ySpGKTNtQzgtZZTQJ3t6Bq8eWRjNoztUqxDLTI5c=";
fetchSubmodules = true;
};
patches = [
./remove-rpm-deb-and-macos-package-generation.patch
./update-electron-from-41.7.2-43.4.1.patch
];
electron = electron_43;
electron = electron_44;
mailspring-sync = callPackage ./mailsync.nix { inherit src version; };
@@ -41,7 +41,7 @@ let
pname = "mailspring-app";
inherit version src patches;
postPatch = "cd app"; # we don't use sourceRoot so that we don't have to make the patch relative to it
npmDepsHash = "sha256-FnbSnkMcOEoWTIy42JccdP+GqHWkoQKEZqVxzsw2cwc=";
npmDepsHash = "sha256-COYGpnxMK+ID7+5I5bkhD/6SvxJxHc3uCKAH74PiFKw=";
dontNpmBuild = true;
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
@@ -67,7 +67,7 @@ buildNpmPackage (finalAttrs: {
pname = "mailspring";
inherit version src patches;
npmDepsHash = "sha256-jDuCLreiQvOUhSWw+E2zJXy39/6ITB7FEmrXBUiWYDU=";
npmDepsHash = "sha256-a4ElX/MIuLcyypgiDDb9pyPjeVJdFMagKN/+ucTkQJs=";
nativeBuildInputs = [
makeBinaryWrapper
@@ -163,6 +163,13 @@ buildNpmPackage (finalAttrs: {
runHook postInstall
'';
passthru = {
inherit mailspring-app;
updateScript = nix-update-script {
extraArgs = [ "--subpackage=mailspring-app" ];
};
};
meta = {
description = "Beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
downloadPage = "https://github.com/Foundry376/Mailspring/releases";

View File

@@ -1,194 +0,0 @@
From fba74f7d69198202057f08b2cb77aac7d8e17a06 Mon Sep 17 00:00:00 2001
From: wrench-exile-legacy <user@wrench-exile-legacy.site>
Date: Sun, 23 Aug 2026 11:57:14 +0100
Subject: [PATCH] Update electron from 41.7.2 -> 43.4.1
- Updates node-abi to allow node-gyp to recognise the electron version.
- Updates better-sqlite3 to match the newer javascript engine in electron 43.
---
app/package-lock.json | 15 ++++++++-------
app/package.json | 2 +-
package-lock.json | 44 +++++++++++++++++++++----------------------
package.json | 2 +-
4 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/app/package-lock.json b/app/package-lock.json
index 52e9a74f4..951491cd4 100644
--- a/app/package-lock.json
+++ b/app/package-lock.json
@@ -568,9 +568,9 @@
]
},
"node_modules/better-sqlite3": {
- "version": "12.8.0",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.8.0.tgz",
- "integrity": "sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==",
+ "version": "12.11.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz",
+ "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@@ -578,7 +578,7 @@
"prebuild-install": "^7.1.1"
},
"engines": {
- "node": "20.x || 22.x || 23.x || 24.x || 25.x"
+ "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x"
}
},
"node_modules/bindings": {
@@ -3492,9 +3492,10 @@
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"node_modules/node-abi": {
- "version": "3.87.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.87.0.tgz",
- "integrity": "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==",
+ "version": "3.94.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz",
+ "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==",
+ "license": "MIT",
"dependencies": {
"semver": "^7.3.5"
},
diff --git a/app/package.json b/app/package.json
index c53086e15..56e40feb9 100644
--- a/app/package.json
+++ b/app/package.json
@@ -74,7 +74,7 @@
"xml2js": "^0.6.2"
},
"resolutions": {
- "electron": "41.7.2",
+ "electron": "43.4.1",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0"
},
diff --git a/package-lock.json b/package-lock.json
index 4622a1e15..004cf4f8f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -42,7 +42,7 @@
"better-sqlite3": "^12.8.0",
"chalk": "1.x.x",
"devtron": "^1.4.0",
- "electron": "41.7.2",
+ "electron": "43.4.1",
"electron-playwright-helpers": "^2.1.0",
"electron-winstaller": "5.4.0",
"eslint": "^8.0.0",
@@ -1615,9 +1615,9 @@
]
},
"node_modules/better-sqlite3": {
- "version": "12.9.0",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz",
- "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==",
+ "version": "12.11.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz",
+ "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@@ -1625,7 +1625,7 @@
"prebuild-install": "^7.1.1"
},
"engines": {
- "node": "20.x || 22.x || 23.x || 24.x || 25.x"
+ "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x"
}
},
"node_modules/bindings": {
@@ -2120,10 +2120,9 @@
}
},
"node_modules/electron": {
- "version": "41.7.2",
- "resolved": "https://registry.npmjs.org/electron/-/electron-41.7.2.tgz",
- "integrity": "sha512-oYbZNimoMlAy6Fp/o5x2vTggptuPsIbnPKCb6jGf1PJStXH7Gkw0MUQrBliHmDqKLW7yeE+SPsvFNILVN0ORMQ==",
- "hasInstallScript": true,
+ "version": "43.4.1",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz",
+ "integrity": "sha512-5b+EuiwkgG5iRcsEL34rimgRpkYp15SsfZOa0pC5kXs0Tb82TH4n95rpQzTZa7yRCbA7tm0WoEbuBL6NaAhAcA==",
"license": "MIT",
"dependencies": {
"@electron-internal/extract-zip": "^1.0.1",
@@ -2131,7 +2130,8 @@
"@types/node": "^24.9.0"
},
"bin": {
- "electron": "cli.js"
+ "electron": "cli.js",
+ "install-electron": "install.js"
},
"engines": {
"node": ">= 22.12.0"
@@ -4637,9 +4637,9 @@
}
},
"node_modules/node-abi": {
- "version": "3.91.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.91.0.tgz",
- "integrity": "sha512-B+S7X/GS3Un6wMICtnsNjQD7oSpVBQrZftHE6GZ1Fe9/k3XOOoqbM5DZZ0GO4x3YiSCQfrM28yj1ppplwgIsfg==",
+ "version": "3.94.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz",
+ "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==",
"license": "MIT",
"dependencies": {
"semver": "^7.3.5"
@@ -7636,9 +7636,9 @@
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"better-sqlite3": {
- "version": "12.9.0",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz",
- "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==",
+ "version": "12.11.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz",
+ "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==",
"requires": {
"bindings": "^1.5.0",
"prebuild-install": "^7.1.1"
@@ -7974,9 +7974,9 @@
}
},
"electron": {
- "version": "41.7.2",
- "resolved": "https://registry.npmjs.org/electron/-/electron-41.7.2.tgz",
- "integrity": "sha512-oYbZNimoMlAy6Fp/o5x2vTggptuPsIbnPKCb6jGf1PJStXH7Gkw0MUQrBliHmDqKLW7yeE+SPsvFNILVN0ORMQ==",
+ "version": "43.4.1",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz",
+ "integrity": "sha512-5b+EuiwkgG5iRcsEL34rimgRpkYp15SsfZOa0pC5kXs0Tb82TH4n95rpQzTZa7yRCbA7tm0WoEbuBL6NaAhAcA==",
"requires": {
"@electron-internal/extract-zip": "^1.0.1",
"@electron/get": "^5.0.0",
@@ -9653,9 +9653,9 @@
"integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="
},
"node-abi": {
- "version": "3.91.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.91.0.tgz",
- "integrity": "sha512-B+S7X/GS3Un6wMICtnsNjQD7oSpVBQrZftHE6GZ1Fe9/k3XOOoqbM5DZZ0GO4x3YiSCQfrM28yj1ppplwgIsfg==",
+ "version": "3.94.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz",
+ "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==",
"requires": {
"semver": "^7.3.5"
}
diff --git a/package.json b/package.json
index abf9b55dc..77cdd0414 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"better-sqlite3": "^12.8.0",
"chalk": "1.x.x",
"devtron": "^1.4.0",
- "electron": "41.7.2",
+ "electron": "43.4.1",
"electron-playwright-helpers": "^2.1.0",
"electron-winstaller": "5.4.0",
"eslint": "^8.0.0",
--
2.55.0

View File

@@ -6,7 +6,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "malwoverview";
version = "8.1.0";
version = "8.2.0";
pyproject = true;
__structuredAttrs = true;
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "alexandreborges";
repo = "malwoverview";
tag = "v${finalAttrs.version}";
hash = "sha256-Dd2phAb1xNNkWVQ8b52HnkOQ8BU5UxnuvcF/3dmec+w=";
hash = "sha256-IDl9rpyoj1dY02/oMowG+C4g7tYQy4n8dt97Gk+mzhw=";
};
build-system = with python3Packages; [

View File

@@ -16,14 +16,14 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "2.0.76";
version = "2.0.78";
pname = "munin";
src = fetchFromGitHub {
owner = "munin-monitoring";
repo = "munin";
rev = finalAttrs.version;
sha256 = "sha256-9PfIzUObm3Nu2k2TFjbQ3cqIDkPz07ZUczEcfm3bpDc=";
sha256 = "sha256-Ydp5A0mBkyNBIqVpRUt15e0TINXw9xChkPWzQ0AcfqA=";
};
nativeBuildInputs = [

View File

@@ -2,47 +2,80 @@
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
cmake,
pkg-config,
juce,
libspecbleach,
lv2,
fftwFloat,
freetype,
alsa-lib,
libGL,
libx11,
libxcursor,
libxext,
libxinerama,
libxrandr,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "noise-repellent";
version = "0.2.5";
version = "0.3.2";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "lucianodato";
repo = "noise-repellent";
tag = "v${finalAttrs.version}";
hash = "sha256-GzOUcC161syjazazf+ywssWL0iH17eNhmhTBcjsuaQ0=";
hash = "sha256-DDURrWUcFaJxOEg8+51caYnYPXZZJhSqTJd9HGvzZ3g=";
};
mesonFlags = [
"--prefix=${placeholder "out"}/lib/lv2"
"--buildtype=release"
];
nativeBuildInputs = [
meson
ninja
pkg-config
cmake
];
buildInputs = [
libspecbleach
lv2
pkg-config
juce # juceaide
];
buildInputs = [
juce
libspecbleach
fftwFloat
freetype
alsa-lib
libGL
libx11
libxcursor
libxext
libxinerama
libxrandr
];
cmakeFlags = [
(lib.cmakeBool "USE_SYSTEM_JUCE" true)
(lib.cmakeBool "USE_SYSTEM_FFTW" true)
(lib.cmakeBool "USE_SYSTEM_FREETYPE" true)
(lib.cmakeBool "USE_SYSTEM_SPECBLEACH" true)
];
# Upstream's install() rules use generator expressions inside
# install(DIRECTORY ...), which CMake does not expand, so the install phase
# looks for a literal "$<GENEX_EVAL:...>" directory and fails.
installPhase = ''
runHook preInstall
mkdir -p $out/lib/lv2 $out/lib/vst3
cp -r "NoiseRepellent_artefacts/Release/LV2/Noise Repellent.lv2" $out/lib/lv2/
cp -r "NoiseRepellent_artefacts/Release/VST3/Noise Repellent.vst3" $out/lib/vst3/
runHook postInstall
'';
meta = {
description = "LV2 plugin for broadband noise reduction";
description = "Audio plugin for broadband noise reduction (LV2, VST3)";
homepage = "https://github.com/lucianodato/noise-repellent";
changelog = "https://github.com/lucianodato/noise-repellent/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3;
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.unix;
platforms = lib.platforms.linux;
};
})

View File

@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "panache";
version = "3.10.0";
version = "3.12.0";
src = fetchFromGitHub {
owner = "jolars";
repo = "panache";
tag = "v${finalAttrs.version}";
hash = "sha256-13v2J7qRgkX55vjFt0daU26J/IhmECCr1H0fVEW72rk=";
hash = "sha256-tm9YUTjSoHHHkQLbk7JZZL6jQ/KPFJzmWuC16UuhnUM=";
};
cargoHash = "sha256-D8SfoPjfIHnrvjYG6lJbqAHL1jkAI5st2105OP9md6s=";
cargoHash = "sha256-IZtOYt8IizHIYac7iGTyZoVK3vvAyC7WwSFoEYMyNBo=";
nativeBuildInputs = [
installShellFiles

View File

@@ -8,7 +8,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "prowler";
version = "5.42.0";
version = "5.43.0";
pyproject = true;
__structuredAttrs = true;
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "prowler-cloud";
repo = "prowler";
tag = finalAttrs.version;
hash = "sha256-vt6OtR7qqmulrVaB2YQnwA7Xzbm1QCEDx4YGEpUKeq8=";
hash = "sha256-eh3LitCEVqd60rZ+C9yh+3vnTNYlEziQzj7on/rTkIU=";
};
postPatch = ''
@@ -95,6 +95,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
huaweicloudsdkkms
huaweicloudsdkobs
huaweicloudsdkrds
huaweicloudsdksmn
huaweicloudsdkvpc
huaweicloudsdkwaf
jsonschema

View File

@@ -1,109 +0,0 @@
{
stdenv,
lib,
fetchurl,
autoPatchelfHook,
makeShellWrapper,
wrapGAppsHook3,
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
dbus,
expat,
glib,
glibc,
gtk3,
libsecret,
libgbm,
musl,
nss,
pango,
udev,
xdg-utils,
libx11,
libxcb,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "publii";
version = "0.47.9";
src = fetchurl {
url = "https://getpublii.com/download/Publii-${finalAttrs.version}.deb";
hash = "sha256-bYlmnA8F3vGY1wGwUn/Ziv9v8KgmQ3WwUbvy4f1NaFI=";
};
dontConfigure = true;
dontBuild = true;
dontWrapGApps = true;
nativeBuildInputs = [
autoPatchelfHook
makeShellWrapper
wrapGAppsHook3
];
buildInputs = [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
dbus
expat
glib
glibc
gtk3
libsecret
libgbm
musl
nss
pango
libx11
libxcb
];
unpackPhase = ''
ar p $src data.tar.xz | tar xJ
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mv usr/share $out
substituteInPlace $out/share/applications/Publii.desktop \
--replace-fail 'Exec=/opt/Publii/Publii' 'Exec=Publii'
mv opt $out
runHook postInstall
'';
preFixup = ''
makeWrapper $out/opt/Publii/Publii $out/bin/Publii \
"''${gappsWrapperArgs[@]}" \
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
'';
meta = {
description = "Static Site CMS with GUI to build privacy-focused SEO-friendly website";
mainProgram = "Publii";
longDescription = ''
Creating a website doesn't have to be complicated or expensive. With Publii, the most
intuitive static site CMS, you can create a beautiful, safe, and privacy-friendly website
quickly and easily; perfect for anyone who wants a fast, secure website in a flash.
'';
homepage = "https://getpublii.com";
license = lib.licenses.gpl3Only;
maintainers = [
];
platforms = [ "x86_64-linux" ];
};
})

View File

@@ -23,14 +23,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qdelay";
version = "1.2.0";
version = "1.2.3";
src = fetchFromGitHub {
owner = "tiagolr";
repo = "qdelay";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-Du3zwYluSoepU+8d3ijTXjizWhUoiv8GTN7sNR9rMJI=";
hash = "sha256-Cb77auxJVlN+R7K4SbPm8wak5gACEtmq4WodbfDfZdE=";
};
nativeBuildInputs = [

View File

@@ -1,6 +1,6 @@
{
lib,
python3,
python3Packages,
fetchPypi,
pkgsCross,
avrdude,
@@ -13,7 +13,7 @@
teensy-loader-cli,
}:
python3.pkgs.buildPythonApplication (finalAttrs: {
python3Packages.buildPythonApplication (finalAttrs: {
pname = "qmk";
version = "1.2.0";
pyproject = true;
@@ -23,38 +23,40 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
hash = "sha256-FkvRbExAGyt2XuTwF7z6gUGULd82KWHEy6GXXYyyikg=";
};
nativeBuildInputs = with python3.pkgs; [
__structuredAttrs = true;
strictDeps = true;
build-system = with python3Packages; [
setuptools
];
propagatedBuildInputs =
with python3.pkgs;
[
dotty-dict
hid
hjson
jsonschema
milc
pygments
pyserial
pyusb
pillow
]
++ [
# Binaries need to be in the path so this is in propagatedBuildInputs
avrdude
bootloadhid
dfu-programmer
dfu-util
wb32-dfu-updater
teensy-loader-cli
gcc-arm-embedded
gnumake
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.binutils.bintools
pkgsCross.avr.buildPackages.gcc
pkgsCross.avr.libc
];
dependencies = with python3Packages; [
dotty-dict
hid
hjson
jsonschema
milc
pygments
pyserial
pyusb
pillow
];
propagatedBuildInputs = [
# Binaries need to be in the path so this is in propagatedBuildInputs
avrdude
bootloadhid
dfu-programmer
dfu-util
wb32-dfu-updater
teensy-loader-cli
gcc-arm-embedded
gnumake
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.binutils.bintools
pkgsCross.avr.buildPackages.gcc
pkgsCross.avr.libc
];
# no tests implemented
doCheck = false;
@@ -76,8 +78,8 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
- qmk lint
- ... and many more!
'';
license = lib.licenses.mit;
maintainers = [ ];
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.RossSmyth ];
mainProgram = "qmk";
};
})

View File

@@ -10,13 +10,13 @@
buildGoModule (finalAttrs: {
pname = "qovery-cli";
version = "1.170.0";
version = "1.171.3";
src = fetchFromGitHub {
owner = "Qovery";
repo = "qovery-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-dNKAHPkEtAwzfzj0hX6cZIWzGCBxRZpsAuQlGpxoca8=";
hash = "sha256-XGBhtyAxm9cVceYAY7YLkNbwC7sMdD8TyzKJrAc6ThU=";
};
vendorHash = "sha256-XfvbfEVeHMTtNmxqfuOxl4PhH756rIRPnbNPRpyaSuU=";

View File

@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "qtengine";
version = "0.2.1";
version = "0.2.2";
src = fetchFromGitHub {
owner = "kossLAN";
repo = "qtengine";
tag = finalAttrs.version;
hash = "sha256-aJ5ZdIX10nmhzMLjP6QMuFJHvljJD+xcojuKZjPkr70=";
hash = "sha256-9nhKFJ9AUxIS7wZ3be7Vxy36Q+4lgihB/RLooJ41niE=";
};
nativeBuildInputs = [

View File

@@ -12,16 +12,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "release-plz";
version = "0.3.165";
version = "0.3.169";
src = fetchFromGitHub {
owner = "release-plz";
repo = "release-plz";
rev = "release-plz-v${finalAttrs.version}";
hash = "sha256-bGcODNHg7wL6ya6/EvcndiqfGYBW1vrK263MKvvxamU=";
hash = "sha256-QdYyZ+nYsRSVXXVKirXfsiLkUjlFgDxWbK8p5SBDp8A=";
};
cargoHash = "sha256-LMYadKgnHRZeqm6ULakURO4hEu/+zS3+gm+lOlt5nOU=";
cargoHash = "sha256-PltsUwipTeS+uE+GaUUOyEWMrWPT5UN/0TRkzRqXvsQ=";
nativeBuildInputs = [
installShellFiles

View File

@@ -169,6 +169,27 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
inherit custom_swig;
updateScript = nix-update-script { };
vulkanLayers = [
"renderdoc_capture.json"
];
tests = {
vulkanLayersExist = stdenv.mkDerivation {
name = "renderdoc-vulkan-layers-exist";
dontUnpack = true;
buildCommand = ''
touch $out # Dummy file to satisfy the build system
for f in ${lib.concatStringsSep " " finalAttrs.passthru.vulkanLayers}; do
if [ ! -e "${finalAttrs.finalPackage}/share/vulkan/implicit_layer.d/$f" ]; then
echo "error: passthru.vulkanLayers lists '$f' but it wasn't found in" \
"${finalAttrs.finalPackage}/share/vulkan/implicit_layer.d" >&2
exit 1
fi
done
'';
};
};
};
meta = {

View File

@@ -12,11 +12,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "riotx";
version = "1.15.0";
version = "1.15.1";
src = fetchzip {
url = "https://github.com/redis/riotx-dist/releases/download/v${finalAttrs.version}/riotx-${finalAttrs.version}.zip";
hash = "sha256-CozuLIkWrRX/b8a+LvEF3r/CwO8JnmLzTsxy5USIU9U=";
hash = "sha256-IotoZsbwttfrb2I4bqPf/MPzZOThNazovz9U7qJ2i7s=";
};
nativeBuildInputs = [

View File

@@ -29,13 +29,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "uwsm";
version = "0.26.7";
version = "0.27.0";
src = fetchFromGitHub {
owner = "Vladimir-csp";
repo = "uwsm";
tag = "v${finalAttrs.version}";
hash = "sha256-ibJx0vbZ11TPwQszGoRQo8124vIJTrFLnQC3GPj4E+o=";
hash = "sha256-al+SPMaYn9qpc7zTASKjrP/WJL2UEzgvGkMTAnLx99o=";
};
nativeBuildInputs = [

View File

@@ -22,13 +22,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "vencord";
version = "1.15.6";
version = "1.15.7";
src = fetchFromGitHub {
owner = "Vendicated";
repo = "Vencord";
tag = "v${finalAttrs.version}";
hash = "sha256-bsTw8F6bBJFZWzOYV84VMtrMMj0fHId9BKCxrFUQYxM=";
hash = "sha256-Ioj8Ng5dpO54R298LUZ1EB91PTESIWKlWPn3B/cKNrg=";
};
patches = [ ./fix-deps.patch ];

View File

@@ -10,7 +10,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "visual-paradigm-ce";
version = "18.1.20260903";
version = "18.1.20260913";
src =
let
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://eu10-dl.visual-paradigm.com/visual-paradigm/vpce${majorMinor}/${suffix}/Visual_Paradigm_CE_${
builtins.replaceStrings [ "." ] [ "_" ] majorMinor
}_${suffix}_Linux64_InstallFree.tar.gz";
hash = "sha256-QQkeffm88O5axfc1q8ZitXrfupfXiba4xHMS31yxZVc=";
hash = "sha256-/1gPFfzO0ee1sXgxAjDY3CKpsY6XJtOp96L2KEZHHYo=";
};
passthru.updateScript = writeScript "update-visual-paradigm-ce" ''

View File

@@ -17,9 +17,9 @@
let
sources = {
lts-36 = {
version = "36.0.15";
hash = "sha256-I+CGuTxtIOMz/VBkiQ9En5/YniskQKLHeGrmnTYa9m0=";
cargoHash = "sha256-68EM8hDN5dFxcBnEkqDt0sX86BYYiUZXfRaXut4WYpI=";
version = "36.0.16";
hash = "sha256-M1887OSDP31s1MVrlcchnzlkfzteXIn5f+BWxa1RG68=";
cargoHash = "sha256-T7ci14LlPWYJ41moizwzsR4bH5AU1GdqRJRL8Iks3q8=";
};
main = {
version = "48.0.1";

View File

@@ -1,149 +0,0 @@
{
lib,
stdenv,
fetchurl,
dpkg,
autoPatchelfHook,
atk,
at-spi2-atk,
cups,
libdrm,
gtk3,
pango,
cairo,
libx11,
libxcomposite,
libxdamage,
libxext,
libxfixes,
libxrandr,
libgbm,
expat,
libxcb,
alsa-lib,
nss,
nspr,
vips,
udev,
libGL,
unzip,
}:
let
selectSystem = attrs: attrs.${stdenv.hostPlatform.system};
pname = "waveterm";
version = "0.14.5";
passthru.updateScript = ./update.sh;
metaCommon = {
description = "Open-source, cross-platform terminal for seamless workflows";
homepage = "https://www.waveterm.dev";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.asl20;
platforms = [
"aarch64-linux"
"aarch64-darwin"
"x86_64-linux"
];
maintainers = [ ];
};
linux = stdenv.mkDerivation {
inherit pname version passthru;
src =
let
arch = selectSystem {
x86_64-linux = "amd64";
aarch64-linux = "arm64";
};
in
fetchurl {
url = "https://github.com/wavetermdev/waveterm/releases/download/v${version}/waveterm-linux-${arch}-${version}.deb";
hash = selectSystem {
x86_64-linux = "sha256-aRrOVi5mog2XJ7i+6vmP5kpEXfZVI7sf0R7TD1b9E3s=";
aarch64-linux = "sha256-139jgwHkiQ3X/WTObXUyJwciiXg64PhAY/LRUeGGqlU=";
};
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [
atk
at-spi2-atk
cups
libdrm
gtk3
pango
cairo
libx11
libxcomposite
libxdamage
libxext
libxfixes
libxrandr
libgbm
expat
libxcb
alsa-lib
nss
nspr
vips
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/app
cp -r opt/Wave $out/app/waveterm
cp -r usr/share $out/share
substituteInPlace $out/share/applications/waveterm.desktop \
--replace-fail "/opt/Wave/" ""
ln -s $out/app/waveterm/waveterm $out/bin/waveterm
runHook postInstall
'';
preFixup = ''
patchelf --add-needed libGL.so.1 \
--add-rpath ${
lib.makeLibraryPath [
libGL
udev
]
} $out/app/waveterm/waveterm
'';
meta = metaCommon // {
mainProgram = "waveterm";
};
};
darwin = stdenv.mkDerivation {
inherit pname version passthru;
src = fetchurl {
url = "https://github.com/wavetermdev/waveterm/releases/download/v${version}/Wave-darwin-arm64-${version}.zip";
hash = "sha256-84KU8LKKuEypdQhJCfxbII+w1qVhYBYmsQh9JGuxzA8=";
};
nativeBuildInputs = [ unzip ];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -r . "$out/Applications/Wave.app"
runHook postInstall
'';
meta = metaCommon // {
mainProgram = "Wave";
};
};
in
if stdenv.hostPlatform.isDarwin then darwin else linux

View File

@@ -1,33 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash nixVersions.latest curl coreutils jq common-updater-scripts
set -eou pipefail
latestTag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/wavetermdev/waveterm/releases/latest | jq -r ".tag_name")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; waveterm.version" | tr -d '"')
echo "latest version: $latestVersion"
echo "current version: $currentVersion"
if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "package is up-to-date"
exit 0
fi
for i in \
"x86_64-linux amd64" \
"aarch64-linux arm64"; do
set -- $i
prefetch=$(nix-prefetch-url "https://github.com/wavetermdev/waveterm/releases/download/v$latestVersion/waveterm-linux-$2-$latestVersion.deb")
hash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri $prefetch)
update-source-version waveterm $latestVersion $hash --system=$1 --ignore-same-version
done
for i in \
"aarch64-darwin arm64"; do
set -- $i
prefetch=$(nix-prefetch-url "https://github.com/wavetermdev/waveterm/releases/download/v$latestVersion/Wave-darwin-$2-$latestVersion.zip")
hash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri $prefetch)
update-source-version waveterm $latestVersion $hash --system=$1 --ignore-same-version
done

View File

@@ -8,7 +8,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "worker-build";
version = "0.8.6";
version = "0.8.7";
buildInputs = [ openssl ];
nativeBuildInputs = [ pkg-config ];
@@ -16,11 +16,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "cloudflare";
repo = "workers-rs";
tag = "v${finalAttrs.version}";
hash = "sha256-WnAwr7wQcgRIKNnZ5xdqk+/kK/bETZBl/P1YNIqQp8s=";
hash = "sha256-ZZFyZeu/PGwUatOWG/SPI7y+XyiuUyHO7L5y0qtJl70=";
fetchSubmodules = true;
};
cargoHash = "sha256-zvwk053ly1hFtldbawrXuqaLDAo807is8dlHLo5QTl8=";
cargoHash = "sha256-AHTBKz8jwUaQpC03oH15NxtBQYO5PrvUVLwkz4+L5K8=";
buildAndTestSubdir = "worker-build";

View File

@@ -25,11 +25,11 @@ let
in
appimageTools.wrapType2 rec {
pname = "xnviewmp";
version = "1.11.6";
version = "1.11.7";
src = fetchurl {
url = "https://download.xnview.com/old_versions/XnView_MP/XnView_MP-${version}.glibc2.34-x86_64.AppImage";
hash = "sha256-f3OPtekK9s3zHNHyYtvCHuR+CdzWyEoKPiAbMqrj7og=";
hash = "sha256-evKMV4K0tBW8mrE3TFBpkj5lao6y/i9cWF2uPV4zeBw=";
};
nativeBuildInputs = [

View File

@@ -26,13 +26,13 @@
stdenv.mkDerivation rec {
pname = "elementary-code";
version = "8.3.2";
version = "8.4.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "code";
tag = version;
hash = "sha256-qN21zTE++yQi8kQ7gY+FIpkSdHUlsP/aldinZADjh8Y=";
hash = "sha256-2ZxYzSBncQMEpYdM75bicMBG5XLtVNLmUu811T4OZS4=";
};
strictDeps = true;

View File

@@ -358,13 +358,13 @@
buildPythonPackage (finalAttrs: {
pname = "boto3-stubs";
version = "1.43.102";
version = "1.43.103";
pyproject = true;
src = fetchPypi {
pname = "boto3_stubs";
inherit (finalAttrs) version;
hash = "sha256-oIUt9j6/Cv8zrU9+SSjyXWFwO/EGW0am23/m96KE2Dw=";
hash = "sha256-dvmbE8or8t09z8a0b78FGp2g7D+gzOrfwygjN1DioeA=";
};
build-system = [ setuptools ];

View File

@@ -11,7 +11,7 @@
}:
let
pname = "dataconf";
version = "3.6.0";
version = "3.7.0";
in
buildPythonPackage {
inherit pname version;
@@ -30,7 +30,7 @@ buildPythonPackage {
src = fetchPypi {
inherit pname version;
hash = "sha256-hcZi8n290GZkgIM074Z1Ne2gOS5WDmX8fPR+BJGZyzU=";
hash = "sha256-YUt1iLQ7zSnYGbJMWCvl2MZ82k2XR8gccwrnynnuDqo=";
};
pythonImportsCheck = [ "dataconf" ];

View File

@@ -134,6 +134,6 @@ buildPythonPackage (finalAttrs: {
changelog = "https://github.com/koxudaxi/datamodel-code-generator/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ tochiaha ];
mainProgram = "datamodel-code-generator";
mainProgram = "datamodel-codegen";
};
})

View File

@@ -8,14 +8,14 @@
buildPythonPackage (finalAttrs: {
pname = "iamdata";
version = "0.1.202609231";
version = "0.1.202609261";
pyproject = true;
src = fetchFromGitHub {
owner = "cloud-copilot";
repo = "iam-data-python";
tag = "v${finalAttrs.version}";
hash = "sha256-v1KhdlwuHmtd6P2HbRNph3CJ0uU1/wXOmiJB1yM91D8=";
hash = "sha256-JRCoF2h1gas4i/7BoN+No6wz+SzbProPo38id9Q+3ok=";
};
__darwinAllowLocalNetworking = true;

View File

@@ -14,14 +14,14 @@
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-abstractions";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-abstractions-v${finalAttrs.version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${finalAttrs.src.name}/packages/abstractions/";

View File

@@ -16,14 +16,14 @@
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-authentication-azure";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-authentication-azure-v${finalAttrs.version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${finalAttrs.src.name}/packages/authentication/azure/";

View File

@@ -16,14 +16,14 @@
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-http";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-http-v${finalAttrs.version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${finalAttrs.src.name}/packages/http/httpx/";

View File

@@ -13,14 +13,14 @@
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-serialization-form";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-serialization-form-v${finalAttrs.version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${finalAttrs.src.name}/packages/serialization/form/";

View File

@@ -13,14 +13,14 @@
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-serialization-json";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-serialization-json-v${finalAttrs.version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${finalAttrs.src.name}/packages/serialization/json/";

View File

@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "microsoft-kiota-serialization-multipart";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-serialization-multipart-v${version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${src.name}/packages/serialization/multipart/";

View File

@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "microsoft-kiota-serialization-text";
version = "1.14.0";
version = "1.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-serialization-text-v${version}";
hash = "sha256-vA1kD+ye+IOYwDKRYAr/Y+M9sLOdXbzTx6lijaqpq4M=";
hash = "sha256-O2hwGo7f0soOcPfuwm/Iv9iQ9lLxY1drAKhL5Rl8ciA=";
};
sourceRoot = "${src.name}/packages/serialization/text/";

View File

@@ -335,8 +335,8 @@ in
"sha256-3JYcWKFk0dKJg/qn+EBvxeAO5xh5PXCU3dTEWDr1oXI=";
mypy-boto3-connect =
buildMypyBoto3Package "connect" "1.43.98"
"sha256-gI283S5VggOoIySj1+v55abhLygdnHFBxW4aJ37Vgus=";
buildMypyBoto3Package "connect" "1.43.103"
"sha256-YTuqPk2igTabqCfBYBY9HEVXDwTk4V2I/rZftoacGEA=";
mypy-boto3-connect-contact-lens =
buildMypyBoto3Package "connect-contact-lens" "1.43.79"
@@ -571,8 +571,8 @@ in
"sha256-vMz4YKm78XMavlPUNiSVAYmAbyUBrJhUXbFrhxIvUJA=";
mypy-boto3-glue =
buildMypyBoto3Package "glue" "1.43.100"
"sha256-98njw7iU/fXWsEw9fen3skt8jbn9GNrbqTyqSNMDgPE=";
buildMypyBoto3Package "glue" "1.43.103"
"sha256-W7dNtzxPbQ0MGXAnnO0U92YNokwfveIAYm27ftgpH/Y=";
mypy-boto3-grafana =
buildMypyBoto3Package "grafana" "1.43.11"
"sha256-XJOSLyL1+uEweZ9zER7IhH3DFLaLtpJKvuRIn8Ri+P4=";
@@ -854,8 +854,8 @@ in
"sha256-Ob9sh8Ng8I3sWiy/qwu+lfSvf+W2KQiprWX6QCNiSLM=";
mypy-boto3-mediaconnect =
buildMypyBoto3Package "mediaconnect" "1.43.70"
"sha256-NKaLJpv0Fx1Af3AWW2nWtAyCmoSBDMZ+JwZ2XeYHzJY=";
buildMypyBoto3Package "mediaconnect" "1.43.103"
"sha256-ZdVmi9n6uAKhbwDfsuvzgbg4iBK72/fnWNl14qMA/oE=";
mypy-boto3-mediaconvert =
buildMypyBoto3Package "mediaconvert" "1.43.101"
@@ -1102,8 +1102,8 @@ in
"sha256-qPiRg1TifdbOHPT1gOUJhvfMm/4/LMwiLAU/3FWrE/0=";
mypy-boto3-rekognition =
buildMypyBoto3Package "rekognition" "1.43.0"
"sha256-yrq9Pk5zgOWfsYakcPdA0xqK+QVI8mRV2j3iy4fqBX0=";
buildMypyBoto3Package "rekognition" "1.43.103"
"sha256-PWX/QMTPoUfANbQYx8QeQSnpeQ/pGyJx9WV8fYehACA=";
mypy-boto3-resiliencehub =
buildMypyBoto3Package "resiliencehub" "1.43.0"
@@ -1398,8 +1398,8 @@ in
"sha256-KXzvLywcMSxSswUbgqdJJBMBuQ3O4EAk3nuX+n94ONE=";
mypy-boto3-wellarchitected =
buildMypyBoto3Package "wellarchitected" "1.43.70"
"sha256-1keASWD6rDl/MuQDcaxfPZlN8U5/a2K7sFGdWLwrrEE=";
buildMypyBoto3Package "wellarchitected" "1.43.103"
"sha256-URAjUItODqk4OPbhqlu1xnS8C6LF/PzQw8xdtHjHSg8=";
mypy-boto3-wisdom =
buildMypyBoto3Package "wisdom" "1.43.0"

View File

@@ -22,9 +22,9 @@
buildPythonPackage.override { stdenv = cudaPackages.backendStdenv; } (finalAttrs: {
pname = "nccl4py";
# `nccl4py` is versioned independently of `nccl` and should be the same as the contents of
# `${cudaPackages.nccl.src}/bindings/nccl4py/nccl/core/_version.py`
version = "0.5.0";
# `nccl4py` is versioned independently of `nccl` and should be the same as the `nccl4py-v*` tag
# the sources are fetched from.
version = "0.6.0";
pyproject = true;
__structuredAttrs = true;
@@ -32,11 +32,19 @@ buildPythonPackage.override { stdenv = cudaPackages.backendStdenv; } (finalAttrs
owner = "NVIDIA";
repo = "nccl";
tag = "nccl4py-v${finalAttrs.version}";
hash = "sha256-f9hOqRJSC/tuRUAN6qKRaItHR62dG7mu1rtw9nJQhic=";
hash = "sha256-CzKSEhz/etQsEQ0m1IDJQC4Sp7vQjbk+Z/tJpcRqNZI=";
};
sourceRoot = "${finalAttrs.src.name}/bindings/nccl4py";
postPatch = ''
# Upstream infers the version from the git metadata of the `nccl` repository, which is not
# available when building from the source tarball.
substituteInPlace pyproject.toml \
--replace-fail \
'dynamic = ["version"]' \
'version = "${finalAttrs.version}"' \
--replace-fail '"setuptools-scm>=10.2,<11",' ""
substituteInPlace nccl/bindings/_internal/nccl_linux.pyx \
--replace-fail \
'from cuda.pathfinder import load_nvidia_dynamic_lib' \

View File

@@ -11,12 +11,12 @@
buildPythonPackage (finalAttrs: {
pname = "publicsuffixlist";
version = "1.0.2.20260919";
version = "1.0.2.20260925";
pyproject = true;
src = fetchPypi {
inherit (finalAttrs) pname version;
hash = "sha256-2Tg+UQ40ZP3kR4udD5eiSRG2wr05eqFJyEqIU06Y4+s=";
hash = "sha256-K6zWHIs2H/P6oR+YSjVU8qMEcyeQlGfLnL06Ep2AZfg=";
};
postPatch = ''

View File

@@ -15,14 +15,14 @@
buildPythonPackage (finalAttrs: {
pname = "pydaikin";
version = "2.19.1";
version = "2.20.0";
pyproject = true;
src = fetchFromGitHub {
owner = "fredrike";
repo = "pydaikin";
tag = "v${finalAttrs.version}";
hash = "sha256-NgU+H5oliNJedQnrqiLIgOHsMKrnk1obAs1p5s/Skkg=";
hash = "sha256-hkKtfDU2FPj1KeOd/N9hyEESfsYGdXj7YZC9CYuOQ0g=";
};
__darwinAllowLocalNetworking = true;

View File

@@ -9,12 +9,12 @@
buildPythonPackage (finalAttrs: {
pname = "pyexploitdb";
version = "0.3.44";
version = "0.3.45";
pyproject = true;
src = fetchPypi {
inherit (finalAttrs) pname version;
hash = "sha256-l0cyC07uuf5WdmCSUMXPI0WuZhTgUTdfzQnV10YKR8E=";
hash = "sha256-Gl5wpbq2iI5LU/SPp4VaTvBNLv6YX6ej8RGGfA05La4=";
};
build-system = [ setuptools ];

View File

@@ -19,12 +19,12 @@
buildPythonPackage rec {
pname = "qcelemental";
version = "0.51.1";
version = "0.51.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-2S7sa14rKd8b+yDy2eIpk1TUElA6XepeTPuzWW6S4TU=";
hash = "sha256-hVjzBN8IzkAJWOaubWMuQ+9hzMpGPJ6N9PJltKYZXnk=";
};
build-system = [

View File

@@ -8,14 +8,14 @@
buildPythonPackage (finalAttrs: {
pname = "ttp-templates";
version = "0.6.4";
version = "0.6.10";
pyproject = true;
src = fetchFromGitHub {
owner = "dmulyalin";
repo = "ttp_templates";
tag = finalAttrs.version;
hash = "sha256-MKa1kfo+fw5VTrXaZu5NWD9t3DoJqliMsw1qureO70A=";
hash = "sha256-j//8gAzBXyQkSmmnJZofi2Q/lYklT/QjiU8k0a3ENDg=";
};
build-system = [ poetry-core ];

View File

@@ -13,7 +13,7 @@
buildPythonPackage (finalAttrs: {
pname = "ua-generator";
version = "2.1.5";
version = "2.1.6";
pyproject = true;
__structuredAttrs = true;
@@ -22,7 +22,7 @@ buildPythonPackage (finalAttrs: {
owner = "iamdual";
repo = "ua-generator";
tag = finalAttrs.version;
hash = "sha256-EEEpB8qyXsYBsvsQ9Q1CRtQRlTYtbgIUTPlX5tes16Q=";
hash = "sha256-hH+6CIYdt/dI99JgjRPF/jiyFuGwt6F/6gSeD0IXqaU=";
};
build-system = [ setuptools ];

View File

@@ -15,14 +15,14 @@ let
variants = {
# ./update-xanmod.sh lts
lts = {
version = "6.18.53";
hash = "sha256-+2DnSpnBekGDBeXMjwGNrBFexnYmqQCc93LjDaseD/8=";
version = "6.18.54";
hash = "sha256-yD6dpnyQsAxwePJMIcZAi5cECFvH7xKoimcpAVYzGtI=";
isLTS = true;
};
# ./update-xanmod.sh main
main = {
version = "7.2.7";
hash = "sha256-QeEJiBJfQloehzZppWX8zvL43UGSMa4xUicA1VXN6f0=";
version = "7.2.8";
hash = "sha256-jHCIFm1xI3T/2Zl0h91Nf6oAr4ozIPQSYRFo92KmOfc=";
};
};

View File

@@ -23,11 +23,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "openvpn";
version = "2.6.21";
version = "2.6.23";
src = fetchurl {
url = "https://swupdate.openvpn.net/community/releases/openvpn-${finalAttrs.version}.tar.gz";
hash = "sha256-JMthheVEpHMj1nmLA9OfI2fZbyJ77pzRVD6O1Sgxmxc=";
hash = "sha256-QEHHCRYr7BMlq/WqjPJ6JVzEd8Y0sV7jEEEccB/ECpY=";
};
nativeBuildInputs = [

View File

@@ -2159,6 +2159,7 @@ mapAliases {
proxysql = throw "'proxysql' has been removed because it was unmaintained within nixpkgs"; # Added 2026-09-08
pscid = throw "'pscid' has been removed because it was unmaintained upstream"; # Added 2025-12-12
psi = throw "'psi' has been removed as it depended on EOL qt5 webengine. Consider moving to psi-plus, a somewhat more maintained fork."; # Added 2026-04-15
publii = throw "'publii' has been removed due to lack of maintence in nixpkgs and using an EOL Electron"; # Added 2026-09-17
pulp = throw "'pulp' has been removed because it was unmaintained upstream"; # Added 2025-12-12
puppet = warnAlias "'puppet' has been replaced by 'openvox'" openvox; # Added 2026-07-07
purescript-psa = throw "'purescript-psa' has been removed because it was unmaintained within nixpkgs"; # Added 2025-12-12
@@ -2711,6 +2712,7 @@ mapAliases {
wasm-strip = throw "'wasm-strip' has been removed due to upstream deprecation. Use 'wabt' instead."; # Added 2025-11-06
wasynth = throw "'wasynth' has been removed as it was discontinued upstream."; # Added 2026-09-04
wavebox = throw "'wavebox' has been removed due to lack of maintenance in nixpkgs"; # Added 2025-06-24
waveterm = throw "'waveterm' has been removed due to EOL Electron and lack of maintainers in nixpkgs"; # Added 2026-09-17
wavm = throw "wavm has been removed, as it does not build with supported LLVM versions"; # Added 2025-08-10
wayv = throw "'wayv' has been removed as it is broken and unmaintained upstream"; # Added 2026-05-05
wayvr-dashboard = throw "'wayvr-dashboard' and 'wlx-overlay-s' have been merged into a single application. Please switch to 'wayvr'"; # Added 2026-01-09