Merge 980e0fe75a into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2026-05-07 00:42:43 +00:00
committed by GitHub
330 changed files with 4356 additions and 1954 deletions
+2 -2
View File
@@ -377,8 +377,8 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
# VimPlugins
/pkgs/applications/editors/vim/plugins @NixOS/neovim
## nvim-treesitter
/pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix @figsoda
/pkgs/applications/editors/vim/plugins/utils/nvim-treesitter @figsoda
/pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix @NixOS/neovim @figsoda
/pkgs/applications/editors/vim/plugins/utils/nvim-treesitter @NixOS/neovim @figsoda
# VsCode Extensions
/pkgs/applications/editors/vscode/extensions
+25 -9
View File
@@ -2,6 +2,17 @@
const { promisify } = require('node:util')
const execFile = promisify(require('node:child_process').execFile)
/**
* @typedef {{
* subject: string,
* sha: string,
* author: { name: string, email: string },
* committer: { name: string, email: string}
* changedPaths: string[],
* changedPathSegments: Set<string>,
* }} Commit
*/
/**
* @param {{
* args: string[]
@@ -34,12 +45,7 @@ async function runGit({ args, repoPath, core, quiet }) {
* repoPath?: string,
* }} GetCommitMessagesForPRProps
*
* @returns {Promise<{
* subject: string,
* sha: string,
* changedPaths: string[],
* changedPathSegments: Set<string>,
* }[]>}
* @returns {Promise<Commit[]>}
*/
async function getCommitDetailsForPR({ core, pr, repoPath }) {
await runGit({
@@ -70,17 +76,25 @@ async function getCommitDetailsForPR({ core, pr, repoPath }) {
return Promise.all(
shas.map(async (sha) => {
// Subject first, then a blank line, then filenames.
// Subject, author name, author email, committer name, committer email (all tab-seperated)
// then a blank line, then filenames.
const result = (
await runGit({
args: ['log', '--format=%s', '--name-only', '-1', sha],
args: [
'log',
'--format=%s\t%aN\t%aE\t%cN\t%cE',
'--name-only',
'-1',
sha,
],
repoPath,
core,
quiet: true,
})
).stdout.split('\n')
const subject = result[0]
const [subject, authorName, authorEmail, committerName, committerEmail] =
result[0].split('\t')
const changedPaths = result.slice(2, -1)
@@ -91,6 +105,8 @@ async function getCommitDetailsForPR({ core, pr, repoPath }) {
return {
sha,
subject,
author: { name: authorName, email: authorEmail },
committer: { name: committerName, email: committerEmail },
changedPaths,
changedPathSegments,
}
+72 -4
View File
@@ -2,15 +2,17 @@
const { classify } = require('../supportedBranches.js')
const { getCommitDetailsForPR } = require('./get-pr-commit-details.js')
/** @typedef {import('./get-pr-commit-details.js').Commit} Commit */
/**
* @param {{
* github: InstanceType<import('@actions/github/lib/utils').GitHub>,
* context: import('@actions/github/lib/context').Context,
* context: typeof import('@actions/github').context,
* core: import('@actions/core'),
* repoPath?: string,
* }} CheckCommitMessagesProps
* }} LintCommitsProps
*/
async function checkCommitMessages({ github, context, core, repoPath }) {
async function lintCommits({ github, context, core, repoPath }) {
// This check should only be run when we have the pull_request context.
const pull_number = context.payload.pull_request?.number
if (!pull_number) {
@@ -48,6 +50,17 @@ async function checkCommitMessages({ github, context, core, repoPath }) {
const commits = await getCommitDetailsForPR({ core, pr, repoPath })
await checkCommitMessages({ commits, core })
await checkCommitMetadata({ commits, core })
}
/**
* @param {{
* commits: Commit[],
* core: import('@actions/core'),
* }} CheckCommitMessagesProps
*/
async function checkCommitMessages({ commits, core }) {
const failures = new Set()
const conventionalCommitTypes = [
@@ -152,4 +165,59 @@ async function checkCommitMessages({ github, context, core, repoPath }) {
}
}
module.exports = checkCommitMessages
/**
* @param {{
* commits: Commit[],
* core: import('@actions/core'),
* }} CheckGitFieldsProps
*/
async function checkCommitMetadata({ commits, core }) {
const failures = new Set()
/** @type {(s: string) => boolean} */
const isEmail = (s) => /^.+@.*$/.test(s)
for (const commit of commits) {
if (!commit.author.name) {
core.error(`Commit ${commit.sha} author's name field is missing`)
failures.add(commit.sha)
}
if (!commit.author.email || !isEmail(commit.author.email)) {
core.error(
`Commit ${commit.sha} author's email field is missing or invalid`,
)
failures.add(commit.sha)
}
if (!commit.committer.name) {
core.error(`Commit ${commit.sha} committer's name field is missing`)
failures.add(commit.sha)
}
if (!commit.committer.email || !isEmail(commit.committer.email)) {
core.error(
`Commit ${commit.sha} committer's email field is missing or invalid`,
)
failures.add(commit.sha)
}
if (!failures.has(commit.sha)) {
core.info(
`Commit ${commit.sha}'s git fields passed our automated checks!`,
)
}
}
if (failures.size !== 0) {
core.error(
'Please add the missing commit fields. ' +
'You can use the noreply email address generated for you by GitHub ' +
'(https://docs.github.com/en/account-and-profile/reference/email-addresses-reference#your-noreply-email-address) ' +
"if you'd like.",
)
core.setFailed('Committers: merging is discouraged.')
}
}
module.exports = lintCommits
+2
View File
@@ -310,6 +310,8 @@
If your SQLite database is corrupted, the migration might fail and require [manual intervention](https://github.com/louislam/uptime-kuma/issues/5281).
See the [migration guide](https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-To-v2) for more information.
- `incus-lts` has been updated from v6 to v7
- The `libcxxhardeningextensive` hardening flag has been **disabled** by default. Enabling it by default in 25.11 was unintentional and may have had a negative effect on performance in some cases. `libcxxhardeningfast` remains enabled by default.
- The packages `ibtool`, `actool` and `re-plistbuddy` have been added, providing reimplementations of the corresponding proprietary Apple tools. They are more compatible with the originals than the previously existing `xcbuild` package, and should enable more darwin software to be built from source.
+5
View File
@@ -1560,6 +1560,11 @@ lib.mapAttrs mkLicense (
fullName = "W3C Software Notice and License";
};
w3c-19980720 = {
spdxId = "W3C-19980720";
fullName = "W3C Software Notice and License (1998-07-20)";
};
wadalab = {
fullName = "Wadalab Font License";
url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab";
+58
View File
@@ -621,6 +621,64 @@ let
else
null;
};
nim = {
# See these locations for a known list of cpu/os idntifeiers:
# - https://nim-lang.org/docs/system.html#hostCPU
# - https://nim-lang.org/docs/system.html#hostOS
cpu =
if final.isAarch32 then
"arm"
else if final.isAarch64 then
"arm64"
else if final.isAlpha then
"alpha"
else if final.isAvr then
"avr"
else if final.isMips && final.is32Bit then
"mips"
else if final.isMips && final.is64Bit then
"mips64"
else if final.isMsp430 then
"msp430"
else if final.isPower && final.is32bit then
"powerpc"
else if final.isPower && final.is64bit then
"powerpc64"
else if final.isRiscV && final.is64bit then
"riscv64"
else if final.isSparc then
"sparc"
else if final.isx86_32 then
"i386"
else if final.isx86_64 then
"amd64"
else
null;
os =
if final.isAndroid then
"Android"
else if final.isDarwin then
"MacOSX"
else if final.isFreeBSD then
"FreeBSD"
else if final.isGenode then
"Genode"
else if final.isLinux then
"Linux"
else if final.isNetBSD then
"NetBSD"
else if final.isNone then
"Standalone"
else if final.isOpenBSD then
"OpenBSD"
else if final.isWindows then
"Windows"
else if final.isiOS then
"iOS"
else
null;
};
};
in
assert final.useAndroidPrebuilt -> final.isAndroid;
+36
View File
@@ -7699,6 +7699,12 @@
githubId = 22300113;
name = "Eduardo Espadeiro";
};
eduardofuncao = {
email = "eduardofuncao@hotmail.com";
github = "eduardofuncao";
githubId = 45571086;
name = "Eduardo Função";
};
eduarrrd = {
email = "e.bachmakov@gmail.com";
github = "eduarrrd";
@@ -9338,6 +9344,12 @@
githubId = 134872;
name = "Sergei Lukianov";
};
frostplexx = {
email = "daniel.inama02@gmail.com";
github = "frostplexx";
githubId = 62436912;
name = "Daniel Inama";
};
fryuni = {
name = "Luiz Ferraz";
email = "luiz@lferraz.com";
@@ -20896,6 +20908,13 @@
githubId = 686076;
name = "Vitalii Voloshyn";
};
panakotta00 = {
name = "Panakotta00";
github = "Panakotta00";
githubId = 16022267;
email = "panakotta00@gmail.com";
keys = [ { fingerprint = "ABF8 D539 0F8C F623 8F49 7338 BA6C E8AC 4B73 53B9"; } ];
};
pancaek = {
github = "pancaek";
githubId = 20342389;
@@ -24343,6 +24362,12 @@
githubId = 30531572;
name = "Robert James Hernandez";
};
sarowish = {
email = "berkeenercan@tutanota.com";
github = "sarowish";
githubId = 20581722;
name = "Berke Enercan";
};
sarunint = {
email = "nixpkgs@sarunint.com";
github = "sarunint";
@@ -25342,6 +25367,11 @@
github = "Simarra";
githubId = 14372987;
};
Simon-Weij = {
name = "Simon";
github = "Simon-Weij";
githubId = 175155691;
};
simonchatts = {
email = "code@chatts.net";
github = "simonchatts";
@@ -25821,6 +25851,12 @@
githubId = 6277322;
name = "Wei Tang";
};
sotormd = {
email = "sotormd@proton.me";
github = "sotormd";
githubId = 201147279;
name = "sotormd";
};
soupglasses = {
email = "sofi+git@mailbox.org";
github = "soupglasses";
@@ -32,6 +32,9 @@
};
};
# Disable the cloneConfig module. We have our own Service to generate a configuration.nix.
installer.cloneConfig = false;
networking = {
dhcpcd.enable = false;
useDHCP = false;
@@ -32,6 +32,9 @@
};
};
# Disable the cloneConfig module. We have our own Service to generate a configuration.nix.
installer.cloneConfig = false;
# Network
networking = {
dhcpcd.enable = false;
+3
View File
@@ -189,6 +189,9 @@ in
"/etc/kbd/keymaps" = lib.mkIf (!cfg.earlySetup) {
source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share/keymaps";
};
"/etc/kbd/consolefonts" = lib.mkIf (!cfg.earlySetup && cfg.font != null) {
source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share/consolefonts";
};
};
boot.initrd.systemd.additionalUpstreamUnits = [
"systemd-vconsole-setup.service"
+1 -1
View File
@@ -254,7 +254,7 @@ in
startSession = true;
allowNullPassword = true;
showMotd = true;
updateWtmp = true;
lastlog.enable = true;
};
chpasswd.rootOK = true;
};
+19 -7
View File
@@ -137,6 +137,7 @@ let
imports = [
(lib.mkRenamedOptionModule [ "enableKwallet" ] [ "kwallet" "enable" ])
(lib.mkRenamedOptionModule [ "u2fAuth" ] [ "u2f" "enable" ])
(lib.mkRenamedOptionModule [ "updateWtmp" ] [ "lastlog" "enable" ])
];
options = {
@@ -583,10 +584,21 @@ let
'';
};
updateWtmp = lib.mkOption {
default = false;
type = lib.types.bool;
description = "Whether to update {file}`/var/log/wtmp`.";
lastlog = {
enable = lib.mkOption {
default = false;
type = lib.types.bool;
description = "Whether to update {file}`/var/log/wtmp`.";
};
silent = lib.mkOption {
default = true;
example = false;
type = lib.types.bool;
description = ''
Whether to suppress the message showing the last login date.
'';
};
};
logFailures = lib.mkOption {
@@ -1521,11 +1533,11 @@ let
}
{
name = "lastlog";
enable = cfg.updateWtmp;
enable = cfg.lastlog.enable;
control = "required";
modulePath = "${pkgs.util-linux.lastlog}/lib/security/pam_lastlog2.so";
settings = {
silent = true;
inherit (cfg.lastlog) silent;
};
}
# Work around https://github.com/systemd/systemd/issues/8598
@@ -2549,7 +2561,7 @@ in
environment.etc = lib.mapAttrs' makePAMService enabledServices;
systemd =
lib.mkIf (lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services))
lib.mkIf (lib.any (service: service.lastlog.enable) (lib.attrValues config.security.pam.services))
{
tmpfiles.packages = [ pkgs.util-linux.lastlog ]; # /lib/tmpfiles.d/lastlog2-tmpfiles.conf
services.lastlog2-import = {
+11 -1
View File
@@ -10,6 +10,7 @@ let
concatMap
concatMapStringsSep
concatStringsSep
escapeShellArgs
filterAttrs
getAttr
isAttrs
@@ -275,6 +276,15 @@ in
];
description = "What actions can be performed with this SSH key. See ssh_filter_btrbk(1) for details";
};
extraArgs = mkOption {
type = listOf str;
description = "Additional arguments to pass to ssh_filter_btrbk";
default = [ ];
example = [
"--log"
"--restrict-path <path>"
];
};
};
});
default = [ ];
@@ -335,7 +345,7 @@ in
in
''command="${pkgs.util-linux}/bin/ionice -t -c ${toString ioniceClass} ${
optionalString (cfg.niceness >= 1) "${pkgs.coreutils}/bin/nice -n ${toString cfg.niceness}"
} ${pkgs.btrbk}/share/btrbk/scripts/ssh_filter_btrbk.sh ${sudo_doas_flag} ${options}" ${v.key}''
} ${pkgs.btrbk}/share/btrbk/scripts/ssh_filter_btrbk.sh ${sudo_doas_flag} ${options} ${escapeShellArgs v.extraArgs}" ${v.key}''
) cfg.sshAccess;
};
users.groups.btrbk = { };
@@ -288,6 +288,37 @@ in
Group = "lldap";
DynamicUser = true;
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
RemoveIPC = true;
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
RestrictAddressFamilies = [
"AF_UNIX"
"AF_INET"
"AF_INET6"
];
SystemCallFilter = [
"@system-service"
"~@privileged"
"~@resources"
];
SystemCallArchitectures = "native";
CapabilityBoundingSet = "";
LockPersonality = true;
NoNewPrivileges = true;
PrivateTmp = true;
PrivateDevices = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
ProtectProc = "invisible";
ProcSubset = "pid";
MemoryDenyWriteExecute = true;
};
inherit (cfg) environment;
};
+2 -2
View File
@@ -32,7 +32,7 @@ in
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
description = "Extra arguments to pass to IIO-Niri.";
description = "Extra arguments to pass to `iio-niri listen`.";
};
};
@@ -49,7 +49,7 @@ in
after = [ cfg.niriUnit ];
serviceConfig = {
Type = "simple";
ExecStart = "${getExe cfg.package} ${escapeShellArgs cfg.extraArgs}";
ExecStart = "${getExe cfg.package} listen ${escapeShellArgs cfg.extraArgs}";
Restart = "on-failure";
};
};
+28 -22
View File
@@ -50,7 +50,7 @@ in
signKeyPath = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = "DEPRECATED: Use `services.harmonia-dev.cache.signKeyPaths` instead. Path to the signing key to use for signing the cache";
description = "DEPRECATED: Use `services.harmonia.cache.signKeyPaths` instead. Path to the signing key to use for signing the cache";
};
signKeyPaths = lib.mkOption {
@@ -109,31 +109,30 @@ in
else
[ ];
nix.settings.extra-allowed-users = [ "harmonia" ];
users.users.harmonia = {
isSystemUser = true;
group = "harmonia";
services.harmonia.cache.settings = builtins.mapAttrs (_: v: lib.mkDefault v) {
bind = "[::]:5000";
workers = 4;
max_connection_rate = 256;
priority = 50;
};
users.groups.harmonia = { };
services.harmonia.cache.settings = builtins.mapAttrs (_: v: lib.mkDefault v) (
{
bind = "[::]:5000";
workers = 4;
max_connection_rate = 256;
priority = 50;
}
// lib.optionalAttrs daemonCfg.enable {
daemon_socket = daemonCfg.socketPath;
}
);
# Socket activation lets the service run with PrivateNetwork; the
# inherited fd keeps referring to the host netns.
systemd.sockets.harmonia = {
description = "harmonia binary cache socket";
wantedBy = [ "sockets.target" ];
socketConfig.ListenStream =
let
b = cacheCfg.settings.bind;
in
if lib.hasPrefix "unix:" b then lib.removePrefix "//" (lib.removePrefix "unix:" b) else b;
};
systemd.services.harmonia = {
description = "harmonia binary cache service";
requires = if daemonCfg.enable then [ "harmonia-daemon.service" ] else [ "nix-daemon.socket" ];
after = [ "network.target" ] ++ lib.optional daemonCfg.enable "harmonia-daemon.service";
wantedBy = [ "multi-user.target" ];
requires = [ "harmonia.socket" ];
after = [ "harmonia.socket" ];
environment = {
CONFIG_FILE = format.generate "harmonia.toml" cacheCfg.settings;
@@ -150,6 +149,9 @@ in
ExecStart = lib.getExe cfg.package;
User = "harmonia";
Group = "harmonia";
DynamicUser = true;
Type = "notify";
WatchdogSec = 15;
Restart = "on-failure";
PrivateUsers = true;
DeviceAllow = [ "" ];
@@ -174,7 +176,12 @@ in
ProtectProc = "invisible";
RestrictNamespaces = true;
SystemCallArchitectures = "native";
PrivateNetwork = false;
# accept(2) on the inherited fd is exempt from both restrictions.
PrivateNetwork = true;
RestrictAddressFamilies = [ "AF_UNIX" ];
IPAddressDeny = "any";
PrivateTmp = true;
PrivateDevices = true;
PrivateMounts = true;
@@ -182,7 +189,6 @@ in
ProtectSystem = "strict";
ProtectHome = true;
LockPersonality = true;
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
LimitNOFILE = 65536;
};
};
@@ -240,6 +240,10 @@ in
''
);
systemd.slices.system-reaction = {
description = "Reaction system slice";
};
systemd.services.reaction = {
description = "A daemon that scans program outputs for repeated patterns, and takes action.";
documentation = [ "https://reaction.ppom.me" ];
@@ -250,6 +254,7 @@ in
serviceConfig = {
Type = "simple";
KillMode = "mixed"; # for plugins
Slice = "system-reaction.slice";
User = if (!cfg.runAsRoot) then "reaction" else "root";
ExecStart = ''
${getExe cfg.package} start -c ${settingsDir}${
@@ -48,7 +48,7 @@ let
IFS=:
for i in $XDG_CURRENT_DESKTOP; do
case $i in
KDE|GNOME|Pantheon|Hyprland|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;;
KDE|GNOME|Pantheon|Hyprland|niri|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;;
*) ;;
esac
done
+11 -20
View File
@@ -39,8 +39,8 @@ let
dnsmasq
e2fsprogs
findutils
getent
gawk
getent
gnugrep
gnused
gnutar
@@ -50,33 +50,29 @@ let
iptables
iw
kmod
lego
libxfs
lvm2
lz4
lxcfs
lz4
nftables
qemu-utils
qemu_kvm
rsync
skopeo
squashfs-tools-ng
squashfsTools
sshfs
swtpm
systemd
thin-provisioning-tools
umoci
util-linux
virtiofsd
xdelta
xz
zstd
]
++ lib.optionals (lib.versionAtLeast cfg.package.version "6.3.0") [
skopeo
umoci
]
++ lib.optionals (lib.versionAtLeast cfg.package.version "6.11.0") [
lego
]
++ lib.optionals config.security.apparmor.enable [
apparmor-bin-utils
@@ -97,10 +93,6 @@ let
]
++ lib.optionals nvidiaEnabled [
libnvidia-container
]
++ lib.optionals cfg.bucketSupport [
minio
minio-client
];
# https://github.com/lxc/incus/blob/cff35a29ee3d7a2af1f937cbb6cf23776941854b/internal/server/instance/drivers/driver_qemu.go#L123
@@ -213,13 +205,6 @@ in
description = "The incus client package to use. This package is added to PATH.";
};
bucketSupport = lib.mkOption {
type = lib.types.bool;
description = "Enable bucket support using minio, which is an insecure and unmaintained S3 provider.";
default = if lib.versionAtLeast config.system.stateVersion "26.11" then false else null;
defaultText = lib.literalExpression ''if lib.versionAtLeast config.system.stateVersion "26.11" then false else null;'';
};
softDaemonRestart = lib.mkOption {
type = lib.types.bool;
default = true;
@@ -573,4 +558,10 @@ in
virtualisation.lxc.lxcfs.enable = true;
};
imports = [
(lib.mkRemovedOptionModule [ "virtualisation" "incus" "bucketSupport" ] ''
The option was only a temporary workaround to gate the insecure minio dependency until it could be dropped.
'')
];
}
+6 -2
View File
@@ -815,8 +815,12 @@ in
jool = import ./jool.nix { inherit pkgs runTest; };
jotta-cli = runTest ./jotta-cli.nix;
k3s = import ./rancher {
inherit pkgs runTest;
inherit pkgs;
inherit (pkgs) lib;
runTest = runTestOn [
"aarch64-linux"
"x86_64-linux"
];
rancherDistro = "k3s";
};
kafka = handleTest ./kafka { };
@@ -1369,7 +1373,7 @@ in
pulseaudio-tcp = runTest ./pulseaudio-tcp.nix;
pykms = runTest ./pykms.nix;
qbittorrent = runTest ./qbittorrent.nix;
qboot = handleTestOn [ "x86_64-linux" "i686-linux" ] ./qboot.nix { };
qboot = runTestOn [ "x86_64-linux" "i686-linux" ] ./qboot.nix;
qemu-vm-credentials-fwcfg = runTest {
imports = [ ./qemu-vm-credentials.nix ];
_module.args.mechanism = "fw_cfg";
+2 -2
View File
@@ -148,10 +148,10 @@ in
with subtest("Grafana alert arrives at ntfy"):
machine.succeed(
"curl -sf http://127.0.0.1:${toString ports.grafana}/api/alertmanager/grafana/config/api/v1/receivers/test"
"curl -sf http://127.0.0.1:${toString ports.grafana}/apis/notifications.alerting.grafana.app/v1beta1/namespaces/default/receivers/-/test"
" -u admin:admin"
" -X POST -H 'Content-Type: application/json'"
""" -d '{"receivers": [{"name": "grafana-to-ntfy", "grafana_managed_receiver_configs": [{"uid": "cp_webhook", "name": "webhook", "type": "webhook", "disableResolveMessage": false, "settings": {"url": "http://127.0.0.1:${toString ports.grafana-to-ntfy}", "httpMethod": "POST"}}]}]}'"""
""" -d '{"alert": {"labels": {"alertname": "test-alert"}, "annotations": {}}, "integration": {"type": "webhook", "settings": {"url": "http://127.0.0.1:${toString ports.grafana-to-ntfy}", "httpMethod": "POST"}}}'"""
)
# grep ensures we wait for the Grafana message specifically (see above)
resp = machine.wait_until_succeeds(
+5 -4
View File
@@ -142,11 +142,11 @@ in
server.succeed("systemctl start incus")
with subtest("[${image_id}] CPU limits can be managed"):
server.set_instance_config(instance_name, "limits.cpu 1", restart=True)
server.set_instance_config(instance_name, "limits.cpu=1", restart=True)
server.wait_instance_exec_success(instance_name, "nproc | grep '^1$'", timeout=90)
with subtest("[${image_id}] CPU limits can be hotplug changed"):
server.set_instance_config(instance_name, "limits.cpu 2")
server.set_instance_config(instance_name, "limits.cpu=2")
server.wait_instance_exec_success(instance_name, "nproc | grep '^2$'", timeout=90)
with subtest("[${image_id}] exec has a valid path"):
@@ -164,6 +164,7 @@ in
with subtest("[${image_id}] default configuration.nix is created on first boot"):
server.succeed(f"incus exec {instance_name} -- test -f /etc/nixos/configuration.nix")
server.succeed(f"incus exec {instance_name} -- grep -q 'default incus configuration' /etc/nixos/configuration.nix")
with subtest("[${image_id}] configuration.nix create service does not overwrite existing config"):
server.succeed(f"incus exec {instance_name} -- systemctl restart incus-create-nixos-config.service")
@@ -195,7 +196,7 @@ in
# TODO troubleshoot VM hot memory resizing which was introduced in 6.12
with subtest("[${image_id}] memory limits can be hotplug changed"):
server.set_instance_config(instance_name, "limits.memory 512MB")
server.set_instance_config(instance_name, "limits.memory=512MB")
# can't use lsmem since it sees the host's memory size
server.wait_instance_exec_success(instance_name, "grep 'MemTotal:[[:space:]]*500000 kB' /proc/meminfo", timeout=1)
@@ -244,7 +245,7 @@ in
# python
''
with subtest("[${image_id}] memory limits can be managed"):
server.set_instance_config(instance_name, "limits.memory 384MB", restart=True)
server.set_instance_config(instance_name, "limits.memory=384MB", restart=True)
lsmem = json.loads(server.instance_succeed(instance_name, "lsmem --json"))
memsize = lsmem["memory"][0]["size"]
assert memsize == "384M", f"failed to manage memory limit. {memsize} != 384M"
-1
View File
@@ -51,7 +51,6 @@ in
incus = {
enable = true;
package = cfg.package;
bucketSupport = false;
preseed = {
networks = [
+8 -6
View File
@@ -6,10 +6,7 @@
nodes.machine =
{ ... }:
{
# we abuse run0 for a quick login as root as to not require setting up accounts and passwords
security.pam.services.systemd-run0 = {
updateWtmp = true; # enable lastlog
};
imports = [ ../common/user-account.nix ];
};
testScript = ''
@@ -23,8 +20,13 @@
with subtest("Test lastlog entries are created by logins"):
machine.wait_for_unit("multi-user.target")
machine.succeed("run0 --pty true") # perform full login
print(machine.succeed("lastlog2 --active --user root"))
machine.wait_until_tty_matches("1", "login: ")
machine.send_chars("alice\n")
machine.wait_until_tty_matches("1", "Password: ")
machine.send_chars("foobar\n")
machine.wait_until_succeeds("pgrep -u alice bash")
print(machine.succeed("lastlog2 --active --user alice"))
machine.succeed("stat /var/lib/lastlog/lastlog2.db")
machine.send_chars("exit\n")
'';
}
+13 -15
View File
@@ -1,17 +1,15 @@
import ./make-test-python.nix (
{ pkgs, ... }:
{
name = "qboot";
{ pkgs, ... }:
{
name = "qboot";
nodes.machine =
{ ... }:
{
virtualisation.bios = pkgs.qboot;
};
nodes.machine =
{ ... }:
{
virtualisation.bios = pkgs.qboot;
};
testScript = ''
start_all()
machine.wait_for_unit("multi-user.target")
'';
}
)
testScript = ''
start_all()
machine.wait_for_unit("multi-user.target")
'';
}
+15 -10
View File
@@ -23,23 +23,23 @@
USER_1_CREDS="foobar"
'';
settings = {
turn = {
server = {
realm = "localhost";
interfaces = [
{
transport = "udp";
bind = "127.0.0.1:3478";
listen = "127.0.0.1:3478";
external = "127.0.0.1:3478";
}
{
transport = "tcp";
bind = "127.0.0.1:3478";
listen = "127.0.0.1:3478";
external = "127.0.0.1:3478";
}
];
};
auth.static_credentials.user1 = "$USER_1_CREDS";
auth."static-credentials".user1 = "$USER_1_CREDS";
};
};
};
@@ -47,15 +47,20 @@
testScript = # python
''
import json
start_all()
server.wait_for_unit('turn-rs.service')
server.wait_for_open_port(3000, "127.0.0.1")
server.wait_for_open_port(3478, "127.0.0.1")
info = server.succeed('curl http://localhost:3000/info')
jsonInfo = json.loads(info)
assert len(jsonInfo['interfaces']) == 2, f'Interfaces doesn\'t contain two entries:\n{json.dumps(jsonInfo, indent=2)}'
base = (
"${pkgs.coturn}/bin/turnutils_uclient"
" -L 127.0.0.1 -e 127.0.0.1 -u user1 -w foobar -X -y -t"
)
for extra in ["", "-s", "-t", "-t -s"]:
out = server.succeed(f"{base} {extra} 127.0.0.1")
assert "ERROR" not in out, f"turnutils_uclient errors:\n{out}"
assert "Total lost packets 0 (0.000000%)" in out, (
f"turnutils_uclient reported packet loss or did not finish:\n{out}"
)
config = server.succeed('cat /run/turn-rs/config.toml')
assert 'foobar' in config, f'Secrets are not properly injected:\n{config}'
@@ -7758,6 +7758,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
inlay-hints-nvim = buildVimPlugin {
pname = "inlay-hints.nvim";
version = "0.0.7";
src = fetchFromGitHub {
owner = "MysticalDevil";
repo = "inlay-hints.nvim";
tag = "v0.0.7";
hash = "sha256-136r1/SjBHcrKZZcFHZK7rFTcJHAReZqIzUrKsZStc4=";
};
meta.homepage = "https://github.com/MysticalDevil/inlay-hints.nvim";
meta.license = getLicenseFromSpdxId "Apache-2.0";
meta.hydraPlatforms = [ ];
};
instant-nvim = buildVimPlugin {
pname = "instant.nvim";
version = "0-unstable-2022-06-25";
@@ -2,14 +2,15 @@
vimUtils,
statix,
}:
vimUtils.buildVimPlugin rec {
inherit (statix) pname src meta;
version = "0.1.0";
postPatch = ''
# check that version is up to date
grep 'pname = "statix-vim"' -A 1 flake.nix \
| grep -F 'version = "${version}"'
vimUtils.buildVimPlugin {
inherit (statix)
pname
src
meta
version
;
postPatch = ''
cd vim-plugin
substituteInPlace ftplugin/nix.vim --replace-fail statix ${statix}/bin/statix
substituteInPlace plugin/statix.vim --replace-fail statix ${statix}/bin/statix
@@ -552,6 +552,7 @@ https://github.com/Darazaki/indent-o-matic/,,
https://github.com/arsham/indent-tools.nvim/,,
https://github.com/Yggdroot/indentLine/,,
https://github.com/ciaranm/inkpot/,,
https://github.com/MysticalDevil/inlay-hints/,,
https://github.com/jbyuki/instant.nvim/,,
https://github.com/pta2002/intellitab.nvim/,,
https://github.com/parsonsmatt/intero-neovim/,,
+3 -3
View File
@@ -151,9 +151,9 @@ rec {
unstable = fetchurl rec {
# NOTE: Don't forget to change the hash for staging as well.
version = "11.6";
version = "11.7";
url = "https://dl.winehq.org/wine/source/11.x/wine-${version}.tar.xz";
hash = "sha256-1J0WaXVHj2Ceapzb2goHxlo7eV4GH8RU0/EDTIKNGeA=";
hash = "sha256-sBqyHHn+3mx71THUadma/Z3N9T6ymviK2sajMutDX58=";
patches = [
# Also look for root certificates at $NIX_SSL_CERT_FILE
@@ -163,7 +163,7 @@ rec {
# see https://gitlab.winehq.org/wine/wine-staging
staging = fetchFromGitLab {
inherit version;
hash = "sha256-vI6GnnAqkyQSff9jrGYCTFR6fSIg2i9FT4mvbOlU1M4=";
hash = "sha256-EjAmwSZu/Q/8QfFERnV5iz1n5CsWPneBHflQDaD4LAc=";
domain = "gitlab.winehq.org";
owner = "wine";
repo = "wine-staging";
@@ -1,27 +0,0 @@
diff --git a/build.py b/build.py
index 06905a11..56d54a17 100644
--- a/build.py
+++ b/build.py
@@ -10,7 +10,7 @@ from optparse import OptionParser
import shutil
from multiprocessing import Pool
-from setuptools import sandbox
+import subprocess
from hscommon import sphinxgen
from hscommon.build import (
add_to_pythonpath,
@@ -118,7 +118,12 @@ def build_normpo():
def build_pe_modules():
print("Building PE Modules")
# Leverage setup.py to build modules
- sandbox.run_setup("setup.py", ["build_ext", "--inplace"])
+ result = subprocess.run(
+ [sys.executable, "setup.py", "build_ext", "--inplace"],
+ check=True,
+ )
+ if result.returncode != 0:
+ sys.exit("Error building PE modules. Please check the output above.")
def build_normal():
@@ -600,7 +600,7 @@ let
hash = "sha256-tJ//HE7o9R8nSQDGhi+MKXdNUwnkCZI++CzpAmFn2YY=";
})
]
++ lib.optionals (chromiumVersionAtLeast "146" && lib.versionOlder llvmVersion "23") [
++ lib.optionals (versionRange "146" "148" && lib.versionOlder llvmVersion "23") [
# clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=array-bounds'
(fetchpatch {
name = "chromium-146-revert-Update-fsanitizer=array-bounds-config.patch";
@@ -626,6 +626,47 @@ let
++ lib.optionals (chromiumVersionAtLeast "147" && lib.versionOlder llvmVersion "23") [
# clang++: error: unknown argument: '-fno-lifetime-dse'
./patches/chromium-147-llvm-22.patch
]
++ lib.optionals (chromiumVersionAtLeast "148" && lib.versionOlder llvmVersion "23") [
# clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=return'
(fetchpatch {
name = "chromium-148-revert-build-Add--fsanitizer=return-config.patch";
# https://chromium-review.googlesource.com/c/chromium/src/+/7629257
url = "https://chromium.googlesource.com/chromium/src/+/99ba1f5302f9433efdb4df302cb7b7de56c72e4c^!?format=TEXT";
decode = "base64 -d";
revert = true;
hash = "sha256-/qzzxwTdPMwIdsqD/G02S7kKHCj3QxECL+g1WYEaWmU=";
})
# ERROR Unresolved dependencies.
# //apps:apps(//build/toolchain/linux/unbundle:default)
# needs //build/config/compiler:sanitize_return(//build/toolchain/linux/unbundle:default)
(fetchpatch {
name = "chromium-148-revert-build-Enable--fsanitizer=return-config.patch";
# https://chromium-review.googlesource.com/c/chromium/src/+/7629258
url = "https://chromium.googlesource.com/chromium/src/+/9357bfbea03753fe52264c9ec36abe74f48cfef5^!?format=TEXT";
decode = "base64 -d";
revert = true;
hash = "sha256-14fTHNh3vGsf4KgeH8uLX+aK3lrjK0VKd1dfK1g7r0I=";
})
# [33377/55552] LINK ./mksnapshot
# ld.lld: error: undefined symbol: __sanitizer_set_death_callback
# https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/blob/148.0.7778.96-1/PKGBUILD#L168-174
(fetchpatch {
name = "archlinux-chromium-146-drop-unknown-clang-flag.patch";
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/raw/148.0.7778.96-1/chromium-146-drop-unknown-clang-flag.patch";
hash = "sha256-jR0G9z2R8VGl2tkB3u0368RyWM1J6qYXqNWwKkYd5zU=";
})
]
++ lib.optionals (chromiumVersionAtLeast "148") [
# ninja: error: '../../third_party/rust-toolchain/bin/rustc', needed by 'phony/default_for_rust_host_build_tools_rust_bin_inputs', missing and no known rule to make it
(fetchpatch {
name = "chromium-148-revert-Reland-build-use-tool-inputs-instead-of-siso-config-for-rust-actions.patch";
# https://chromium-review.googlesource.com/c/chromium/src/+/7719879
url = "https://chromium.googlesource.com/chromium/src/+/9193ab90af24c23ee983e0a8da9bed45712f0d26^!?format=TEXT";
decode = "base64 -d";
revert = true;
hash = "sha256-7xg8IZ2gO+Wtnv7lWLVE3lLpcmMgvtDtcWwUuMBzkrE=";
})
];
postPatch =
@@ -751,6 +792,12 @@ let
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py
''
# https://chromium-review.googlesource.com/c/chromium/src/+/7677517
# ninja: error: '../../third_party/gperf/cipd/bin/gperf', needed by 'gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc', missing and no known rule to make it
+ lib.optionalString (chromiumVersionAtLeast "148") ''
mkdir -p third_party/gperf/cipd/bin
ln -s "${pkgsBuildHost.gperf}/bin/gperf" third_party/gperf/cipd/bin/gperf
''
+
lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform && stdenv.hostPlatform.isAarch64)
''
@@ -903,6 +950,11 @@ let
# but lit_reactive_element.patch only patches the former.
+ lib.optionalString (chromiumVersionAtLeast "146") ''
rm -r third_party/node/node_modules/@lit/reactive-element/development
''
# Similarly, having @types/estree causes:
# error TS2352: Conversion of type 'Node[]' to type 'TSPropertySignature[]' [...]
+ lib.optionalString (chromiumVersionAtLeast "148") ''
rm -r third_party/node/node_modules/@types/estree
'';
configurePhase = ''
@@ -1,6 +1,6 @@
{
"chromium": {
"version": "147.0.7727.137",
"version": "148.0.7778.96",
"chromedriver": {
"version": "147.0.7727.138",
"hash_darwin": "sha256-d2dEPcR2mlfkL6XGhzMsgH/OwAI+yLXdS0dF4luPRfM=",
@@ -8,21 +8,21 @@
},
"deps": {
"depot_tools": {
"rev": "d0e1a84d5b0c3c556b0fbdbeb77908d9817e6bbb",
"hash": "sha256-mc/W0D9MEtNQPeJ66X9T28IB+pvYqDRXj9UYb9hLlvA="
"rev": "41c40cfaec7ee3bf0423c59925d8b23982a601f1",
"hash": "sha256-s9uvmYHCJKWnNhztmOPb+OHj/HbGo30PupwT4mHWjnM="
},
"gn": {
"version": "0-unstable-2026-03-05",
"rev": "d8c2f07d653520568da7cace755a87dad241b72d",
"hash": "sha256-3AfExm7NL5GJXyC5JCPbGC70D59doRfIZIgpt6MLy9Y="
"version": "0-unstable-2026-04-01",
"rev": "6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a",
"hash": "sha256-BTPD8WM1pVAMkFDlHekMdWFGyf63KdhKkKwsqikqoBQ="
},
"npmHash": "sha256-ByB1Ea5tduIJZXyydeBWsoS8OPABOgwHe+dNXRssdvc="
"npmHash": "sha256-JuVcY8iFRDWcPcP4Pg+qm5rnTXkiVfNsqSkXbDWqsE8="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "68ba233a543d25e75c30f1228dd3bafa2da96937",
"hash": "sha256-ktIkQRYWcyKnZKEhvxFGssMZ///ctd/Ue3VIYPvQzuM=",
"rev": "8625e066febc721e015ea99842da12901eb7ed73",
"hash": "sha256-coeBYfNPtiRRPuqoBRaxkTQI/a2pYNLI1slUdU1dZAc=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -32,8 +32,8 @@
},
"src/third_party/compiler-rt/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git",
"rev": "338a5c004c774a8927899b1f1c0c25a82d14510f",
"hash": "sha256-2lj4oF8IbJoPOBWwQ4ZfDQjPklxQyNyG5AcHazxEYcs="
"rev": "76287b5da8e155135536c8e3a67432d97d74fe3a",
"hash": "sha256-q6syHriTR8TCQSqTWbbAkVVK0a/i4wojdEGN7sWGxUY="
},
"src/third_party/libc++/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
@@ -47,13 +47,13 @@
},
"src/third_party/libunwind/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git",
"rev": "78884e23fe39cf5cc6987ea188a9b802d65a21c9",
"hash": "sha256-G8CtxDHzo8WtJ6qrtghXBoYCWwnDvXcAueEGzLc6C14="
"rev": "6ca46ff28e3578c57cbead6f233969eb3dabc176",
"hash": "sha256-JW4kqpVTCFDN4WZE2S5gEkX1O7eDycl+adm3KGlUoTU="
},
"src/third_party/llvm-libc/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git",
"rev": "c42ab4598a74eea2cf3efff9d44b22de155d41af",
"hash": "sha256-NJCdrmVyF80aQLtrdVgcWQadhj5w7nKrLShaZDen1GA="
"rev": "2a826f2fda3cf8d75b47cbc3bb1d9b244f13a6ab",
"hash": "sha256-OWe2lAT5XbADWuxHgg53lZiU0My/ys86FEXvn4zlVx0="
},
"src/chrome/test/data/perf/canvas_bench": {
"url": "https://chromium.googlesource.com/chromium/canvas_bench.git",
@@ -72,18 +72,18 @@
},
"src/docs/website": {
"url": "https://chromium.googlesource.com/website.git",
"rev": "d3b3b620e65ebaf511c6c8399b98a081cd644a66",
"hash": "sha256-xTGvhQUKOgt007WdvzN4eDpue8nheEMSV+Cl3Tnwviw="
"rev": "44319eca109f9678595924a90547c1f6650d8664",
"hash": "sha256-Trkan7bzRaLFlTkRfNGh7ssoZ3QpMh+mxQacsSM+d2I="
},
"src/media/cdm/api": {
"url": "https://chromium.googlesource.com/chromium/cdm.git",
"rev": "9920660ea0162f88c44a648de177e6f8cb976d07",
"hash": "sha256-rC/aV3vsFzXQ8BiOIK+OTXxTsgTLEEqC19KDAot1PTs="
"rev": "33c977516b3dfe5b065bc298aa74175e1999ab51",
"hash": "sha256-GsaRxLnsz1jrFZ3m5tv65d1dioG23uJnmfa+WD7XcFc="
},
"src/net/third_party/quiche/src": {
"url": "https://quiche.googlesource.com/quiche.git",
"rev": "435c98c0d9ab7a2b60592c5297635b4791745191",
"hash": "sha256-dhsq9kLRcXPxv0Ih6CQhDvLAGjh3EgSCl28Cxjk2aos="
"rev": "21ffbe4c7b717d00d2d768c259b5b330fd754ac3",
"hash": "sha256-yKMmfdSBvbB3T042TJbZ1Mw+y0kyfHP0knQVFWAFPTg="
},
"src/testing/libfuzzer/fuzzers/wasm_corpus": {
"url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git",
@@ -92,8 +92,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "534e0d1c1d0fcb4b57fd6a3fb9284cd14eaa28cd",
"hash": "sha256-o3UV8X27G7wpaDiKDzgMZN64+d9JQrvcQXpSybxi/h4="
"rev": "cc0e3572e8789f4a184dd9714a04b3d98ae81015",
"hash": "sha256-3KVTEBcnQTn99ccdKzylzUvua2jlS4g8/nfIDdLk6ug="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -107,8 +107,8 @@
},
"src/third_party/angle/third_party/VK-GL-CTS/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS",
"rev": "1cf4ed5bc0620ea514404609b1a2958c4518b86d",
"hash": "sha256-IZ5tVrld2+wDOWaYX93j2eLZJJs/EMW1+FtxhOeWi6w="
"rev": "f52e89f885064b9109501bca16c813bb29389993",
"hash": "sha256-3jx4QVR9nB3WggfrORGJGifmJQhAYVSPusa7RlR16qg="
},
"src/third_party/anonymous_tokens/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git",
@@ -127,48 +127,53 @@
},
"src/third_party/dav1d/libdav1d": {
"url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git",
"rev": "b546257f770768b2c88258c533da38b91a06f737",
"hash": "sha256-E3da/LJ8HNy1osExmupovqnL8JHgVNzPUCG5F8TJKXQ="
"rev": "d69235dd804b24c04ed05639cffcc912cd6cfd75",
"hash": "sha256-iKq6TYscIBK4ydv+0msNV3tcs82Ljk5ZNr954Qv2lII="
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "049880d58d6636a819168c00f44f8a4ed1e33e51",
"hash": "sha256-AHUos4ejvcsHTDdretkDHAeyLugtI6Jg14Hb9MbbPPs="
"rev": "19696dd088b8ed5804e2f02a8f83f5afdb3e99e3",
"hash": "sha256-ihnVPCk9412UzCmoABWVUhiGaIdIYxiYMkk43KDqpg8="
},
"src/third_party/dawn/third_party/glfw": {
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
"rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d",
"hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE="
"rev": "043378876a67b092f5d0d3d9748660121a336dd3",
"hash": "sha256-4QSD1/uxWfYZPMjShB0h639eqAfuBRXAVfOm6BbZCBs="
},
"src/third_party/dawn/third_party/dxc": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler",
"rev": "2888a8764a33693f5a351e0c4ec87f430ccb0f7a",
"hash": "sha256-xAe7SdcOeNiqNF6pYwMPMnd9/2yTWUlVdH1aCco/PEo="
"rev": "eb67a9085c758516d940e1ce3fed0acfb6518209",
"hash": "sha256-z+yIuVweIyLdOiZDRfSppjTRoYq8S93+JNUla4Umot8="
},
"src/third_party/dawn/third_party/dxheaders": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
"rev": "980971e835876dc0cde415e8f9bc646e64667bf7",
"hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA="
},
"src/third_party/dawn/third_party/khronos/OpenGL-Registry": {
"src/third_party/dawn/third_party/directx-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
"rev": "980971e835876dc0cde415e8f9bc646e64667bf7",
"hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA="
},
"src/third_party/dawn/third_party/OpenGL-Registry/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry",
"rev": "5bae8738b23d06968e7c3a41308568120943ae77",
"hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE="
},
"src/third_party/dawn/third_party/khronos/EGL-Registry": {
"src/third_party/dawn/third_party/EGL-Registry/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry",
"rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071",
"hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A="
},
"src/third_party/dawn/third_party/webgpu-cts": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts",
"rev": "d213d4b8dba58ca7a0685e30cfaf1d29f4fc5d5b",
"hash": "sha256-6YGLG9BMQbF2pjV40su5ddHMqDW8/CEwM3RDEc/t2kM="
"rev": "09fdb847d90d0b5bfe57068ce2eb9283cb77fc7f",
"hash": "sha256-eTAwnTiAHq8rmbw7u9nAwSuAlS5adStUJKfITlYkcgU="
},
"src/third_party/dawn/third_party/webgpu-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers",
"rev": "b2b04dde36a941434c88ccff7a730d7e464d638c",
"hash": "sha256-+/qXZNkm26p+becMVcyHNUPyEUCejSV+tyTGFE4ivak="
"rev": "7d3186c3dd2c708703524027b46b8703534ab3cc",
"hash": "sha256-yE3/mfhqc7YtVNg4f/nrUpuRUGRjOzdwl++vPvd+mvc="
},
"src/third_party/highway/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/highway.git",
@@ -182,13 +187,13 @@
},
"src/third_party/libpfm4/src": {
"url": "https://chromium.googlesource.com/external/git.code.sf.net/p/perfmon2/libpfm4.git",
"rev": "964baf9d35d5f88d8422f96d8a82c672042e7064",
"hash": "sha256-awpZ22rovLZWQkX/qog93vL4u2gJ+F3w5IGFNlZ0heQ="
"rev": "977a25bb3dfe45f653a6cee71ffaae9a92fc3095",
"hash": "sha256-t4LMG38GksMEM5DktyJ0qLUX1biXErQ57MaMtd7hoeo="
},
"src/third_party/boringssl/src": {
"url": "https://boringssl.googlesource.com/boringssl.git",
"rev": "27bc28d7f03fb9e3752980dce01de1a529236532",
"hash": "sha256-u+yvIPrdb9fWzJXJeIidUQ1MkKUx6sKLs7vdW68QhYc="
"rev": "d8be2b4a71155bf82da092ef543176351eeb59ff",
"hash": "sha256-fZc95YrREDbf0YcO6zahIjdX6TcRJANcH9MrkLIIIHw="
},
"src/third_party/breakpad/breakpad": {
"url": "https://chromium.googlesource.com/breakpad/breakpad.git",
@@ -202,13 +207,13 @@
},
"src/third_party/catapult": {
"url": "https://chromium.googlesource.com/catapult.git",
"rev": "e0ebf38a01214aba11f31daa1c743782def031d5",
"hash": "sha256-njtIcvzo2v9uDuP+AostVAZRTtH2vePsshF4cANHkxo="
"rev": "4f1d71f6841d210b3a06ab3ef2e2ed679af0ee56",
"hash": "sha256-aHlf8gw3KxbKoyyajP4w586iYybx7HSkcKtLcZIgiDE="
},
"src/third_party/catapult/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "22be07d7809409644d7e292d9495fa8a251d5f29",
"hash": "sha256-HR6iEDwmxFaiLi+h3MwsNfBOtBNbrKvmRNgMVog3A0Y="
"rev": "be48b5e3387780790ecc7723434b6ea6733bcc33",
"hash": "sha256-KcFUlQMltsMm4WlTVMLzZXfrvu67ffkKjmBcruwZye0="
},
"src/third_party/ced/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git",
@@ -232,8 +237,8 @@
},
"src/third_party/cpuinfo/src": {
"url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git",
"rev": "7364b490b5f78d58efe23ea76e74210fd6c3c76f",
"hash": "sha256-lB6e5zcw5UiwTOf+a+B35apXP5t1bxI6yOMiEeFwIwY="
"rev": "7607ca500436b37ad23fb8d18614bec7796b68a7",
"hash": "sha256-LnLtCMMRg+DwB7MijBdt/tmCKD/zN5y2oTgXlYw3hTg="
},
"src/third_party/crc32c/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git",
@@ -242,28 +247,28 @@
},
"src/third_party/cros_system_api": {
"url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git",
"rev": "1fb70b2851b292e48b612482a6d4d1b4c343c862",
"hash": "sha256-YBN8ogJn5Yup9GYrsE9UW15KPCuXbhD6hdqXWWCPD20="
"rev": "c27a09148de373889e5d2bf616c4e85a68050ae2",
"hash": "sha256-a/mAa1+if6B1FHe9crO8PDpc3o8M+CeIuXjXT0lwZOY="
},
"src/third_party/crossbench": {
"url": "https://chromium.googlesource.com/crossbench.git",
"rev": "19cee54825bc57215266f5b14a5874bfbbb57543",
"hash": "sha256-HVwX8E3/7yw7zUqZrptN1iSBWF4ls0FAzPObPagNYtM="
"rev": "c179f7919aade97c5cff64d14b9171736e7aaef9",
"hash": "sha256-Hxazf58z9imnGO1aj2NRtsQ+BYrfAuIuZscADpr1NVI="
},
"src/third_party/crossbench-web-tests": {
"url": "https://chromium.googlesource.com/chromium/web-tests.git",
"rev": "909ad1733b50f28510c840ebad7b878a5ce07715",
"hash": "sha256-RYih9sn4rIBnFW/styZaUl5H0A1eEy3//DypZjY6n0M="
"rev": "b19e4e52c33fb8a105c3fc99598b0b9b4bc59752",
"hash": "sha256-7vCQw91L2c97dnVdrJ53zL8hi0KZffDJJjk7GaG3b/U="
},
"src/third_party/depot_tools": {
"url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git",
"rev": "4ce8ba39a3488397a2d1494f167020f21de502f3",
"hash": "sha256-WTzjmLFjh1yDDEvYE7Qfx8aBxMLdATx14+Jprwh8ZgQ="
"rev": "41c40cfaec7ee3bf0423c59925d8b23982a601f1",
"hash": "sha256-s9uvmYHCJKWnNhztmOPb+OHj/HbGo30PupwT4mHWjnM="
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "854a02be78c7ffea104cb523636efa991bef5c5b",
"hash": "sha256-CzzUueh2QXX+ExGqh5+JpnDoWF8DiFDff7fWmC01xfg="
"rev": "6efd6eb1d85fd67fdcc2385c54fa56c524bec3f7",
"hash": "sha256-1pr3+RK519m+wtcacJB3PcDTL+qSHlOn1ctxpoLzTf8="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@@ -277,8 +282,8 @@
},
"src/third_party/eigen3/src": {
"url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git",
"rev": "54458cb39d1081d0cfe6b77ed8e085d457a4c921",
"hash": "sha256-WXxSe2AY3hSMXz7lHNeFefOHGGkdXoSQLC6FuOa6Exo="
"rev": "a3074053a614df7a3896cb4edbcba40222a5f549",
"hash": "sha256-9AHpSqemqdwXoMiP3hH1YuEd3+nrudeVGTpInw+8BU4="
},
"src/third_party/farmhash/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git",
@@ -292,13 +297,13 @@
},
"src/third_party/federated_compute/src": {
"url": "https://chromium.googlesource.com/external/github.com/google-parfait/federated-compute.git",
"rev": "271aa00f8aec5bc801f542710efe1b2f0b5f0ef9",
"hash": "sha256-6ZATBYkyIdGuhG0Ps2vr0DT9nq1LhW2XCWWAkiZh9Hc="
"rev": "eb170f645b270c7979edb863fd2cf8edab2b2fd1",
"hash": "sha256-Cp0WQBbqWvPdrKCMQhH4Z6zl6YlIPLjafWZEwdkYWlc="
},
"src/third_party/ffmpeg": {
"url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git",
"rev": "946d97db8d906277085e361892b7efda5152e2f1",
"hash": "sha256-UxrmVqfX6TvFy1yxWXIQbd3ABD3jEAtDesgfnbJGg1E="
"rev": "b5e18fb9da84e26ceef30d4e4886696bf59337c0",
"hash": "sha256-JHAicFKBvtkwmZPRBKYPT6JVqYqF8hyXxU0H7kfgCBs="
},
"src/third_party/flac": {
"url": "https://chromium.googlesource.com/chromium/deps/flac.git",
@@ -327,18 +332,18 @@
},
"src/third_party/freetype/src": {
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
"rev": "45556a19aab9502b91d6f30931e0cb5256f683f8",
"hash": "sha256-eMt2orPeG81o42O/HU+4B5b/G62TYAVIEeWwOmiML14="
"rev": "99b479dc34728936b006679a31e12b8cf432fc55",
"hash": "sha256-H5RzBFYWIp/QYKyeBM2wfuX7FvXHPbhCAp7qne5Zvhw="
},
"src/third_party/fxdiv/src": {
"url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git",
"rev": "63058eff77e11aa15bf531df5dd34395ec3017c8",
"hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38="
},
"src/third_party/harfbuzz-ng/src": {
"src/third_party/harfbuzz/src": {
"url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
"rev": "5d4e96ad8d00fc871ffa17707b2ca08fa850e7d6",
"hash": "sha256-9ef1P2JVJc7ZiP7TObFOxJbccCLsEgjhj+Z/ooEAGiI="
"rev": "4fc96139259ebc35f40118e0382ac8037d928e5c",
"hash": "sha256-/RT2OPWFiVwFqmNS4o+gE0JrcVO1cQDkCkgrSEe7BzE="
},
"src/third_party/ink/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink.git",
@@ -347,13 +352,13 @@
},
"src/third_party/ink_stroke_modeler/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git",
"rev": "3fa5129ed1ae6f8b2ec4e9b60fa5d08cc81e2d78",
"hash": "sha256-/TBxFsmLH1h3kfeE90LhR0RWJ3NrCTiLKklcaPbean8="
"rev": "da42d439389c90ec7574f0381ec53e7f5be0c2eb",
"hash": "sha256-W5HgVe0v9O/EuhpKMHp83PLq4p6cuBul3QUGLYdF6rY="
},
"src/third_party/instrumented_libs": {
"url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git",
"rev": "69015643b3f68dbd438c010439c59adc52cac808",
"hash": "sha256-8kokdsnn5jD9KgM/6g0NuITBbKkGXWEM4BMr1nCrfdU="
"rev": "e8cb570a9a2ee9128e2214c73417ad2a3c47780b",
"hash": "sha256-5cb9qhSEzb941pF5HH0Br+x9wEH7MiGwQttvErb2mZo="
},
"src/third_party/emoji-segmenter/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git",
@@ -387,8 +392,8 @@
},
"src/third_party/icu": {
"url": "https://chromium.googlesource.com/chromium/deps/icu.git",
"rev": "ee5f27adc28bd3f15b2c293f726d14d2e336cbd5",
"hash": "sha256-UQWSAekvYc1bTEAEQTPdeB406Uqb0mptpnGRZSaLewo="
"rev": "ff7995a708a10ab44db101358083c7f74752da9f",
"hash": "sha256-yQ55MGzqkVkp/arTlmKqySBvQFtaPaBk9UUAFE0imhE="
},
"src/third_party/nlohmann_json/src": {
"url": "https://chromium.googlesource.com/external/github.com/nlohmann/json.git",
@@ -402,8 +407,8 @@
},
"src/third_party/leveldatabase/src": {
"url": "https://chromium.googlesource.com/external/leveldb.git",
"rev": "4ee78d7ea98330f7d7599c42576ca99e3c6ff9c5",
"hash": "sha256-ANtMVRZmW6iOjDVn2y15ak2fTagFTTaz1Se6flUHL8w="
"rev": "7ee830d02b623e8ffe0b95d59a74db1e58da04c5",
"hash": "sha256-a1fcVI9Vsm1qE17Fnx5UxwOy4ZFMMJ0OKwNs/gZHYQI="
},
"src/third_party/libFuzzer/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git",
@@ -412,8 +417,8 @@
},
"src/third_party/fuzztest/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git",
"rev": "1f7726d61f7afa9aca1198a9395ede472ed70366",
"hash": "sha256-RhJ676e6Kr/muR0ZCfZOAcs3kfoK7CjG2cwOpYG/JCY="
"rev": "800c545cf9d6e9c01328a1974f93a7e6564a74fd",
"hash": "sha256-Pvz+CWTBcWE0N0yfNGZhXDgUrGeIaCNfEjP1jYmF6G0="
},
"src/third_party/domato/src": {
"url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git",
@@ -427,13 +432,13 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "ab9876a5983227865ee26e91caac87c6b8750e27",
"hash": "sha256-V40GL7fKj1qratP0KcrhedEPDIsg0XVb3ha5nroM0ws="
"rev": "b63f30b6d30028a3d7d9c5223def8f3ad97dcc4c",
"hash": "sha256-LaBEcVcSB8WB9ZNRgPSiGaKdQL5f3wll2sPb9OhN5SE="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
"rev": "c05daf3e2e6d83f2a359ab97094ce042944020a9",
"hash": "sha256-vVKAgvPdba0Lt3BUStOQsILlhiHNJeIv1jS9691+a80="
"rev": "7466a44ac80893803d4a7168b98dc6cd02d1fe2d",
"hash": "sha256-x1MRNtGLmwlRNenoQKz2Bgm3J5eHlNiJZtzhT9lttmk="
},
"src/third_party/nearby/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git",
@@ -487,8 +492,8 @@
},
"src/third_party/cros-components/src": {
"url": "https://chromium.googlesource.com/external/google3/cros_components.git",
"rev": "ddb611c60142c72be3719e753a42fb434b6f2458",
"hash": "sha256-M/b7PKEu+mFxsEeedJeppkwl8aZnX/932zqWlrCx8Y4="
"rev": "fb512780dcc5ba4b5be9e8a3118919002077c760",
"hash": "sha256-7wx73HZ6aqXQvLxwX6XnJAPefi/t47gIhvDH3FRT1j4="
},
"src/third_party/libdrm/src": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git",
@@ -497,8 +502,8 @@
},
"src/third_party/expat/src": {
"url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git",
"rev": "69d6c054c1bd5258c2a13405a7f5628c72c177c2",
"hash": "sha256-qe8O7otL6YcDDBx2DS/+c5mWIS8Rf8RQXVtLFMIAeyk="
"rev": "f31adfd584b7f6c50bbf4d22eb928538ffc9145a",
"hash": "sha256-tLz4RejYQ/kFXhsWTduuGcinfUkqxYKPCpsou+WlvBc="
},
"src/third_party/libipp/libipp": {
"url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git",
@@ -542,13 +547,13 @@
},
"src/third_party/libvpx/source/libvpx": {
"url": "https://chromium.googlesource.com/webm/libvpx.git",
"rev": "aec2a6f1cd6e3d9e8cf5d9682fcb8a442799bd22",
"hash": "sha256-PNreh1VisA46I0WZqq8wZRCjbQRiVMxbL5Gl2Bfzo3M="
"rev": "47ac1ec7f3de7d7cb3d070844c427c8f1fa9d6fc",
"hash": "sha256-RyYnkLYafiS6kQKeOmzohtxFRXudDzgEmQkG+qKHozc="
},
"src/third_party/libwebm/source": {
"url": "https://chromium.googlesource.com/webm/libwebm.git",
"rev": "f2a982d748b80586ae53b89a2e6ebbc305848b8c",
"hash": "sha256-SxDGt7nPVkSxwRF/lMmcch1h+C2Dyh6GZUXoZjnXWb4="
"rev": "b7a1e4767fbb02ad467f45ba378e858e897028da",
"hash": "sha256-Lzfs15Us8MDDQYvLRVf6xKg9A76aXPnTukx/A8Mf7rw="
},
"src/third_party/libwebp/src": {
"url": "https://chromium.googlesource.com/webm/libwebp.git",
@@ -577,8 +582,8 @@
},
"src/third_party/nasm": {
"url": "https://chromium.googlesource.com/chromium/deps/nasm.git",
"rev": "af5eeeb054bebadfbb79c7bcd100a95e2ad4525f",
"hash": "sha256-vH3OUzfLZbaPY4DMAvSW0jKYRJmOa7aE8EfIJtZ1/Xs="
"rev": "45252858722aad12e545819b2d0f370eb865431b",
"hash": "sha256-0KsHYi76IaVNwk0dBhem2AnUXd9PpeS+jUsY+zPmeJ8="
},
"src/third_party/neon_2_sse/src": {
"url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git",
@@ -592,8 +597,8 @@
},
"src/third_party/openscreen/src": {
"url": "https://chromium.googlesource.com/openscreen",
"rev": "571620ad60afc9f317d77605c65335f5412aada2",
"hash": "sha256-ktR3EpmkjueEmEip2oUTcSclVkUlPi/7+qmhElG+Bzs="
"rev": "448a19d1f24e0f8ce85ad0c1c6a50cf370ae69d7",
"hash": "sha256-hRDFnoqAH4HoWZ3oTWlzNge2nwlxpUC/GEq0MQVzBw8="
},
"src/third_party/openscreen/src/buildtools": {
"url": "https://chromium.googlesource.com/chromium/src/buildtools",
@@ -607,13 +612,13 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "e5bafd3be58c26673576fd5bb5cbf413b485de5b",
"hash": "sha256-umtG2n6kWYD0hT44GpmnwUVztkZ0RtQDV0h0+4CTC9w="
"rev": "a78c62d93a8f514ea2cd98a70bd1d21226be9d93",
"hash": "sha256-qd3Oa/JFzoI5hKDY2/OQAzdr2z9srUj0H6oKz0R516U="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
"rev": "728eb5626a3bc701d044dd16d9cd289360ff47c3",
"hash": "sha256-LeGGkzSMfVXuioVJmRi/TjMYgG/0YrK7PckBJTejSHU="
"rev": "46432bb2a7a60e10fcee516f1692e6846d098a8d",
"hash": "sha256-jVih4xWota4SZQi4yEtaIP+4qgD03OsELt2aaulIXik="
},
"src/third_party/protobuf-javascript/src": {
"url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript",
@@ -627,8 +632,8 @@
},
"src/third_party/pyelftools": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git",
"rev": "19b3e610c86fcadb837d252c794cb5e8008826ae",
"hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4="
"rev": "8047437615d66d3267ac0134834b80e70639d572",
"hash": "sha256-rEnt08K90/Psfa+SQgTUG3YGrhp4/udXG9VKIwPM7pk="
},
"src/third_party/quic_trace/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git",
@@ -657,8 +662,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "6e0fbe154ccaf018b2dd1f0e42eec285e7d79d00",
"hash": "sha256-oqfNOSQB+5sbAnw4tPBXn22rk6Ai5b2aZNLJUyM181k="
"rev": "afe8b760ada5128164f9826866b4381a3463df41",
"hash": "sha256-HsKHffZWTls362kjokxzdhaxb/xJD1g70VHGk9l6GVM="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -672,13 +677,13 @@
},
"src/third_party/sqlite/src": {
"url": "https://chromium.googlesource.com/chromium/deps/sqlite.git",
"rev": "727f7c8991f7b622a8b5c833cff99871a8c2cd8e",
"hash": "sha256-L42hkqcsuyMkNUeornIul7AYNgachkYpfNFE8H/VeVc="
"rev": "508ab21dc25702ed6690c4dd77da209a6bcd1239",
"hash": "sha256-SfvLfBKdPjFvZ7CzUeFMcyoHdCzQgNRQwZyzb6MRtJg="
},
"src/third_party/swiftshader": {
"url": "https://swiftshader.googlesource.com/SwiftShader.git",
"rev": "313545f85af72f954820e54f4110cda591a6cf7b",
"hash": "sha256-EGgC5nK68Wk0b466K9yvLlGMxBd/CeI+KTgyoE+x6DY="
"rev": "89556131bf9d48af3c5c9fbb9a3322e706da89a3",
"hash": "sha256-h0utcwCnzwhFufggkBNeA674x2Kqwu4sz3jQ/9eoQv0="
},
"src/third_party/text-fragments-polyfill/src": {
"url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git",
@@ -687,23 +692,23 @@
},
"src/third_party/tflite/src": {
"url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git",
"rev": "b476481b77f6e939e813ac93df22a4a6e7a3dd57",
"hash": "sha256-oKLFjed5sbYjEX5kddkAEdhkVOwFf5ddEUlOS55zLWE="
"rev": "de8d7f65b6eb670e4dad0225d0d6f99bebaab559",
"hash": "sha256-r2b+/VBffxsh1sRM2xcFiBx9K6GD6FsaQXpfFMBFUag="
},
"src/third_party/litert/src": {
"url": "https://chromium.googlesource.com/external/github.com/google-ai-edge/LiteRT.git",
"rev": "82bf3bef8a04a416bcb9d1cca5bdd51a6b3ab4ba",
"hash": "sha256-uMBuoGQIgRhmc8KJqLUnf13XK9tveuS0/OzzwKHKNUw="
"rev": "588075c77c6895cce6397d41d2890b1aa0a14372",
"hash": "sha256-rcEPZNSV0DiDrmoBCtJ07wFzzpmpM93jG4jYaEdNWvI="
},
"src/third_party/vulkan-deps": {
"url": "https://chromium.googlesource.com/vulkan-deps",
"rev": "4a9f2cec3d5e7cb4810cf84716f597aff768ffa4",
"hash": "sha256-PyBxtzesZR/5jrWt96DxK7QwRoG8qhzWzbiE1fqdqkI="
"rev": "0ced1107c62836f439f684a5696c4bd69e09fce3",
"hash": "sha256-VOyN618wzyyO2Wh18gCnw+FCr/NbegX3A/54MClyhwc="
},
"src/third_party/glslang/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang",
"rev": "b11b03839c940685b0201026bd2a4ffef1d5a4b8",
"hash": "sha256-FjUqETWBiI91hq5wGomPmCeW7K4k9kn5r74pUP0QFNo="
"rev": "715c8500e7cd67f2eba9e60e98852a1ed49d2f15",
"hash": "sha256-vSbMdTjlRVvYLi5ZvTVmfe76oAQ4AhqyD+ohvkvIYIs="
},
"src/third_party/spirv-cross/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross",
@@ -712,38 +717,38 @@
},
"src/third_party/spirv-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers",
"rev": "f88a2d766840fc825af1fc065977953ba1fa4a91",
"hash": "sha256-VhcGQ+Tr9sH0ZEIk0oJsXh8MvCo2qpA2W3i8YVCwKaE="
"rev": "6dd7ba990830f7c15ac1345ff3b43ef6ffdad216",
"hash": "sha256-UKBVs2s05hP+paPq1dZFaUEQQ9Kx9acHxYUyJVx22eY="
},
"src/third_party/spirv-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools",
"rev": "7d8d9e58c384949f1615c069d4c9346bf51b9738",
"hash": "sha256-AxS7vHw3RoXZLayWEDKBU7H0M1BZ9RMVdIsD/4rYap8="
"rev": "2d14d2e76aa7de72404b17078eda15c20a6a0389",
"hash": "sha256-8Xtzq8WOdFEw+uEJqMW39LLHt2m165K9OJsIFZuifoM="
},
"src/third_party/vulkan-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers",
"rev": "74d8a6cb930c68ef617b202c3ff3c59d919e086b",
"hash": "sha256-bZKNFiZMVYDxa6RKb1c/GxIR+eEFQAyYNaEptzQW5TE="
"rev": "afe9eb980aa928a66d1c9c06f38c55dd59868720",
"hash": "sha256-/yolWlC7ruRiJ0gSdCoSlqL9+j2uJAh+o+H0OG37pq4="
},
"src/third_party/vulkan-loader/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader",
"rev": "363f465abadab0a8dcfc5c85d2c691e9b0b788d6",
"hash": "sha256-Zk2QyKu19g52vzGpNq5Qm+mlEgqk4jCFn/861eK8+64="
"rev": "df84d2be47457a8dfd7eb66f8c2b031683bd1ba5",
"hash": "sha256-8ParcURRRU3eS9Oej/vHTwOwvYy3HsVJsKh2wQLKUgM="
},
"src/third_party/vulkan-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools",
"rev": "59f963ce1b1d16cc92137a241a0fe98d637d21f4",
"hash": "sha256-Hh0N4N4XN7p7PBKk2uCU5g9TO9vmxJbomC1Gvf5oDZc="
"rev": "90bf5bc4fd8bea0d300f6564af256a51a34124b8",
"hash": "sha256-tmTD/waVX/duaKXvj0FNUS+ncL1agM73kK7pEfHEsSA="
},
"src/third_party/vulkan-utility-libraries/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries",
"rev": "20fb10eb1ec08ccd5cacec32b7df1b0e99e48a0c",
"hash": "sha256-4XsQN94JsQXFGwJKp3W2gdTCCxUZrpCKiRVXzxL+Qs0="
"rev": "48b1fd1a65e436bae806cb6180c9338846b9de97",
"hash": "sha256-B3GXmwJEvnGcER5DJt0FGrwqNi3t8iV6VgX8uOrExlU="
},
"src/third_party/vulkan-validation-layers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers",
"rev": "20948525099c0ea030ec5b149c809e48010be4ed",
"hash": "sha256-H05Ms2a770ApiCz5ERiIm8g893TJG9gRRuM9Qr4bj60="
"rev": "ac146eef210b6f52b842111c5d3419ab32a7293f",
"hash": "sha256-GqjVHxtda1a47+9G+nqh4qNMJmQaUdZNMUGQ8kAIIkk="
},
"src/third_party/vulkan_memory_allocator": {
"url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
@@ -777,23 +782,23 @@
},
"src/third_party/webgl/src": {
"url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git",
"rev": "8fc2a0dff53abfc0cf2c140d8420759b2036cc54",
"hash": "sha256-cU7kfmxgaem6rPHGW+VwjxfKe7c0u1tCc98MQjsp5l8="
"rev": "216b10fafd3f6a900c715a8c758a4c7f9883b030",
"hash": "sha256-Aax2hr/9Zq6Avk+TMU1OMBLGshUL6hyRTX6eoOQesqM="
},
"src/third_party/webgpu-cts/src": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git",
"rev": "54441b8d176b12a5e2b01b8db78191ace56d7f34",
"hash": "sha256-gGvvKMTUJGm4ZwM7C1xTY1DKskCmlrCpSl3HLgVZqoY="
"rev": "09fdb847d90d0b5bfe57068ce2eb9283cb77fc7f",
"hash": "sha256-eTAwnTiAHq8rmbw7u9nAwSuAlS5adStUJKfITlYkcgU="
},
"src/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "22be07d7809409644d7e292d9495fa8a251d5f29",
"hash": "sha256-HR6iEDwmxFaiLi+h3MwsNfBOtBNbrKvmRNgMVog3A0Y="
"rev": "be48b5e3387780790ecc7723434b6ea6733bcc33",
"hash": "sha256-KcFUlQMltsMm4WlTVMLzZXfrvu67ffkKjmBcruwZye0="
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "28452dff1bf86fec881a47949d4dedd4a2fe1f09",
"hash": "sha256-KBz94jvdVgxWuTuSoeHKNdY7wEJDGqG3xVsSVB3ubRQ="
"rev": "9600e77d854090669817d22aa2fc941ee92aaacd",
"hash": "sha256-jTJv53qt971Va5q6MaULysYiChBVmsFYxG9fzkcE0ak="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -805,25 +810,20 @@
"rev": "b65be9e699847c975440108a42f05412cc7fddac",
"hash": "sha256-PySen9syu0OshtlHAZw666FeSQXdnsV8nlW9RmxgapM="
},
"src/third_party/xdg-utils": {
"url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git",
"rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44",
"hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U="
},
"src/third_party/xnnpack/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git",
"rev": "abd8e60edf09db5f5ba8e7fa2f1fcab0ae0807e1",
"hash": "sha256-VdrA2UwQ7/kHbnlIXBmga3ZjAqWaxCDQcDAssbLrh/M="
"rev": "1812bbe2928a32f26c5e48466712ba6460cf290c",
"hash": "sha256-xal21wjgeql3MjQXw6F1ezcRsnhVKod5jv0nYWroJ1o="
},
"src/third_party/zstd/src": {
"url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git",
"rev": "1168da0e567960d50cba1b58c9b0ba047ece4733",
"hash": "sha256-T2CwRpL/XT/OsBrRfxC8kNIm43U4qPMBju8Ug13Qebo="
"rev": "3ae099b48dfcfe02b1b3ba81ab85457f8a922e9f",
"hash": "sha256-futF0sM6z9HAl6AMJwUULBRByN92FTBjRIzYb2vBFGg="
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "c152c31c55cd54fd239772532a86c802d95b4617",
"hash": "sha256-7qEPh9l94LqyaA9qW0ZfFmmFyMNTjTJaeunLgDhtFuM="
"rev": "ddc9a95905de5268332a8f0216dc2bc67d26e829",
"hash": "sha256-x2FGL3J+JaWO1m6jBrcayR7Vlz90fYEAuufm4PULYyM="
}
}
},
@@ -72,11 +72,7 @@ for (const attr_path of Object.keys(lockfile)) {
DEPS: {},
}
// The DEPS schema was modified in https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/7007552
// and https://chromium-review.googlesource.com/c/chromium/src/+/7683270. And while the breaking change itself got
// backported to M147 (and M146 fwiw), the necessary depot_tools roll was not.
// So for now we simply resort to whatever depot_tools is currently pinned on chromium's main branch.
const depot_tools = await fetch_depot_tools(/* chromium_rev */ 'main', lockfile_initial[attr_path].deps.depot_tools)
const depot_tools = await fetch_depot_tools(chromium_rev, lockfile_initial[attr_path].deps.depot_tools)
lockfile[attr_path].deps.depot_tools = {
rev: depot_tools.rev,
hash: depot_tools.hash,
@@ -4,7 +4,7 @@
makeWrapper,
makeDesktopItem,
fetchurl,
openjdk17-bootstrap,
jdk25,
jdk11,
jdk8,
writeScript,
@@ -114,10 +114,10 @@ in
{
charles5 = (
generic {
version = "5.0.3";
hash = "sha256-SiZ15ekuAW7AyXBHN5Zel4ZFL/4oNy1td64NQ0GNUhE=";
version = "5.1";
hash = "sha256-gExmuh1A21QGkfcmcwPPgk51Ag7Ced9kPTHha2ofbKg=";
platform = "_x86_64";
jdk = openjdk17-bootstrap;
jdk = jdk25;
updateScript = writeScript "update-charles" ''
#!/usr/bin/env nix-shell
@@ -49,7 +49,6 @@
libgbm,
nspr,
nss,
openssl_1_1,
pango,
systemdLibs,
libappindicator-gtk3,
@@ -231,11 +230,10 @@ stdenv.mkDerivation (finalAttrs: {
nss
]
# The new distro layout ships prebuilt `.node` modules:
# discord_dispatch is linked against openssl 1.1, discord_voice against libpulseaudio
++ lib.optionals isDistro [
openssl_1_1
libpulseaudio
];
# discord_dispatch is linked against openssl 1.1, discord_voice against libpulseaudio.
# Ignore the missing dependency on insecure openssl_1_1: discord_dispatch is
# effectively unused in practice.
++ lib.optionals isDistro [ libpulseaudio ];
strictDeps = true;
@@ -243,6 +241,11 @@ stdenv.mkDerivation (finalAttrs: {
inherit libPath;
autoPatchelfIgnoreMissingDeps = lib.optionals isDistro [
"libssl.so.1.1"
"libcrypto.so.1.1"
];
installPhase = ''
runHook preInstall
@@ -28,10 +28,7 @@ stdenv.mkDerivation {
homepage = "https://github.com/simon-v/bean-add/";
description = "Beancount transaction entry assistant";
mainProgram = "bean-add";
# The (only) source file states:
# License: "Do what you feel is right, but don't be a jerk" public license.
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ matthiasbeyer ];
};
}
@@ -1,4 +1,5 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
@@ -23,4 +24,8 @@ stdenv.mkDerivation rec {
libcec_platform
tinyxml
];
meta = {
license = lib.licenses.gpl2Plus;
};
}
@@ -10,13 +10,13 @@
buildKodiAddon rec {
pname = "youtube";
namespace = "plugin.video.youtube";
version = "7.4.2";
version = "7.4.3";
src = fetchFromGitHub {
owner = "anxdpanic";
repo = "plugin.video.youtube";
rev = "v${version}";
hash = "sha256-o+HaYVUvulHzthnP/PUJ0qTe0e901djw3l9sVpUcD08=";
hash = "sha256-FUfDUyaYHIeu9thCx19huLFnDO7Yl3RKIbfUH2I+SQI=";
};
propagatedBuildInputs = [
@@ -438,14 +438,14 @@ in
docker_29 =
let
version = "29.4.1";
version = "29.4.2";
in
callPackage dockerGen {
inherit version;
cliRev = "v${version}";
cliHash = "sha256-jGD+Z3koM0a2Te7cq2HdKFizZj39djvTQUmn815Mn4o=";
mobyRev = "docker-v${version}";
mobyHash = "sha256-R+rCR8DG4IyEdn9ol7PjawixgymjrEVMrTjaZM1wReU=";
mobyHash = "sha256-jPmFYGOxvMof32fQeI4iHLG12ElwysYLSTkIrlluEXM=";
runcRev = "v1.3.5";
runcHash = "sha256-Swphxbu/OLkUrfRjLMZIVGwYb7AN0xHdyxm0ysAVam0=";
containerdRev = "v2.2.3";
@@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "qboot";
version = "unstable-2020-04-23";
version = "unstable-2022-09-19";
src = fetchFromGitHub {
owner = "bonzini";
repo = "qboot";
rev = "de50b5931c08f5fba7039ddccfb249a5b3b0b18d";
sha256 = "1d0h29zz535m0pq18k3aya93q7lqm2858mlcp8mlfkbq54n8c5d8";
rev = "8ca302e86d685fa05b16e2b208888243da319941";
hash = "sha256-YxVGFiyLdhq7yWaXARh7f0nBZgXfJuYvv1BxfyThupM=";
};
nativeBuildInputs = [
@@ -33,9 +33,7 @@ stdenv.mkDerivation {
"pic"
];
passthru.tests = {
qboot = nixosTests.qboot;
};
passthru.tests.qboot = nixosTests.qboot;
meta = {
description = "Simple x86 firmware for booting Linux";
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "a4";
version = "0.2.3";
version = "2.0";
src = fetchFromGitHub {
owner = "rpmohn";
repo = "a4";
tag = "v${finalAttrs.version}";
hash = "sha256-AX5psz9+bLdFFeDR55TIrAWDAkhDygw6289OgIfOJTg=";
hash = "sha256-WehME2z/Fm4DOrEUj8+XTOnm2MrplZIeOXSubSN223w=";
};
buildInputs = [
+9 -4
View File
@@ -9,11 +9,11 @@
gccStdenv.mkDerivation (finalAttrs: {
pname = "acme-client";
version = "1.3.3";
version = "1.3.7";
src = fetchurl {
url = "https://data.wolfsden.cz/sources/acme-client-${finalAttrs.version}.tar.gz";
hash = "sha256-HJOk2vlDD7ADrLdf/eLEp+teu9XN0KrghEe6y4FIDoI=";
url = "https://files.wolfsden.cz/releases/acme-client/acme-client-${finalAttrs.version}.tar.gz";
hash = "sha256-Mq+6epLcgEnlQ0JAPYCxGQu7EM0VS0Y32PYuvEuliAE=";
};
nativeBuildInputs = [
@@ -29,12 +29,17 @@ gccStdenv.mkDerivation (finalAttrs: {
"PREFIX=${placeholder "out"}"
];
passthru.updateScript = ./update.sh;
meta = {
description = "Secure ACME/Let's Encrypt client";
homepage = "https://git.wolfsden.cz/acme-client-portable";
platforms = lib.platforms.unix;
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ pmahoney ];
maintainers = with lib.maintainers; [
pmahoney
kybe236
];
mainProgram = "acme-client";
};
})
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep nix-update
set -euo pipefail
VERSION=$(curl https://files.wolfsden.cz/releases/acme-client/ | grep -oP 'acme-client-\K\d+\.\d+\.\d+(?=\.tar\.gz)' | sort -V | tail -n1)
echo ">> acme-client: $VERSION"
nix-update --version "$VERSION" acme-client
+1
View File
@@ -24,5 +24,6 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "aesfix";
homepage = "https://citp.princeton.edu/our-work/memory/";
maintainers = with lib.maintainers; [ fedx-sudo ];
license = lib.licenses.bsd3;
};
})
@@ -1,60 +0,0 @@
From c48f5d57b6e57f42b668c0c6b8744e4620c77320 Mon Sep 17 00:00:00 2001
From: Mikael Voss <mvs@nyantec.com>
Date: Tue, 19 Nov 2024 20:47:27 +0100
Subject: [PATCH] Use magick command from ImageMagick
With ImageMagick version 7 the convert command has been deprecated in
favour of magick. Calling convert instead results in the logs being
spammed with warning messages.
The mogrify Elixir wrapper also runs magick with the mogrify argument
in current releases.
---
lib/pleroma/application_requirements.ex | 8 ++++----
lib/pleroma/helpers/media_helper.ex | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex
index c3777d8f1..55ee674a2 100644
--- a/lib/pleroma/application_requirements.ex
+++ b/lib/pleroma/application_requirements.ex
@@ -166,10 +166,10 @@ defp check_system_commands!(:ok) do
filter_commands_statuses = [
check_filter(Pleroma.Upload.Filter.Exiftool.StripMetadata, "exiftool"),
check_filter(Pleroma.Upload.Filter.Exiftool.ReadDescription, "exiftool"),
- check_filter(Pleroma.Upload.Filter.Mogrify, "mogrify"),
- check_filter(Pleroma.Upload.Filter.Mogrifun, "mogrify"),
- check_filter(Pleroma.Upload.Filter.AnalyzeMetadata, "mogrify"),
- check_filter(Pleroma.Upload.Filter.AnalyzeMetadata, "convert"),
+ check_filter(Pleroma.Upload.Filter.Mogrify, "magick"),
+ check_filter(Pleroma.Upload.Filter.Mogrifun, "magick"),
+ check_filter(Pleroma.Upload.Filter.AnalyzeMetadata, "magick"),
+ check_filter(Pleroma.Upload.Filter.AnalyzeMetadata, "magick"),
check_filter(Pleroma.Upload.Filter.AnalyzeMetadata, "ffprobe")
]
diff --git a/lib/pleroma/helpers/media_helper.ex b/lib/pleroma/helpers/media_helper.ex
index cb95d0e68..17cd9629d 100644
--- a/lib/pleroma/helpers/media_helper.ex
+++ b/lib/pleroma/helpers/media_helper.ex
@@ -12,7 +12,7 @@ defmodule Pleroma.Helpers.MediaHelper do
require Logger
def missing_dependencies do
- Enum.reduce([imagemagick: "convert", ffmpeg: "ffmpeg"], [], fn {sym, executable}, acc ->
+ Enum.reduce([imagemagick: "magick", ffmpeg: "ffmpeg"], [], fn {sym, executable}, acc ->
if Pleroma.Utils.command_available?(executable) do
acc
else
@@ -22,7 +22,7 @@ def missing_dependencies do
end
def image_resize(url, options) do
- with executable when is_binary(executable) <- System.find_executable("convert"),
+ with executable when is_binary(executable) <- System.find_executable("magick"),
{:ok, args} <- prepare_image_resize_args(options),
{:ok, env} <- HTTP.get(url, [], []),
{:ok, fifo_path} <- mkfifo() do
--
2.43.0
+3 -13
View File
@@ -20,14 +20,14 @@ let
in
beamPackages.mixRelease rec {
pname = "akkoma";
version = "3.18.1";
version = "3.19.0";
src = fetchFromGitea {
domain = "akkoma.dev";
owner = "AkkomaGang";
repo = "akkoma";
tag = "v${version}";
hash = "sha256-4HIIgTNcNAMCpHyT6zBcmxXeFbMrt38Z7PtT9Onvz+U=";
hash = "sha256-ASLnsmuWpfQKwpNNLUgI32Gdn/j+jUW5IBLlT8RUmcE=";
# upstream repository archive fetching is broken
forceFetchGit = true;
@@ -36,20 +36,10 @@ beamPackages.mixRelease rec {
nativeBuildInputs = [ cmake ];
buildInputs = [ file ];
patches = [
# See <https://akkoma.dev/AkkomaGang/akkoma/pulls/854>
# Akkoma uses the deprecated “convert” command instead of “magick”, which
# results in the logs being spammed with warning messages. Upstream is
# reluctant to change this, to ensure compatibility with Debian stable,
# which does not yet provide ImageMagick 7.
# Remove this patch once merged upstream.
./akkoma-imagemagick.patch
];
mixFodDeps = beamPackages.fetchMixDeps {
pname = "mix-deps-akkoma";
inherit src version;
hash = "sha256-igXEX6I+7G7tNCLjEf0VBOaii0r7jXCdF6x78LMcUv0=";
hash = "sha256-O9A7XuQSSczGMcLMc6Fk0eh7PkjQ6sYJKSwdqoEPJJI=";
postInstall = ''
substituteInPlace "$out/http_signatures/mix.exs" \
@@ -7,16 +7,16 @@
buildNpmPackage rec {
pname = "all-the-package-names";
version = "2.0.2429";
version = "2.0.2437";
src = fetchFromGitHub {
owner = "nice-registry";
repo = "all-the-package-names";
tag = "v${version}";
hash = "sha256-ut3YoTGpHEoSIafkimU31Mt45Q14oiTGWXQQfsxia9s=";
hash = "sha256-wPmsxxlgWsh0LvLgvlJbqci8vqfz8Z2/1RC3Sc0krp8=";
};
npmDepsHash = "sha256-pxei6HxmUyMajVG+thFp3pOTWqBC6yL/nOvp6c8DXp0=";
npmDepsHash = "sha256-UlflkWK2lyQMvuJQ0OkI1cuR8rhZxyDjeHUsdFjWfQk=";
passthru.updateScript = nix-update-script { };
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "allure";
version = "2.39.0";
version = "2.40.0";
src = fetchurl {
url = "https://github.com/allure-framework/allure2/releases/download/${finalAttrs.version}/allure-${finalAttrs.version}.tgz";
hash = "sha256-dDg/ZgacwPbsLQ/a0vHXYfExhPbNKJM0sdz8QjdzVmU=";
hash = "sha256-RXOO/8dGZ0DULqkTjoD8pQgedWbHCvypRwjZxVhdNCQ=";
};
dontConfigure = true;
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "adjust-sound-volume";
@@ -13,7 +12,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
tag = "v${finalAttrs.version}";
hash = "sha256-6reIUz+tHKd4KQpuofLa/tIL5lCloj3yODZ8Cz29jFU=";
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Add a new menu item for adjusting the sound volume";
homepage = "https://github.com/mnogu/adjust-sound-volume";
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
@@ -26,7 +25,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
};
});
sourceRoot = "${finalAttrs.src.name}/card_management";
passthru.updateScript = nix-update-script { };
meta = {
description = "Reset, Learn, and Grade cards from the card browser";
longDescription = ''
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "anki-quizlet-importer-extended";
@@ -13,7 +12,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
tag = "v${finalAttrs.version}";
hash = "sha256-BTddZColXM193x8xFa1axHeiWukjxXvwkXGpHxsLtR0=";
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Import Quizlet Decks into Anki";
homepage = "https://ankiweb.net/shared/info/1362209126";
@@ -5,6 +5,7 @@
lndir,
formats,
runCommand,
nix-update-script,
}:
{
buildAnkiAddon = lib.extendMkDerivation {
@@ -55,6 +56,7 @@
'';
passthru = {
updateScript = nix-update-script { };
withConfig =
{
# JSON add-on config. The available options for an add-on are in its
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "image-occlusion-enhanced";
@@ -15,7 +14,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
hash = "sha256-YR1hicBDb08J+1Qc+SDiJDXLo5FzLqCQGeVe7brbPME=";
};
sourceRoot = "${finalAttrs.src.name}/src/image_occlusion_enhanced";
passthru.updateScript = nix-update-script { };
meta = {
description = ''
Adds extra features for creating image-based cloze-deletions
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "passfail2";
@@ -21,7 +20,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
runHook postBuild
'';
passthru.updateScript = nix-update-script { };
meta = {
description = ''
Replaces the default Anki review buttons with only two options:
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "puppy-reinforcement";
@@ -14,7 +13,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
hash = "sha256-y52AjmYrFTcTwd4QAcJzK5R9wwxUSlvnN3C2O/r5cHk=";
};
sourceRoot = "${finalAttrs.src.name}/src/puppy_reinforcement";
passthru.updateScript = nix-update-script { };
meta = {
description = "Encourage learners with pictures of cute puppies";
longDescription = ''
@@ -2,7 +2,6 @@
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "recolor";
@@ -25,8 +24,6 @@ anki-utils.buildAnkiAddon (finalAttrs: {
./only-update-config-version-when-migration-happens.patch
];
passthru.updateScript = nix-update-script { };
meta = {
description = "ReColor your Anki desktop to whatever aesthetic you like";
longDescription = ''
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
pname = "atlantis";
version = "0.42.0";
version = "0.43.0";
src = fetchFromGitHub {
owner = "runatlantis";
repo = "atlantis";
tag = "v${finalAttrs.version}";
hash = "sha256-EcFthkizJOcqxpt8VjuFRM0UPHHxSseEcWTpT/qlCxw=";
hash = "sha256-btCfoku8LgsZEJ/aza75wg8spacYEeliXVmjMZYkO3M=";
};
ldflags = [
+33 -6
View File
@@ -4,9 +4,12 @@
fetchFromGitHub,
wrapGAppsHook3,
gobject-introspection,
imagemagick,
gtksourceview3,
libappindicator-gtk3,
libnotify,
xautomation,
xwd,
zenity,
wmctrl,
}:
@@ -19,12 +22,16 @@ python3Packages.buildPythonApplication (finalAttrs: {
src = fetchFromGitHub {
owner = "autokey";
repo = "autokey";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-d1WJLqkdC7QgzuYdnxYhajD3DtCpgceWCAxGrk0KKew=";
};
# Tests appear to be broken with import errors within the project structure
doCheck = false;
postPatch = ''
# pyrcc5 embeds resource mtimes; preserve normalized source mtimes for reproducible wheels.
substituteInPlace setup.py \
--replace-fail "shutil.copy(str(icon), str(target_directory))" \
"shutil.copy2(str(icon), str(target_directory))"
'';
nativeBuildInputs = [
wrapGAppsHook3
@@ -41,6 +48,22 @@ python3Packages.buildPythonApplication (finalAttrs: {
setuptools
];
nativeCheckInputs = with python3Packages; [
pyqt5
pyhamcrest
pytestCheckHook
pytest-cov-stub
];
disabledTestPaths = [
# Runs `git describe` during test collection.
"tests/test_common.py"
];
preCheck = ''
export HOME=$TMPDIR
'';
dependencies = with python3Packages; [
dbus-python
pyinotify
@@ -51,7 +74,10 @@ python3Packages.buildPythonApplication (finalAttrs: {
];
runtimeDeps = [
imagemagick
zenity
xautomation
xwd
wmctrl
];
@@ -67,10 +93,11 @@ python3Packages.buildPythonApplication (finalAttrs: {
'';
meta = {
homepage = "https://github.com/autokey/autokey";
description = "Desktop automation utility for Linux and X11";
license = with lib.licenses; [ gpl3 ];
maintainers = [ ];
homepage = "https://github.com/autokey/autokey";
changelog = "https://github.com/autokey/autokey/releases/tag/${finalAttrs.src.tag}";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ iamanaws ];
platforms = lib.platforms.linux;
};
})
+2 -2
View File
@@ -12,13 +12,13 @@
buildNpmPackage rec {
pname = "blockbench";
version = "5.1.3";
version = "5.1.4";
src = fetchFromGitHub {
owner = "JannisX11";
repo = "blockbench";
tag = "v${version}";
hash = "sha256-aGGvYIYQ3fw1fk5NUwJsMkq2YSugQD94xfy52LvHOKc=";
hash = "sha256-lYsd8KegoO4amtRL5o3JPXW4vu4z3p/dXlOVn3zKgeA=";
};
patches = [
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "capslock";
version = "0.3.1";
version = "0.3.2";
src = fetchFromGitHub {
owner = "google";
repo = "capslock";
rev = "v${finalAttrs.version}";
hash = "sha256-Ln2NqyIlFGlPZL4rbmlY+fnJFCVVaKWmwQxhE2h7e2E=";
hash = "sha256-IqPzXs8d22tVwYot98i48MLDXZERk0nt1Wh8CnCDeKQ=";
};
vendorHash = "sha256-ObQvJwebefu8hIBd+dcs3i3xhRfFax1TIBDPfaTUKOY=";
vendorHash = "sha256-k4YQaoLIw1jFl4PJUm0b16ORw/OyhmA/5uKfP0S12GU=";
subPackages = [ "cmd/capslock" ];
@@ -0,0 +1,29 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 574150c05..109e96889 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -566,6 +566,14 @@ foreach (module ${_modules})
endforeach (module)
# Install pkg-config support file
+set(pc_req_public "")
+if (_usewcs AND WCSLIB_FOUND)
+ list(APPEND pc_req_public "wcslib")
+endif()
+if (_usefits AND CFITSIO_FOUND)
+ list(APPEND pc_req_public "cfitsio")
+endif()
+list(JOIN pc_req_public " " pc_req_public)
CONFIGURE_FILE("casacore.pc.in" "casacore.pc" @ONLY)
set(CASA_PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/casacore.pc" DESTINATION "${CASA_PKGCONFIG_INSTALL_PREFIX}")
diff --git a/casacore.pc.in b/casacore.pc.in
index 6881300df..d0a01b240 100644
--- a/casacore.pc.in
+++ b/casacore.pc.in
@@ -9,4 +9,4 @@ Version: @PROJECT_VERSION@
Requires: @pc_req_public@
Requires.private: @pc_req_private@
Libs: -L${libdir} @PRIVATE_LIBS@
-Cflags: -I${includedir} -I@WCSLIB_INCLUDE_DIR@
+Cflags: -I${includedir}
+58 -9
View File
@@ -14,8 +14,33 @@
fftwFloat,
readline,
gsl,
mpi,
adios2,
hdf5,
llvmPackages,
mpiSupport ? false,
adios2Support ? false,
hdf5Support ? false,
}:
let
casacorePackages = {
adios2 = adios2.override {
inherit mpi mpiSupport;
};
fftw = fftw.override {
inherit mpi;
enableMpi = mpiSupport;
};
fftwFloat = fftwFloat.override {
inherit mpi;
enableMpi = mpiSupport;
};
hdf5 = hdf5.override {
inherit mpi mpiSupport;
cppSupport = !mpiSupport;
};
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "casacore";
version = "3.8.0";
@@ -27,31 +52,55 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-NOxuHMCuHGk9XuWXMwQTN6kOFDI0QuHMgfNRDdlPw44=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
gfortran
flex
bison
];
]
++ lib.optional mpiSupport mpi;
propagatedBuildInputs = [
wcslib
cfitsio
]
++ lib.optional hdf5Support casacorePackages.hdf5
++ lib.optional mpiSupport mpi
++ lib.optional adios2Support casacorePackages.adios2;
buildInputs = [
blas
lapack
cfitsio
wcslib
fftw
fftwFloat
casacorePackages.fftw
casacorePackages.fftwFloat
readline
gsl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
llvmPackages.openmp
];
patches = [
# Fix the generated .pc file: set Requires from a variable instead of
# leaving it empty, and remove hardcoded absolute cmake build paths from
# Cflags (which would embed /nix/store paths from the build environment).
./casacore-pkgconfig.patch
];
enableParallelBuilding = true;
strictDeps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_SHARED" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "BUILD_PYTHON3" false) # TODO: If/when we package python-casacore, this will change
(lib.cmakeBool "BUILD_PYTHON3" false)
(lib.cmakeBool "USE_OPENMP" true)
(lib.cmakeBool "USE_ADIOS2" adios2Support)
(lib.cmakeBool "USE_HDF5" hdf5Support)
(lib.cmakeBool "USE_MPI" mpiSupport)
(lib.cmakeBool "PORTABLE" true)
(lib.cmakeBool "USE_PCH" false)
(lib.cmakeBool "BUILD_FFTPACK_DEPRECATED" true) # Needed for casacpp
];
meta = {
@@ -0,0 +1,22 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d3cae2326..7954107f8f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -195,6 +195,7 @@ foreach(_component IN LISTS casacpp_all_components)
endforeach()
# Install pkg-config support file
+set(pc_req_public "casacore cfitsio libxml-2.0 gsl protobuf grpc++ fftw3 libsakura")
CONFIGURE_FILE("casacpp.pc.in" "casacpp.pc" @ONLY)
set(CASACPP_PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/casacpp.pc" DESTINATION "${CASACPP_PKGCONFIG_INSTALL_PREFIX}")
diff --git a/casacpp.pc.in b/casacpp.pc.in
index 08a996b2c3..699cfb7319 100644
--- a/casacpp.pc.in
+++ b/casacpp.pc.in
@@ -9,4 +9,4 @@ Version: @PROJECT_VERSION@
Requires: @pc_req_public@
Requires.private: @pc_req_private@
Libs: -L${libdir} @PRIVATE_LIBS@
-Cflags: -DWITHOUT_ACS -DWITHOUT_BOOST -I${includedir}/casacpp -I${includedir}/casacpp/protobuf_generated -I@CASACORE_INCLUDE_DIRS@ -I@CFITSIO_INCLUDE_DIRS@ -I@LibXML_INCLUDE_DIRS@ -I@GSL_INCLUDE_DIRS@
+Cflags: -DWITHOUT_ACS -DWITHOUT_BOOST -I${includedir}/casacpp -I${includedir}/casacpp/protobuf_generated
+120
View File
@@ -0,0 +1,120 @@
{
lib,
stdenv,
fetchgit,
cmake,
common-updater-scripts,
curl,
gnugrep,
writeShellScript,
pkg-config,
flex,
bison,
gfortran,
casacore,
libsakura,
grpc,
protobuf,
gsl,
libxml2,
libxslt,
fftw,
fftwFloat,
sqlite,
openssl,
mpi,
mpiSupport ? false,
}:
let
casacppPackages = {
fftw = fftw.override {
inherit mpi;
enableMpi = mpiSupport;
};
fftwFloat = fftwFloat.override {
inherit mpi;
enableMpi = mpiSupport;
};
casacore = casacore.override {
inherit mpi mpiSupport;
};
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "casacpp";
version = "6.7.5.18";
src = fetchgit {
url = "https://open-bitbucket.nrao.edu/scm/casa/casa6.git";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-75oIlaNAyu70KWSjz38LoYAvV7RJgzH/X9uBnGpriF4=";
fetchSubmodules = false;
};
sourceRoot = "${finalAttrs.src.name}/casatools/src/code";
patches = [
# Fix the generated .pc file: set Requires from a variable instead of
# leaving it empty, and remove hardcoded absolute cmake build paths from
# Cflags (which would embed /nix/store paths from the build environment).
./casacpp-pkgconfig.patch
];
postPatch = ''
sed -i '/execute_process(COMMAND/,/OUTPUT_VARIABLE CASACPP_VERSION)/c\set(CASACPP_VERSION "${finalAttrs.version}")' CMakeLists.txt
sed -i 's/string(REGEX MATCH.*CASACPP_VERSION)//' CMakeLists.txt
substituteInPlace CMakeLists.txt \
--replace-fail \
'find_package(gRPC QUIET)' \
'set(gRPC_FOUND 0)'
'';
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = [
cmake
pkg-config
flex
bison
gfortran
grpc # for grpc_cpp_plugin
]
++ lib.optional mpiSupport mpi;
buildInputs = [
libxslt
sqlite
openssl
];
propagatedBuildInputs = [
casacppPackages.casacore
protobuf
grpc
casacppPackages.fftw
casacppPackages.fftwFloat
libsakura
gsl
libxml2
];
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-ffp-contract=off")
];
enableParallelBuilding = true;
passthru.updateScript = writeShellScript "update-casacpp" ''
version=$(${lib.getExe curl} -s https://pypi.org/pypi/casatasks/json | ${lib.getExe gnugrep} -oP '"version"\s*:\s*"\K[^"]+' | head -1)
${lib.getExe' common-updater-scripts "update-source-version"} casacpp "$version"
'';
meta = {
description = "C++ core libraries for radio interferometry data reduction";
homepage = "https://casa.nrao.edu/";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ kiranshila ];
};
})
+2 -2
View File
@@ -19,13 +19,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "castxml";
version = "0.6.13";
version = "0.7.0";
src = fetchFromGitHub {
owner = "CastXML";
repo = "CastXML";
rev = "v${finalAttrs.version}";
hash = "sha256-81I+Uh2HrEenp9iAW+TO+MUyXhXRMVDI+BZuVA4C/pE=";
hash = "sha256-nLYh6qb/dc+K1tsCVSm/iBzaJPtKPF1Q66yCpLFM6v4=";
};
nativeBuildInputs = [ cmake ] ++ lib.optionals (withManual || withHTML) [ sphinx ];
+3 -3
View File
@@ -11,16 +11,16 @@
}:
buildGoModule (finalAttrs: {
pname = "clive";
version = "0.12.16";
version = "0.12.17";
src = fetchFromGitHub {
owner = "koki-develop";
repo = "clive";
tag = "v${finalAttrs.version}";
hash = "sha256-bZzK7RLAStRb9R3V/TK6tZV6yv1C7MGslAhhpWDzdWk=";
hash = "sha256-omHxs2hTzjddelPkJWj2sVmK9nI5bCELUS8EmEH7JXM=";
};
vendorHash = "sha256-BDspmaATLIfwyqxwJNJ24vpEETUWGVbobHWD2NRaOi4=";
vendorHash = "sha256-M3cU2051lOzm9hXuVwC1eFI8Ftpmk32h/98dHUkRfts=";
subPackages = [ "." ];
buildInputs = [ ttyd ];
nativeBuildInputs = [
+5 -5
View File
@@ -11,16 +11,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "clouddrive2";
version = "1.0.5";
version = "1.0.6";
src = fetchurl {
url = "https://github.com/cloud-fs/cloud-fs.github.io/releases/download/v${finalAttrs.version}/clouddrive-2-${os}-${arch}-${finalAttrs.version}.tgz";
hash =
{
x86_64-linux = "sha256-yeDxxJvBstV+vafqNF22egznqvjUZWX2hZKiJif8jvU=";
aarch64-linux = "sha256-Fdi9T0RhdnT2xGixTlNIm1qRLOA9lJUqvZw5G9+SsgQ=";
x86_64-darwin = "sha256-FuuhE3Ni5mSkTWt5yyKMsFHhM11xt4sKl7bCxAyXqKE=";
aarch64-darwin = "sha256-Y2QoWj/eTWpMfasI+ENM35Rr2P4uufl7spjwe5CWET8=";
x86_64-linux = "sha256-MFZIJIcDPnNcgMWqHsnb2fSjfHySvOwq5PNyLcyCeYE=";
aarch64-linux = "sha256-Zh1MwZjYTWxGn9qWrDjTPwj+6uQ8m2FkwGlalaarGHg=";
x86_64-darwin = "sha256-quwflRL3YYc+gK4I6g7o853tbow/LRwxx0L7IXU3ijM=";
aarch64-darwin = "sha256-ebp15M1pWci+tvYtH1lp7syqNrj6ku4558TJSdaLf3I=";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
+3 -3
View File
@@ -12,18 +12,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cloudflare-cli";
version = "5.1.4";
version = "5.1.6";
src = fetchFromGitHub {
owner = "danielpigott";
repo = "cloudflare-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-UGXouKsFA4GCFgjsf5smQ1xsibPFiBqkdsqNDLAy2GM=";
hash = "sha256-lNwpXNKrhRAdcDnaapsAyANnsgUtah3/T99iBitgAdY=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-2NgmL04czIj/uj/KzdEDc4PdzUVVRty3MSZ9IwqRMOk=";
hash = "sha256-8dQkdCRJ7hJGC3zuUX0hmd5tWCoPSTdRNbtg2vapEXE=";
};
nativeBuildInputs = [
+4 -4
View File
@@ -7,16 +7,16 @@
buildNpmPackage {
pname = "coc-clangd";
version = "0-unstable-2026-04-01";
version = "0-unstable-2026-05-01";
src = fetchFromGitHub {
owner = "clangd";
repo = "coc-clangd";
rev = "34d9ed8e7a08f29e398720802401455733e6a481";
hash = "sha256-PiPH9kXmVdu9Ul0t28E1jumZILX7IwIr2OBDfCepobs=";
rev = "1a9f68c7266621fd8cb5aa5863ec63927232fbfc";
hash = "sha256-FhJzJAf5jcdYCpPAKlJUNcVb0U8mkAiS5MoCTQpj/mM=";
};
npmDepsHash = "sha256-QVsNztjTuHU0vu53IxjfFqllj1JxHnLwT9B9jaUnWIo=";
npmDepsHash = "sha256-jPgvi+Wz39d56d0YQSF99HqZ3rYi97kfGv7r0IY5WbY=";
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
+54 -53
View File
@@ -32,60 +32,61 @@ buildGoModule (finalAttrs: {
"man"
];
# Override the go-modules fetcher derivation to fetch plugins
modBuildPhase = ''
cp plugin.cfg plugin.cfg.orig
${
(lib.concatMapStringsSep "\n" (
plugin:
let
position = plugin.position or "end-of-file";
formatPlugin = { name, repo, ... }: "${name}:${repo}";
in
if position == "end-of-file" then
"echo '${formatPlugin plugin}' >> plugin.cfg"
else if position == "start-of-file" then
"sed -i '1i ${formatPlugin plugin}' plugin.cfg"
else if lib.hasAttrByPath [ "before" ] position then
''
if ! grep -q '^${position.before}:' plugin.cfg; then
echo 'Failed to insert ${plugin.name} before ${position.before} in plugin.cfg: ${position.before} is not in plugin.cfg'
exit 1
fi
sed -i '/^${position.before}:/i ${formatPlugin plugin}' plugin.cfg
''
else if lib.hasAttrByPath [ "after" ] position then
''
if ! grep -q '^${position.after}:' plugin.cfg; then
echo 'Failed to insert ${plugin.name} after ${position.after} in plugin.cfg: ${position.after} is not in plugin.cfg'
exit 1
fi
sed -i '/^${position.after}:/a ${formatPlugin plugin}' plugin.cfg
''
else
throw ''
Unsupported position value in externalPlugin:
${builtins.toJSON plugin}.
Valid values for position attr are:
- position = "end-of-file" (the default)
- position = "start-of-file"
- position.before = "{other plugin}"
- position.after = "{other plugin}"
''
) externalPlugins)
}
diff -u plugin.cfg.orig plugin.cfg || true
for src in ${toString (attrsToSources externalPlugins)}; do go get $src; done
go mod vendor
CC= GOOS= GOARCH= go generate
go mod vendor
go mod tidy
'';
overrideModAttrs = {
# Add plugins before vendoring the modules.
preBuild = ''
cp plugin.cfg plugin.cfg.orig
${
(lib.concatMapStringsSep "\n" (
plugin:
let
position = plugin.position or "end-of-file";
formatPlugin = { name, repo, ... }: "${name}:${repo}";
in
if position == "end-of-file" then
"echo '${formatPlugin plugin}' >> plugin.cfg"
else if position == "start-of-file" then
"sed -i '1i ${formatPlugin plugin}' plugin.cfg"
else if lib.hasAttrByPath [ "before" ] position then
''
if ! grep -q '^${position.before}:' plugin.cfg; then
echo 'Failed to insert ${plugin.name} before ${position.before} in plugin.cfg: ${position.before} is not in plugin.cfg'
exit 1
fi
sed -i '/^${position.before}:/i ${formatPlugin plugin}' plugin.cfg
''
else if lib.hasAttrByPath [ "after" ] position then
''
if ! grep -q '^${position.after}:' plugin.cfg; then
echo 'Failed to insert ${plugin.name} after ${position.after} in plugin.cfg: ${position.after} is not in plugin.cfg'
exit 1
fi
sed -i '/^${position.after}:/a ${formatPlugin plugin}' plugin.cfg
''
else
throw ''
Unsupported position value in externalPlugin:
${builtins.toJSON plugin}.
Valid values for position attr are:
- position = "end-of-file" (the default)
- position = "start-of-file"
- position.before = "{other plugin}"
- position.after = "{other plugin}"
''
) externalPlugins)
}
diff -u plugin.cfg.orig plugin.cfg || true
for src in ${toString (attrsToSources externalPlugins)}; do go get $src; done
GOFLAGS=''${GOFLAGS//-mod=vendor/} CC= GOOS= GOARCH= go generate
go mod tidy
'';
modInstallPhase = ''
mv -t vendor go.mod go.sum plugin.cfg
cp -r --reflink=auto vendor "$out"
'';
# Move the modified `go.mod`, `go.sum`, and `plugin.cfg` files into the
# vendor directory so we can retrieve them later in the `preBuild` hook.
postBuild = ''
mv -t vendor go.mod go.sum plugin.cfg
'';
};
preBuild = ''
chmod -R u+w vendor
+3 -3
View File
@@ -11,16 +11,16 @@
buildGo126Module (finalAttrs: {
pname = "crush";
version = "0.62.1";
version = "0.65.3";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = "crush";
tag = "v${finalAttrs.version}";
hash = "sha256-kPG7NZEZ/uHhyx9GYbIkTmybfvTPuD+TTlWbRFQ0HzA=";
hash = "sha256-X+bCwpyAFUkM1ljj5I6w6gts6b6IWYm1d4veV0mR0gA=";
};
vendorHash = "sha256-XlSHxR10ov0uvnqvu99Ax0kq/R/gnkX8fLaG98tTpe4=";
vendorHash = "sha256-moVpfFscZLz7mQw+pqaG132k9KTNyRdKOFNNd0RN1oo=";
ldflags = [
"-s"
@@ -0,0 +1,33 @@
diff --git a/daktari/result_printer.py b/daktari/result_printer.py
--- a/daktari/result_printer.py
+++ b/daktari/result_printer.py
@@ -1,7 +1,11 @@
import re
import textwrap
-import pyclip
from typing import Callable, Dict, Optional
+try:
+ import pyclip
+except ImportError:
+ pyclip = None
+
from colors import green, red, underline, yellow
from daktari.check import CheckResult, CheckStatus
@@ -58,10 +62,13 @@ def copy_to_clipboard(suggestion: Optional[str]):
command_regex = re.compile(r"\<cmd\>(.*?)\<\/cmd\>")
results = command_regex.findall(suggestion)
if len(results) > 0:
- try:
- pyclip.copy("\n".join(results))
+ if pyclip is not None:
+ try:
+ pyclip.copy("\n".join(results))
+ print("ⓘ Command copied to clipboard")
+ except pyclip.base.ClipboardSetupException:
print("ⓘ Clipboard not available")
+ else:
+ print("ⓘ Clipboard not available")
return
print("ⓘ No command available to copy to clipboard")
+72
View File
@@ -0,0 +1,72 @@
{
lib,
stdenv,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "daktari";
version = "0.0.319";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "genio-learn";
repo = "daktari";
tag = "v${finalAttrs.version}";
hash = "sha256-NxTDyul1BESr/fBow9hwmTLr6jcl4p5RlIKNzFbaJvc=";
};
patches = [ ./optional-pyclip.patch ];
pythonRelaxDeps = true;
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
# pyclip is broken on macOS in nixpkgs
substituteInPlace requirements.txt --replace-fail "pyclip==0.7.0" ""
'';
build-system = with python3Packages; [
setuptools
];
dependencies =
with python3Packages;
[
ansicolors
distro
pyfiglet
importlib-resources
packaging
requests
responses
semver
python-hosts
pyyaml
types-pyyaml
requests-unixsocket
dpath
pyopenssl
types-pyopenssl
urllib3
]
++ lib.optionals stdenv.hostPlatform.isLinux [
pyclip
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
pyobjc-core
pyobjc-framework-Cocoa
];
pythonImportsCheck = [ "daktari" ];
meta = {
description = "Tool to assist in setting up and maintaining developer environments";
homepage = "https://github.com/genio-learn/daktari";
changelog = "https://github.com/genio-learn/daktari/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ tymscar ];
mainProgram = "daktari";
};
})
+3 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "darkstat";
version = "3.0.721";
version = "3.0.722";
src = fetchFromGitHub {
owner = "emikulic";
repo = "darkstat";
tag = finalAttrs.version;
hash = "sha256-kKj4fCgphoe3lojJfARwpITxQh7E6ehUew9FVEW63uQ=";
hash = "sha256-WJjunJx9WjzRky1FL0k25h84Ypv273KXR5qT5YhHmbs=";
};
patches = [
@@ -54,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
changelog = "https://github.com/emikulic/darkstat/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl2Only;
platforms = with lib.platforms; unix;
maintainers = with lib.maintainers; [ tbutter ];
mainProgram = "darkstat";
};
})
+9 -9
View File
@@ -9,24 +9,24 @@
fixup-yarn-lock,
prefetch-yarn-deps,
nixosTests,
nodejs_20,
nodejs-slim_20,
nodejs_24,
nodejs-slim_24,
remarshal_0_17,
nix-update-script,
settings ? { },
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dashy-ui";
version = "3.3.1";
version = "4.0.5";
src = fetchFromGitHub {
owner = "lissy93";
repo = "dashy";
tag = finalAttrs.version;
hash = "sha256-EvyRLa+qUFPzmU2k5CVK8WH3D3vmcj9F8fzj3LEjYgg=";
hash = "sha256-vcNKnRcSQMU4AuvWTFdTlxVOAA0rlPCKUrDZbd+8/mk=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-EMns5J8rM4qOfrACoX6lttOXh/RUtZjaKtd+BpsS6Xs=";
hash = "sha256-1FRrhNKm38/AP30F6Rf0cCHflIK9bWoxUCMMiT5c1Fc=";
};
passthru = {
@@ -56,17 +56,17 @@ stdenv.mkDerivation (finalAttrs: {
# but they've been overridden for the sake of consistency/in case future updates to dashy/node would cause issues with differing major versions
(yarnConfigHook.override {
fixup-yarn-lock = fixup-yarn-lock.override {
nodejs-slim = nodejs-slim_20;
nodejs-slim = nodejs-slim_24;
};
prefetch-yarn-deps = prefetch-yarn-deps.override {
nodejs-slim = nodejs-slim_20;
nodejs-slim = nodejs-slim_24;
};
yarn = yarn.override {
nodejs = nodejs_20;
nodejs = nodejs_24;
};
})
yarnBuildHook
nodejs_20
nodejs_24
# For yaml conversion
remarshal_0_17
];
@@ -1,8 +1,8 @@
diff --git a/Gemfile.lock b/Gemfile.lock
index 9a7c7500..9215d45a 100644
index d8d04266..75b34a35 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -191,12 +191,7 @@ GEM
@@ -194,12 +194,7 @@ GEM
faraday-net_http (3.4.2)
net-http (~> 0.5)
ffaker (2.25.0)
@@ -15,4 +15,4 @@ index 9a7c7500..9215d45a 100644
+ ffi (1.17.2)
fit4ruby (3.13.0)
bindata (~> 2.4.14)
foreman (0.90.0)
flipper (1.4.1)
@@ -1,32 +0,0 @@
diff --git a/Gemfile b/Gemfile
index 36cf0d9c..fc914849 100644
--- a/Gemfile
+++ b/Gemfile
@@ -28,6 +28,7 @@ gem 'omniauth-github', '~> 2.0.0'
gem 'omniauth-google-oauth2'
gem 'omniauth_openid_connect'
gem 'omniauth-rails_csrf_protection'
+gem 'openssl'
gem 'parallel'
gem 'pg'
gem 'prometheus_exporter'
diff --git a/Gemfile.lock b/Gemfile.lock
index a32eb801..b2fc45bc 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -348,6 +348,7 @@ GEM
tzinfo
validate_url
webfinger (~> 2.0)
+ openssl (3.3.1)
optimist (3.2.1)
orm_adapter (0.5.0)
ostruct (0.6.1)
@@ -665,6 +666,7 @@ DEPENDENCIES
omniauth-google-oauth2
omniauth-rails_csrf_protection
omniauth_openid_connect
+ openssl
parallel
pg
prometheus_exporter
+125 -116
View File
@@ -249,6 +249,21 @@
};
version = "1.1.0";
};
apple_id = {
dependencies = [
"json-jwt"
"openid_connect"
"rack-oauth2"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0na7v2gb10lwhjrwb1nm6cgnggihzhnznzv3ha9qy3jq7gys41cw";
type = "gem";
};
version = "1.6.4";
};
ast = {
groups = [
"default"
@@ -410,10 +425,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "19y406nx17arzsbc515mjmr6k5p59afprspa1k423yd9cp8d61wb";
sha256 = "1g9zi8c4i7g8zz0c3hxrw6mblrjvgn7akys60clb9si7c1k1gljk";
type = "gem";
};
version = "4.0.1";
version = "4.1.2";
};
bindata = {
groups = [ "default" ];
@@ -431,10 +446,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "14qb2gy6ypnqri92v9x8szbq7fzw27pc1z5cl367n5f5cpd2rmks";
sha256 = "057jsch213i42qgdsz2vg1b190n2xvvbi3hgprc8nmaqim2ly9f1";
type = "gem";
};
version = "1.20.1";
version = "1.23.0";
};
brakeman = {
dependencies = [ "racc" ];
@@ -623,25 +638,15 @@
};
version = "0.15.0";
};
css-zero = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1jiihfxvfw0wl42m0jzpq94iqa2ra878dqllkk34w49pv0wsgrkz";
type = "gem";
};
version = "1.1.15";
};
csv = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1kfqg0m6vqs6c67296f10cr07im5mffj90k2b5dsm51liidcsvp9";
sha256 = "0gz7r2kazwwwyrwi95hbnhy54kwkfac5swh2gy5p5vw36fn38lbf";
type = "gem";
};
version = "3.3.4";
version = "3.3.5";
};
data_migrate = {
dependencies = [
@@ -867,10 +872,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1rcpq49pyaiclpjp3c3qjl25r95hqvin2q2dczaynaj7qncxvv18";
sha256 = "1ncmbdjf2bwmk0jf5cxywns9zbxyfiy4h4p3pzi7yddyjhv81qrq";
type = "gem";
};
version = "6.0.1";
version = "6.0.4";
};
erubi = {
groups = [
@@ -1013,6 +1018,49 @@
};
version = "3.13.0";
};
flipper = {
dependencies = [ "concurrent-ruby" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0kbf2r2ayb91d1i0lbpj418pcv33dc24pqs9fl1wg4rhzd035105";
type = "gem";
};
version = "1.4.1";
};
flipper-active_record = {
dependencies = [
"activerecord"
"flipper"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0dss4hhnw6ypn2yh0cq2yi08cwvkv0kqjxxih7214slps0d4i5si";
type = "gem";
};
version = "1.4.1";
};
flipper-ui = {
dependencies = [
"erubi"
"flipper"
"rack"
"rack-protection"
"rack-session"
"sanitize"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "168agvgc6skln31x3r5ic5c6varc3m5b1gxnpkxq5p9gslvm53mp";
type = "gem";
};
version = "1.4.1";
};
foreman = {
dependencies = [ "thor" ];
groups = [ "development" ];
@@ -1065,6 +1113,17 @@
};
version = "1.3.0";
};
google-id-token = {
dependencies = [ "jwt" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1lb9iqzx0fi2f4x2m9dwimpfvxqz3ck73gx9sh8mb88klbhyp26h";
type = "gem";
};
version = "1.4.2";
};
gpx = {
dependencies = [
"csv"
@@ -1075,10 +1134,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1cgm6dzzpslhgxcqcgqnpvargrq9d3v2xhxgan1l1cayc33pn837";
sha256 = "06p5wkyj6lcj01szv22g1jcx8qkkpc4cypj9hdmji9n9h5ipd8bq";
type = "gem";
};
version = "1.2.1";
version = "1.2.2";
};
groupdate = {
dependencies = [ "activesupport" ];
@@ -1207,6 +1266,7 @@
irb = {
dependencies = [
"pp"
"prism"
"rdoc"
"reline"
];
@@ -1232,10 +1292,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "01h8bdksg0cr8bw5dhlhr29ix33rp822jmshy6rdqz4lmk4mdgia";
sha256 = "1qs8a9vprg7s8krgq4s0pygr91hclqqyz98ik15p0m1sf2h5956y";
type = "gem";
};
version = "1.16.0";
version = "1.18.0";
};
jmespath = {
groups = [ "default" ];
@@ -1428,10 +1488,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1rk0n13c9nmk8di2x5gqk5r04vf8bkp7ff6z0b44wsmc7fndfpnz";
sha256 = "011fdngxzr1p9dq2hxqz7qq1glj2g44xnhaadjqlf48cplywfdnl";
type = "gem";
};
version = "2.25.0";
version = "2.25.1";
};
mail = {
dependencies = [
@@ -1528,10 +1588,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0gdwmn2d4sznjdxyl3kz7hr95mvdgm38fk1vd0s63k3fdyamfvnv";
sha256 = "1wfnqyfayx9n9j7x871v2ars4hjhfisi1dl24fa64ylq3mns6ghm";
type = "gem";
};
version = "6.0.2";
version = "6.0.6";
};
msgpack = {
groups = [ "default" ];
@@ -1627,10 +1687,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr";
sha256 = "18fwy5yqnvgixq3cn0h63lm8jaxsjjxkmj8rhiv8wpzv9271d43c";
type = "gem";
};
version = "2.7.4";
version = "2.7.5";
};
nokogiri = {
dependencies = [
@@ -1646,10 +1706,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "15anyh2ir3kdji93kw770xxwm5rspn9rzx9b9zh1h9gnclcd4173";
sha256 = "1s30b7h7qpyim30m8060xs415mbr3ci7i5hdg09chh1aqfx2qcbq";
type = "gem";
};
version = "1.19.0";
version = "1.19.3";
};
oauth2 = {
dependencies = [
@@ -1796,16 +1856,6 @@
};
version = "2.3.1";
};
openssl = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0dzq3k5hmqlav2mwf7bc10mr1mlmlnpin498g7jhbhpdpa324s6n";
type = "gem";
};
version = "3.3.1";
};
optimist = {
groups = [
"default"
@@ -1839,20 +1889,6 @@
};
version = "0.6.1";
};
pagy = {
dependencies = [
"json"
"yaml"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "08pikkvj916fw75l7ycmzb3gf1w9cp3h1jphls0pnqbphf1v3r4g";
type = "gem";
};
version = "43.2.2";
};
parallel = {
groups = [
"default"
@@ -2091,10 +2127,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1pa9zpr51kqnsq549p6apvnr95s9flx6bnwqii24s8jg2b5i0p74";
sha256 = "1a3jd9qakasizrf7dkq5mqv51fjf02r2chybai2nskjaa6mz93mz";
type = "gem";
};
version = "7.1.0";
version = "7.2.0";
};
pundit = {
dependencies = [ "activesupport" ];
@@ -2141,10 +2177,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1lyn3rh71rlf50p44xmsbha0pip4c95004j8kc9pm7xpq1s0kgac";
sha256 = "1hhjy9gcp52dzij05gmidqac8g28ski5xm67prwmdqmjfcgqxmsy";
type = "gem";
};
version = "3.2.5";
version = "3.2.6";
};
rack-attack = {
dependencies = [ "rack" ];
@@ -2198,15 +2234,16 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1sg4laz2qmllxh1c5sqlj9n1r7scdn08p3m4b0zmhjvyx9yw0v8b";
sha256 = "1s7zcxlmg88a6dam4aqbgk9xkpy6dkdfqmmcszkkliy3q3w38m2r";
type = "gem";
};
version = "2.1.1";
version = "2.1.2";
};
rack-test = {
dependencies = [ "rack" ];
@@ -2290,15 +2327,16 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m";
sha256 = "128y5g3fyi8fds41jasrr4va1jrs7hcamzklk1523k7rxb64bc98";
type = "gem";
};
version = "1.6.2";
version = "1.7.0";
};
rails_icons = {
dependencies = [
@@ -2314,25 +2352,6 @@
};
version = "1.4.0";
};
rails_pulse = {
dependencies = [
"css-zero"
"groupdate"
"pagy"
"rails"
"ransack"
"request_store"
"turbo-rails"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1mla44nhcpr57i4dqir173b3jyzfpvy9prnzyz5nlf0ny3hysk5s";
type = "gem";
};
version = "0.2.4";
};
railties = {
dependencies = [
"actionpack"
@@ -2381,25 +2400,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "175iisqb211n0qbfyqd8jz2g01q6xj038zjf4q0nm8k6kz88k7lc";
sha256 = "009p524zl0p0kfa65nii8wdmaigkmawv9pbvlcffky7islmmp0nb";
type = "gem";
};
version = "13.3.1";
};
ransack = {
dependencies = [
"activerecord"
"activesupport"
"i18n"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0gd6nwr0xlvgas21p1qgw90cg27xdi70988dw5q8a20rzhvarska";
type = "gem";
};
version = "4.4.1";
version = "13.4.2";
};
rdoc = {
dependencies = [
@@ -2429,10 +2433,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0qvky4s2fx5xbaz1brxanalqbcky3c7xbqd6dicpih860zgrjj29";
sha256 = "14iiyb4yi1chdzrynrk74xbhmikml3ixgdayjma3p700singfl46";
type = "gem";
};
version = "7.1.0";
version = "7.2.0";
};
redis = {
dependencies = [ "redis-client" ];
@@ -2853,6 +2857,20 @@
};
version = "3.2.2";
};
sanitize = {
dependencies = [
"crass"
"nokogiri"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "111r4xdcf6ihdnrs6wkfc6nqdzrjq0z69x9sf83r7ri6fffip796";
type = "gem";
};
version = "7.0.0";
};
securerandom = {
groups = [
"default"
@@ -2893,24 +2911,25 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1rkp3wpikhwvypabw578rqk5660xkv741jl59dvk34h9b1z9g8g1";
sha256 = "1r5031qb02xmwmkrrz8ald4gc35xgcgz2h089873w33l5kcd9ygb";
type = "gem";
};
version = "6.2.0";
version = "6.5.0";
};
sentry-ruby = {
dependencies = [
"bigdecimal"
"concurrent-ruby"
"logger"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "05xcf7dwqd59nklk29r4dmdjjpy8hb19rccls5mm7l50ldca7f6p";
sha256 = "0srsbyw11h4gkr75vv4xcws8b9a9h7ii8wf3kb6syyh1d86swmrw";
type = "gem";
};
version = "6.2.0";
version = "6.5.0";
};
shoulda-matchers = {
dependencies = [ "activesupport" ];
@@ -3433,16 +3452,6 @@
};
version = "3.2.0";
};
yaml = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0hhr8z9m9yq2kf7ls0vf8ap1hqma1yd72y2r13b88dffwv8nj3i4";
type = "gem";
};
version = "0.4.0";
};
zeitwerk = {
groups = [
"default"
@@ -3453,9 +3462,9 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "12zcvhzfnlghzw03czy2ifdlyfpq0kcbqcmxqakfkbxxavrr1vrb";
sha256 = "1pbkiwwla5gldgb3saamn91058nl1sq1344l5k36xsh9ih995nnq";
type = "gem";
};
version = "2.7.4";
version = "2.7.5";
};
}
+1 -5
View File
@@ -35,10 +35,6 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
# bundix and bundlerEnv fail with system-specific gems
./0001-build-ffi-gem.diff
# openssl 3.6.0 breaks ruby openssl gem
# See https://github.com/NixOS/nixpkgs/issues/456753
# and https://github.com/ruby/openssl/issues/949#issuecomment-3370358680
./0002-openssl-hotfix.diff
];
postPatch = ''
substituteInPlace ./Gemfile \
@@ -114,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
# tests are not needed at runtime
rm -rf spec e2e
# delete artifacts from patching
rm *.orig
rm -f *.orig
mkdir -p $out
mv .{ruby*,app_version} $out/
+3 -3
View File
@@ -1,5 +1,5 @@
{
"version": "1.6.1",
"hash": "sha256-IPa8tfDsE3nNpzQ/Fnul3Fd6J5iQvLZR+3n4CHkVuI0=",
"npmHash": "sha256-Y6tEaApfGXAtmy0W85+4qGbrEkUkrKXTssl7wXeVnQY="
"version": "1.7.5",
"hash": "sha256-MjiU7IiAiCpKGbUexHjGl9yX8oLgX7WtVrN5yP6hXsk=",
"npmHash": "sha256-CwpVV5xLw75ReS0IqFvV3oaVk6EBlqYIKRa2KehVwFQ="
}
@@ -0,0 +1,56 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
docker-credential-helpers,
gitMinimal,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "dockerfile-pin";
version = "1.3.0";
src = fetchFromGitHub {
owner = "azu";
repo = "dockerfile-pin";
tag = "v${finalAttrs.version}";
hash = "sha256-vBBcLQ4ZgiLbUMuDvn8Um24yB9EknuUeU+sxMdg+qoc=";
};
vendorHash = "sha256-CgMFIYoM+nWiZ5NXtTlXHhrjzVYxoVg0YVpQq3LLrjI=";
ldflags = [
"-s"
"-w"
"-X=github.com/azu/dockerfile-pin/cmd.version=${finalAttrs.version}"
];
nativeBuildInputs = [ makeWrapper ];
postFixup = ''
wrapProgram $out/bin/dockerfile-pin \
--prefix PATH : ${lib.makeBinPath [ docker-credential-helpers ]}
'';
nativeCheckInputs = [ gitMinimal ];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "version";
passthru.updateScript = nix-update-script { };
__structuredAttrs = true;
meta = {
description = "Add sha256 digests to Docker images in Dockerfiles, Compose, and GitHub Actions";
homepage = "https://github.com/azu/dockerfile-pin";
changelog = "https://github.com/azu/dockerfile-pin/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ airrnot ];
mainProgram = "dockerfile-pin";
};
})
+2 -2
View File
@@ -9,7 +9,7 @@
buildGoModule (finalAttrs: {
pname = "doctl";
version = "1.155.0";
version = "1.157.0";
vendorHash = null;
@@ -42,7 +42,7 @@ buildGoModule (finalAttrs: {
owner = "digitalocean";
repo = "doctl";
tag = "v${finalAttrs.version}";
hash = "sha256-sN/ZC3TAUiQokSZax3oF6LMl/H7lCCgtEjjcpy44aTY=";
hash = "sha256-pkMJg7lTPR2qQ+E5F7Cd0RA/81x5tDvB7zXyzGn2BcM=";
};
meta = {
@@ -4,42 +4,40 @@
python3Packages,
gettext,
qt5,
writableTmpDirAsHomeHook,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
python3Packages.buildPythonApplication (finalAttrs: {
pname = "dupeguru";
version = "4.3.1";
version = "4.3.1-unstable-2026-01-06";
pyproject = false;
src = fetchFromGitHub {
owner = "arsenetar";
repo = "dupeguru";
rev = version;
hash = "sha256-/jkZiCapmCLMp7WfgUmpsR8aNCfb3gBELlMYaC4e7zI=";
rev = "16aa6c21ffc2c33d44ff4a47bfa1a623c16ed626";
hash = "sha256-0x2ZpjaxpWVhm9vimDA06y1BOvpoU6KZYz5MPAoWAts=";
};
patches = [
./remove-setuptools-sandbox.patch
];
nativeBuildInputs = [
gettext
python3Packages.pyqt5
python3Packages.setuptools
python3Packages.sphinx
qt5.wrapQtAppsHook
writableTmpDirAsHomeHook
];
propagatedBuildInputs = with python3Packages; [
hsaudiotag3k
distro
mutagen
polib
pyqt5
pyqt5-sip
semantic-version
send2trash
sphinx
xxhash
];
makeFlags = [
@@ -51,13 +49,11 @@ python3Packages.buildPythonApplication rec {
pytestCheckHook
];
preCheck = ''
export HOME="$(mktemp -d)"
'';
# Avoid double wrapping Python programs.
dontWrapQtApps = true;
installTargets = "install installdocs";
# TODO: A bug in python wrapper
# see https://github.com/NixOS/nixpkgs/pull/75054#discussion_r357656916
preFixup = ''
@@ -74,9 +70,10 @@ python3Packages.buildPythonApplication rec {
broken = stdenv.hostPlatform.isDarwin;
description = "GUI tool to find duplicate files in a system";
homepage = "https://github.com/arsenetar/dupeguru";
license = lib.licenses.bsd3;
changelog = "https://github.com/arsenetar/dupeguru/releases/tag/${builtins.head (lib.strings.splitString "-" finalAttrs.version)}";
license = lib.licenses.gpl3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ novoxd ];
mainProgram = "dupeguru";
};
}
})
@@ -0,0 +1,79 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Daniel Baker <dan@djacu.dev>
Date: Thu, 30 Apr 2026 08:42:44 -0700
Subject: [PATCH] nixpkgs: pin Go SDK downloads
Pin Go SDK downloads to avoid fetching the mutable version listing from
https://go.dev/dl/?mode=json&include=all. Without explicit sdks, each
go_download_sdk call downloads that listing (which changes with every Go
release) and caches it in repository_cache, causing the deps hash to
drift. See: io_bazel_rules_go/go/private/sdk.bzl lines 74-93 (rules_go
v0.50.0)
Signed-off-by: Daniel Baker <dan@djacu.dev>
---
bazel/dependency_imports.bzl | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/bazel/dependency_imports.bzl b/bazel/dependency_imports.bzl
index 90e49d5ceb0024b57481b816518990f58fc2ad5f..26091a877ea3951bfe69944ab8580857e787bb64 100644
--- a/bazel/dependency_imports.bzl
+++ b/bazel/dependency_imports.bzl
@@ -27,6 +27,18 @@ load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_regi
# go version for rules_go
GO_VERSION = "1.24.6"
+# Pin Go SDK downloads to avoid fetching the mutable version listing from
+# https://go.dev/dl/?mode=json&include=all. Without explicit sdks, each
+# go_download_sdk call downloads that listing (which changes with every Go
+# release) and caches it in repository_cache, causing the deps hash to drift.
+# See: io_bazel_rules_go/go/private/sdk.bzl lines 74-93 (rules_go v0.50.0)
+_GO_SDKS = {
+ "linux_amd64": ["go" + GO_VERSION + ".linux-amd64.tar.gz", "bbca37cc395c974ffa4893ee35819ad23ebb27426df87af92e93a9ec66ef8712"],
+ "linux_arm64": ["go" + GO_VERSION + ".linux-arm64.tar.gz", "124ea6033a8bf98aa9fbab53e58d134905262d45a022af3a90b73320f3c3afd5"],
+ "darwin_amd64": ["go" + GO_VERSION + ".darwin-amd64.tar.gz", "4a8d7a32052f223e71faab424a69430455b27b3fff5f4e651f9d97c3e51a8746"],
+ "darwin_arm64": ["go" + GO_VERSION + ".darwin-arm64.tar.gz", "4e29202c49573b953be7cc3500e1f8d9e66ddd12faa8cf0939a4951411e09a2a"],
+}
+
JQ_VERSION = "1.7"
YQ_VERSION = "4.24.4"
@@ -46,7 +58,8 @@ def envoy_dependency_imports(
register_preinstalled_tools=True, # use host tools (default)
)
go_rules_dependencies()
- go_register_toolchains(go_version)
+ go_download_sdk(name = "go_sdk", version = go_version, sdks = _GO_SDKS)
+ go_register_toolchains()
if go_version != "host":
envoy_download_go_sdks(go_version)
gazelle_dependencies(go_sdk = "go_sdk")
@@ -218,24 +231,28 @@ def envoy_download_go_sdks(go_version):
goos = "linux",
goarch = "amd64",
version = go_version,
+ sdks = _GO_SDKS,
)
go_download_sdk(
name = "go_linux_arm64",
goos = "linux",
goarch = "arm64",
version = go_version,
+ sdks = _GO_SDKS,
)
go_download_sdk(
name = "go_darwin_amd64",
goos = "darwin",
goarch = "amd64",
version = go_version,
+ sdks = _GO_SDKS,
)
go_download_sdk(
name = "go_darwin_arm64",
goos = "darwin",
goarch = "arm64",
version = go_version,
+ sdks = _GO_SDKS,
)
def crates_repositories():
+10 -2
View File
@@ -43,14 +43,19 @@ let
hash = "sha256-dT6ehfmW/huuyitqIlYAlEzUE6WrVA39sDKxatkZGaY=";
};
# When GO_VERSION changes upstream, update the four sha256 hex strings in the
# _GO_SDKS dict in 0005-nixpkgs-pin-go-sdk-downloads.patch using output from
# this command (set the version literal in `select` to match GO_VERSION):
# curl -s 'https://go.dev/dl/?mode=json&include=all' | jq -r '.[] | select(.version == "go1.24.6") | .files[] | select(.kind == "archive" and (.os == "linux" or .os == "darwin") and (.arch == "amd64" or .arch == "arm64")) | "\(.os)_\(.arch): \(.sha256)"'
# these need to be updated for any changes to fetchAttrs
depsHash' =
if depsHash != null then
depsHash
else
{
x86_64-linux = "sha256-dQpkB4jRfJOB14AO5ynoL3VObI1af7nTI3vbMr5N6/g=";
aarch64-linux = "sha256-59sY+bpGsKMDthcj+jw00WhN+vsP5MOTXy0m8HJxebM=";
x86_64-linux = "sha256-+oEQV3VfZu+p/f6Sif9pj2AkaA9+u0M8k+czdlcDLXI=";
aarch64-linux = "sha256-FcZfRinOd5KO6VnO9cx6ZQxJJ+KCFfB3Nk2k7zMuVU4";
}
.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
@@ -80,6 +85,9 @@ buildBazelPackage rec {
# bump rules_rust to support newer Rust
./0004-nixpkgs-bump-rules_rust-to-0.60.0.patch
# pin Go SDK downloads so the deps hash doesn't drift on every Go release
./0005-nixpkgs-pin-go-sdk-downloads.patch
];
postPatch = ''
chmod -R +w .
+31 -9
View File
@@ -18,22 +18,31 @@
# A brief explanation is given.
# general options
selinux ? true, # enable selinux support
fips140 ? true, # enable FIPS 140 checksum support
selinux ? false, # enable selinux support
fips140 ? false, # enable FIPS 140 checksum support
ais2031 ? true, # set the seeding strategy to be compliant with AIS 20/31
sp80090c ? true, # set compliance with NIST SP800-90C
cryptoBackend ? "botan", # set backend for hash and drbg operations
linuxDevFiles ? true, # enable linux /dev/random and /dev/urandom support
linuxGetRandom ? true, # enable linux getrandom support
openSSLRandProvider ? true, # build ESDM provider for OpenSSL 3.x
maxThreads ? 1024, # number of RPC handler threads
maxThreads ? 64, # number of RPC handler threads
validationHelpers ? true, # used to analyze entropy output from esdm_es
numAuxPools ? 128, # use multiple hash pools for e.g. smartcard input
serverTermOnSignal ? false, # use select with timeout in server watch loop
auxHasFullEntropy ? false, # is already conditioned data inserted into aux pool?
# DRNG-related options
drngReseedThresholdBits ? lib.fromHexString "0xffffffff",
drngMaxReseedBits ? lib.fromHexString "0xffffffff",
# entropy sources
esJitterRng ? true, # enable support for the entropy source: jitter rng (running in user space)
esJitterRngEntropyRate ? 256, # amount of entropy to account for jitter rng source
esJitterRngNtg1 ? false, # configures jitterentropy NTG.1 mode
esJitterRngAllCaches ? false, # use all caches in calculating size of memory buffer?
esJitterRngMaxMem ? -1, # set static maximum size of memory buffer, -1 disables it
esJitterRngHashLoopCount ? -1, # set increased hashloop count, -1 disables it
esJitterRngOsr ? 3, # set larger oversampling rate if necessary, (default 3)
esJitterRngEntropyBlocks ? 128, # number of cached entropy blocks for jitterentropy
esJitterRngKernel ? false, # enable support for the entropy source: jitter rng (running in kernel space)
esJitterRngKernelEntropyRate ? 256, # amount of entropy to account for kernel jitter rng source
@@ -41,6 +50,8 @@
esCPUEntropyRate ? 256, # amount of entropy to account for cpu rng source
esKernel ? false, # enable support for the entropy source: kernel-based entropy
esKernelEntropyRate ? 256, # amount of entropy to account for kernel-based source
esTPM2 ? true, # enable support for the entropy source: TPM-based entropy
esTPM2EntropyRate ? 256, # amount of entropy to account for TPM-based source
esIRQ ? false, # enable support for the entropy source: interrupt-based entropy
esIRQEntropyRate ? 256, # amount of entropy to account for interrupt-based source (only set irq XOR sched != 0)
esSched ? false, # enable support for the entropy source: scheduler-based entropy
@@ -50,20 +61,20 @@
# kernel seeding
linuxKernelReseedInterval ? 60, # how often to push entropy into Linux kernel, iff seeder service is started
linuxKernelReseedEntropyRate ? 256, # how many bits to account on kernel (re-)seeding
linuxKernelReseedEntropyRate ? 512, # how many bits to account on kernel (re-)seeding
}:
assert cryptoBackend == "openssl" || cryptoBackend == "botan";
stdenv.mkDerivation (finalAttrs: {
pname = "esdm";
version = "1.2.1";
version = "1.2.3";
src = fetchFromGitHub {
owner = "smuellerDD";
repo = "esdm";
rev = "v${finalAttrs.version}";
hash = "sha256-41vc5mB2MiQJu0HXFzSjiudlu1sRj2IP8FcFPQfu5uo=";
hash = "sha256-0s9YOqa+sn0rk5YoMWZczO1TB5/wpbFsdkaVWFf4ipI=";
};
nativeBuildInputs = [
@@ -89,13 +100,18 @@ stdenv.mkDerivation (finalAttrs: {
(lib.mesonBool "sp80090c" sp80090c)
(lib.mesonEnable "node" true) # multiple DRNGs
(lib.mesonEnable "systemd" true) # systemd notify and socket support
(lib.mesonOption "threading_max_threads" (toString maxThreads))
(lib.mesonOption "threading_max_worker_threads" (toString maxThreads))
(lib.mesonOption "crypto_backend" cryptoBackend)
(lib.mesonEnable "linux-devfiles" linuxDevFiles)
(lib.mesonEnable "linux-getrandom" linuxGetRandom)
(lib.mesonEnable "es_jent" esJitterRng)
(lib.mesonOption "es_jent_entropy_rate" (toString esJitterRngEntropyRate))
(lib.mesonOption "es_jent_entropy_blocks" (toString esJitterRngEntropyBlocks))
(lib.mesonEnable "es_jent_ntg1" esJitterRngNtg1)
(lib.mesonEnable "es_jent_all_caches" esJitterRngAllCaches)
(lib.mesonOption "es_jent_max_mem" (toString esJitterRngMaxMem))
(lib.mesonOption "es_jent_hash_loop_count" (toString esJitterRngHashLoopCount))
(lib.mesonOption "es_jent_osr" (toString esJitterRngOsr))
(lib.mesonEnable "es_jent_kernel" esJitterRngKernel)
(lib.mesonOption "es_jent_kernel_entropy_rate" (toString esJitterRngKernelEntropyRate))
(lib.mesonEnable "es_cpu" esCPU)
@@ -108,13 +124,17 @@ stdenv.mkDerivation (finalAttrs: {
(lib.mesonOption "es_sched_entropy_rate" (toString esSchedEntropyRate))
(lib.mesonEnable "es_hwrand" esHwrand)
(lib.mesonOption "es_hwrand_entropy_rate" (toString esHwrandEntropyRate))
(lib.mesonEnable "es_tpm2" esTPM2)
(lib.mesonOption "es_tpm2_entropy_rate" (toString esTPM2EntropyRate))
(lib.mesonEnable "selinux" selinux)
(lib.mesonEnable "openssl-rand-provider" openSSLRandProvider)
(lib.mesonOption "linux-reseed-interval" (toString linuxKernelReseedInterval))
(lib.mesonOption "linux-reseed-entropy-count" (toString linuxKernelReseedEntropyRate))
(lib.mesonEnable "validation-helpers" validationHelpers)
(lib.mesonOption "num-aux-pools" (toString numAuxPools))
(lib.mesonBool "esdm-server-term-on-signal" serverTermOnSignal)
(lib.mesonEnable "aux-has-full-entropy" auxHasFullEntropy)
(lib.mesonOption "drng_reseed_threshold_bits" (toString drngReseedThresholdBits))
(lib.mesonOption "drng_max_reseed_bits" (toString drngMaxReseedBits))
];
postFixup = lib.optionals fips140 ''
@@ -125,6 +145,8 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
strictDeps = true;
__structuredAttrs = true;
mesonBuildType = "release";
meta = {
+3 -3
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "etherpad-lite";
version = "2.6.1";
version = "2.7.2";
src = fetchFromGitHub {
owner = "ether";
repo = "etherpad-lite";
tag = "v${finalAttrs.version}";
hash = "sha256-KzkrJv9eBzzt9PSJGhzC0lxCOfQImSTHcTVlea8HV70=";
hash = "sha256-8DCgbfp3ttpMTXS9SNkN1R63LZHaklsNHViRhmWVFuk=";
};
patches = [
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
inherit (finalAttrs) pname version src;
pnpm = pnpm_9;
fetcherVersion = 3;
hash = "sha256-y5T7yerCK9MtTri3eZ+Iih7/DK9IMDC+d7ej746g47E=";
hash = "sha256-2nKpmGxC+KVg0oF0BsswS9L84QxzpRF7NvKyqyQ7WJM=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -8,15 +8,15 @@
let
pname = "everest";
version = "6249";
version = "6286";
phome = "$out/lib/Celeste";
in
stdenvNoCC.mkDerivation {
inherit pname version;
src = fetchzip {
url = "https://github.com/EverestAPI/Everest/releases/download/stable-1.6249.0/main.zip";
url = "https://github.com/EverestAPI/Everest/releases/download/stable-1.6286.0/main.zip";
extension = "zip";
hash = "sha256-xcWscldogSI7vmljg8uU0zV8gREVe5rLHj0l6X+0z9E=";
hash = "sha256-QhC/VZTy7TxIuJZKjqIKWvX/t8d+5EAFhQiS1R9AnQ4=";
};
buildInputs = [
icu
+3 -3
View File
@@ -11,8 +11,8 @@
let
pname = "everest";
version = "6249";
rev = "201a0dc2e0851f2bc601ed48cc1a64b17952e5ea";
version = "6286";
rev = "dcc400b1724b4762ca92b50e8d274f66ddeafa0c";
phome = "$out/lib/Celeste";
in
buildDotnetModule {
@@ -25,7 +25,7 @@ buildDotnetModule {
fetchSubmodules = true;
# TODO: use leaveDotGit = true and modify external/MonoMod in postFetch to please SourceLink
# Microsoft.SourceLink.Common.targets(53,5): warning : Source control information is not available - the generated source link is empty.
hash = "sha256-ISCL6C1Zj18fMsfBAte9cqAWCA6/4eewKmefYmTm2uA=";
hash = "sha256-I2Cy3gGAqD9Irxg44qFH48piJQSn1CpmetyUvJs35cE=";
};
nativeBuildInputs = [ autoPatchelfHook ];
+3 -3
View File
@@ -22,13 +22,13 @@ lib.checkListOfEnum "${pname}: colorVariants" colorVariantList colorVariants
stdenvNoCC.mkDerivation
{
inherit pname;
version = "0-unstable-2026-04-27";
version = "0-unstable-2026-05-06";
src = fetchFromGitLab {
owner = "aiyahm";
repo = "FairyWren-Icons";
rev = "480e57a9ee90f8de05189f92dc5651fced9bc913";
hash = "sha256-1iz7Sv4XjoFcpo7XqB5iRHmki0hPE0kqqkH+ATVTPpY=";
rev = "ea33df10bcc0054b1981f859dcbcc36a77de9107";
hash = "sha256-Y4siWzKOmHBATSeoJ+Y5FbntsJYLFp8nmMcQq/UQGXw=";
};
propagatedBuildInputs = [
+30 -10
View File
@@ -1,17 +1,37 @@
diff --git a/tests/checks/path.fish b/tests/checks/path.fish
index 62812571a..b0eebcd91 100644
--- a/tests/checks/path.fish
+++ b/tests/checks/path.fish
@@ -117,12 +117,6 @@ path filter --type file,dir --perm exec,write bin/fish .
diff --git i/tests/checks/path.fish w/tests/checks/path.fish
index 4bf14878e..4024c6d34 100644
--- i/tests/checks/path.fish
+++ w/tests/checks/path.fish
@@ -135,32 +135,6 @@ path filter --type file,dir --perm exec,write bin/fish .
# So it passes.
# CHECK: .
-mkdir -p sbin
-touch sbin/setuid-exe sbin/setgid-exe
-chmod u+s,a+x sbin/setuid-exe
-path filter --perm suid sbin/*
-
-# Without POSIX permission, there is no way to set the setuid bit, so fake
-# the output.
-if set -q noacl
- echo sbin/setuid-exe
-else
- chmod u+s,a+x sbin/setuid-exe
- path filter --perm suid sbin/*
-end
-# CHECK: sbin/setuid-exe
-
# On at least FreeBSD on our CI this fails with "permission denied".
# So we can't test it, and we fake the output instead.
if chmod g+s,a+x sbin/setgid-exe 2>/dev/null
-# Without POSIX permission, there is no way to set the setgid bit, so fake
-# the result.
-# And on at least FreeBSD on our CI this fails with "permission denied".
-# So we can't test it, and we fake the output there too.
-if set -q noacl
- echo sbin/setgid-exe
-else if chmod g+s,a+x sbin/setgid-exe 2>/dev/null
- path filter --perm sgid sbin/*
-else
- echo sbin/setgid-exe
-end
-# CHECK: sbin/setgid-exe
-
mkdir stuff
touch stuff/{read,write,exec,readwrite,readexec,writeexec,all,none}
if set -q noacl
+5 -4
View File
@@ -148,13 +148,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "fish";
version = "4.6.0";
version = "4.7.0";
src = fetchFromGitHub {
owner = "fish-shell";
repo = "fish-shell";
tag = finalAttrs.version;
hash = "sha256-lhixotjhD8+xb8Hw6Mu1uJPtCq0zlQsBAXpHRzT+moI=";
hash = "sha256-LzpWSxhUMcJytxUoD7SZyLc/+hiL6CAyL/0FNbvBk1M=";
};
env = {
@@ -167,7 +167,7 @@ stdenv.mkDerivation (finalAttrs: {
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src patches;
hash = "sha256-zua2O3eGi7dXh4w0IoUGL2RxvGIW0O3WpVg/tT8942Q=";
hash = "sha256-WS7FWws1dIuVM9gE1PBnDZpUcRu96fWR80Az4Q+tZpI=";
};
patches = [
@@ -238,7 +238,8 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace share/functions/grep.fish \
--replace-fail "command grep" "command ${lib.getExe gnugrep}"
substituteInPlace share/completions/{sudo.fish,doas.fish} \
substituteInPlace share/completions/doas.fish \
share/functions/__fish_complete_sudo.fish \
--replace-fail "/usr/local/sbin /sbin /usr/sbin" ""
''
+ lib.optionalString usePython ''
+29
View File
@@ -0,0 +1,29 @@
{
lib,
rustPlatform,
fetchgit,
}:
let
version = "0.1.0";
in
rustPlatform.buildRustPackage {
pname = "flake-du";
inherit version;
src = fetchgit {
url = "https://github.com/kmein/flake-du";
rev = "v${version}";
sha256 = "sha256-+YfQRi6QE4xNUcIcEc9HWIbnin6GCVp4SYrjvBwksys=";
};
cargoHash = "sha256-DYVT9jM9WcgoVSOnoUIWWR9EmNywR1f4xZOAzkbNkCk=";
__structuredAttrs = true;
meta = {
description = "Tool for managing flake inputs with disk usage insights";
license = lib.licenses.mit;
homepage = "https://github.com/kmein/flake-du";
maintainers = [ lib.maintainers.kmein ];
};
}
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
pname = "fn";
version = "0.6.49";
version = "0.6.50";
src = fetchFromGitHub {
owner = "fnproject";
repo = "cli";
rev = finalAttrs.version;
hash = "sha256-qDLBwxMDVPY2WWCAGw7jFwHX9qAnqOuz9Tgfg1EC1bc=";
hash = "sha256-j6UJXBi+q61gQwOhGuI9vIG5i+xkUOTdNRMRYPoc284=";
};
vendorHash = null;
+3 -3
View File
@@ -52,17 +52,17 @@ let
in
buildGoModule (finalAttrs: {
pname = "forgejo-runner";
version = "12.9.0";
version = "12.10.1";
src = fetchFromGitea {
domain = "code.forgejo.org";
owner = "forgejo";
repo = "runner";
rev = "v${finalAttrs.version}";
hash = "sha256-yhcD+FiRuo+WAvKFtgAI+36/uIci9O1s9RtXT0Q75Uo=";
hash = "sha256-OBMduRaGSVPojSAr6DKPbAdUyuw1MSCpipRv+EA5OGw=";
};
vendorHash = "sha256-CCUyL6ZxLRQy30TQUj1yOAuR7Ctp06/0jG8Q3De6/oo=";
vendorHash = "sha256-V9dEHNp80oS7NfsGIlKgFyHD1PmMm2bCqydVADpphuA=";
nativeBuildInputs = [ makeWrapper ];
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "framework-tool";
version = "0.6.2";
version = "0.6.3";
src = fetchFromGitHub {
owner = "FrameworkComputer";
repo = "framework-system";
tag = "v${finalAttrs.version}";
hash = "sha256-6fitUk939Jy0vBfwnV+ZBxOW4DcFJIY7xGmqfrWj86g=";
hash = "sha256-EoaMVbnmidXoCRMbqn5LIZuxXE9xl9Dtb16U9FKmH+4=";
};
cargoHash = "sha256-U3agwXUtCbfrcr5NyukCnERbznvCaGla/IfHHUS+TiA=";
cargoHash = "sha256-PshbC+LIBm84/86w9lP0OmCVztsT5gB+86rUorCDsQM=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ];
+2 -2
View File
@@ -32,13 +32,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "freerouting";
version = "2.2.1";
version = "2.2.2";
src = fetchFromGitHub {
owner = "freerouting";
repo = "freerouting";
tag = "v${finalAttrs.version}";
hash = "sha256-bIts0ORxw9GDKRP78k0YnrfUqBliyf8v3gK/WtfNRgw=";
hash = "sha256-WhEofQs3TwnhB9fSROPQfWd1PHCDoH790lV54ujlmX4=";
};
gradleBuildTask = "dist";
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "gat";
version = "0.27.1";
version = "0.27.2";
src = fetchFromGitHub {
owner = "koki-develop";
repo = "gat";
tag = "v${finalAttrs.version}";
hash = "sha256-8+IpVMbV+1aXNZoIWVZF/GDsLh2G1rHudkyifguGl0g=";
hash = "sha256-3qm9kvAL522QCK7nXIWywdHFfxeuCJ9pukpd2ehIBis=";
};
vendorHash = "sha256-UUFfM51toafSxK+x7Q7c9wPDiO22f7YfLc05u3uWLAE=";
vendorHash = "sha256-4RswVTjVF9pF7u94BbYIP0ukaKkPrTriSbPHOhhrJuI=";
env.CGO_ENABLED = 0;
+4 -4
View File
@@ -56,24 +56,24 @@
let
pname = "gitkraken";
version = "12.0.1";
version = "12.1.0";
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
srcs = {
x86_64-linux = fetchzip {
url = "https://api.gitkraken.dev/releases/production/linux/x64/${version}/gitkraken-amd64.tar.gz";
hash = "sha256-Tn4j9zmH8hr5rKaPFgox/LopTvEWghnPGf4JiM8y86k=";
hash = "sha256-HLo5cNkA59JBZ43Aea5W4vj2X4UDN0NtaB4VEjDQwvM=";
};
x86_64-darwin = fetchzip {
url = "https://api.gitkraken.dev/releases/production/darwin/x64/${version}/GitKraken-v${version}.zip";
hash = "sha256-bKbqu94JPI4VOPcphkw/vAN/ihb5wc5qh/qaw7bweG0=";
hash = "sha256-SzGcT/2X4OXgtUqKCfE9UkKJsBCrKqj++vTdz2Rqfrc=";
};
aarch64-darwin = fetchzip {
url = "https://api.gitkraken.dev/releases/production/darwin/arm64/${version}/GitKraken-v${version}.zip";
hash = "sha256-h2RSdK75i1NbchGauDSvaYJyz39Bncgf+RQIfRdDQuE=";
hash = "sha256-WYhSqRR0bHB1CKGbwSYHWvaCa/GpZCO6X4q6GMLuFpI=";
};
};

Some files were not shown because too many files have changed in this diff Show More