Merge staging-next into staging

Changed files
+698 -487
ci
github-script
maintainers
nixos
pkgs
applications
editors
vscode
extensions
release-candidate.vscode-scheme-repl
tsyesika.guile-scheme-enhanced
ufo5260987423.magic-scheme
visualjj.visualjj
misc
syncthingtray
networking
browsers
virtualization
virtualbox
guest-additions
guest-additions-iso
window-managers
hyprwm
hyprland-plugins
by-name
bi
bikeshed
ca
co
cosign
dn
hy
hyprprop
in
intel-gmmlib
li
librime
libtracefs
lightning-terminal
mo
mongosh
monkeysAudio
ns
nsncd
ph
phpactor
pr
pragtical
development
compilers
haskell-modules
interpreters
python
hooks
libraries
libfive
science
python-modules
sat-tmp
tsplib95
web
games
sgt-puzzles
servers
nosql
apache-jena
web-apps
outline
top-level
+10 -4
ci/github-script/labels.js
···
})
).data.workflow_runs[0]
-
// Go back as far as the last successful run of this workflow to make sure
-
// we are not leaving anyone behind on GHA failures.
-
// Defaults to go back 1 hour on the first run.
const cutoff = new Date(
-
lastRun?.created_at ?? new Date().getTime() - 1 * 60 * 60 * 1000,
+
Math.max(
+
// Go back as far as the last successful run of this workflow to make sure
+
// we are not leaving anyone behind on GHA failures.
+
// Defaults to go back 1 hour on the first run.
+
new Date(lastRun?.created_at ?? new Date().getTime() - 1 * 60 * 60 * 1000).getTime(),
+
// Go back max. 1 day to prevent hitting all API rate limits immediately,
+
// when GH API returns a wrong workflow by accident.
+
new Date().getTime() - 24 * 60 * 60 * 1000,
+
),
)
core.info('cutoff timestamp: ' + cutoff.toISOString())
···
'is:open',
`updated:>=${cutoff.toISOString()}`,
].join(' AND '),
+
per_page: 100,
// TODO: Remove in 2025-10, when it becomes the default.
advanced_search: true,
},
+5
maintainers/maintainer-list.nix
···
githubId = 57819359;
name = "Binh Nguyen";
+
tuynia = {
+
github = "mivorasu";
+
githubId = 221005165;
+
name = "Qylia Vorlaque";
+
};
tv = {
email = "tv@krebsco.de";
github = "4z3";
+9
nixos/doc/manual/development/writing-nixos-tests.section.md
···
## Accessing VMs in the sandbox with SSH {#sec-test-sandbox-breakpoint}
+
::: {.note}
+
For debugging with SSH access into the machines, it's recommended to try using
+
[the interactive driver](#sec-running-nixos-tests-interactively) with its
+
[SSH backdoor](#sec-nixos-test-ssh-access) first.
+
+
This feature is mostly intended to debug flaky test failures that aren't
+
reproducible elsewhere.
+
:::
+
As explained in [](#sec-nixos-test-ssh-access), it's possible to configure an
SSH backdoor based on AF_VSOCK. This can be used to SSH into a VM of a running
build in a sandbox.
+10 -5
nixos/modules/services/printing/cupsd.nix
···
};
cupsFilesFile = writeConf "cups-files.conf" ''
-
SystemGroup root wheel
+
SystemGroup root wheel lpadmin
ServerBin ${bindir}/lib/cups
DataDir ${bindir}/share/cups
···
config = mkIf config.services.printing.enable {
-
users.users.cups = {
-
uid = config.ids.uids.cups;
-
group = "lp";
-
description = "CUPS printing services";
+
users = {
+
users.cups = {
+
uid = config.ids.uids.cups;
+
group = "lp";
+
description = "CUPS printing services";
+
};
+
+
# It seems that groups provided for `SystemGroup` must exist
+
groups.lpadmin = { };
};
# We need xdg-open (part of xdg-utils) for the desktop-file to proper open the users default-browser when opening "Manage Printing"
+1 -1
nixos/tests/all-tests.nix
···
ssh-audit = runTest ./ssh-audit.nix;
sssd = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./sssd.nix { };
sssd-ldap = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./sssd-ldap.nix { };
-
stalwart-mail = runTest ./stalwart-mail.nix;
+
stalwart-mail = runTest ./stalwart/stalwart-mail.nix;
stargazer = runTest ./web-servers/stargazer.nix;
starship = runTest ./starship.nix;
stash = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./stash.nix { };
-155
nixos/tests/stalwart-mail.nix
···
-
# Rudimentary test checking that the Stalwart email server can:
-
# - receive some message through SMTP submission, then
-
# - serve this message through IMAP.
-
-
let
-
certs = import ./common/acme/server/snakeoil-certs.nix;
-
domain = certs.domain;
-
-
in
-
{ lib, ... }:
-
{
-
name = "stalwart-mail";
-
-
nodes.main =
-
{ pkgs, ... }:
-
{
-
security.pki.certificateFiles = [ certs.ca.cert ];
-
-
services.stalwart-mail = {
-
enable = true;
-
settings = {
-
server.hostname = domain;
-
-
certificate."snakeoil" = {
-
cert = "%{file:${certs.${domain}.cert}}%";
-
private-key = "%{file:${certs.${domain}.key}}%";
-
};
-
-
server.tls = {
-
certificate = "snakeoil";
-
enable = true;
-
implicit = false;
-
};
-
-
server.listener = {
-
"smtp-submission" = {
-
bind = [ "[::]:587" ];
-
protocol = "smtp";
-
};
-
-
"imap" = {
-
bind = [ "[::]:143" ];
-
protocol = "imap";
-
};
-
-
"http" = {
-
bind = [ "[::]:80" ];
-
protocol = "http";
-
};
-
};
-
-
session.auth.mechanisms = "[plain]";
-
session.auth.directory = "'in-memory'";
-
storage.directory = "in-memory";
-
-
storage.data = "rocksdb";
-
storage.fts = "rocksdb";
-
storage.blob = "rocksdb";
-
storage.lookup = "rocksdb";
-
-
session.rcpt.directory = "'in-memory'";
-
queue.outbound.next-hop = "'local'";
-
-
store."rocksdb" = {
-
type = "rocksdb";
-
path = "/var/lib/stalwart-mail/data";
-
compression = "lz4";
-
};
-
-
directory."in-memory" = {
-
type = "memory";
-
principals = [
-
{
-
class = "individual";
-
name = "alice";
-
secret = "foobar";
-
email = [ "alice@${domain}" ];
-
}
-
{
-
class = "individual";
-
name = "bob";
-
secret = "foobar";
-
email = [ "bob@${domain}" ];
-
}
-
];
-
};
-
};
-
};
-
-
environment.systemPackages = [
-
(pkgs.writers.writePython3Bin "test-smtp-submission" { } ''
-
from smtplib import SMTP
-
-
with SMTP('localhost', 587) as smtp:
-
smtp.starttls()
-
smtp.login('alice', 'foobar')
-
smtp.sendmail(
-
'alice@${domain}',
-
'bob@${domain}',
-
"""
-
From: alice@${domain}
-
To: bob@${domain}
-
Subject: Some test message
-
-
This is a test message.
-
""".strip()
-
)
-
'')
-
-
(pkgs.writers.writePython3Bin "test-imap-read" { } ''
-
from imaplib import IMAP4
-
-
with IMAP4('localhost') as imap:
-
imap.starttls()
-
status, [caps] = imap.login('bob', 'foobar')
-
assert status == 'OK'
-
imap.select()
-
status, [ref] = imap.search(None, 'ALL')
-
assert status == 'OK'
-
[msgId] = ref.split()
-
status, msg = imap.fetch(msgId, 'BODY[TEXT]')
-
assert status == 'OK'
-
assert msg[0][1].strip() == b'This is a test message.'
-
'')
-
];
-
};
-
-
testScript = # python
-
''
-
main.wait_for_unit("stalwart-mail.service")
-
main.wait_for_open_port(587)
-
main.wait_for_open_port(143)
-
main.wait_for_open_port(80)
-
-
main.succeed("test-smtp-submission")
-
-
# restart stalwart to test rocksdb compaction of existing database
-
main.succeed("systemctl restart stalwart-mail.service")
-
main.wait_for_open_port(587)
-
main.wait_for_open_port(143)
-
-
main.succeed("test-imap-read")
-
-
main.succeed("test -d /var/cache/stalwart-mail/STALWART_WEBADMIN")
-
main.succeed("curl --fail http://localhost")
-
'';
-
-
meta = {
-
maintainers = with lib.maintainers; [
-
happysalada
-
euxane
-
onny
-
];
-
};
-
}
+81
nixos/tests/stalwart/stalwart-mail-config.nix
···
+
{ pkgs, lib, ... }:
+
+
let
+
certs = import ../common/acme/server/snakeoil-certs.nix;
+
domain = certs.domain;
+
in
+
{
+
security.pki.certificateFiles = [ certs.ca.cert ];
+
+
services.stalwart-mail = {
+
enable = true;
+
settings = {
+
server.hostname = domain;
+
+
certificate."snakeoil" = {
+
cert = "%{file:${certs.${domain}.cert}}%";
+
private-key = "%{file:${certs.${domain}.key}}%";
+
};
+
+
server.tls = {
+
certificate = "snakeoil";
+
enable = true;
+
implicit = false;
+
};
+
+
server.listener = {
+
"smtp-submission" = {
+
bind = [ "[::]:587" ];
+
protocol = "smtp";
+
};
+
+
"imap" = {
+
bind = [ "[::]:143" ];
+
protocol = "imap";
+
};
+
+
"http" = {
+
bind = [ "[::]:80" ];
+
protocol = "http";
+
};
+
};
+
+
session.auth.mechanisms = "[plain]";
+
session.auth.directory = "'in-memory'";
+
storage.directory = "in-memory";
+
+
storage.data = "rocksdb";
+
storage.fts = "rocksdb";
+
storage.blob = "rocksdb";
+
storage.lookup = "rocksdb";
+
+
session.rcpt.directory = "'in-memory'";
+
queue.outbound.next-hop = "'local'";
+
+
store."rocksdb" = {
+
type = "rocksdb";
+
path = "/var/lib/stalwart-mail/data";
+
compression = "lz4";
+
};
+
+
directory."in-memory" = {
+
type = "memory";
+
principals = [
+
{
+
class = "individual";
+
name = "alice";
+
secret = "foobar";
+
email = [ "alice@${domain}" ];
+
}
+
{
+
class = "individual";
+
name = "bob";
+
secret = "foobar";
+
email = [ "bob@${domain}" ];
+
}
+
];
+
};
+
};
+
};
+
+
}
+85
nixos/tests/stalwart/stalwart-mail.nix
···
+
# Rudimentary test checking that the Stalwart email server can:
+
# - receive some message through SMTP submission, then
+
# - serve this message through IMAP.
+
+
let
+
certs = import ../common/acme/server/snakeoil-certs.nix;
+
domain = certs.domain;
+
in
+
{ lib, ... }:
+
{
+
name = "stalwart-mail";
+
+
nodes.main =
+
{ pkgs, ... }:
+
{
+
imports = [
+
./stalwart-mail-config.nix
+
];
+
+
environment.systemPackages = [
+
(pkgs.writers.writePython3Bin "test-smtp-submission" { } ''
+
from smtplib import SMTP
+
+
with SMTP('localhost', 587) as smtp:
+
smtp.starttls()
+
smtp.login('alice', 'foobar')
+
smtp.sendmail(
+
'alice@${domain}',
+
'bob@${domain}',
+
"""
+
From: alice@${domain}
+
To: bob@${domain}
+
Subject: Some test message
+
+
This is a test message.
+
""".strip()
+
)
+
'')
+
+
(pkgs.writers.writePython3Bin "test-imap-read" { } ''
+
from imaplib import IMAP4
+
+
with IMAP4('localhost') as imap:
+
imap.starttls()
+
status, [caps] = imap.login('bob', 'foobar')
+
assert status == 'OK'
+
imap.select()
+
status, [ref] = imap.search(None, 'ALL')
+
assert status == 'OK'
+
[msgId] = ref.split()
+
status, msg = imap.fetch(msgId, 'BODY[TEXT]')
+
assert status == 'OK'
+
assert msg[0][1].strip() == b'This is a test message.'
+
'')
+
];
+
};
+
+
testScript = # python
+
''
+
main.wait_for_unit("stalwart-mail.service")
+
main.wait_for_open_port(587)
+
main.wait_for_open_port(143)
+
main.wait_for_open_port(80)
+
+
main.succeed("test-smtp-submission")
+
+
# restart stalwart to test rocksdb compaction of existing database
+
main.succeed("systemctl restart stalwart-mail.service")
+
main.wait_for_open_port(587)
+
main.wait_for_open_port(143)
+
+
main.succeed("test-imap-read")
+
+
main.succeed("test -d /var/cache/stalwart-mail/STALWART_WEBADMIN")
+
main.succeed("curl --fail http://localhost")
+
'';
+
+
meta = {
+
maintainers = with lib.maintainers; [
+
happysalada
+
euxane
+
onny
+
];
+
};
+
}
+6
pkgs/applications/editors/vscode/extensions/default.nix
···
reditorsupport.r = callPackage ./reditorsupport.r { };
+
release-candidate.vscode-scheme-repl = callPackage ./release-candidate.vscode-scheme-repl { };
+
reloadedextensions.reloaded-cpp = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "reloaded-cpp";
···
};
};
+
tsyesika.guile-scheme-enhanced = callPackage ./tsyesika.guile-scheme-enhanced { };
+
tuttieee.emacs-mcx = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "emacs-mcx";
···
license = lib.licenses.mit;
};
};
+
+
ufo5260987423.magic-scheme = callPackage ./ufo5260987423.magic-scheme { };
uiua-lang.uiua-vscode = buildVscodeMarketplaceExtension {
mktplcRef = {
+29
pkgs/applications/editors/vscode/extensions/release-candidate.vscode-scheme-repl/default.nix
···
+
{
+
lib,
+
vscode-utils,
+
jq,
+
chez,
+
moreutils,
+
}:
+
+
vscode-utils.buildVscodeMarketplaceExtension {
+
mktplcRef = {
+
publisher = "release-candidate";
+
name = "vscode-scheme-repl";
+
version = "0.7.4";
+
hash = "sha256-Pfy0aJXq8I53o5mG4dfzyqsyLQX0bs+phBgN46yU/Yw=";
+
};
+
+
postInstall = ''
+
cd "$out/$installPrefix"
+
${lib.getExe jq} '.contributes.configuration.properties."chezScheme.schemePath" = "${lib.getExe' chez "scheme"}"' package.json | ${lib.getExe' moreutils "sponge"} package.json
+
'';
+
+
meta = {
+
description = "Uses REPL for autocompletions and to evaluate expressions";
+
downloadPage = "https://marketplace.visualstudio.com/items?itemName=release-candidate.vscode-scheme-repl";
+
homepage = "https://github.com/Release-Candidate/vscode-scheme-repl";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ tuynia ];
+
};
+
}
+29
pkgs/applications/editors/vscode/extensions/tsyesika.guile-scheme-enhanced/default.nix
···
+
{
+
lib,
+
vscode-utils,
+
jq,
+
guile,
+
moreutils,
+
}:
+
+
vscode-utils.buildVscodeMarketplaceExtension {
+
mktplcRef = {
+
publisher = "tsyesika";
+
name = "guile-scheme-enhanced";
+
version = "0.0.2";
+
hash = "sha256-uoHYfbLeANHnMB7OgDQPfIIlNN7LgERS9zQfa+QIk0M=";
+
};
+
+
postInstall = ''
+
cd "$out/$installPrefix"
+
${lib.getExe jq} '.contributes.configuration.properties."guileScheme.guileREPLCommand".default = "${lib.getExe' guile "guile"}"' package.json | ${lib.getExe' moreutils "sponge"} package.json
+
'';
+
+
meta = {
+
description = "Better experience for working with scheme";
+
downloadPage = "https://marketplace.visualstudio.com/items?itemName=tsyesika.guile-scheme-enhanced";
+
homepage = "https://codeberg.org/tsyesika/vscode-guile-scheme-enhanced";
+
license = lib.licenses.asl20;
+
maintainers = with lib.maintainers; [ tuynia ];
+
};
+
}
+31
pkgs/applications/editors/vscode/extensions/ufo5260987423.magic-scheme/default.nix
···
+
{
+
lib,
+
vscode-utils,
+
jq,
+
akkuPackages,
+
chez,
+
akku,
+
moreutils,
+
}:
+
+
vscode-utils.buildVscodeMarketplaceExtension {
+
mktplcRef = {
+
publisher = "ufo5260987423";
+
name = "magic-scheme";
+
version = "0.0.5";
+
hash = "sha256-br1Vr4gIC2Zo74NHyCLTJL+GCjFzdOZh2oXIXZdJuRw=";
+
};
+
+
postInstall = ''
+
cd "$out/$installPrefix"
+
${lib.getExe jq} '.contributes.configuration.properties."magicScheme.scheme-langserver.serverPath".default = "${lib.getExe' akkuPackages.scheme-langserver "scheme-langserver"}" | .contributes.configuration.properties."magicScheme.scheme.path".default = "${lib.getExe' chez "scheme"}" | .contributes.configuration.properties."magicScheme.akku.path".default = "${lib.getExe akku}"' package.json | ${lib.getExe' moreutils "sponge"} package.json
+
'';
+
+
meta = {
+
description = "Adds support for Scheme(r6rs standard)";
+
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ufo5260987423.magic-scheme";
+
homepage = "https://github.com/ufo5260987423/magic-scheme";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ tuynia ];
+
};
+
}
+5 -5
pkgs/applications/editors/vscode/extensions/visualjj.visualjj/default.nix
···
sources = {
"x86_64-linux" = {
arch = "linux-x64";
-
hash = "sha256-/6V4hjwp3Vy4WEwTtcYvJk6Rt3AIeKqXWJ09Zsp9CZg=";
+
hash = "sha256-QOMJIhgc/dixPDUmir7bq5dWYGUfEWHJOlgTbGkxuDo=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
-
hash = "sha256-bMwiMIhsvF6Q12vCgt9Os109acqW8Ovpt3o9Y8Sf+gk=";
+
hash = "sha256-CucMSzmeYdrSbXZbevyJb3M2oTkyatddAt2MUMXNwl0=";
};
"aarch64-linux" = {
arch = "linux-arm64";
-
hash = "sha256-SwBHNKqif3mGqNSF6Y100HCDaLmARe0jApPol7AzsOQ=";
+
hash = "sha256-Lv/Hqp5OGC66qdIj/5VPlj434ftK4BBHNWlgg2ZAAac=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
-
hash = "sha256-SGTQdjvrXkEaCuHv9dfJfCBUgkfOtf+kLPiHYAqJ7+8=";
+
hash = "sha256-KuAT8+8t6YlQ4VygtxGindvSRs1x7oKT9ZgE7Vhvf8I=";
};
};
in
{
name = "visualjj";
publisher = "visualjj";
-
version = "0.15.4";
+
version = "0.16.1";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
+2 -2
pkgs/applications/misc/syncthingtray/default.nix
···
}:
stdenv.mkDerivation (finalAttrs: {
-
version = "1.7.9";
+
version = "1.7.10";
pname = "syncthingtray";
src = fetchFromGitHub {
owner = "Martchus";
repo = "syncthingtray";
rev = "v${finalAttrs.version}";
-
hash = "sha256-nIu6JrFqJ1QsALei9Bmrs6Bd2qM/37nb0ouxDymMN8k=";
+
hash = "sha256-ik/UKemhSuhe3oXPPLAR/qKO7J4Mq35zimixVHNj7go=";
};
buildInputs =
+32 -99
pkgs/applications/networking/browsers/firefox/mobile-config.nix
···
let
pkg = fetchFromGitLab {
+
domain = "gitlab.postmarketos.org";
owner = "postmarketOS";
repo = "mobile-config-firefox";
-
rev = "ff2f07873f4ebc6e220da0e9b9f04c69f451edda";
-
sha256 = "sha256-8wRz8corz00+0qROMiOmZAddM4tjfmE91bx0+P8JNx4=";
+
rev = "4.6.0";
+
hash = "sha256-tISfxN/04spgtKStkkn+zlCtFU6GbtwuZubqpGN2olA=";
};
-
userChrome = runCommand "userChrome.css" { } ''
-
cat ${pkg}/src/userChrome/*.css > $out
-
'';
-
userContent = runCommand "userContent.css" { } ''
-
cat ${pkg}/src/userContent/*.css > $out
-
'';
-
in
-
wrapFirefox firefox-unwrapped {
-
# extraPolicies = (lib.importJSON "${pkg}/src/policies.json").policies;
-
extraPoliciesFiles = [ "${pkg}/src/policies.json" ];
-
extraPrefs = ''
-
// Copyright 2022 Arnaud Ferraris, Oliver Smith
-
// SPDX-License-Identifier: MPL-2.0
+
mobileConfigDir = runCommand "mobile-config-firefox" { } ''
+
mkdir -p $out/mobile-config-firefox/{common,userChrome,userContent}
-
// This is a Firefox autoconfig file:
-
// https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig
+
cp ${pkg}/src/common/*.css $out/mobile-config-firefox/common/
+
cp ${pkg}/src/userChrome/*.css $out/mobile-config-firefox/userChrome/
+
cp ${pkg}/src/userContent/*.css $out/mobile-config-firefox/userContent/
-
// Import custom userChrome.css on startup or new profile creation
-
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-
Cu.import("resource://gre/modules/Services.jsm");
-
Cu.import("resource://gre/modules/FileUtils.jsm");
+
(cd $out/mobile-config-firefox && find common -name "*.css" | sort) >> $out/mobile-config-firefox/userChrome.files
+
(cd $out/mobile-config-firefox && find common -name "*.css" | sort) >> $out/mobile-config-firefox/userContent.files
-
var updated = false;
+
(cd $out/mobile-config-firefox && find userChrome -name "*.css" | sort) > $out/mobile-config-firefox/userChrome.files
+
(cd $out/mobile-config-firefox && find userContent -name "*.css" | sort) > $out/mobile-config-firefox/userContent.files
-
// Create <profile>/chrome/ directory if not already present
-
var chromeDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
-
chromeDir.append("chrome");
-
if (!chromeDir.exists()) {
-
chromeDir.create(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY);
-
}
+
'';
-
// Create nsIFile objects for userChrome.css in <profile>/chrome/ and in /etc/
-
var chromeFile = chromeDir.clone();
-
chromeFile.append("userChrome.css");
-
var defaultChrome = new FileUtils.File("${userChrome}");
+
mobileConfigAutoconfig = runCommand "mobile-config-autoconfig.js" { } ''
+
substitute ${pkg}/src/mobile-config-autoconfig.js $out \
+
--replace "/etc/mobile-config-firefox" "${mobileConfigDir}/mobile-config-firefox"
+
'';
-
// No auto-upgrade. Should this be replaced with symlinking?
-
// // Remove the existing userChrome.css if older than the installed one
-
// if (chromeFile.exists() && defaultChrome.exists() &&
-
// chromeFile.lastModifiedTime < defaultChrome.lastModifiedTime) {
-
// chromeFile.remove(false);
-
// }
+
mobileConfigPrefs = runCommand "mobile-config-prefs.js" { } ''
+
# Remove the autoconfig setup lines since we handle that through extraPrefsFiles
+
grep -v "general.config.filename" ${pkg}/src/mobile-config-prefs.js | \
+
grep -v "general.config.obscure_value" | \
+
grep -v "general.config.sandbox_enabled" > $out
+
'';
+
in
+
wrapFirefox firefox-unwrapped {
+
extraPrefsFiles = [
+
mobileConfigAutoconfig
+
mobileConfigPrefs
+
];
-
// Copy userChrome.css to <profile>/chrome/
-
if (!chromeFile.exists()) {
-
defaultChrome.copyTo(chromeDir, "userChrome.css");
-
updated = true;
-
}
-
-
// Create nsIFile objects for userContent.css in <profile>/chrome/ and in /etc/
-
var contentFile = chromeDir.clone();
-
contentFile.append("userContent.css");
-
var defaultContent = new FileUtils.File("${userContent}");
-
-
// No auto-upgrade. Should this be replaced with symlinking?
-
// // Remove the existing userContent.css if older than the installed one
-
// if (contentFile.exists() && defaultContent.exists() &&
-
// contentFile.lastModifiedTime < defaultContent.lastModifiedTime) {
-
// contentFile.remove(false);
-
// }
-
-
// Copy userContent.css to <profile>/chrome/
-
if (!contentFile.exists()) {
-
defaultContent.copyTo(chromeDir, "userContent.css");
-
updated = true;
-
}
-
-
// Restart Firefox immediately if one of the files got updated
-
if (updated === true) {
-
var appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup);
-
appStartup.quit(Ci.nsIAppStartup.eForceQuit | Ci.nsIAppStartup.eRestart);
-
}
-
-
defaultPref('general.useragent.override', 'Mozilla/5.0 (Android 11; Mobile; rv:96.0) Gecko/96.0 Firefox/96.0');
-
defaultPref('browser.urlbar.suggest.topsites', false);
-
defaultPref('browser.urlbar.suggest.engines', false);
-
defaultPref('browser.newtabpage.enabled', true);
-
-
// Enable android-style pinch-to-zoom
-
pref('dom.w3c.touch_events.enabled', true);
-
pref('apz.allow_zooming', true);
-
pref('apz.allow_double_tap_zooming', true);
-
-
// Save vertical space by hiding the titlebar
-
pref('browser.tabs.inTitlebar', 1);
-
-
// Disable search suggestions
-
pref('browser.search.suggest.enabled', false);
-
-
// Empty new tab page: faster, less distractions
-
pref('browser.newtabpage.enabled', false);
-
-
// Allow UI customizations with userChrome.css and userContent.css
-
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
-
-
// Select the entire URL with one click
-
pref('browser.urlbar.clickSelectsAll', true);
-
-
// Disable cosmetic animations, save CPU
-
pref('toolkit.cosmeticAnimations.enabled', false);
-
-
// Disable download animations, save CPU
-
pref('browser.download.animateNotifications', false);
-
'';
+
extraPoliciesFiles = [
+
"${pkg}/src/policies.json"
+
];
}
+4 -4
pkgs/applications/virtualization/virtualbox/default.nix
···
buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
-
virtualboxVersion = "7.1.10";
+
virtualboxVersion = "7.1.12";
virtualboxSubVersion = "";
-
virtualboxSha256 = "7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869";
+
virtualboxSha256 = "6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276";
kvmPatchVersion = "20250207";
kvmPatchHash = "sha256-GzRLIXhzWL1NLvaGKcWVBCdvay1IxgJUE4koLX1ze7Y=";
···
++ optional enableKvm (
let
patchVboxVersion =
-
# There is no updated patch for 7.1.10 yet, but the older one still applies.
-
if finalAttrs.virtualboxVersion == "7.1.10" then "7.1.6" else finalAttrs.virtualboxVersion;
+
# There is no updated patch for 7.1.12 yet, but the older one still applies.
+
if finalAttrs.virtualboxVersion == "7.1.12" then "7.1.6" else finalAttrs.virtualboxVersion;
in
fetchpatch {
name = "virtualbox-${finalAttrs.virtualboxVersion}-kvm-dev-${finalAttrs.kvmPatchVersion}.patch";
+2 -2
pkgs/applications/virtualization/virtualbox/extpack.nix
···
virtualbox,
}:
let
-
virtualboxExtPackVersion = "7.1.10";
+
virtualboxExtPackVersion = "7.1.12";
in
fetchurl rec {
name = "Oracle_VirtualBox_Extension_Pack-${virtualboxExtPackVersion}.vbox-extpack";
···
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
let
-
value = "e020755711849fa0ee23d3bc47bc90cb0ea595da7dda804499568a0dc2387989";
+
value = "c7ed97f4755988ecc05ec633475e299bbc1e0418cc3d143747a45c99df53abd3";
in
assert (builtins.stringLength value) == 64;
value;
+1 -1
pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix
···
}:
fetchurl {
url = "http://download.virtualbox.org/virtualbox/${virtualboxVersion}/VBoxGuestAdditions_${virtualboxVersion}.iso";
-
sha256 = "59c92f7f5fd7e081211e989f5117fc53ad8d8800ad74a01b21e97bb66fe62972";
+
sha256 = "256883e2eabf7ab5c10fb3b6831c294942ce34bc615807f9d0cf6c3d2e882236";
meta = {
description = "Guest additions ISO for VirtualBox";
longDescription = ''
+2 -2
pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
···
libX11,
}:
let
-
virtualboxVersion = "7.1.10";
+
virtualboxVersion = "7.1.12";
virtualboxSubVersion = "";
-
virtualboxSha256 = "7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869";
+
virtualboxSha256 = "6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276";
virtualBoxNixGuestAdditionsBuilder = callPackage ./builder.nix {
inherit virtualboxVersion virtualboxSubVersion virtualboxSha256;
+4 -3
pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
···
{
+
config,
lib,
callPackage,
pkg-config,
···
{ hypr-dynamic-cursors = import ./hypr-dynamic-cursors.nix; }
{ hyprfocus = import ./hyprfocus.nix; }
{ hyprgrass = import ./hyprgrass.nix; }
-
{
-
hyprscroller = throw "hyprlandPlugins.hyprscroller has been removed as the upstream project is deprecated. Consider using `hyprlandPlugins.hyprscrolling`.";
-
} # Added 2025-05-09
{ hyprspace = import ./hyprspace.nix; }
{ hyprsplit = import ./hyprsplit.nix; }
(import ./hyprland-plugins.nix)
+
(lib.optionalAttrs config.allowAliases {
+
hyprscroller = throw "hyprlandPlugins.hyprscroller has been removed as the upstream project is deprecated. Consider using `hyprlandPlugins.hyprscrolling`."; # Added 2025-05-09
+
})
];
in
(lib.mapAttrs (name: plugin: callPackage plugin { inherit mkHyprlandPlugin; }) plugins)
+2 -2
pkgs/by-name/bi/bikeshed/package.nix
···
python3Packages.buildPythonApplication rec {
pname = "bikeshed";
-
version = "5.3.2";
+
version = "5.3.3";
pyproject = true;
src = fetchPypi {
inherit pname version;
-
hash = "sha256-+TY26g685eIMXUjTG876r9gryg/tR6EtMGWAhk2kkis=";
+
hash = "sha256-hHLodlbHuDRXCR8GlTwSvaryOENPCiHgFj3S1hpApA8=";
};
build-system = [ python3Packages.setuptools ];
+3 -3
pkgs/by-name/ca/cargo-tauri/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "tauri";
-
version = "2.6.2";
+
version = "2.7.0";
src = fetchFromGitHub {
owner = "tauri-apps";
repo = "tauri";
tag = "tauri-cli-v${version}";
-
hash = "sha256-QdboIHbRKC/0k6FGKDuCA7AR3eIa7KVij3fGekD9kNk=";
+
hash = "sha256-nEt4xoVHozqxWnyrXTn7XDgH2HYCzrfqBgt71+goYms=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-GFqUQLLURfm6sRpf4MwAp89aKpTwWIlxk3NNRf9QgC0=";
+
cargoHash = "sha256-av5UF0MgKnTwEX4dHhekvj2tz/BOZyUbs1YqLwx28Cw=";
nativeBuildInputs = [ pkg-config ];
+1 -1
pkgs/by-name/ca/cargo-tauri/test-app.nix
···
;
fetcherVersion = 1;
-
hash = "sha256-plANa/+9YEQ4ipgdQ7QzPyxgz6eDCBhO7qFlxK6Ab58=";
+
hash = "sha256-I++iYwqSxACmXFvfPYAnY/0WSWSY6ElJYnylJDC03D8=";
};
nativeBuildInputs = [
+16 -9
pkgs/by-name/co/cosign/package.nix
···
buildGoModule (finalAttrs: {
pname = "cosign";
-
version = "2.5.0";
+
version = "2.5.3";
src = fetchFromGitHub {
owner = "sigstore";
repo = "cosign";
rev = "v${finalAttrs.version}";
-
hash = "sha256-QvU+JpIcE9EX+ehRWvs2bS2VGgGVekNX8f5+mITIwU0=";
+
hash = "sha256-EpCG20SSZFNc/oMgyUP/oARNTrpkzNsTvsA0Wx+zI00=";
};
buildInputs = lib.optional (stdenv.hostPlatform.isLinux && pivKeySupport) (lib.getDev pcsclite);
···
installShellFiles
];
-
vendorHash = "sha256-qIi+Pp4XZg1GxOhM9fCyD9rPaIiQHhoQudB50gzWgrM=";
+
vendorHash = "sha256-YwSi1TqtcGE1sV9NLJ3lxA8kk0gL+9kTgcJzvIJRanE=";
subPackages = [
"cmd/cosign"
···
preCheck = ''
# test all paths
unset subPackages
+
'';
-
rm pkg/cosign/ctlog_test.go # Require network access
-
rm pkg/cosign/tlog_test.go # Require network access
-
rm cmd/cosign/cli/verify/verify_test.go # Require network access
-
rm cmd/cosign/cli/verify/verify_blob_attestation_test.go # Require network access
-
rm cmd/cosign/cli/verify/verify_blob_test.go # Require network access
-
'';
+
checkFlags =
+
let
+
# Skip tests that require network access
+
skippedTests = [
+
"TestLoadCertsKeylessVerification/default_fulcio"
+
"TestGetCTLogPubKeys"
+
"TestGetRekorPubKeys"
+
"TestVerifyEmbeddedSCT"
+
"TestValidateAndUnpackCertWithSCT"
+
];
+
in
+
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd cosign \
+2 -2
pkgs/by-name/dn/dnf5/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "dnf5";
-
version = "5.2.14.0";
+
version = "5.2.15.0";
outputs = [
"out"
···
owner = "rpm-software-management";
repo = "dnf5";
tag = finalAttrs.version;
-
hash = "sha256-dCeTOJrOjnGvRhY8u8mMOgm/mbUoTbYqzjiAkbIlSo0=";
+
hash = "sha256-WlQfvWDd9Eay9TPq2EfFlQGljEskJqL3xyNIJDdaNps=";
};
nativeBuildInputs =
+3 -3
pkgs/by-name/hy/hyprprop/package.nix
···
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "hyprprop";
-
version = "0.1-unstable-2025-06-19";
+
version = "0.1-unstable-2025-07-18";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "contrib";
-
rev = "189f32f56285aae9646bf1292976392beba5a2e2";
-
hash = "sha256-LPwgPRBTfnA76rHUr7KYvwq2pNt5IfxymNAZUJFvn/M=";
+
rev = "481175e17e155f19a3b31416530b6edf725e7034";
+
hash = "sha256-usBNOT/uzFdsKDe5Ik+C36zqL+BfT7Lp2rqKWrpQuqk=";
};
sourceRoot = "${finalAttrs.src.name}/hyprprop";
+2 -2
pkgs/by-name/in/intel-gmmlib/package.nix
···
stdenv.mkDerivation rec {
pname = "intel-gmmlib";
-
version = "22.7.3";
+
version = "22.8.1";
src = fetchFromGitHub {
owner = "intel";
repo = "gmmlib";
tag = "intel-gmmlib-${version}";
-
hash = "sha256-3KGDKdhy4jtBVdZYY6fhEEBQYmfYzXoTR7yPAuFqBvI=";
+
hash = "sha256-TFa8EfrL14w8ameIinRhmeNnfOJ18hoXWEpTgxTeBBE=";
};
nativeBuildInputs = [ cmake ];
+2 -2
pkgs/by-name/li/librime/package.nix
···
in
stdenv.mkDerivation rec {
pname = "librime";
-
version = "1.13.1";
+
version = "1.14.0";
src = fetchFromGitHub {
owner = "rime";
repo = "librime";
rev = version;
-
sha256 = "sha256-pv1I/YFzPLOmBDcT4HcrJWSikPEErEB5UzGrGqfJBvg=";
+
sha256 = "sha256-dks8Ab2YQ8t4hZRneMP9aU0VFZgIg+meh8RI0pp0lR0=";
};
nativeBuildInputs = [
+1 -5
pkgs/by-name/li/libtracefs/package.nix
···
xmlto,
docbook_xml_dtd_45,
docbook_xsl,
-
valgrind,
sourceHighlight,
meson,
flex,
bison,
ninja,
-
cunit,
gitUpdater,
}:
···
xmlto
docbook_xml_dtd_45
docbook_xsl
-
valgrind
sourceHighlight
flex
bison
···
"docs"
];
-
doCheck = true;
-
checkInputs = [ cunit ];
+
doCheck = false; # needs root
passthru.updateScript = gitUpdater {
# No nicer place to find latest release.
+76 -23
pkgs/by-name/li/lightning-terminal/package.nix
···
fetchYarnDeps,
go,
versionCheckHook,
-
testers,
+
runCommandWith,
curl,
lightning-terminal,
+
_experimental-update-script-combinators,
+
gitUpdater,
+
nurl,
+
nix,
+
gitMinimal,
+
writeShellScript,
}:
buildGoModule rec {
pname = "lightning-terminal";
-
version = "0.14.1-alpha";
+
version = "0.15.1-alpha";
src = fetchFromGitHub {
owner = "lightninglabs";
repo = "lightning-terminal";
tag = "v${version}";
-
hash = "sha256-sv/NsjAAF0vwD2xjRuGwHwV0L1gjCFQEw0SVp14Zyz0=";
+
hash = "sha256-aCZ1dzbj1SYBYQ6ysnk9MQs4V6ysljZYOYp0gOw0WFQ=";
leaveDotGit = true;
# Populate values that require us to use git.
postFetch = ''
···
'';
};
-
vendorHash = "sha256-Gbx4uz6q9Ef4QNv6DpIoCACjhT66iZ7GPNpd/g9MgKQ=";
+
vendorHash = "sha256-tjNF6Llsaba/IlhtrOU4ebzSRHGVy+LPzwhBsS5xJgQ=";
buildInputs = [ lightning-app ];
postUnpack = ''
···
versionCheckHook
];
-
passthru.tests.litd-app = testers.runCommand {
-
name = "test-litd-app";
-
nativeBuildInputs = [
-
curl
-
lightning-terminal
-
];
-
script = ''
-
litd \
-
--uipassword=12345678 \
-
--insecure-httplisten=127.0.0.1:8080 \
-
--httpslisten= &
-
sleep 2
-
GETindexHTTPCode=$(curl -o /dev/null -w "%{http_code}" -Lvs 127.0.0.1:8080/index.html)
-
if [ "$GETindexHTTPCode" = 200 ]; then
-
touch $out
-
fi
-
'';
-
};
+
passthru.tests.litd-app =
+
runCommandWith
+
{
+
name = "test-litd-app";
+
derivationArgs = {
+
nativeBuildInputs = [
+
curl
+
lightning-terminal
+
];
+
};
+
}
+
''
+
litd \
+
--uipassword=12345678 \
+
--insecure-httplisten=127.0.0.1:8080 \
+
--httpslisten= &
+
sleep 2
+
GETindexHTTPCode=$(curl -o /dev/null -w "%{http_code}" -Lvs 127.0.0.1:8080/index.html)
+
if [ "$GETindexHTTPCode" = 200 ]; then
+
touch $out
+
fi
+
'';
+
+
# Usage: nix-shell maintainers/scripts/update.nix --argstr package lightning-terminal --argstr commit true
+
passthru.updateScript = _experimental-update-script-combinators.sequence [
+
(gitUpdater {
+
rev-prefix = "v";
+
ignoredVersions = ".*rc.*";
+
})
+
{
+
command = [
+
(writeShellScript "update-hashes.sh" ''
+
set -euxo pipefail
+
+
. ${stdenv}/setup
+
PATH="${
+
lib.makeBinPath [
+
gitMinimal
+
nix
+
nurl
+
]
+
}:$PATH"
+
+
nixpkgs="$(git rev-parse --show-toplevel)"
+
packageVersion=$(nix --extra-experimental-features nix-command eval --impure --raw -f "$nixpkgs" "$UPDATE_NIX_ATTR_PATH.version")
+
if [ x"$UPDATE_NIX_OLD_VERSION" != x"$packageVersion" ]; then
+
vendorHashOld=${lightning-terminal.vendorHash}
+
vendorHashNew=$(nurl -e "(import $nixpkgs/. { }).$UPDATE_NIX_ATTR_PATH.goModules")
+
yarnOfflineCacheHashOld=${lightning-app.yarnOfflineCache.outputHash}
+
yarnOfflineCacheHashNew=$(nurl -e "let pkgs = (import $nixpkgs/. { }); in \
+
pkgs.fetchYarnDeps \
+
{ yarnLock = pkgs.$UPDATE_NIX_ATTR_PATH.src + \"/app/yarn.lock\"; \
+
hash = pkgs.lib.fakeHash; \
+
}")
+
+
substituteInPlace \
+
"$nixpkgs"/pkgs/by-name/li/lightning-terminal/package.nix \
+
--replace-fail "$vendorHashOld" "$vendorHashNew" \
+
--replace-fail "$yarnOfflineCacheHashOld" "$yarnOfflineCacheHashNew"
+
fi
+
'')
+
];
+
supportedFeatures = [ "silent" ];
+
}
+
];
lightning-app = stdenv.mkDerivation {
pname = "lightning-app";
···
version = "0.0.1";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/app/yarn.lock";
-
hash = "sha256-ulOgKQRLG4cRi1N1DajmbZ0L7d08g5cYDA9itXu+Esw=";
+
hash = "sha256-FYRWyZxTPo4YwN5AiXsuubZoCVRcOeCrsUU/+ON4gx4=";
};
# Remove this command from package.json. It requires Git and it is not
+3 -3
pkgs/by-name/mo/mongosh/package.nix
···
buildNpmPackage (finalAttrs: {
pname = "mongosh";
-
version = "2.5.5";
+
version = "2.5.6";
src = fetchFromGitHub {
owner = "mongodb-js";
repo = "mongosh";
tag = "v${finalAttrs.version}";
-
hash = "sha256-dngguv/ShxwfFpbYyyfJ1SmQhSgEsDOKcRSXdjsfcmo=";
+
hash = "sha256-QK2woc6tlnTwYCZ7QEWCn2bRknye2qY8AYAHMVR9i24=";
};
-
npmDepsHash = "sha256-W5qq3XUV+x0Ko1Ftp2JTHbaOSGsSG5a7qABthtnaU4o=";
+
npmDepsHash = "sha256-TfakEOiCtoRz2Fhwz5teOWq0OLb7uZaYiKHLSq/c1OU=";
patches = [
./disable-telemetry.patch
+2 -2
pkgs/by-name/mo/monkeysAudio/package.nix
···
}:
stdenv.mkDerivation (finalAttrs: {
-
version = "11.20";
+
version = "11.21";
pname = "monkeys-audio";
src = fetchzip {
url = "https://monkeysaudio.com/files/MAC_${builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
-
hash = "sha256-grZji+s1nffeSMdvsJBsmY0tW4yul2a7gYnenOtGa8g=";
+
hash = "sha256-nMxGrOjgjxJAHWJdJMGJl+QEwOZtuYsJlkzlpM0hnd0=";
stripRoot = false;
};
+20 -12
pkgs/by-name/ns/nsncd/package.nix
···
useFetchCargoVendor = true;
cargoHash = "sha256-9M8Y0WwXFlrpRleSQPYDpnjNnxKGvrtO6Istl9qM30M=";
-
checkFlags = [
-
# Relies on the test environment to be able to resolve "localhost"
-
# on IPv4. That's not the case in the Nix sandbox somehow. Works
-
# when running cargo test impurely on a (NixOS|Debian) machine.
-
"--skip=ffi::test_gethostbyname2_r"
+
checkFlags =
+
[
+
# Relies on the test environment to be able to resolve "localhost"
+
# on IPv4. That's not the case in the Nix sandbox somehow. Works
+
# when running cargo test impurely on a (NixOS|Debian) machine.
+
"--skip=ffi::test_gethostbyname2_r"
-
# Relies on /etc/services to be present?
-
"--skip=handlers::test::test_handle_getservbyname_name"
-
"--skip=handlers::test::test_handle_getservbyname_name_proto"
-
"--skip=handlers::test::test_handle_getservbyport_port"
-
"--skip=handlers::test::test_handle_getservbyport_port_proto"
-
"--skip=handlers::test::test_handle_getservbyport_port_proto_aliases"
-
];
+
# Relies on /etc/services to be present?
+
"--skip=handlers::test::test_handle_getservbyname_name"
+
"--skip=handlers::test::test_handle_getservbyname_name_proto"
+
"--skip=handlers::test::test_handle_getservbyport_port"
+
"--skip=handlers::test::test_handle_getservbyport_port_proto"
+
"--skip=handlers::test::test_handle_getservbyport_port_proto_aliases"
+
]
+
++ lib.optionals stdenv.hostPlatform.isBigEndian [
+
# Expected serialisation output in tests doesn't account for endianness differences
+
# https://github.com/twosigma/nsncd/issues/160
+
"--skip=handlers::test::test_hostent_serialization"
+
"--skip=handlers::test::test_innetgroup_serialization_in_group"
+
"--skip=handlers::test::test_netgroup_serialization"
+
];
meta = with lib; {
description = "Name service non-caching daemon";
+8 -1
pkgs/by-name/ph/phpactor/package.nix
···
nativeBuildInputs = [ installShellFiles ];
-
php = php.withExtensions ({ all, ... }: with all; [ mbstring ]);
+
php = php.withExtensions (
+
{ all, ... }:
+
with all;
+
[
+
mbstring
+
tokenizer
+
]
+
);
postInstall = ''
installShellCompletion --cmd phpactor \
+8 -6
pkgs/by-name/pr/pragtical/package.nix
···
mbedtls_2,
pcre2,
SDL2,
+
xz,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pragtical";
-
version = "3.5.2";
-
pluginManagerVersion = "1.2.9";
+
version = "3.6.0";
+
pluginManagerVersion = "1.4.0";
src = fetchFromGitHub {
owner = "pragtical";
···
find subprojects -type d -name .git -prune -execdir rm -r {} +
'';
-
hash = "sha256-RT+/h5vUILlik/YqcpwgkdOJRmhGBtEHRVynjlHWunw=";
+
hash = "sha256-rJEUTLjMTv19W1wSvW2HJaxHrzrBQHiG74v8XlcqgMc=";
};
+
strictDeps = true;
+
nativeBuildInputs = [
+
lua5_4 # needed for built-time lua bytecode generation
meson
ninja
pkg-config
···
mbedtls_2
pcre2
SDL2
+
xz
zlib
];
-
-
# workaround for `libmbedx509.so.1, libmbedcrypto.so.7: error adding symbols: DSO missing from command line`
-
env.NIX_LDFLAGS = "-lmbedx509 -lmbedcrypto";
mesonFlags = [ "-Duse_system_lua=true" ];
+7
pkgs/development/compilers/go/1.23.nix
···
license = licenses.bsd3;
teams = [ teams.golang ];
platforms = platforms.darwin ++ platforms.linux ++ platforms.wasi ++ platforms.freebsd;
+
badPlatforms = [
+
# Support for big-endian POWER < 8 was dropped in 1.9, but POWER8 users have less of a reason to run in big-endian mode than pre-POWER8 ones
+
# So non-LE ppc64 is effectively unsupported, and Go SIGILLs on affordable ppc64 hardware
+
# https://github.com/golang/go/issues/19074 - Dropped support for big-endian POWER < 8, with community pushback
+
# https://github.com/golang/go/issues/73349 - upstream will not accept submissions to fix this
+
"powerpc64-linux"
+
];
mainProgram = "go";
};
})
+7
pkgs/development/compilers/go/1.24.nix
···
license = licenses.bsd3;
teams = [ teams.golang ];
platforms = platforms.darwin ++ platforms.linux ++ platforms.wasi ++ platforms.freebsd;
+
badPlatforms = [
+
# Support for big-endian POWER < 8 was dropped in 1.9, but POWER8 users have less of a reason to run in big-endian mode than pre-POWER8 ones
+
# So non-LE ppc64 is effectively unsupported, and Go SIGILLs on affordable ppc64 hardware
+
# https://github.com/golang/go/issues/19074 - Dropped support for big-endian POWER < 8, with community pushback
+
# https://github.com/golang/go/issues/73349 - upstream will not accept submissions to fix this
+
"powerpc64-linux"
+
];
mainProgram = "go";
};
})
+7
pkgs/development/compilers/go/1.25.nix
···
license = licenses.bsd3;
teams = [ teams.golang ];
platforms = platforms.darwin ++ platforms.linux ++ platforms.wasi ++ platforms.freebsd;
+
badPlatforms = [
+
# Support for big-endian POWER < 8 was dropped in 1.9, but POWER8 users have less of a reason to run in big-endian mode than pre-POWER8 ones
+
# So non-LE ppc64 is effectively unsupported, and Go SIGILLs on affordable ppc64 hardware
+
# https://github.com/golang/go/issues/19074 - Dropped support for big-endian POWER < 8, with community pushback
+
# https://github.com/golang/go/issues/73349 - upstream will not accept submissions to fix this
+
"powerpc64-linux"
+
];
mainProgram = "go";
};
})
+7
pkgs/development/compilers/go/binary.nix
···
license = lib.licenses.bsd3;
teams = [ lib.teams.golang ];
platforms = lib.platforms.darwin ++ lib.platforms.linux;
+
badPlatforms = [
+
# Support for big-endian POWER < 8 was dropped in 1.9, but POWER8 users have less of a reason to run in big-endian mode than pre-POWER8 ones
+
# So non-LE ppc64 is effectively unsupported, and Go SIGILLs on affordable ppc64 hardware
+
# https://github.com/golang/go/issues/19074 - Dropped support for big-endian POWER < 8, with community pushback
+
# https://github.com/golang/go/issues/73349 - upstream will not accept submissions to fix this
+
"powerpc64-linux"
+
];
};
}
+3 -3
pkgs/development/compilers/llvm/default.nix
···
"20.1.6".officialRelease.sha256 = "sha256-PfCzECiCM+k0hHqEUSr1TSpnII5nqIxg+Z8ICjmMj0Y=";
"21.1.0-rc1".officialRelease.sha256 = "sha256-EZMG3kNqGTvKSuvslbrtNnyqBCG5C2gN9Y2qHbiuh8Q=";
"22.0.0-git".gitRelease = {
-
rev = "f2956173aea4ff0fe0b823be1953d1968f91fb98";
-
rev-version = "22.0.0-unstable-2025-07-17";
-
sha256 = "sha256-qmF67vdfrMB5p9yej1KZeh5Spek67RJXQODpV5w9IQA=";
+
rev = "f3a3270dbca3649b7d56aaa42cb8481fb34e2d67";
+
rev-version = "22.0.0-unstable-2025-07-20";
+
sha256 = "sha256-rMiPa8T2n0IWtOv0SYb+eWWHRfPTBGEb4yCp11gVzRE=";
};
} // llvmVersions;
+9 -2
pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
···
-
{ pkgs, haskellLib }:
+
{
+
config,
+
pkgs,
+
haskellLib,
+
}:
with haskellLib;
···
doctest = dontCheck super.doctest;
-
haskell-language-server = throw "haskell-language-server has dropped support for ghc 9.0 in version 2.4.0.0, please use a newer ghc version or an older nixpkgs version";
+
haskell-language-server =
+
lib.throwIf config.allowAliases
+
"haskell-language-server has dropped support for ghc 9.0 in version 2.4.0.0, please use a newer ghc version or an older nixpkgs version"
+
(markBroken super.haskell-language-server);
# Needs to use ghc-lib due to incompatible GHC
ghc-tags = doDistribute self.ghc-tags_1_5;
+9 -2
pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
···
-
{ pkgs, haskellLib }:
+
{
+
config,
+
pkgs,
+
haskellLib,
+
}:
with haskellLib;
···
}
);
-
haskell-language-server = throw "haskell-language-server has dropped support for ghc 9.2 in version 2.10.0.0, please use a newer ghc version or an older nixpkgs version";
+
haskell-language-server =
+
lib.throwIf config.allowAliases
+
"haskell-language-server has dropped support for ghc 9.2 in version 2.10.0.0, please use a newer ghc version or an older nixpkgs version"
+
(markBroken super.haskell-language-server);
# For GHC < 9.4, some packages need data-array-byte as an extra dependency
hashable = addBuildDepends [ self.data-array-byte ] super.hashable;
-2
pkgs/development/interpreters/python/hooks/default.nix
···
} ./setuptools-build-hook.sh
) { };
-
setuptoolsCheckHook = throw "The setuptoolsCheckHook has been removed, since the test command has been removed in setuptools 72.0";
-
setuptoolsRustBuildHook = callPackage (
{ makePythonHook, setuptools-rust }:
makePythonHook {
+3 -3
pkgs/development/libraries/libfive/default.nix
···
stdenv.mkDerivation {
pname = "libfive";
-
version = "0-unstable-2025-05-22";
+
version = "0-unstable-2025-07-07";
src = fetchFromGitHub {
owner = "libfive";
repo = "libfive";
-
rev = "daa458279121a95b51482508bcfa906d6227442e";
-
hash = "sha256-YPP3ZSMDCQgeOPugRPmZCDI9iesIMwnU7Xu8yGwV9JM=";
+
rev = "ba841d3ba91b885ba19c40e382d6ae6f3534a4b5";
+
hash = "sha256-YVqP4k8KBLMYZOuWYLXijZBEiNGhQaaVNBVQtpIgvjc=";
};
nativeBuildInputs = [
+21 -39
pkgs/development/libraries/science/math/magma/generic.nix
···
;
inherit (magmaRelease) version hash supportedGpuTargets;
-
# Per https://icl.utk.edu/magma/downloads, support for CUDA 12 wasn't added until 2.7.1.
-
# If we're building a version prior to that, use the latest release of the 11.x series.
-
effectiveCudaPackages =
-
if strings.versionOlder version "2.7.1" then cudaPackages_11 else cudaPackages;
-
-
inherit (effectiveCudaPackages) cudaAtLeast flags cudaOlder;
-
-
effectiveRocmPackages =
-
if strings.versionOlder version "2.8.0" then
-
throw ''
-
the required ROCm 5.7 version for magma ${version} has been removed
-
''
-
else
-
rocmPackages;
+
inherit (cudaPackages) cudaAtLeast flags cudaOlder;
# NOTE: The lists.subtractLists function is perhaps a bit unintuitive. It subtracts the elements
# of the first list *from* the second list. That means:
···
# NOTE: The hip.gpuTargets are prefixed with "gfx" instead of "sm" like flags.realArches.
# For some reason, Magma's CMakeLists.txt file does not handle the "gfx" prefix, so we must
# remove it.
-
rocmArches = lists.map (x: strings.removePrefix "gfx" x) effectiveRocmPackages.clr.gpuTargets;
+
rocmArches = lists.map (x: strings.removePrefix "gfx" x) rocmPackages.clr.gpuTargets;
supportedRocmArches = lists.intersectLists rocmArches supportedGpuTargets;
unsupportedRocmArches = lists.subtractLists supportedRocmArches rocmArches;
···
"test"
];
-
postPatch =
-
''
-
# For rocm version script invoked by cmake
-
patchShebangs tools/
-
# Fixup for the python test runners
-
patchShebangs ./testing/run_{tests,summarize}.py
-
''
-
+ lib.optionalString (strings.versionOlder version "2.9.0") ''
-
substituteInPlace ./testing/run_tests.py \
-
--replace-fail \
-
"print >>sys.stderr, cmdp, \"doesn't exist (original name: \" + cmd + \", precision: \" + precision + \")\"" \
-
"print(f\"{cmdp} doesn't exist (original name: {cmd}, precision: {precision})\", file=sys.stderr)"
-
'';
+
postPatch = ''
+
# For rocm version script invoked by cmake
+
patchShebangs tools/
+
# Fixup for the python test runners
+
patchShebangs ./testing/run_{tests,summarize}.py
+
'';
nativeBuildInputs =
[
···
gfortran
]
++ lists.optionals cudaSupport [
-
effectiveCudaPackages.cuda_nvcc
+
cudaPackages.cuda_nvcc
];
buildInputs =
···
(getLib gfortran.cc) # libgfortran.so
]
++ lists.optionals cudaSupport (
-
with effectiveCudaPackages;
+
with cudaPackages;
[
cuda_cccl # <nv/target> and <cuda/std/type_traits>
cuda_cudart # cuda_runtime.h
···
]
)
++ lists.optionals rocmSupport (
-
with effectiveRocmPackages;
+
with rocmPackages;
[
clr
hipblas
···
# Can be removed once https://github.com/icl-utk-edu/magma/pull/27 is merged
# Can't easily apply the PR as a patch because we rely on the tarball with pregenerated
# hipified files ∴ fetchpatch of the PR will apply cleanly but fail to build
-
(strings.cmakeFeature "ROCM_CORE" "${effectiveRocmPackages.clr}")
-
(strings.cmakeFeature "CMAKE_C_COMPILER" "${effectiveRocmPackages.clr}/bin/hipcc")
-
(strings.cmakeFeature "CMAKE_CXX_COMPILER" "${effectiveRocmPackages.clr}/bin/hipcc")
+
(strings.cmakeFeature "ROCM_CORE" "${rocmPackages.clr}")
+
(strings.cmakeFeature "CMAKE_C_COMPILER" "${rocmPackages.clr}/bin/hipcc")
+
(strings.cmakeFeature "CMAKE_CXX_COMPILER" "${rocmPackages.clr}/bin/hipcc")
];
# Magma doesn't have a test suite we can easily run, just loose executables, all of which require a GPU.
···
'';
passthru = {
-
inherit cudaSupport rocmSupport gpuTargets;
-
cudaPackages = effectiveCudaPackages;
+
inherit
+
cudaPackages
+
cudaSupport
+
rocmSupport
+
gpuTargets
+
;
testers = {
all =
let
···
# dynamic CUDA support is broken https://github.com/NixOS/nixpkgs/issues/239237
(cudaSupport && !static)
|| !(cudaSupport || rocmSupport) # At least one back-end enabled
-
|| (cudaSupport && rocmSupport) # Mutually exclusive
-
|| (cudaSupport && strings.versionOlder version "2.7.1" && cudaPackages_11 == null)
-
|| (rocmSupport && strings.versionOlder version "2.8.0");
+
|| (cudaSupport && rocmSupport); # Mutually exclusive
};
})
-62
pkgs/development/libraries/science/math/magma/releases.nix
···
# CUDA works around magma's wrappers and uses FindCUDAToolkit directly
[
{
-
version = "2.6.2";
-
hash = "sha256-dbVU2rAJA+LRC5cskT5Q5/iMvGLzrkMrWghsfk7aCnE=";
-
supportedGpuTargets = [
-
"700"
-
"701"
-
"702"
-
"703"
-
"704"
-
"705"
-
"801"
-
"802"
-
"803"
-
"805"
-
"810"
-
"900"
-
"902"
-
"904"
-
"906"
-
"908"
-
"909"
-
"90c"
-
"1010"
-
"1011"
-
"1012"
-
"1030"
-
"1031"
-
"1032"
-
"1033"
-
];
-
}
-
{
-
version = "2.7.2";
-
hash = "sha256-cpvBpw5RinQi/no6VFN6R0EDWne+M0n2bqxcNiV21WA=";
-
supportedGpuTargets = [
-
"700"
-
"701"
-
"702"
-
"703"
-
"704"
-
"705"
-
"801"
-
"802"
-
"803"
-
"805"
-
"810"
-
"900"
-
"902"
-
"904"
-
"906"
-
"908"
-
"909"
-
"90c"
-
"1010"
-
"1011"
-
"1012"
-
"1030"
-
"1031"
-
"1032"
-
"1033"
-
];
-
}
-
{
version = "2.9.0";
hash = "sha256-/3f9Nyaz3+w7+1V5CwZICqXMOEOWwts1xW/a5KgsZBw=";
supportedGpuTargets = [
+44
pkgs/development/python-modules/sat-tmp/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchhg,
+
setuptools,
+
wokkel,
+
}:
+
+
buildPythonPackage rec {
+
pname = "sat-tmp";
+
version = "0.8.0";
+
pyproject = true;
+
+
src = fetchhg {
+
url = "https://repos.goffi.org/sat_tmp";
+
rev = "v${version}";
+
hash = "sha256-CEy0/eaPK0nHzsiJq3m7edNyxzAhfwBaNhFhLS0azOw=";
+
};
+
+
build-system = [ setuptools ];
+
+
dependencies = [ wokkel ];
+
+
# Taken from import_test.py
+
pythonImportsCheck = [
+
"sat_tmp.wokkel.pubsub"
+
"sat_tmp.wokkel.rsm"
+
"sat_tmp.wokkel.mam"
+
];
+
+
# no pytest tests exist
+
+
meta = {
+
description = "Libervia temporary third party patches";
+
longDescription = ''
+
This module is used by Libervia project (formerly “Salut à Toi”) project to patch third party modules
+
when the patches are not yet available upstream. Patches are removed from this module once merged upstream.
+
'';
+
homepage = "https://libervia.org";
+
license = lib.licenses.agpl3Plus;
+
maintainers = [ lib.maintainers.ethancedwards8 ];
+
teams = [ lib.teams.ngi ];
+
};
+
}
+62
pkgs/development/python-modules/tsplib95/default.nix
···
+
{
+
# Basic
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
# Build system
+
setuptools,
+
# Dependencies
+
click,
+
deprecated,
+
networkx,
+
tabulate,
+
# Test
+
pytestCheckHook,
+
}:
+
+
buildPythonPackage rec {
+
pname = "tsplib95";
+
version = "0.7.1";
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
owner = "rhgrant10";
+
repo = "tsplib95";
+
tag = "v${version}";
+
hash = "sha256-rDKnfuauA9+mlgL6Prfz0uRP2rWxiQruXBj422/6Eak=";
+
};
+
+
build-system = [ setuptools ];
+
+
dependencies = [
+
click
+
deprecated
+
networkx
+
tabulate
+
];
+
+
# Remove deprecated pytest-runner
+
postPatch = ''
+
substituteInPlace setup.py \
+
--replace-fail "'pytest-runner'," ""
+
'';
+
+
pythonRelaxDeps = [
+
"networkx"
+
"tabulate"
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
];
+
+
pythonImportsCheck = [ "tsplib95" ];
+
+
meta = {
+
description = "Library for working with TSPLIB 95 files.";
+
homepage = "https://github.com/rhgrant10/tsplib95";
+
mainProgram = "tsplib95";
+
license = lib.licenses.asl20;
+
maintainers = with lib.maintainers; [ thattemperature ];
+
};
+
}
+3 -3
pkgs/development/web/nodejs/update.nix
···
}:
let
-
rev = "08bb3693621796b22511e56b8418737bd116d70b"; # should be the HEAD of nodejs/release-keys
+
rev = "901fc09b83c686693be51b3c9a13578929cbc1ab"; # should be the HEAD of nodejs/release-keys
pubring = fetchurl {
-
url = "https://github.com/nodejs/release-keys/raw/${rev}/gpg/pubring.kbx";
-
hash = "sha256-j7auIjCzRV7GoX8jdtqHFniwmWWTBoRNmRYWWPFSJ/k=";
+
url = "https://github.com/nodejs/release-keys/raw/${rev}/gpg-only-active-keys/pubring.kbx";
+
hash = "sha256-r/thHVLDlMVRN3Ahr5Apivy+h2IuvPm4QhYFoAmms3E=";
};
in
writeScript "update-nodejs" ''
+2 -2
pkgs/development/web/nodejs/v20.nix
···
in
buildNodejs {
inherit enableNpm;
-
version = "20.19.3";
-
sha256 = "99be7b9d268d48b93be568a23240398ceacb0782dc7055b9972305c000b0e292";
+
version = "20.19.4";
+
sha256 = "b87fd7106013d3906706913ffc63a4403715fbb272c4f83ff4338527353eec0f";
patches = [
./configure-emulator.patch
./configure-armv6-vfpv2.patch
+2 -2
pkgs/games/sgt-puzzles/default.nix
···
stdenv.mkDerivation rec {
pname = "sgt-puzzles";
-
version = "20250627.8314b03";
+
version = "20250714.880288c";
src = fetchurl {
url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-
hash = "sha256-av7ub9GnI+VwkTGafSB1J9YfCpjZOs2UMKVycMvzXwI=";
+
hash = "sha256-Ml25epg2ir0NqgPCQWpJnfqZU3w0p4pZCHC2esul1Cw=";
};
sgt-puzzles-menu = fetchurl {
+2 -2
pkgs/servers/nosql/apache-jena/binary.nix
···
stdenv.mkDerivation rec {
pname = "apache-jena";
-
version = "5.4.0";
+
version = "5.5.0";
src = fetchurl {
url = "mirror://apache/jena/binaries/apache-jena-${version}.tar.gz";
-
hash = "sha256-KQoBKPAetKI3ySWvsRn5yrtf5T5ldWiqKGrRDK8O/4Q=";
+
hash = "sha256-atRcW9U3PjX/E3QhTa6dBfvb19Rb3n6ROpLeGinGD1U=";
};
nativeBuildInputs = [
makeWrapper
+2 -2
pkgs/servers/web-apps/outline/default.nix
···
stdenv.mkDerivation rec {
pname = "outline";
-
version = "0.85.0";
+
version = "0.85.1";
src = fetchFromGitHub {
owner = "outline";
repo = "outline";
rev = "v${version}";
-
hash = "sha256-xzZQ0+eJOznZWpApbh9SUGuA5XiLnbhQS0qBLrLfk9Y=";
+
hash = "sha256-lErNsYzxqZYVl1MAQdMk062nBORjQGd3C+UbGbZMzvA=";
};
nativeBuildInputs = [
+2
pkgs/top-level/aliases.nix
···
ma1sd = throw "ma1sd was dropped as it is unmaintained"; # Added 2024-07-10
mac = monkeysAudio; # Added 2024-11-30
MACS2 = macs2; # Added 2023-06-12
+
magma_2_6_2 = throw "'magma_2_6_2' has been removed, use the latest 'magma' package instead."; # Added 2025-07-20
+
magma_2_7_2 = throw "'magma_2_7_2' has been removed, use the latest 'magma' package instead."; # Added 2025-07-20
mailcore2 = throw "'mailcore2' has been removed due to lack of upstream maintenance."; # Added 2025-06-09
mailctl = throw "mailctl has been renamed to oama"; # Added 2024-08-19
mailman-rss = throw "The mailman-rss package was dropped since it was unmaintained."; # Added 2024-06-21
+1 -1
pkgs/top-level/all-packages.nix
···
# standard BLAS and LAPACK.
openblasCompat = openblas.override { blas64 = false; };
-
inherit (callPackage ../development/libraries/science/math/magma { }) magma magma_2_7_2 magma_2_6_2;
+
inherit (callPackage ../development/libraries/science/math/magma { }) magma;
magma-cuda = magma.override {
cudaSupport = true;
+3 -3
pkgs/top-level/perl-packages.nix
···
};
AppSqitch = buildPerlModule {
-
version = "1.5.1";
+
version = "1.5.2";
pname = "App-Sqitch";
src = fetchurl {
-
url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.5.1.tar.gz";
-
hash = "sha256-Fqo0j8Sedfj/ZQMfBiLUGSkyMhsFvWUYq5lkYYVy1pg=";
+
url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.5.2.tar.gz";
+
hash = "sha256-horqXNSz6uDPrKiXK546ag+PmYiEjVNazstJVbAovNE=";
};
buildInputs = [
CaptureTiny
+1
pkgs/top-level/python-aliases.nix
···
sequoia = throw "python3Packages.sequoia was replaced by pysequoia - built from a dedicated repository, with a new API."; # added 2023-06-24
setuptools_dso = setuptools-dso; # added 2024-03-03
setuptools_scm = setuptools-scm; # added 2021-06-03
+
setuptoolsCheckHook = throw "The setuptoolsCheckHook has been removed, since the test command has been removed in setuptools 72.0."; # added 2024-08-06
setuptoolsTrial = setuptools-trial; # added 2023-11-11
sharkiqpy = sharkiq; # added 2022-05-21
shouldbe = throw "shouldbe was removed, because it was disabled on all python version since 3.8 and last updated in 2019."; # added 2024-05-12
+4
pkgs/top-level/python-packages.nix
···
sasmodels = callPackage ../development/python-modules/sasmodels { };
+
sat-tmp = callPackage ../development/python-modules/sat-tmp { };
+
satel-integra = callPackage ../development/python-modules/satel-integra { };
sbom2dot = callPackage ../development/python-modules/sbom2dot { };
···
tskit = callPackage ../development/python-modules/tskit { };
+
+
tsplib95 = callPackage ../development/python-modules/tsplib95 { };
ttach = callPackage ../development/python-modules/ttach { };