Merge remote-tracking branch 'origin/staging-next' into staging

This commit is contained in:
K900
2026-06-24 16:12:11 +03:00
109 changed files with 1262 additions and 617 deletions

View File

@@ -99,16 +99,16 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
/maintainers/scripts/doc @jtojnar @ryantm
# Contributor documentation
/CONTRIBUTING.md @infinisil
/.github/PULL_REQUEST_TEMPLATE.md @infinisil
/doc/contributing/ @infinisil
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar @infinisil
/lib/README.md @infinisil
/doc/README.md @infinisil
/nixos/README.md @infinisil
/pkgs/README.md @infinisil
/pkgs/by-name/README.md @infinisil
/maintainers/README.md @infinisil
/CONTRIBUTING.md
/.github/PULL_REQUEST_TEMPLATE.md
/doc/contributing/
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar
/lib/README.md
/doc/README.md
/nixos/README.md
/pkgs/README.md
/pkgs/by-name/README.md
/maintainers/README.md
# User-facing development documentation
/doc/development.md @infinisil

View File

@@ -21,7 +21,6 @@
By the time of this release, Homebrew will offer only limited [Tier 3](https://docs.brew.sh/Support-Tiers#tier-3) support for the platform, but MacPorts will likely continue to support it for a long time.
We also recommend users consider installing NixOS, which should continue to run on essentially all Intel Macs, especially after Apple stops security support for macOS 26 in 2028.
- Paths under `/etc/xdg/` from packages in `environment.systemPackages` are no longer linked into the global `/etc/` by default. Modules depending on such directories must declare them explicitly using `environment.pathsToLink`.
- `databricks-cli` has been updated from `0.290.2` to `1.x.x`, the first major release. OAuth tokens for interactive logins (`auth_type = databricks-cli`) are now stored in the OS-native secure store by default (Secret Service on Linux) instead of `~/.databricks/token-cache.json`; cached tokens from older versions are not migrated, so run `databricks auth login` once per profile after upgrading. To keep the previous file-backed storage, set `DATABRICKS_AUTH_STORAGE=plaintext` or add `auth_storage = plaintext` under `[__settings__]` in `~/.databrickscfg`. Additionally, the `vector_search_endpoints` DABs resource renamed `min_qps` to `target_qps` (and the `vector-search-endpoints` command renamed `--min-qps` to `--target-qps`). See the [upstream changelog](https://github.com/databricks/cli/blob/main/CHANGELOG.md) for details.
- `hurl` has been updated to `8.x.x` which has some breaking changes. See [upstream changelog](https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0) for details.
@@ -105,3 +104,4 @@
### Additions and Improvements {#sec-nixpkgs-release-26.11-lib-additions-improvements}
- Create the first release note entry in this section!

View File

@@ -4203,6 +4203,13 @@
githubId = 18356186;
name = "Gabriela Moreira";
};
buggymcbugfix = {
email = "nix@vilem.net";
github = "buggymcbugfix";
matrix = "@buggymcbugfix:matrix.org";
githubId = 17603372;
name = "Vilem Liepelt";
};
bugworm = {
email = "bugworm@zoho.com";
github = "bugworm";
@@ -9881,6 +9888,12 @@
githubId = 3217744;
name = "Peter Ferenczy";
};
ghastrum = {
name = "Dennis Malmin";
email = "dennis.malmin@tuta.com";
github = "Ghastrum";
githubId = 276720856;
};
ghostbuster91 = {
name = "Kasper Kondzielski";
email = "kghost0@gmail.com";

View File

@@ -64,6 +64,8 @@
- `security.polkit.settings` added for RFC42 style configuration of the polkitd daemon.
- The `programs.fuse` module, which provides the `fusermount3` executable and the `/etc/fuse.conf` config file, is now opt-in. The obligation to enable it has been shifted to its various consumers (e.g. gvfs, flatpak, appimage, sshfs). This can break fuse consumers at runtime, that don't explicitly declare that dependency with a module, e.g the mounting functionality in various backup tools (borg, restic, rclone, ...).
- `services.plausible` can now again seed an initial admin user declaratively via [`services.plausible.adminUser.email`](#opt-services.plausible.adminUser.email).
This makes fully declarative deployments safer: Otherwise the user needed to either accept Plausible's unauthenticated "first launch" setup wizard, which lets anyone reaching the instance create the first admin account, or do more work (deploying with NixOS's default binding to `localhost` without exposing it publicly, going through the wizard, and then deploying Plausible exposed to the Internet).
This option was previously removed with NixOS 25.05 due to an upstream Plausible change making declarative admin creation more difficult, but this change re-implements the admin creation directly.

View File

@@ -1062,12 +1062,16 @@ class QemuMachine(BaseMachine):
assert self.shell
tic = time.time()
# TODO: do we want to bail after a set number of attempts?
while not shell_ready(timeout_secs=30):
for _ in range(10):
if shell_ready(timeout_secs=30):
break
self.log("Guest root shell did not produce any data yet...")
self.log(
" To debug, enter the VM and run 'systemctl status backdoor.service'."
)
else:
raise RuntimeError("Shell did not start in time")
while True:
chunk = self.shell.recv(1024)
@@ -1629,7 +1633,7 @@ class NspawnMachine(BaseMachine):
# NOTE If the test calls switch-to-configuration (with a differently configured specialization)
# this will use the /etc/profile of the new specialisation while `QemuMachine` nodes
# will continue to use the original /etc/profile.
command = f"set -eo pipefail; source /etc/profile; set -u; {command}"
command = f"set -eo pipefail; USER=root HOME=/root source /etc/profile; set -u; {command}"
cp = subprocess.run(
[

View File

@@ -135,8 +135,13 @@ let
);
udevRules = map (
interface:
# MAC Addresses for QEMU network devices are lowercase, and udev string comparison is case-sensitive.
''SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="${toLower (qemu-common.qemuNicMac interface.vlan config.virtualisation.test.nodeNumber)}",NAME="${interface.name}"''
lib.concatStringsSep ", " [
''SUBSYSTEM=="net"''
''ACTION=="add"''
# MAC Addresses for QEMU network devices are lowercase, and udev string comparison is case-sensitive.
''ATTR{address}=="${toLower (qemu-common.qemuNicMac interface.vlan config.virtualisation.test.nodeNumber)}"''
''NAME="${interface.name}"''
]
) interfaces;
in
{

View File

@@ -74,7 +74,9 @@ in
}
(
''
set +e
mmap_rnd_bits_max=$(grep "^CONFIG_ARCH_MMAP_RND_BITS_MAX=" $configfile | grep --only-matching "[0-9]*$")
set -e
if [[ -z "$mmap_rnd_bits_max" ]]; then
echo "Unable to determine mmap_rnd_bits_max. Check your kernel configfile is valid."
exit 1
@@ -83,7 +85,9 @@ in
''
# HAVE_ARCH_MMAP_RND_COMPAT_BITS is not defined on 32-bit architectures or LoongArch64
+ lib.optionalString (with pkgs.stdenv.hostPlatform; (!is32bit && !isLoongArch64)) ''
set +e
mmap_rnd_compat_bits_max=$(grep "^CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=" $configfile | grep --only-matching "[0-9]*$")
set -e
if [[ -z "$mmap_rnd_compat_bits_max" ]]; then
echo "Unable to determine mmap_rnd_compat_bits_max. Check your kernel configfile is valid."
exit 1

View File

@@ -187,6 +187,7 @@ in
environment.pathsToLink = [
"/bin"
"/etc/xdg"
"/etc/gtk-2.0"
"/etc/gtk-3.0"
"/lib" # FIXME: remove and update debug-info.nix

View File

@@ -22,6 +22,8 @@
};
config = {
# FIXME this does not actually work because "/etc/xdg" is linked
# unconditionally in `nixos/modules/config/system-path.nix`
environment.pathsToLink = lib.mkIf config.xdg.autostart.install [
"/etc/xdg/autostart"
];

View File

@@ -387,6 +387,7 @@
./programs/zsh/zsh-syntax-highlighting.nix
./programs/zsh/zsh.nix
./rename.nix
./security/account-utils.nix
./security/acme
./security/agnos.nix
./security/apparmor.nix

View File

@@ -15,8 +15,6 @@
environment.corePackages = lib.mkForce [ ];
# Contains bash completions
nix.enable = lib.mkDefault false;
# The fuse{,3} package contains a runtime dependency on bash.
programs.fuse.enable = lib.mkDefault false;
documentation.man.man-db.enable = lib.mkDefault false;
# autovt depends on bash
console.enable = lib.mkDefault false;

View File

@@ -43,6 +43,8 @@ in
}
);
environment.systemPackages = [ cfg.package ];
programs.fuse.enable = true;
};
meta.maintainers = with lib.maintainers; [

View File

@@ -12,9 +12,7 @@ in
meta.maintainers = [ ];
options.programs.fuse = {
enable = lib.mkEnableOption "fuse" // {
default = true;
};
enable = lib.mkEnableOption "fuse";
mountMax = lib.mkOption {
# In the C code it's an "int" (i.e. signed and at least 16 bit), but

View File

@@ -0,0 +1,65 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.security.account-utils;
in
{
options.security.account-utils = {
enable = lib.mkEnableOption "the account-utils implementation of Unix user authentication and management";
package = lib.mkPackageOption pkgs "account-utils" { };
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.nonEmptyStr;
default = [ ];
example = [
"--debug"
"-v"
];
description = ''
List of arguments to pass to the socket activated service executables.
::: {.note}
This is passed to both pwupdd and pwaccessd, which support identical flags.
:::
'';
};
};
config = lib.mkIf cfg.enable {
# use account-utils reimplementation of pam_unix
security.pam = {
pam_unixModulePath = "${cfg.package}/lib/security/pam_unix_ng.so";
enableLegacySettings = false;
};
systemd = {
packages = [ cfg.package ];
sockets.pwaccessd.wantedBy = [ "sockets.target" ];
sockets.pwupdd.wantedBy = lib.optional config.users.mutableUsers "sockets.target"; # immutable users do not need password updating
sockets.newidmapd.wantedBy = [ "sockets.target" ];
services."pwupdd@".environment.PWUPDD_OPTS = lib.escapeShellArgs cfg.extraArgs;
services."pwaccessd".environment.PWACCESSD_OPTS = lib.escapeShellArgs cfg.extraArgs;
};
environment.systemPackages = [ cfg.package ];
security.pam.services = {
pwupd-passwd = { };
pwupd-chsh = { };
pwupd-chfn = { };
};
# covered by account-utils via socket-activated service
security.wrappers = {
# shadow suid binaries are no longer necessary, but disabling the entire shadow module is too intrusive
newuidmap.enable = false;
newgidmap.enable = false;
chsh.enable = false;
passwd.enable = false;
unix_chkpwd.enable = false; # Not necessary when using pam_unix_ng.so
};
};
}

View File

@@ -1008,7 +1008,7 @@ let
{
name = "unix";
control = "required";
modulePath = "${package}/lib/security/pam_unix.so";
modulePath = config.security.pam.pam_unixModulePath;
}
# pam_slurm_adopt must be the last module in the account stack.
{
@@ -1217,11 +1217,11 @@ let
name = "unix-early";
enable = cfg.unixAuth;
control = "optional";
modulePath = "${package}/lib/security/pam_unix.so";
modulePath = config.security.pam.pam_unixModulePath;
settings = {
nullok = cfg.allowNullPassword;
inherit (cfg) nodelay;
likeauth = true;
likeauth = lib.mkIf config.security.pam.enableLegacySettings true;
};
}
{
@@ -1315,11 +1315,11 @@ let
name = "unix";
enable = cfg.unixAuth;
control = "sufficient";
modulePath = "${package}/lib/security/pam_unix.so";
modulePath = config.security.pam.pam_unixModulePath;
settings = {
nullok = cfg.allowNullPassword;
inherit (cfg) nodelay;
likeauth = true;
likeauth = lib.mkIf config.security.pam.enableLegacySettings true;
try_first_pass = true;
};
}
@@ -1404,10 +1404,10 @@ let
{
name = "unix";
control = "sufficient";
modulePath = "${package}/lib/security/pam_unix.so";
modulePath = config.security.pam.pam_unixModulePath;
settings = {
nullok = true;
yescrypt = true;
yescrypt = lib.mkIf config.security.pam.enableLegacySettings true;
};
}
{
@@ -1493,7 +1493,7 @@ let
{
name = "unix";
control = "required";
modulePath = "${package}/lib/security/pam_unix.so";
modulePath = config.security.pam.pam_unixModulePath;
}
{
name = "loginuid";
@@ -1860,6 +1860,14 @@ in
security.pam.package = lib.mkPackageOption pkgs "pam" { };
security.pam.pam_unixModulePath = lib.mkOption {
type = lib.types.pathInStore;
default = "${package}/lib/security/pam_unix.so";
defaultText = "\${config.security.pam.package}/lib/security/pam_unix.so";
description = "The pam_unix module to use in all the default pam services.";
internal = true;
};
security.pam.loginLimits = lib.mkOption {
default = [ ];
type = limitsType;
@@ -1904,6 +1912,19 @@ in
'';
};
security.pam.enableLegacySettings = lib.mkOption {
default = true;
type = lib.types.bool;
description = ''
Alternative implementations of pam_unix may not support all legacy arguments.
This option will disable all known legacy settings.
::: {.note}
Setting this option to false will omit arguments, such as `yescrypt`.
Doing so is only safe if the defaults used by pam_unix are sensible.
:::
'';
};
security.pam.makeHomeDir.skelDirectory = lib.mkOption {
type = lib.types.str;
default = "/var/empty";

View File

@@ -662,11 +662,6 @@ in
) | ${cfg.package}/bin/mysql -u ${superUser} -N
''}
# Secure root@localhost for MySQL/Percona on first initialization
${lib.optionalString (cfg.secureSuperUserByDefault && !isMariaDB) ''
echo "ALTER USER root@localhost IDENTIFIED WITH auth_socket;" | ${cfg.package}/bin/mysql -u ${superUser} -N
''}
${lib.optionalString (cfg.initialScript != null) ''
# Execute initial script
# using toString to avoid copying the file to nix store if given as path instead of string,
@@ -674,6 +669,11 @@ in
cat ${toString cfg.initialScript} | ${cfg.package}/bin/mysql -u ${superUser} -N
''}
# Secure root@localhost for MySQL/Percona on first initialization
${lib.optionalString (cfg.secureSuperUserByDefault && !isMariaDB) ''
echo "ALTER USER root@localhost IDENTIFIED WITH auth_socket;" | ${cfg.package}/bin/mysql -u ${superUser} -N
''}
rm ${cfg.dataDir}/mysql_init
fi

View File

@@ -124,16 +124,7 @@ in
};
};
systemd = {
packages = [ pkgs.cosmic-session ];
user.targets = {
# TODO: remove when upstream has XDG autostart support
cosmic-session = {
wants = [ "xdg-desktop-autostart.target" ];
before = [ "xdg-desktop-autostart.target" ];
};
};
};
systemd.packages = [ pkgs.cosmic-session ];
fonts.packages = with pkgs; [
fira

View File

@@ -274,6 +274,7 @@ in
services.power-profiles-daemon.enable = mkDefault true;
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
programs.fuse.enable = true;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
services.libinput.enable = mkDefault true;

View File

@@ -40,6 +40,8 @@ in
pkgs.fuse3
];
programs.fuse.enable = true;
security.polkit.enable = true;
fonts.fontDir.enable = true;

View File

@@ -40,6 +40,8 @@ in
environment.systemPackages = [ cfg.package ];
programs.fuse.enable = true;
services.dbus.packages = [ cfg.package ];
systemd.packages = [ cfg.package ];

View File

@@ -17,7 +17,7 @@ in
type = types.str;
default = "http://localhost:8053/";
description = ''
HTTP XML API address of an Bind server.
HTTP API address of a BIND server.
'';
};
bindTimeout = mkOption {
@@ -29,13 +29,14 @@ in
};
bindVersion = mkOption {
type = types.enum [
"xml.v2"
"json"
"xml"
"xml.v3"
"auto"
];
default = "auto";
default = "json";
description = ''
BIND statistics version. Can be detected automatically.
BIND statistics version. Defaults to JSON.
'';
};
bindGroups = mkOption {

View File

@@ -332,8 +332,9 @@ in
boot.kernel.sysctl."net.core.rmem_max" = lib.mkDefault 7500000;
boot.kernel.sysctl."net.core.wmem_max" = lib.mkDefault 7500000;
programs.fuse = lib.mkIf (cfg.autoMount && cfg.settings.Mounts.FuseAllowOther) {
userAllowOther = true;
programs.fuse = {
enable = lib.mkIf cfg.autoMount true;
userAllowOther = lib.mkIf cfg.settings.Mounts.fuseAllowOther true;
};
users.users = lib.mkIf (cfg.user == "ipfs") {

View File

@@ -124,6 +124,16 @@ let
jobScripts = concatLists (
mapAttrsToList (_: unit: unit.jobScripts or [ ]) (filterAttrs (_: v: v.enable) cfg.services)
);
unitEnv = pkgs.buildEnv {
name = "initrd-unit-env";
paths = concatLists (
mapAttrsToList (_: unit: unit.path or [ ]) (filterAttrs (_: v: v.enable) cfg.services)
);
pathsToLink = [
"/bin"
"/sbin"
];
};
stage1Units = generateUnits {
type = "initrd";
@@ -636,6 +646,7 @@ in
"${pkgs.bashNonInteractive}/bin"
]
++ jobScripts
++ [ unitEnv ]
++ map (c: removeAttrs c [ "text" ]) (builtins.attrValues cfg.contents)
++ lib.optional (pkgs.stdenv.hostPlatform.libc == "glibc") "${pkgs.glibc}/lib/libnss_files.so.2";

View File

@@ -10,6 +10,8 @@
lib.mkIf
(config.boot.supportedFilesystems.sshfs or config.boot.supportedFilesystems."fuse.sshfs" or false)
{
programs.fuse.enable = true;
system.fsPackages = [ pkgs.sshfs ];
};
}

View File

@@ -942,6 +942,7 @@ in
localsend = runTest ./localsend.nix;
locate = runTest ./locate.nix;
login = runTest ./login.nix;
login-nosuid = runTest ./login-nosuid.nix;
logkeys = runTest ./logkeys.nix;
logrotate = runTest ./logrotate.nix;
loki = runTest ./loki.nix;

View File

@@ -13,6 +13,8 @@
pkgs.openssl
];
programs.fuse.enable = true;
specialisation.fstab-test.configuration = {
# This can't be fileSytems, as the qemu machinery doesn't honor it.
virtualisation.fileSystems."/plain" = {

View File

@@ -0,0 +1,105 @@
{
name = "login-nosuid";
meta = {
maintainers = [ ];
};
# node.pkgsReadOnly = false; # needed when overriding pam to debug mode
nodes.machine =
{ pkgs, ... }:
{
security.enableWrappers = false;
systemd.settings.Manager.NoNewPrivileges = true;
security.account-utils.enable = true;
users.mutableUsers = true;
security.account-utils.extraArgs = [
"-v"
"--debug"
];
security.loginDefs.chfnRestrict = "f"; # allow allice to change name
environment.systemPackages = [
pkgs.which
pkgs.fish # environment.shells does not actually link fish to /run/current-system/sw/bin, causing chsh to fail unexpectedly
];
environment.shells = [ pkgs.fish ];
# pam debug without giant rebuild
# system.replaceDependencies.replacements = [
# {
# oldDependency = pkgs.linux-pam;
# newDependency = pkgs.linux-pam.override { debugMode = true; };
# }
# ];
};
testScript = ''
machine.start(allow_reboot = True)
machine.wait_for_unit("multi-user.target")
machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
machine.screenshot("postboot")
with subtest("account-utils passwd has priority"):
passwd_path = machine.succeed("realpath $(which passwd)")
print(f"passwd path is: {passwd_path}")
assert "account-utils" in passwd_path
with subtest("create user"):
machine.succeed("useradd -m alice")
machine.succeed("(echo foobar; echo foobar) | passwd alice")
with subtest("Check whether switching VTs works"):
machine.fail("pgrep -f 'agetty.*tty2'")
machine.send_key("alt-f2")
machine.wait_until_succeeds("[ $(fgconsole) = 2 ]")
machine.wait_for_unit("getty@tty2.service")
machine.wait_until_succeeds("pgrep -f 'agetty.*tty2'")
with subtest("Log in as alice on a virtual console"):
machine.wait_until_tty_matches("2", "login: ")
machine.send_chars("alice\n")
machine.wait_until_tty_matches("2", "login: alice")
machine.wait_until_succeeds("pgrep login")
machine.wait_until_tty_matches("2", "Password: ")
machine.sleep(1) # something is racy here, so lets just sleep a bit... Not great, but seems to work
machine.send_chars("foobar\n")
machine.wait_until_succeeds("pgrep -u alice bash")
machine.send_chars("touch done\n")
machine.wait_for_file("/home/alice/done")
with subtest("Systemd gives and removes device ownership as needed"):
machine.succeed("getfacl /dev/snd/timer | grep -q alice")
machine.send_key("alt-f1")
machine.wait_until_succeeds("[ $(fgconsole) = 1 ]")
machine.fail("getfacl /dev/snd/timer | grep -q alice")
machine.succeed("chvt 2")
machine.wait_until_succeeds("getfacl /dev/snd/timer | grep -q alice")
with subtest("User can change their login shell"):
machine.send_chars("clear\n") # remove previous password prompts
machine.send_chars("chsh -s /run/current-system/sw/bin/fish\n")
machine.wait_until_tty_matches("2", "Password: ")
machine.send_chars("foobar\n")
machine.wait_until_fails("pgrep pwupdd")
login_shell = machine.succeed("getent passwd alice | cut -d: -f7").strip()
print(f"login shell of user alice: {login_shell}")
assert "/run/current-system/sw/bin/fish" == login_shell
with subtest("User can change their name"):
machine.send_chars("clear\n") # remove previous password prompts
machine.send_chars("chfn -f 'Alice in Wonderland'\n")
machine.wait_until_tty_matches("2", "Password: ")
machine.send_chars("foobar\n")
machine.wait_until_fails("pgrep pwupdd")
full_name = machine.succeed("getent passwd alice | cut -d: -f5").strip()
print(f"full name of user alice: {full_name}")
assert "Alice in Wonderland" == full_name
with subtest("Virtual console logout"):
machine.send_chars("exit\n")
machine.wait_until_fails("pgrep -u alice bash")
machine.screenshot("getty")
'';
}

View File

@@ -111,7 +111,7 @@ let
wait_for_unit("prometheus-bind-exporter.service")
wait_for_open_port(9119)
succeed(
"curl -sSf http://localhost:9119/metrics | grep 'bind_query_recursions_total 0'"
"curl -sSf http://localhost:9119/metrics | grep 'bind_up 1'"
)
'';
};

View File

@@ -1,11 +1,16 @@
{
name = "simple-container";
containers.machine = { };
containers = {
machine = { pkgs, ... }: {
users.users.root.packages = [ pkgs.hello ];
};
noprofile = { };
};
testScript = ''
start_all()
machine.wait_for_unit("multi-user.target")
machine.shutdown()
machine.succeed("hello")
noprofile.fail("hello")
'';
}

View File

@@ -43,6 +43,19 @@ let
server.serve_forever()
'';
# Per-connection (Accept=yes) socket-activated service that requires the
# connection socket to be passed via socket activation and fails when started
# without one. It greets the client and stays alive for as long as the
# connection is held open.
acceptSocketTest = pkgs.writeShellScript "accept-socket-test.sh" ''
if [ "''${LISTEN_FDS:-0}" -lt 1 ]; then
echo "Expected exactly one socket, got 0" >&2
exit 4
fi
printf hello >&3
exec ${lib.getExe' pkgs.coreutils "cat"} <&3 >/dev/null
'';
in
{
name = "switch-test";
@@ -508,6 +521,32 @@ in
};
};
accept-socket.configuration = {
systemd.sockets.accept-socket = {
wantedBy = [ "sockets.target" ];
listenStreams = [ "/run/accept-test.sock" ];
socketConfig = {
Accept = "yes";
SocketMode = "0777";
};
};
systemd.services."accept-socket@" = {
description = "A per-connection socket-activated service";
serviceConfig.ExecStart = acceptSocketTest;
};
};
accept-socket-service-modified.configuration = {
imports = [ accept-socket.configuration ];
systemd.services."accept-socket@".serviceConfig.X-Test = "test";
};
socket-activated-without-socket.configuration = {
imports = [ simple-socket.configuration ];
systemd.sockets.socket-activated.enable = false;
systemd.services.socket-activated.wantedBy = [ "multi-user.target" ];
};
mount.configuration = {
systemd.mounts = [
{
@@ -1587,6 +1626,49 @@ in
if machine.succeed("socat - UNIX-CONNECT:/run/test.sock") != "hello":
raise Exception("Socket was not properly activated after the service was restarted")
# A service transitioning to socket activation is not started directly,
# it's left for the newly started socket to activate on demand
switch_to_specialisation("${machine}", "socket-activated-without-socket")
machine.succeed("systemctl is-active socket-activated.service")
out = switch_to_specialisation("${machine}", "simple-socket-stop-if-changed")
assert_contains(out, "stopping the following units: socket-activated.service\n")
assert_lacks(out, "\nstarting the following units:")
assert_contains(out, "the following new units were started: socket-activated.socket\n")
machine.succeed("[ -S /run/test.sock ]")
if machine.succeed("socat - UNIX-CONNECT:/run/test.sock") != "hello":
raise Exception("Socket was not properly activated after the transition")
with subtest("socket-activated services with Accept=yes"):
# Socket-activated services don't get started, just the socket
machine.fail("[ -S /run/accept-test.sock ]")
out = switch_to_specialisation("${machine}", "accept-socket")
assert_contains(out, "the following new units were started: accept-socket.socket\n")
machine.succeed("[ -S /run/accept-test.sock ]")
# Hold a connection open so a per-connection instance keeps running
machine.succeed("socat EXEC:'sleep infinity' UNIX-CONNECT:/run/accept-test.sock >&2 &")
instance = machine.wait_until_succeeds(
"systemctl list-units --no-legend --state=running 'accept-socket@*.service' "
+ "| grep -m1 -o 'accept-socket@[^ ]*\\.service'"
).strip()
# Changing the templated service must stop the running instance and
# restart the socket instead of (re)starting the per-connection
# instance, which cannot be started without a connection socket
out = switch_to_specialisation("${machine}", "accept-socket-service-modified")
assert_contains(out, "stopping the following units:")
assert_contains(out, instance)
assert_contains(out, "accept-socket.socket")
assert_contains(out, "\nstarting the following units: accept-socket.socket\n")
assert_lacks(out, "NOT restarting the following changed units:")
assert_lacks(out, "\nrestarting the following units:")
# The per-connection instance must not be (re)started
starting = out[out.index("\nstarting the following units:") :]
assert instance not in starting, f"instance {instance} should not be (re)started"
# Socket-activation of the unit still works
if machine.succeed("socat - UNIX-CONNECT:/run/accept-test.sock </dev/null") != "hello":
raise Exception("Socket was not properly activated after the service was changed")
with subtest("mounts"):
switch_to_specialisation("${machine}", "mount")
out = machine.succeed("mount | grep 'on /testmount'")

View File

@@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-TEEv8R6VXuOhcX2OgTKY7A8L2akisJLsx6I6bUdV3a0=";
hash = "sha256-/ns84fHAyTY7sSvhUNzq1XQYq2Xy303zs2BxJY8DBVA=";
};
"aarch64-linux" = {
arch = "linux-arm64";
hash = "sha256-wis4QqTuCiRAVpoGp+Ds83lWPsNUUPmXbZcYiWuY2zg=";
hash = "sha256-U69X5lpeJaeNVL4WWzCUpI6IfbKSJXGpl30AYnx1fBQ=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-2njmUMYxFAaKzCdwM//S5D0fqVZhIKG0JzbT1ye4Sr4=";
hash = "sha256-DHE09NtGNOjB0HdBqTKRtDsZXpxb651kiVGhRwO1tBU=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-+cJhcXufpiNrpdL+HH3mW+rrzb7Si/4LGvoce1o0c/w=";
hash = "sha256-5YIZVBMsoF0bWP27sVEVHAaAiqvmoSUgdbc8wsqUCLA=";
};
};
in
{
name = "claude-code";
publisher = "anthropic";
version = "2.1.186";
version = "2.1.187";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");

View File

@@ -8,13 +8,13 @@
}:
mkLibretroCore {
core = "flycast";
version = "0-unstable-2026-06-12";
version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
rev = "c0f2cf4319d6c77d577599906ca0a90627a3afc8";
hash = "sha256-ie0mP7IcvWsFX/k0UhJ6eMkdyDq69W8aCcjwkAoL5II=";
rev = "59ab660649d933f40cf281656ba949eb4c835d73";
hash = "sha256-Hwav4vHppInUUbiSch3J84P7HIYkQ+DM431fFdq1qEg=";
fetchSubmodules = true;
};

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
linux-pam,
systemdLibs,
libcap,
libxcrypt,
libeconf,
libselinux,
docbook-xsl-ns,
libxslt,
nixosTests,
}:
let
selinuxSupport = lib.meta.availableOn stdenv.hostPlatform libselinux;
in
stdenv.mkDerivation (finalAttrs: {
pname = "account-utils";
version = "1.3.0";
src = fetchFromGitHub {
owner = "thkukuk";
repo = "account-utils";
tag = "v${finalAttrs.version}";
hash = "sha256-9l+y7FLb0IZXXp4RstlhNR6yA7b4b831obFuiVtO9+k=";
};
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
libxslt
docbook-xsl-ns
];
buildInputs = [
linux-pam
systemdLibs
libxcrypt
libeconf
libcap
]
++ lib.optional selinuxSupport libselinux;
mesonFlags = [
(lib.mesonEnable "selinux" selinuxSupport)
(lib.mesonOption "c_args" "-ffat-lto-objects")
];
passthru.tests = {
inherit (nixosTests) login-nosuid;
};
meta = {
description = "Services, utilities and PAM modules, which allow authentication and account management on systems with the NoNewPrivs flag set (no setuid/setgid binaries)";
homepage = "https://github.com/thkukuk/account-utils";
changelog = "https://github.com/thkukuk/account-utils/releases/tag/v${finalAttrs.version}";
license =
with lib.licenses;
AND [
gpl2Plus
lgpl21Plus
bsd2
];
maintainers = with lib.maintainers; [ grimmauld ];
platforms = lib.platforms.linux;
# take precedence over shadow
priority = -1;
};
})

View File

@@ -9,13 +9,13 @@
let
alsa-ucm-conf-asahi = stdenvNoCC.mkDerivation (finalAttrs: {
pname = "alsa-ucm-conf-asahi";
version = "8";
version = "9";
src = fetchFromGitHub {
owner = "AsahiLinux";
repo = "alsa-ucm-conf-asahi";
tag = "v${finalAttrs.version}";
hash = "sha256-FPrAzscc1ICSCQSqULaGLqG4UCq8GZU9XLV7TUSBBRM=";
hash = "sha256-F+NiEP4EKLUVV2oHSVY+fkXlzXcLyywNOolUy9DO8sI=";
};
installPhase = ''

View File

@@ -6,7 +6,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "apm-cli";
version = "0.18.0";
version = "0.21.0";
pyproject = true;
__structuredAttrs = true;
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "microsoft";
repo = "apm";
tag = "v${finalAttrs.version}";
hash = "sha256-mHu5r08y3OUTJjnl5Xvb23yhoJu9DupoZhkhL74K6UE=";
hash = "sha256-Wotyqsg/1nbjttMk+4wpGK76+kaL7j6oMH61NwsTuNc=";
};
postPatch = ''

View File

@@ -9,13 +9,13 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "asahi-audio";
version = "3.4";
version = "4.0";
src = fetchFromGitHub {
owner = "AsahiLinux";
repo = "asahi-audio";
tag = "v${finalAttrs.version}";
hash = "sha256-7AuPkR/M1a4zB9+dJuOuv9uTp+kIqPlxVOXipsyGGz8=";
hash = "sha256-Tp+yL7SbzowYcCrfI7UU+5GeIJtyBMuE7KhcYmA1+hw=";
};
makeFlags = [

View File

@@ -18,13 +18,13 @@
buildNpmPackage rec {
pname = "basedpyright";
version = "1.39.7";
version = "1.39.8";
src = fetchFromGitHub {
owner = "detachhead";
repo = "basedpyright";
tag = "v${version}";
hash = "sha256-E4TR5deuPSf2YinrEzpP79Rq8zZHLJQUKiEsfUdMDOE=";
hash = "sha256-8S83CTd/td7USKxfCI0cXd2gPBMivi4QMRQwVgxhs6w=";
};
npmDepsHash = "sha256-humpJB+fv3+PITcPCz3uY2jNANb3P7sXy0lFP8Eg58I=";

View File

@@ -9,6 +9,7 @@
libidn2,
libtool,
libxml2,
json_c,
openssl,
liburcu,
libuv,
@@ -29,11 +30,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bind";
version = "9.20.23";
version = "9.20.24";
src = fetchurl {
url = "https://downloads.isc.org/isc/bind9/${finalAttrs.version}/bind-${finalAttrs.version}.tar.xz";
hash = "sha256-XUR1rtP55QDvVUsrFNlyvbg9M94hSps76SkY6kaQg3E=";
hash = "sha256-mJ/vH8iOpZ0EzYb4VNylpGFqIKmWi83ePBo2aKs2vgg=";
};
outputs = [
@@ -59,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
libidn2
libtool
libxml2
json_c
openssl
liburcu
libuv

View File

@@ -11,7 +11,7 @@
stdenv.mkDerivation rec {
pname = "blackfire";
version = "2026.6.0";
version = "2026.6.1";
src =
passthru.sources.${stdenv.hostPlatform.system}
@@ -60,23 +60,23 @@ stdenv.mkDerivation rec {
sources = {
"x86_64-linux" = fetchurl {
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
hash = "sha256-JPhh7LNiLZXLN5iycNobZ/uJQjOhKqqYSw9P78+/BKk=";
hash = "sha256-doeqXoS0B7AyzyhkLB9wUC6iuD0c2KIhAIEPeYaDC5E=";
};
"i686-linux" = fetchurl {
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
hash = "sha256-uoqUDJ/bexqaRlf5Y692OGm91W1ErlS8Q8/l9MlsHwU=";
hash = "sha256-bQWhiSw9/gGyGoLEyz6BHaRPNLxuqouiobBMfB5ytYk=";
};
"aarch64-linux" = fetchurl {
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
hash = "sha256-kL9s17Bnt8UYj3IiX2b7e3OWSsRLq5TSzdK6OdByD40=";
hash = "sha256-B+rhmnM2sVICVLDcYq2OEp402Wz6kywCRqeS95Vdzlw=";
};
"aarch64-darwin" = fetchurl {
url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
hash = "sha256-p9D87uaDVu25SG4cclmzaq9oKaFDlIy8/XLx3rHuIQ4=";
hash = "sha256-Ofs9raAtx/duS8dXWfvjKGzhJr3j9+gkH8lP/VLfnkE=";
};
"x86_64-darwin" = fetchurl {
url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
hash = "sha256-ppCSvk259NNlujl9olyRlmwRdNbLu/uRs+gq71S79B8=";
hash = "sha256-+rMiD/vFFIA8dR3quUnpr8uDNTdvnXyYjT8brgiOxBI=";
};
};

View File

@@ -27,13 +27,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "pds";
version = "0.4.5001";
version = "0.4.5006";
src = fetchFromGitHub {
owner = "bluesky-social";
repo = "pds";
tag = "v${finalAttrs.version}";
hash = "sha256-j7XNZYZHHj5HdtEuTAhNU9TD7S7eMILMflZJn0nDVaY=";
hash = "sha256-Jb2qAB6P5KlRu4L99fcK/v0/Fspr8IFaFXuYg+PBxhM=";
};
sourceRoot = "${finalAttrs.src.name}/service";
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-3/gjhQIMxI/mwqmKV1wZ6oMiCGHutXuDY2CFSN3QnE4=";
hash = "sha256-YfwoUkTJJ2qANqwtSWKDGfFmahAtIDNyYFwCUE72oB0=";
};
buildPhase = ''

View File

@@ -1,47 +1,47 @@
{
"version": "2.1.186",
"commit": "6a56aff51d9e9faf62f26f2748501c2e32eec5e8",
"buildDate": "2026-06-22T16:51:01Z",
"version": "2.1.187",
"commit": "6a53320fad5541a68d79e4b6c53677df77b98e33",
"buildDate": "2026-06-23T17:07:42Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "463a79cc34a9787cff1b3361b4ec9e2dff928c18b077f41f0bb412e4cda78637",
"size": 216811232
"checksum": "a59a16ba4922adab7a145728f215d042184d349f5f7e72cddb7fc114250a4ce3",
"size": 215994048
},
"darwin-x64": {
"binary": "claude",
"checksum": "9e17e23d451cbbc64cf4b9536c1d25efd86808512617c855091fa608f77c9899",
"size": 224349952
"checksum": "7f57b6935b4246d03cb7acee90dc22153083483a267da589c5c920dd04744c36",
"size": 224795776
},
"linux-arm64": {
"binary": "claude",
"checksum": "817e5ff483568b78c49171be317b9b9190cade77248a5776e912789312961cb6",
"size": 231782112
"checksum": "b49be8a5e565bf2d45b50d2de62017b25462131acc9425d2fdb98b8f29c9dce2",
"size": 232240864
},
"linux-x64": {
"binary": "claude",
"checksum": "6a6d5d23486597c93138941c9b68caa0fbcd2dcedbf49e29a9c8d83e3a1cb329",
"size": 234436392
"checksum": "bb02fcb33626f8c599d10d8bee38585d4cf8d4225c3b497869dee7454e7bf361",
"size": 234874664
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "24906d06ab4cf312eb30a8d656a8d8c7fb22099ea8eb974e38ecfbc25d6631aa",
"size": 225161416
"checksum": "972fc2e0bc8104edb593ce7723d4414c0ed8e4df6d90ad26ae48097b1d910478",
"size": 225620168
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "d0cb255cfb03513f6099af40f045b5852a1d8a1b59d0f405d84d2a01da6c9598",
"size": 229420432
"checksum": "c5a783d13aac71d42324f2e9dcd395c266bd5774951faf0d94855c737024bee3",
"size": 229858704
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "6a286f0795d6dd46187b86e9124f819af35319169901cd883b80a75c47469516",
"size": 225908896
"checksum": "24964d08c5100bac6071352e5837101b333de1c1afefd2b8b0e7a60db6c0ef5c",
"size": 226329760
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "245869d5e5242aabfde49b091628aa4b3e7546f2cac52e1d6feb221a820910bc",
"size": 220571808
"checksum": "04124c0ba09ece85a856de652e84386094c372f002ff767a94d4a43ecf776f96",
"size": 220992160
}
}
}

View File

@@ -3,26 +3,37 @@
buildGoModule,
fetchFromGitHub,
installShellFiles,
makeBinaryWrapper,
}:
buildGoModule (finalAttrs: {
pname = "crowdsec";
version = "1.7.7";
version = "1.7.8";
src = fetchFromGitHub {
owner = "crowdsecurity";
repo = "crowdsec";
tag = "v${finalAttrs.version}";
hash = "sha256-TG9YRKzht9OAnlDNxLNP8060v0klee6GY7vJCu6MugM=";
hash = "sha256-2t9nxuqWNDAUOZHtfNkZ4ZFKXvv8k5LuvKrGNjpdGXc=";
};
vendorHash = "sha256-BjkTMBrQPv8uZzme02WFdobuYdbe1RvRkZ8RjHGubo8=";
vendorHash = "sha256-RDkttsV4PNOfjWPr4v+uIwdkmXYH83vkYFQQIO3CYGE=";
nativeBuildInputs = [ installShellFiles ];
nativeBuildInputs = [
installShellFiles
makeBinaryWrapper
];
subPackages = [
"cmd/crowdsec"
"cmd/crowdsec-cli"
"cmd/notification-dummy"
"cmd/notification-email"
"cmd/notification-file"
"cmd/notification-http"
"cmd/notification-sentinel"
"cmd/notification-slack"
"cmd/notification-splunk"
];
ldflags = [
@@ -39,13 +50,12 @@ buildGoModule (finalAttrs: {
postBuild = "mv $GOPATH/bin/{crowdsec-cli,cscli}";
postInstall = ''
# so that `bin/crowdsec` is available for `cscli explain` for example
wrapProgram $out/bin/cscli --prefix PATH : $out/bin/
mkdir -p $out/share/crowdsec
cp -r ./config $out/share/crowdsec/
mkdir -p $out/lib/systemd/system
substitute ./config/crowdsec.service $out/lib/systemd/system/crowdsec.service \
--replace-fail /usr/local $out
installShellCompletion --cmd cscli \
--bash <($out/bin/cscli completion bash) \
--fish <($out/bin/cscli completion fish) \
@@ -63,6 +73,7 @@ buildGoModule (finalAttrs: {
'';
meta = {
mainProgram = "crowdsec";
homepage = "https://crowdsec.net/";
changelog = "https://github.com/crowdsecurity/crowdsec/releases/tag/v${finalAttrs.version}";
description = "Free, open-source and collaborative IPS";
@@ -80,6 +91,7 @@ buildGoModule (finalAttrs: {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
jk
tornax
];
};
})

View File

@@ -2,10 +2,10 @@
buildDotnetGlobalTool {
pname = "csharpier";
version = "1.2.6";
version = "1.3.0";
executables = "csharpier";
nugetHash = "sha256-SaBHGaaeg/1c4okHN1Pn8caGZgfLJ/KsGRqgUiAqKlQ=";
nugetHash = "sha256-hwieEoQTcATyKZIZ7CQSWANPBv+pEShg6cDXU5EIexU=";
meta = {
description = "Opinionated code formatter for C#";

View File

@@ -22,38 +22,38 @@
let
deltachat-rpc-server' = deltachat-rpc-server.overrideAttrs rec {
version = "2.52.0";
version = "2.53.0";
src = fetchFromGitHub {
owner = "chatmail";
repo = "core";
tag = "v${version}";
hash = "sha256-AQo27qnHPCK6q/3+Umk6ueqkOIVBA8n4q9S5iEZ7TkM=";
hash = "sha256-W2Yh5+6MaJ47GqJioGKge2J3RetGGTcl+0YxPPlSdDo=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "chatmail-core";
inherit version src;
hash = "sha256-ni8iaVPHXWhxfiBvtVzGRyPcxkbV0HiqcQCHGmAqk7s=";
hash = "sha256-aoPc5XvjwwuA9aOTvIOpTm15wozC9glJGqn3vPqsJF4=";
};
};
electron = electron_41;
in
stdenv.mkDerivation (finalAttrs: {
pname = "deltachat-desktop";
version = "2.52.0";
version = "2.53.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-desktop";
tag = "v${finalAttrs.version}";
hash = "sha256-/FdGI6Dr9lz0+g/xSzHXbMdqWHf4TliHDXXiAQKKkOs=";
hash = "sha256-UJ6005PeQBiL9Inj/VRZjgxZtR278Ky2RcD5MywcGD8=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 4;
hash = "sha256-0VvyZzWAdVGsuYb8CI36KqkqvjgRsTLJov1L44MxUHQ=";
hash = "sha256-t5OHx1GCaTIgGo9193Z3Kkl+jHCBIgtRypcUaO6By3I=";
};
strictDeps = true;

View File

@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
;
__structuredAttrs = true;
cargoHash = "sha256-euRUA4LTmAdb9466DAMqKgAPX3N4KNXCh1ED9cL42lA=";
cargoHash = "sha256-iGgsG5V0cFzoudVASGqLakpuy2h4oD979LHuBclj+3o=";
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace $cargoDepsCopy/*/libappindicator-sys-*/src/lib.rs \

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
# linux dependencies
makeWrapper,
fastfetch,
pciutils,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fetch";
version = "2.1.0";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "areofyl";
repo = "fetch";
tag = "v${finalAttrs.version}";
hash = "sha256-9ixx7XJcY4ktcN/lUfjvFljvHIEO2ktOebeGgL0ulHg=";
};
makeFlags = [ "PREFIX=${placeholder "out"}" ];
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram $out/bin/fetch \
--prefix PATH : ${
lib.makeBinPath [
fastfetch
pciutils
]
}
'';
meta = {
description = "Animated 3D fetch tool that renders your distro logo as a spinning bas-relief";
homepage = "https://github.com/areofyl/fetch";
changelog = "https://github.com/areofyl/fetch/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ ghastrum ];
mainProgram = "fetch";
platforms = lib.platforms.linux;
};
})

View File

@@ -59,13 +59,13 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gephgui-wry";
version = "5.7.1";
version = "5.7.2";
src = fetchFromGitHub {
owner = "geph-official";
repo = "gephgui-pkg";
tag = "v${finalAttrs.version}";
hash = "sha256-PpkhIfA1jTqiY+4UwonrUk2wq+wL2Rhltfhp0LSURMg=";
hash = "sha256-uY2m4TXy4+efRC6WzGjB5Vushgj8zkCp0ctnCJAR+FE=";
fetchSubmodules = true;
};

View File

@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "gickup";
version = "0.10.44";
version = "0.10.45";
src = fetchFromGitHub {
owner = "cooperspencer";
repo = "gickup";
tag = "v${finalAttrs.version}";
hash = "sha256-AbeV/0CngNgCaLUIwv/uy8VgpiKiOXWGSjnW+xrd7gk=";
hash = "sha256-oVvL5BZYZZCfkGK9ABcppbddKuzykZv1OtBvKElaStI=";
};
vendorHash = "sha256-lCeUEReVh0Fg1gyyTvWq2CIdQLuGCN20u9TftiokI0I=";
vendorHash = "sha256-2SwjvITyo6z34MZ7gSbSQ1PeW0aO4MRi2DzYgqGcOvk=";
ldflags = [ "-X main.version=${finalAttrs.version}" ];

View File

@@ -8,7 +8,7 @@
buildGoModule (finalAttrs: {
pname = "git-pages-cli";
version = "1.9.0";
version = "1.10.0";
__structuredAttrs = true;
@@ -16,7 +16,7 @@ buildGoModule (finalAttrs: {
owner = "git-pages";
repo = "git-pages-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-toqL/BUj3MDAqqD+94nLyw7QwU5jsUqThQVK0hJbU8Y=";
hash = "sha256-GIZ6kdCd8BIBEZxBw4Srwnbbl3PtpS2IRyA+Hx5PbAc=";
};
vendorHash = "sha256-SNLSkz38AgLfjpKaEYawBLdWznKWOz62bNzuaquk7Rs=";

View File

@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "goshs";
version = "2.1.1";
version = "2.1.2";
src = fetchFromGitHub {
owner = "patrickhener";
repo = "goshs";
tag = "v${finalAttrs.version}";
hash = "sha256-BbkAt+pL3M/LBugaUgIV26ziUsMnWe+fOHKpmddE2Ng=";
hash = "sha256-/9z5WjJN6JTVZO0b0ScPmxegZVb2PhjvDl5BbPwDxSw=";
};
vendorHash = "sha256-CAl4yYAM/GQaLbUUNjgMN6A3Vqw4D+kpG9G2WXw6mRU=";

View File

@@ -31,7 +31,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gram";
version = "2.1.2";
version = "2.2.0";
outputs = [
"out"
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "GramEditor";
repo = "gram";
tag = finalAttrs.version;
hash = "sha256-7FzAvC/JMMIFcuTGkL2Ju644UAIsneOMhiDUFnQske4=";
hash = "sha256-w0uZ2qAc3Tt6QVRAX97LWW9aOs02fG1SEYCDhpUhinE=";
};
postPatch = ''
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '$CARGO_ABOUT_VERSION' '${cargo-about.version}'
'';
cargoHash = "sha256-feESY8ALSG3xa906HBc4pOKGerQ1jF7VUxzvUcsZbrY=";
cargoHash = "sha256-+lmDbawAIRllC7LzGJ9qPMtHXPd5aMoul47YOA7nfXA=";
__structuredAttrs = true;
@@ -71,7 +71,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
dontUseCmakeConfigure = true;
buildInputs = [
libgit2
(libgit2.override { withExperimentalSha256 = true; })
openssl
sqlite
zlib

View File

@@ -30,13 +30,13 @@
}:
let
version = "0-unstable-2026-06-15";
rev = "34e0fd77574c30749d00d775df87a7e9362e7ce8";
version = "0-unstable-2026-06-23";
rev = "ebbbb6bd1b0add39969717d18563808cc6306a63";
srcHash = "sha256-SyxteWavvyeRtKcGuJkOxojstJk1C2ndbNERuSM3Cng=";
srcHash = "sha256-8k30s/czdJ5uNHH75K4+XJo6Ncd1GA3NSlaa7yO4+mg=";
shaderHash = "sha256-4lKBrGh1rfhTBczmCDvIF2KxLyEHzHdKVGgQ+jLd/Dw=";
cargoHash = "sha256-KktJj1c/OrJazNk40NND8irmNd30nzpZOxdwaTAqjIs=";
npmHash = "sha256-AX5Jqk2E+WyQJyHbgvvq74MRsYmWUju4bOkabhYoeig=";
cargoHash = "sha256-gpv4LZHEWKonQodW/uzdoAfkaxSRuCMKyX1SSit/gEQ=";
npmHash = "sha256-Rb0bLPk54QigNp7TkDkJJy/TEJXAhlXOCruckwvdXks=";
brandingRev = "0d004aa61e6b48d316e8e5db6d59ccc4788f192d";
brandingHash = "sha256-wAA6fR+NSxlCAqgwWmpiIAnji9k/jsMXpR0Vt04Ntmk=";

View File

@@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gvm-libs";
version = "23.3.0";
version = "23.7.0";
src = fetchFromGitHub {
owner = "greenbone";
repo = "gvm-libs";
tag = "v${finalAttrs.version}";
hash = "sha256-aS+3XMz37TJTI56y0EecRCbrdkO1JIYm5KamC54tFyI=";
hash = "sha256-cRSvrmasKrk0xMnq7/bF0F6wWSKNcXDRm+p/JlciPGo=";
};
postPatch = ''

View File

@@ -24,13 +24,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "h2o";
version = "2.3.0-rolling-2026-06-22";
version = "2.3.0-rolling-2026-06-24";
src = fetchFromGitHub {
owner = "h2o";
repo = "h2o";
rev = "f12fb3cca02ba31e89c87bc90041fe800dbed3f2";
hash = "sha256-OJ/MF6A6lcxWKgcOntCVc0fkcnQ9FJx8Wn2Pewz0h84=";
rev = "66fcbfed806d7645577e4e78e4d536d38379764d";
hash = "sha256-RzQHDHihcD+ife1CBCGliytrkt8eYVdL8AHdaYp3CFQ=";
};
outputs = [

View File

@@ -0,0 +1,14 @@
diff --git a/igc/IGC/common/LLVMWarningsPush.hpp b/igc/IGC/common/LLVMWarningsPush.hpp
index 12874dfcc2..38acd80943 100644
--- a/igc/IGC/common/LLVMWarningsPush.hpp
+++ b/igc/IGC/common/LLVMWarningsPush.hpp
@@ -43,6 +43,9 @@
#if __GNUC__ > 8
#pragma GCC diagnostic ignored "-Winit-list-lifetime"
#endif
+#if __GNUC__ > 14
+#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
+#endif
#endif
#if defined(_WIN32) || defined(_WIN64)

View File

@@ -0,0 +1,13 @@
diff --git a/llvm-project/llvm/include/llvm/Support/Threading.h b/llvm-project/llvm/include/llvm/Support/Threading.h
index ba6c531ab4..78aa5e7be5 100644
--- a/llvm-project/llvm/include/llvm/Support/Threading.h
+++ b/llvm-project/llvm/include/llvm/Support/Threading.h
@@ -18,7 +18,7 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/Config/llvm-config.h" // for LLVM_ON_UNIX
#include "llvm/Support/Compiler.h"
-#include <ciso646> // So we can check the C++ standard lib macros.
+#include <version> // So we can check the C++ standard lib macros.
#include <optional>
#if defined(_MSC_VER)

View File

@@ -0,0 +1,156 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
git,
bison,
flex,
zlib,
intel-compute-runtime,
python3,
spirv-tools,
spirv-headers,
}:
let
llvmVersion = "16.0.6";
in
stdenv.mkDerivation rec {
pname = "intel-graphics-compiler";
version = "2.34.4";
# See the repository for expected versions:
# <https://github.com/intel/intel-graphics-compiler/blob/v2.16.0/documentation/build_ubuntu.md#revision-table>
srcs = [
(fetchFromGitHub {
name = "igc";
owner = "intel";
repo = "intel-graphics-compiler";
tag = "v${version}";
hash = "sha256-w20nrn3wo9Dvv3BILYBzuJTTLXqcWaRAF7SiPtryhwk=";
})
(fetchFromGitHub {
name = "llvm-project";
owner = "llvm";
repo = "llvm-project";
tag = "llvmorg-${llvmVersion}";
hash = "sha256-fspqSReX+VD+Nl/Cfq+tDcdPtnQPV1IRopNDfd5VtUs=";
})
(fetchFromGitHub {
name = "vc-intrinsics";
owner = "intel";
repo = "vc-intrinsics";
tag = "v0.25.0";
hash = "sha256-ozc1w3V5RqWHwqNHuefZJMN8RAYxrJxH9bd1BEqxfiQ=";
})
(fetchFromGitHub {
name = "opencl-clang";
owner = "intel";
repo = "opencl-clang";
tag = "v16.0.11";
hash = "sha256-ema1jTNMHs3pUituVb1NPllc6cA8eYJHtDOjuEzIDWM=";
})
(fetchFromGitHub {
name = "llvm-spirv";
owner = "KhronosGroup";
repo = "SPIRV-LLVM-Translator";
tag = "v16.0.24";
hash = "sha256-aTcwfQt2WdOA44jfHdD7x7oxt8emSDexgZnI7MPVqvU=";
})
];
patches = [
# Raise minimum CMake version to 3.5
# https://github.com/intel/intel-graphics-compiler/commit/4f0123a7d67fb716b647f0ba5c1ab550abf2f97d
# https://github.com/intel/intel-graphics-compiler/pull/364
./bump-cmake.patch
# Fix for GCC 15 by adding a previously-implicit `#include <cstdint>` and
# replacing `<ciso646>` with `<version>` in the the llvm directory. Based
# on https://github.com/intel/intel-graphics-compiler/pull/383.
./gcc15-llvm-header-fixes.patch
# Fix for GCC 15 by disabling `-Werror` for `-Wfree-nonheap-object`
# warnings within LLVM. This is in accordance with IGC disabling warnings
# that originate from within LLVM (see `IGC/common/LLVMWarningsPush.hpp`).
./gcc15-allow-llvm-free-nonheap-object-warning.patch
];
sourceRoot = ".";
cmakeDir = "../igc";
postUnpack = ''
chmod -R +w .
mv opencl-clang llvm-spirv llvm-project/llvm/projects/
'';
postPatch = ''
substituteInPlace igc/IGC/AdaptorOCL/igc-opencl.pc.in \
--replace-fail '/@CMAKE_INSTALL_INCLUDEDIR@' "/include" \
--replace-fail '/@CMAKE_INSTALL_LIBDIR@' "/lib"
chmod +x igc/IGC/Scripts/igc_create_linker_script.sh
patchShebangs --build igc/IGC/Scripts/igc_create_linker_script.sh
# The build system only applies patches when the sources are in a
# Git repository.
git -C llvm-project init
git -C llvm-project -c user.name=nixbld -c user.email= commit --allow-empty -m stub
substituteInPlace llvm-project/llvm/projects/opencl-clang/cmake/modules/CMakeFunctions.cmake \
--replace-fail 'COMMAND ''${GIT_EXECUTABLE} am --3way --keep-non-patch --ignore-whitespace -C0 ' \
'COMMAND patch -p1 --ignore-whitespace -i '
# match default LLVM version with our provided version to apply correct patches
substituteInPlace igc/external/llvm/llvm_preferred_version.cmake \
--replace-fail "16.0.6" "${llvmVersion}"
'';
nativeBuildInputs = [
bison
cmake
flex
git
ninja
(python3.withPackages (
ps: with ps; [
mako
pyyaml
]
))
zlib
];
buildInputs = [
spirv-headers
spirv-tools
];
strictDeps = true;
# testing is done via intel-compute-runtime
doCheck = false;
cmakeFlags = [
"-DIGC_OPTION__SPIRV_TOOLS_MODE=Prebuilds"
"-DIGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS=ON"
"-DSPIRV-Headers_INCLUDE_DIR=${spirv-headers}/include"
"-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${spirv-headers.src}"
"-Wno-dev"
];
passthru.tests = {
inherit intel-compute-runtime;
};
meta = {
description = "LLVM-based compiler for OpenCL targeting Intel Gen graphics hardware";
homepage = "https://github.com/intel/intel-graphics-compiler";
changelog = "https://github.com/intel/intel-graphics-compiler/releases/tag/v${version}";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ fleaz ];
};
}

View File

@@ -1,11 +1,11 @@
{
lib,
callPackage,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
intel-gmmlib,
intel-graphics-compiler,
level-zero,
libva,
gitUpdater,
@@ -13,6 +13,8 @@
let
inherit (lib) cmakeBool;
# intel-graphics-compiler >= 2.36 does no longer support 8th Gen
intel-graphics-compiler = callPackage ./intel-graphics-compiler.nix { };
in
stdenv.mkDerivation (finalAttrs: {
# https://github.com/intel/compute-runtime/blob/master/LEGACY_PLATFORMS.md

View File

@@ -11,15 +11,28 @@
intel-compute-runtime,
python3,
spirv-tools,
spirv-headers,
}:
let
llvmVersion = "16.0.6";
llvmVersion = "17.0.6";
spirv-headers = stdenv.mkDerivation {
pname = "spirv-headers";
version = "1.4.341.0-unstable-2026-04-29";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Headers";
rev = "b8a32968473ce852a809b9de5f04f02a5a9dfa78";
hash = "sha256-k5lAF7TxJ+8cXDnx7lQxG/3IjSTzYcqBl5PYY2gv9E8=";
};
nativeBuildInputs = [ cmake ];
};
in
stdenv.mkDerivation rec {
pname = "intel-graphics-compiler";
version = "2.34.4";
version = "2.36.3";
# See the repository for expected versions:
# <https://github.com/intel/intel-graphics-compiler/blob/v2.16.0/documentation/build_ubuntu.md#revision-table>
@@ -29,14 +42,14 @@ stdenv.mkDerivation rec {
owner = "intel";
repo = "intel-graphics-compiler";
tag = "v${version}";
hash = "sha256-w20nrn3wo9Dvv3BILYBzuJTTLXqcWaRAF7SiPtryhwk=";
hash = "sha256-0GzZQECcngF9b5lZyeIKXeM6w64WzCYFtHOobQKN80o=";
})
(fetchFromGitHub {
name = "llvm-project";
owner = "llvm";
repo = "llvm-project";
tag = "llvmorg-${llvmVersion}";
hash = "sha256-fspqSReX+VD+Nl/Cfq+tDcdPtnQPV1IRopNDfd5VtUs=";
hash = "sha256-8MEDLLhocshmxoEBRSKlJ/GzJ8nfuzQ8qn0X/vLA+ag=";
})
(fetchFromGitHub {
name = "vc-intrinsics";
@@ -49,24 +62,19 @@ stdenv.mkDerivation rec {
name = "opencl-clang";
owner = "intel";
repo = "opencl-clang";
tag = "v16.0.11";
hash = "sha256-ema1jTNMHs3pUituVb1NPllc6cA8eYJHtDOjuEzIDWM=";
tag = "v17.0.7";
hash = "sha256-7kQlH1Y4pnNvj/CS2qAVbYUl9FQWBuMew7i8CpORfKE=";
})
(fetchFromGitHub {
name = "llvm-spirv";
owner = "KhronosGroup";
repo = "SPIRV-LLVM-Translator";
tag = "v16.0.24";
hash = "sha256-aTcwfQt2WdOA44jfHdD7x7oxt8emSDexgZnI7MPVqvU=";
tag = "v17.0.24";
hash = "sha256-s/dNWmT3KXdXK0CSVjqEfsY9r8ONAGMZ5KUy9FeqF0E=";
})
];
patches = [
# Raise minimum CMake version to 3.5
# https://github.com/intel/intel-graphics-compiler/commit/4f0123a7d67fb716b647f0ba5c1ab550abf2f97d
# https://github.com/intel/intel-graphics-compiler/pull/364
./bump-cmake.patch
# Fix for GCC 15 by adding a previously-implicit `#include <cstdint>` and
# replacing `<ciso646>` with `<version>` in the the llvm directory. Based
# on https://github.com/intel/intel-graphics-compiler/pull/383.

View File

@@ -94,7 +94,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
meta = {
description = "Best way to play itch.io games";
homepage = "https://github.com/itchio/itch";
changelog = "https://github.com/itchio/itch/releases/tag/v${version}-canary";
changelog = "https://github.com/itchio/itch/releases/tag/v${version}";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];

View File

@@ -12,13 +12,13 @@
buildDotnetModule (finalAttrs: {
pname = "jackett";
version = "0.24.2066";
version = "0.24.2108";
src = fetchFromGitHub {
owner = "jackett";
repo = "jackett";
tag = "v${finalAttrs.version}";
hash = "sha256-hK7QfztI3kFJcOG9OTQ5/lOusFKnv8AyNfCaU9IhdKE=";
hash = "sha256-MWA5gTiNjkKIaHgUGVt2XV3QBPYGTf/dVqCnmdAaJ0U=";
};
projectFile = "src/Jackett.Server/Jackett.Server.csproj";

View File

@@ -15,17 +15,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "keifu";
version = "0.4.0";
version = "0.5.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "trasta298";
repo = "keifu";
tag = "v${finalAttrs.version}";
hash = "sha256-668ejr2pxjGfQ0/hhJSNBSZME2+hSGuNJmwmbLVqy0o=";
hash = "sha256-ndMWi//G9kwnoPf58YtICyytMv2t0e4h7cwBdfpaoVY=";
};
cargoHash = "sha256-6YmpsKkf/Mox98fRdrwbwzFohgOicRfCxcAIGSwmT7g=";
cargoHash = "sha256-lNctnxVntxRZaS9XeII1sQZ2ZNKkSvd8n+bq5Fwd6QM=";
nativeBuildInputs = [
pkg-config

View File

@@ -14,24 +14,13 @@
rustPlatform.buildRustPackage rec {
pname = "lan-mouse";
version = "0.10.0";
version = "0.11.0";
src = fetchFromGitHub {
owner = "feschber";
repo = "lan-mouse";
rev = "v${version}";
hash = "sha256-ofiNgJbmf35pfRvZB3ZmMkCJuM7yYgNL+Dd5mZZqyNk=";
};
# lan-mouse uses `git` to determine the version at build time and
# has Cargo set the `GIT_DESCRIBE` environment variable. To improve
# build reproducibility, we define the variable based on the package
# version instead.
prePatch = ''
rm build.rs
'';
env = {
GIT_DESCRIBE = "${version}-nixpkgs";
hash = "sha256-6EqA9WfiukOymUT4FkNdMvzmFKByW0LLoI/9sv4TzBU=";
};
nativeBuildInputs = [
@@ -47,7 +36,7 @@ rustPlatform.buildRustPackage rec {
libxtst
];
cargoHash = "sha256-+UXRBYfbkb114mwDGj36oG5ZT3TQtcEzsbyZvtWTMxM=";
cargoHash = "sha256-Lxs0qWvNAv4KCeJ+cDBYBzwlbJfQJshcxPRdg9w0szc=";
postInstall = ''
install -Dm444 de.feschber.LanMouse.desktop -t $out/share/applications

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libeconf";
version = "0.8.3";
src = fetchFromGitHub {
owner = "openSUSE";
repo = "libeconf";
tag = "v${finalAttrs.version}";
hash = "sha256-ZXZcXQdG3hXAMwwftrIWL5GbVdPXk+AyqdhGTnaKL1I=";
};
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [
meson
ninja
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Enhanced config file parser, which merges config files placed in several locations into one";
homepage = "https://github.com/openSUSE/libeconf";
changelog = "https://github.com/openSUSE/libeconf/blob/${finalAttrs.src.tag}/NEWS";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ grimmauld ];
mainProgram = "econftool";
platforms = lib.platforms.all;
};
})

View File

@@ -17,6 +17,7 @@
gitstatus,
llhttp,
withGssapi ? false,
withExperimentalSha256 ? false,
krb5,
}:
@@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
"-DUSE_HTTP_PARSER=llhttp"
"-DUSE_SSH=ON"
(lib.cmakeBool "USE_GSSAPI" withGssapi)
(lib.cmakeBool "EXPERIMENTAL_SHA256" withExperimentalSha256)
"-DBUILD_SHARED_LIBS=${if staticBuild then "OFF" else "ON"}"
]
++ lib.optionals stdenv.hostPlatform.isWindows [
@@ -89,6 +91,13 @@ stdenv.mkDerivation (finalAttrs: {
)
'';
postInstall = lib.optionalString withExperimentalSha256 ''
# Downstream Rust bindings (git2-rs / git2-sys) expect experimental headers
# to be located at 'git2/experimental.h', but upstream libgit2 installs them
# into 'git2-experimental/' when EXPERIMENTAL_SHA256 is enabled.
ln -s git2-experimental $dev/include/git2
'';
passthru.tests = lib.mapAttrs (_: v: v.override { libgit2 = finalAttrs.finalPackage; }) {
inherit libgit2-glib;
inherit (python3Packages) pygit2;

View File

@@ -36,7 +36,7 @@ let
pname = "librewolf-bin-unwrapped";
version = "152.0-1";
version = "152.0.2-1";
in
stdenv.mkDerivation {
@@ -46,8 +46,8 @@ stdenv.mkDerivation {
url = "https://codeberg.org/api/packages/librewolf/generic/librewolf/${version}/librewolf-${version}-${arch}-package.tar.xz";
hash =
{
x86_64-linux = "sha256-sIpyCpfo9igZ0PMd1Y7sdIoui88dC9DjlwjN5M5HLsQ=";
aarch64-linux = "sha256-H1HtyZPcE8RpJTuqTnCOMC5gb+s1Dp80OE66KCdRM4g=";
x86_64-linux = "sha256-Tq2bj75oZXSH2YHXShjRRs4Aqxo86BuwONXu+IsdCuA=";
aarch64-linux = "sha256-xk3o5FODm5ge2I8JzgwXTpgu/SI6VcROIJ7005ew2PY=";
}
.${stdenv.hostPlatform.system} or throwSystem;
};

View File

@@ -39,7 +39,7 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "lsp-plugins";
version = "1.2.31";
version = "1.2.33";
outputs = [
"out"
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://github.com/lsp-plugins/lsp-plugins/releases/download/${finalAttrs.version}/lsp-plugins-src-${finalAttrs.version}.tar.gz";
hash = "sha256-JZCnxqzgujGcgUXvFCYea7OfMomkmJ1LscFPRwGxzeI=";
hash = "sha256-K2kiEFEYrIe9lCsP8+e/PIGAInsqtcTlDkjeuQrGib0=";
};
# By default, GStreamer plugins are installed right alongside GStreamer itself

View File

@@ -265,7 +265,7 @@ buildMattermost rec {
buildPhase = ''
runHook preBuild
for ws in platform/{types,client,components,shared} channels; do
for ws in platform/{types,client,shared,components} channels; do
if [ -d "$ws" ]; then
npm run build --workspace="$ws"
fi

View File

@@ -15,10 +15,10 @@ mattermost.override (
# and make sure the version regex is up to date here.
# Ensure you also check ../mattermost/package.nix for ESR releases.
regex = "^v(11\\.[0-9]+\\.[0-9]+)$";
version = "11.7.0";
srcHash = "sha256-oH9bLN2BPvRSWl5m3VNHBNMBXfdmkwaE9tzL7pcD1mg=";
vendorHash = "sha256-PmwwiXNaDarc1H7z1G4zstgs7tvmZ/d7V5eGqMh1VX4=";
npmDepsHash = "sha256-C3vfWW2hMOMnrPn1538kT+ma09T9VswrmADV/KPkrPc=";
version = "11.8.1";
srcHash = "sha256-9EIbTwnEeZQKg5uixkMp3sp/n+9I2N9W7hxsW5juF3M=";
vendorHash = "sha256-F2QMrLbio7812ZTGQZZPTqHWtIXbwbDmjUhtvv0DJ9s=";
npmDepsHash = "sha256-9GRM0VXrh1eR16ocSGEV/F2eflOflzkhrhRRnm9uB6s=";
autoUpdate = ./package.nix;
};
}

View File

@@ -8,7 +8,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "md-tui";
version = "0.10.1";
version = "0.10.2";
__structuredAttrs = true;
@@ -16,10 +16,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "henriklovhaug";
repo = "md-tui";
tag = "v${finalAttrs.version}";
hash = "sha256-bFL84y0735L93x0nWkKAAmTDMdZzs5DDoxqbQhgXUMQ=";
hash = "sha256-VSOAeFY3TsdeOlKt3f9cbEsSNSwvhcYQl129oQMOTaM=";
};
cargoHash = "sha256-xR9bWWDxerP2zGAb43ZWONLcsbmUn8KzMXwDEmrjioU=";
cargoHash = "sha256-l1VXrf19KB6zTrVmINyinz0YpGDDUH9B77CN6CMz/X8=";
nativeBuildInputs = [ pkg-config ];

View File

@@ -1,124 +0,0 @@
diff --git a/Makefile b/Makefile
index 2a51d813..a31ac48a 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,9 @@ endif
ifdef DEBIAN
CPPFLAGS += -DDEBIAN
endif
+ifdef NIXOS
+CPPFLAGS += -DNIXOS
+endif
ifdef DEFAULT_OLD_METADATA
CPPFLAGS += -DDEFAULT_OLD_METADATA
DEFAULT_METADATA=0.90
@@ -129,6 +132,7 @@ endif
INSTALL = /usr/bin/install
DESTDIR =
BINDIR = /sbin
+INSTALL_BINDIR = ${BINDIR}
MANDIR = /usr/share/man
MAN4DIR = $(MANDIR)/man4
MAN5DIR = $(MANDIR)/man5
@@ -253,16 +257,16 @@ sha1.o : sha1.c sha1.h md5.h
install : install-bin install-man install-udev
install-static : mdadm.static install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(BINDIR)/mdadm
+ $(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(INSTALL_BINDIR)/mdadm
install-tcc : mdadm.tcc install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.tcc $(DESTDIR)$(BINDIR)/mdadm
+ $(INSTALL) -D $(STRIP) -m 755 mdadm.tcc $(DESTDIR)$(INSTALL_BINDIR)/mdadm
install-uclibc : mdadm.uclibc install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.uclibc $(DESTDIR)$(BINDIR)/mdadm
+ $(INSTALL) -D $(STRIP) -m 755 mdadm.uclibc $(DESTDIR)$(INSTALL_BINDIR)/mdadm
install-klibc : mdadm.klibc install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.klibc $(DESTDIR)$(BINDIR)/mdadm
+ $(INSTALL) -D $(STRIP) -m 755 mdadm.klibc $(DESTDIR)$(INSTALL_BINDIR)/mdadm
install-man: mdadm.8 md.4 mdadm.conf.5 mdmon.8
$(INSTALL) -D -m 644 mdadm.8 $(DESTDIR)$(MAN8DIR)/mdadm.8
@@ -305,7 +309,7 @@ install-bin: mdadm mdmon
$(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon
uninstall:
- rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(BINDIR)/mdadm
+ rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(INSTALL_BINDIR)/mdadm
test: mdadm mdmon test_stripe swap_super raid6check
@echo "Please run './test' as root"
diff --git a/policy.c b/policy.c
index eee9ef63..9f916e9d 100644
--- a/policy.c
+++ b/policy.c
@@ -817,12 +817,39 @@ char *find_rule(struct rule *rule, char *rule_type)
#define UDEV_RULE_FORMAT \
"ACTION==\"add\", SUBSYSTEM==\"block\", " \
"ENV{DEVTYPE}==\"%s\", ENV{ID_PATH}==\"%s\", " \
-"RUN+=\"" BINDIR "/mdadm --incremental $env{DEVNAME}\"\n"
+"RUN+=\"%s/mdadm --incremental $env{DEVNAME}\"\n"
#define UDEV_RULE_FORMAT_NOTYPE \
"ACTION==\"add\", SUBSYSTEM==\"block\", " \
"ENV{ID_PATH}==\"%s\", " \
-"RUN+=\"" BINDIR "/mdadm --incremental $env{DEVNAME}\"\n"
+"RUN+=\"%s/mdadm --incremental $env{DEVNAME}\"\n"
+
+#ifdef NIXOS
+const char *get_mdadm_bindir(void)
+{
+ static char *bindir = NULL;
+ if (bindir != NULL) {
+ return bindir;
+ } else {
+ int len;
+ bindir = xmalloc(1025);
+ len = readlink("/proc/self/exe", bindir, 1024);
+ if (len > 0) {
+ char *basename;
+ if ((basename = strrchr(bindir, '/')) != NULL)
+ *basename = '\0';
+ else
+ *(bindir + len) = '\0';
+ } else {
+ *bindir = '\0';
+ }
+ return bindir;
+ }
+}
+#define SELF get_mdadm_bindir()
+#else
+#define SELF BINDIR
+#endif
/* Write rule in the rule file. Use format from UDEV_RULE_FORMAT */
int write_rule(struct rule *rule, int fd, int force_part)
@@ -836,9 +863,9 @@ int write_rule(struct rule *rule, int fd, int force_part)
if (force_part)
typ = type_part;
if (typ)
- snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT, typ, pth);
+ snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT, typ, pth, SELF);
else
- snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT_NOTYPE, pth);
+ snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT_NOTYPE, pth, SELF);
return write(fd, line, strlen(line)) == (int)strlen(line);
}
diff --git a/util.c b/util.c
index 3d05d074..e004a798 100644
--- a/util.c
+++ b/util.c
@@ -1913,7 +1913,9 @@ int start_mdmon(char *devnm)
char pathbuf[1024];
char *paths[4] = {
pathbuf,
+#ifndef NIXOS
BINDIR "/mdmon",
+#endif
"./mdmon",
NULL
};

View File

@@ -15,27 +15,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mdadm";
version = "4.4";
version = "4.6";
src = fetchgit {
url = "https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git";
tag = "mdadm-${finalAttrs.version}";
hash = "sha256-jGmc8fkJM0V9J7V7tQPXSF/WD0kzyEAloBAwaAFenS0=";
hash = "sha256-jFsVPJC4lcShkSwQCGjVdVkvk4q4weM7i5DzrLgpuSM=";
};
patches = [
./no-self-references.patch
./fix-hardcoded-mapdir.patch
# Fixes build on musl
(fetchurl {
url = "https://raw.githubusercontent.com/void-linux/void-packages/e58d2b17d3c40faffc0d426aab00184f28d9dafa/srcpkgs/mdadm/patches/musl.patch";
hash = "sha256-TIcQs+8RM5Q6Z8MHkI50kaJd7f9WdS/EVI16F7b2+SA=";
})
# Fixes build on musl 1.2.5+
(fetchurl {
url = "https://lore.kernel.org/linux-raid/20240220165158.3521874-1-raj.khem@gmail.com/raw";
hash = "sha256-JOZ8n7zi+nq236NPpB4e2gUy8I3l3DbcoLhpeL73f98=";
})
];
makeFlags = [
@@ -97,6 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
changelog = "https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/tree/CHANGELOG.md?h=${finalAttrs.src.tag}";
description = "Programs for managing RAID arrays under Linux";
homepage = "https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git";
license = lib.licenses.gpl2Plus;

View File

@@ -1,68 +0,0 @@
src: version:
{
lib,
fetchYarnDeps,
dart-sass,
nodejs,
fixup-yarn-lock,
stdenv,
yarn,
writableTmpDirAsHomeHook,
}:
stdenv.mkDerivation {
name = "mealie-frontend";
inherit version;
src = "${src}/frontend";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/frontend/yarn.lock";
hash = "sha256-F1dhdBHfT9N1Ejk7WLyz2BbKlTPfqqEDNi7ZTL3phWY=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
(yarn.override { inherit nodejs; })
writableTmpDirAsHomeHook
dart-sass
];
configurePhase = ''
runHook preConfigure
sed -i 's+"@nuxt/fonts",+// NUXT FONTS DISABLED+g' nuxt.config.ts
yarn config --offline set yarn-offline-mirror "$yarnOfflineCache"
fixup-yarn-lock yarn.lock
yarn install --offline --frozen-lockfile --no-progress --non-interactive --ignore-scripts
patchShebangs node_modules
substituteInPlace node_modules/sass-embedded/dist/lib/src/compiler-path.js \
--replace-fail 'compilerCommand = (() => {' 'compilerCommand = (() => { return ["dart-sass"];'
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
export NUXT_TELEMETRY_DISABLED=1
yarn --offline generate
runHook postBuild
'';
installPhase = ''
runHook preInstall
mv .output/public $out
runHook postInstall
'';
meta = {
description = "Frontend for Mealie";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
litchipi
esch
];
};
}

View File

@@ -1,7 +1,5 @@
{
lib,
pkgs,
callPackage,
fetchFromGitHub,
makeWrapper,
nixosTests,
@@ -9,27 +7,99 @@
nltk-data,
writeShellScript,
nix-update-script,
# frontend
fetchYarnDeps,
dart-sass,
nodejs,
fixup-yarn-lock,
stdenv,
yarn,
writableTmpDirAsHomeHook,
}:
let
version = "3.16.0";
version = "3.19.2";
src = fetchFromGitHub {
owner = "mealie-recipes";
repo = "mealie";
tag = "v${version}";
hash = "sha256-DUwLCe221MQb6AEYNxNDWXoaEdf9q/dNklOXJncnnJ4=";
hash = "sha256-OH48XiOoaIdVCl5tm22OaI5UKKlhj8b0uVsGlgsjx6I=";
};
frontend = callPackage (import ./mealie-frontend.nix src version) { };
frontend = stdenv.mkDerivation {
name = "mealie-frontend";
inherit version;
src = "${src}/frontend";
__structuredAttrs = true;
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/frontend/yarn.lock";
hash = "sha256-q3dqJrzqEx0G3Q/EGhjVzBd6XTAn6cELfaqLJCD5kFs=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
(yarn.override { inherit nodejs; })
writableTmpDirAsHomeHook
dart-sass
];
env = {
NUXT_TELEMETRY_DISABLED = 1;
};
configurePhase = ''
runHook preConfigure
sed -i 's+"@nuxt/fonts",+// NUXT FONTS DISABLED+g' nuxt.config.ts
yarn config --offline set yarn-offline-mirror "$yarnOfflineCache"
fixup-yarn-lock yarn.lock
yarn install --offline --frozen-lockfile --no-progress --non-interactive --ignore-scripts
patchShebangs node_modules
substituteInPlace node_modules/sass-embedded/dist/lib/src/compiler-path.js \
--replace-fail 'compilerCommand = (() => {' 'compilerCommand = (() => { return ["dart-sass"];'
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline generate
runHook postBuild
'';
installPhase = ''
runHook preInstall
mv .output/public $out
runHook postInstall
'';
meta = {
description = "Frontend for Mealie";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
litchipi
esch
];
};
};
python = python3;
pythonpkgs = python.pkgs;
in
pythonpkgs.buildPythonApplication rec {
pythonpkgs.buildPythonApplication (finalAttrs: {
pname = "mealie";
inherit version src;
pyproject = true;
__structuredAttrs = true;
build-system = with pythonpkgs; [ setuptools ];
nativeBuildInputs = [ makeWrapper ];
@@ -112,11 +182,11 @@ pythonpkgs.buildPythonApplication rec {
rm -f $out/bin/*
makeWrapper ${start_script} $out/bin/mealie \
--set PYTHONPATH "$out/${python.sitePackages}:${pythonpkgs.makePythonPath dependencies}" \
--set STATIC_FILES "${frontend}"
--set PYTHONPATH "$out/${python.sitePackages}:${pythonpkgs.makePythonPath finalAttrs.passthru.dependencies}" \
--set STATIC_FILES "${finalAttrs.passthru.frontend}"
makeWrapper ${init_db} $out/libexec/init_db \
--set PYTHONPATH "$out/${python.sitePackages}:${pythonpkgs.makePythonPath dependencies}" \
--set PYTHONPATH "$out/${python.sitePackages}:${pythonpkgs.makePythonPath finalAttrs.passthru.dependencies}" \
--set OUT "$out"
'';
@@ -136,7 +206,13 @@ pythonpkgs.buildPythonApplication rec {
];
passthru = {
updateScript = nix-update-script { };
inherit frontend;
updateScript = nix-update-script {
extraArgs = [
"-s"
"frontend"
];
};
tests = {
inherit (nixosTests) mealie;
};
@@ -160,4 +236,4 @@ pythonpkgs.buildPythonApplication rec {
];
mainProgram = "mealie";
};
}
})

View File

@@ -21,13 +21,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "misskey";
version = "2026.5.4";
version = "2026.6.0";
src = fetchFromGitHub {
owner = "misskey-dev";
repo = "misskey";
tag = finalAttrs.version;
hash = "sha256-ENq5V1lIFGKIr1xZccy1LFRYVqZVEhDzBhAbDNcG5sM=";
hash = "sha256-jq1HtLabix9qxaAjaCgUN3nsY438ruHgHgC3MuGeR2E=";
fetchSubmodules = true;
};
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-wEbYkfp+zfytOPBjEcyTHCaoohGRNRjG5oTUefI5BVw=";
hash = "sha256-GCkSASkgwUvlAlm8hiy4Yk/QMVerVGacxOh1AYouH0g=";
};
buildPhase = ''

View File

@@ -112,10 +112,14 @@ stdenv.mkDerivation (finalAttrs: {
connector-c = finalAttrs.finalPackage;
server = finalAttrs.finalPackage;
mysqlVersion = lib.versions.majorMinor finalAttrs.version;
tests.mysql-secure-root-by-default =
nixosTests.mysql-secure-root.secure-by-default."mysql${lib.versions.major finalAttrs.version}${lib.versions.minor finalAttrs.version}";
tests.mysql-root-can-be-kept-insecure =
nixosTests.mysql-secure-root.can-be-insecure."mysql${lib.versions.major finalAttrs.version}${lib.versions.minor finalAttrs.version}";
tests = {
mysql =
nixosTests.mysql."mysql${lib.versions.major finalAttrs.version}${lib.versions.minor finalAttrs.version}";
mysql-secure-root-by-default =
nixosTests.mysql-secure-root.secure-by-default."mysql${lib.versions.major finalAttrs.version}${lib.versions.minor finalAttrs.version}";
mysql-root-can-be-kept-insecure =
nixosTests.mysql-secure-root.can-be-insecure."mysql${lib.versions.major finalAttrs.version}${lib.versions.minor finalAttrs.version}";
};
};
meta = {

View File

@@ -28,68 +28,15 @@ stdenv.mkDerivation {
inherit src;
patches = [
# Linux: Use get_tree_nodev
# Linux: pagevec.h renamed to folio_batch.h
(fetchpatch {
url = "https://github.com/openafs/openafs/commit/c02a8f451b48766aa163e729abe40d145751b2dc.patch";
hash = "sha256-9okSQLV4tW1wjoffQXPneZbu6tTRqrqVPbEOwZmaD+E=";
url = "https://github.com/openafs/openafs/commit/d47c438aec49e417066a7bef00bd82078014f5ea.patch";
hash = "sha256-LPURZovpl6KbigzP4mNjgHvPlXYKY5Pxh8sj9RT2W08=";
})
# LINUX: Re-dirty folio on writepages recursion
# Linux: Add comment for d_alias configure test
(fetchpatch {
url = "https://github.com/openafs/openafs/commit/11849e96820eca64d91742a8c521614e1e99d9fa.patch";
hash = "sha256-F2MOqEDaj4e0Xj1mvs7v61cutZY3cO22p9iIp2bLiRQ=";
})
# Linux: Introduce LINUX_WRITE_CACHE_PAGES_USES_FOLIOS
(fetchpatch {
url = "https://github.com/openafs/openafs/commit/63a3503240c06187fa87514e5ea421cece483422.patch";
hash = "sha256-ZWV8IZ8CeFQaEOamqKfkXuUccSxCRFNkZ7/kxKbEuis=";
})
# Linux: Avoid write_cache_pages() for ->writepages()
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16704/revisions/d465a07a98c2b0b2c23780571a8fe70c2584473a/patch";
decode = "base64 -d";
hash = "sha256-2FOf+o36gbTHm90RxtOI7iXcgb6rv9nh9rSjZzL5O7A=";
})
# LINUX: Log warning on recursive folio writeback
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16705/revisions/d66ca6372461840c6ecaaa46ec293640c8f22573/patch";
decode = "base64 -d";
hash = "sha256-A383wDMkwnGFatBDHUGV8FVqPMjzvhqUnIWrP2C+ym4=";
})
# Linux: Move afs_root()/afs_fill_super() in osi_vfsops
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16706/revisions/988c70859f1d402022e9342e28f0c5a954760a72/patch";
decode = "base64 -d";
hash = "sha256-JsZwGGa7dRT43RIUUY3hYCbbqPObd5bkDOHl9QK/MhE=";
})
# Linux: Use sockaddr_unsized for socket->ops->bind
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16707/revisions/e6069d6c35e848b5b388f4c47a2ecf0d72420198/patch";
decode = "base64 -d";
hash = "sha256-hTRaTqOc0njW/RIsNTrFZ5uWTrQq04Fuh/Sk7K2Q5e4=";
})
# Linux: Pass 3rd parameter to filemap_alloc_folio()
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16708/revisions/48d2184ec95418cada68b70919b0afd9888bb945/patch";
decode = "base64 -d";
hash = "sha256-CSGlXYkkLSHQoWK2xLpUYJDOUP/mlsxkTru2qdmbeQo=";
})
# Linux: implement aops->migrate_folio
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16709/revisions/2c51471aea08cc495a5d59fee6e651ba58c9d772/patch";
decode = "base64 -d";
hash = "sha256-TtcblVczSp8b1bfd0ajWjK2LffAkgYr2+KUL2nEe8hs=";
})
# Linux: Use set_default_d_op() to set dentry ops
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16729/revisions/6d0a2107fcab28fc4ba64d365133d171b75bd3dc/patch";
decode = "base64 -d";
hash = "sha256-OKxR5zzVKSXPzudPl5jc7koObisQMMqq/d9kfrMem/M=";
})
# Linux: Use __getname()/__putname() to alloc name
(fetchpatch {
url = "https://gerrit.openafs.org/changes/16738/revisions/a1754489f382aabd087f14c325d13a36faa5bf5c/patch";
decode = "base64 -d";
hash = "sha256-JizLrwnujybCkcbDIltGfgVtCc5fL3ZxWvgVbI1kKto=";
url = "https://github.com/openafs/openafs/commit/fd157926f08d10afe981d85654395bbf083ea7a3.patch";
hash = "sha256-gJ+ylIEZwJcpTWc5hmIXS/QcxtICqjaEzZsl2QegjhY=";
})
];

View File

@@ -1,16 +1,16 @@
{ fetchurl }:
rec {
version = "1.8.15";
version = "1.8.16";
src = fetchurl {
url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
hash = "sha256-MvEN0kG12LhG5CWrnL8nW1VroYgL9998RZzZ60kFg1U=";
hash = "sha256-7oEnaJdXy9lyOoU6EvrigcnenD6JSkvZAQf7b4UnBGk=";
};
srcs = [
src
(fetchurl {
url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
hash = "sha256-kAGRw3T0VdJ/XMqqFjV0Z7gzKbWeyZWEsMsBJ+7ijsE=";
hash = "sha256-F9fyLe5Ofs6Ri4MXlO63wOZmhZuY8FAh2P/aoAX5wiQ=";
})
];
}

View File

@@ -7,13 +7,13 @@
openttd.overrideAttrs (oldAttrs: rec {
pname = "openttd-jgrpp";
version = "0.72.3";
version = "0.72.4";
src = fetchFromGitHub {
owner = "JGRennison";
repo = "OpenTTD-patches";
rev = "jgrpp-${version}";
hash = "sha256-W9RakMdyL4eJ/90+/vypzl4FwX7inlrdH9liXNYT3IA=";
hash = "sha256-qiTKoaCUdcm7dJKfxwTtYU8f5C8RYxj7XZL/TtOygtg=";
};
patches = [ ];

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "panache";
version = "2.54.0";
version = "2.58.0";
src = fetchFromGitHub {
owner = "jolars";
repo = "panache";
tag = "v${finalAttrs.version}";
hash = "sha256-JyLIsCJc/kmVBMp+9PRmkx2P1jrtTmmHfbk7mMcHQQ0=";
hash = "sha256-QLW+3xkAYPFVAXM2VwhZm175CksDG9HL9rCEkH7knlU=";
};
cargoHash = "sha256-LLEkdc6MstTfRGoTgtOncmRlSBXnNA2f1qFsR0O5XEM=";
cargoHash = "sha256-OXkkaXWFFOBsZEWL88UWy1dqpwZazk9i8ZAH/tprag4=";
nativeBuildInputs = [
installShellFiles

View File

@@ -10,20 +10,20 @@
buildGoModule (finalAttrs: {
pname = "pangolin-cli";
version = "0.8.3";
version = "0.10.1";
src = fetchFromGitHub {
owner = "fosrl";
repo = "cli";
tag = finalAttrs.version;
hash = "sha256-y+B29E6wXUcMQsWLAcLYIpg0uuqjr+zfxf2WVt0oY9A=";
hash = "sha256-6TRO7tBrWH6EeMFEA6FrpvmlCkUcMtiZ5qr/LQjcLeY=";
};
ldflags = [
"-X github.com/fosrl/cli/internal/version.Version=${finalAttrs.version}"
];
vendorHash = "sha256-r7Tbs05jRlIX1zLRMVqzvDth4+yaMUck2q6R3uPHAWs=";
vendorHash = "sha256-UmzzZDO2lz/HsrUlnV8Wa4GM8lYgoI0ggJlOvxrd79Q=";
nativeBuildInputs = [ installShellFiles ];

View File

@@ -7,13 +7,13 @@
buildNpmPackage (finalAttrs: {
pname = "perplexity-mcp";
version = "0-unstable-2026-04-14";
version = "0-unstable-2026-06-17";
src = fetchFromGitHub {
owner = "perplexityai";
repo = "modelcontextprotocol";
rev = "dd5e0785520833ebc95d5e97c8fa68971dcae07b";
hash = "sha256-hMIPsUsI1e8bOdPQ9t6m4/vGv07NCuC8wnYLUKolNOo=";
rev = "7c8993499c808e5b3c11b8c16736687ecef0f457";
hash = "sha256-6uGJJ+xEVoUZYSPTMr4DSh6j4bq8nYSsUG5XDC9WKag=";
};
npmDepsHash = "sha256-UWxUjneYQeM9GlbIr/zW2TrZuPJ2QOTKwbXKNuVazFg=";

View File

@@ -8,16 +8,19 @@
}:
buildGo125Module (finalAttrs: {
pname = "plakar";
version = "1.0.6";
version = "1.1.3";
# to avoid having all the Test(Get|Set|Validate)Service.* tests fail on darwin
__darwinAllowLocalNetworking = true;
src = fetchFromGitHub {
owner = "PlakarKorp";
repo = "plakar";
tag = "v${finalAttrs.version}";
hash = "sha256-X8m2dXMb+cxWBbKm0MhhY2pNSBTUONyHoPnGlDG9jOg=";
hash = "sha256-AQyE8VtTdkuevBVMLDfhN1h6/DirdhLgPu+76QfRUas=";
};
vendorHash = "sha256-6MdwUJTu9QvqZ3iGEg39L5B5mce7JssFTF3ZmoTuH3M=";
vendorHash = "sha256-nueFE6Ka1dq4Rt+Qs9YJU9N+yYfEyA8jkVGC4vKLjSI=";
buildInputs = [
fuse
@@ -30,8 +33,8 @@ buildGo125Module (finalAttrs: {
checkFlags =
let
skippedTests = [
# mount: fusermount: exec: "fusermount": executable file not found in $PATH
"TestExecuteCmdMountDefault"
# hangs even outside Nix, so probably an upstream issue:
"TestRebuildStateVersionMismatch"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"TestBTreeScanMemory"
@@ -53,6 +56,7 @@ buildGo125Module (finalAttrs: {
maintainers = with lib.maintainers; [
heph2
qbit
nadir-ishiguro
];
};
})

View File

@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "bind_exporter";
version = "0.7.0";
version = "0.8.0";
src = fetchFromGitHub {
rev = "v${version}";
owner = "prometheus-community";
repo = "bind_exporter";
sha256 = "sha256-x/XGatlXCKo9cI92JzFItApsjuZAfZX+8IZRpy7PVUo=";
sha256 = "sha256-r1P+zy3iMgPmfvIBgycW8KS0gfNOxCT9YMmHdeY4uXA=";
};
vendorHash = "sha256-f0ei/zotOj5ebURAOWUox/7J3jS2abQ5UgjninI9nRk=";
vendorHash = "sha256-/fPj5LOe3QdnVPdtYdaqtnGMJ7/SZ458mpvjwO8TxEI=";
passthru.tests = { inherit (nixosTests.prometheus-exporters) bind; };

View File

@@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
__structuredAttrs = true;
sourceRoot = "source/QtWebApp";
sourceRoot = "${finalAttrs.src.name}/QtWebApp";
postPatch = ''
cat >>QtWebApp.pro <<EOF

View File

@@ -2,6 +2,8 @@
lib,
stdenv,
fetchFromGitHub,
fetchurl,
gitUpdater,
cmake,
pkg-config,
docutils,
@@ -15,13 +17,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rdma-core";
version = "62.0";
version = "63.0";
src = fetchFromGitHub {
owner = "linux-rdma";
repo = "rdma-core";
rev = "v${finalAttrs.version}";
hash = "sha256-1n33KH8HTyZ0jHtDanopxwABiLjAvt+V7lgaeabJs8s=";
hash = "sha256-YW6BJS6acj9S8wFXUhC1vrJSm9YowGGuwWEBzQRVyPM=";
};
strictDeps = true;
@@ -47,9 +49,20 @@ stdenv.mkDerivation (finalAttrs: {
udev
];
patches = [
(fetchurl {
# remove when rdma-core 64.0 is released
# https://github.com/linux-rdma/rdma-core/pull/1737
name = "cmake-allow-overriding-sysusers.d-install-directory";
url = "https://github.com/linux-rdma/rdma-core/commit/8b186b5d932701e94bbced83d2f3899ee53f041a.patch?full_index=1";
hash = "sha256-Rjknu7mmJL2Sx+Ypq9SRXU4LUiHERs9j5/qMIZaiRTI=";
})
];
cmakeFlags = [
"-DCMAKE_INSTALL_RUNDIR=/run"
"-DCMAKE_INSTALL_SHAREDSTATEDIR=/var/lib"
"-DSYSUSERS_DIR=${placeholder "out"}/lib/sysusers.d"
];
postPatch = ''
@@ -73,6 +86,10 @@ stdenv.mkDerivation (finalAttrs: {
doInstallCheck = true;
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "RDMA Core Userspace Libraries and Daemons";
homepage = "https://github.com/linux-rdma/rdma-core";

View File

@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl";
version = "0-unstable-2026-06-08";
version = "0-unstable-2026-06-23";
pyproject = true;
src = fetchFromGitHub {
owner = "antmicro";
repo = "dts2repl";
rev = "ecd06775c379e4b45b3f4d9176782695ee479014";
hash = "sha256-hv+ulJEZdB38E9ljIeRa3LupouGGiBffjNWBidhNcoQ=";
rev = "ac3c1b8b0c030adadfcb266af39d7dc7379ceaf9";
hash = "sha256-9Xxb2/B6ctm3HQpDGmAbL+v+n5EjcWWe46KCSMlvujs=";
};
nativeBuildInputs = [

View File

@@ -21,13 +21,13 @@
}:
buildNpmPackage (finalAttrs: {
pname = "repath-studio";
version = "0.4.15";
version = "0.4.16";
src = fetchFromGitHub {
owner = "repath-studio";
repo = "repath-studio";
tag = "v${finalAttrs.version}";
hash = "sha256-Fnu7tZ8chvnDMuMw4QD1NuQgaFOBzHfzl2ePQ5iwnao=";
hash = "sha256-wqDsjr+ZQDRFINzr38i7ClgREEmAaKt+U/Ma63vAH1k=";
};
patches = [
@@ -38,7 +38,7 @@ buildNpmPackage (finalAttrs: {
makeCacheWritable = true;
npmDepsHash = "sha256-0dSFEZ02D83yplqT3GV9TyUwJ3lDjxM47pGYwUXzatw=";
npmDepsHash = "sha256-IvKHLxX7rTB3AGDzNQIVNhfXs0C6TVATdVGUDHGrpOo=";
nativeBuildInputs = [
finalAttrs.passthru.clojureWithHome

View File

@@ -1,5 +1,5 @@
diff --git a/deps.edn b/deps.edn
index 027cf5e..648c635 100644
index 6abd18c..d2f8e14 100644
--- a/deps.edn
+++ b/deps.edn
@@ -1,5 +1,6 @@

View File

@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ruff";
version = "0.15.17";
version = "0.15.18";
__structuredAttrs = true;
@@ -24,12 +24,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "astral-sh";
repo = "ruff";
tag = finalAttrs.version;
hash = "sha256-+UsKRBe+lp/LdsmK/W11wCt2RypEryA5eBPb01OKCJw=";
hash = "sha256-DH00tENXdCdNcGPXPGzZsU3RVYQ0VBe1QLvbgEg/G6k=";
};
cargoBuildFlags = [ "--package=ruff" ];
cargoHash = "sha256-y1sKf+KXya/K+WUiIE357U6DXh/d+AQgj0SQIi1gpUw=";
cargoHash = "sha256-RmK14NMPbhoRVLwIF5GXdGQg2AnMH20JGx7XF4HO+wY=";
nativeBuildInputs = [ installShellFiles ];

View File

@@ -43,11 +43,13 @@ buildGoModule (finalAttrs: {
ldflags = [
"-s"
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"-extldflags=-static"
];
env = {
CGO_ENABLED = 0;
CGO_ENABLED = if stdenv.hostPlatform.isDarwin then 1 else 0;
GODEBUG = "http2client=0";
};
@@ -93,6 +95,5 @@ buildGoModule (finalAttrs: {
wozeparrot
];
mainProgram = "weed";
broken = stdenv.hostPlatform.isDarwin;
};
})

View File

@@ -18,6 +18,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
cargoHash = "sha256-5xYfQRm7U7sEQiJEfjaLznoXUxHsxnLmIEA/OxTkjFg=";
# Only build the starpls language server, not the xtask build helper, which
# would otherwise leak into $out/bin.
cargoBuildFlags = [ "-p starpls" ];
nativeBuildInputs = [
protobuf
];

View File

@@ -11,24 +11,24 @@
copyDesktopItems,
pnpm_10,
nodejs,
electron_38,
electron_42,
zip,
nix-update-script,
}:
let
electron = electron_38;
electron = electron_42;
stdenv = stdenvNoCC;
in
stdenv.mkDerivation (finalAttrs: {
pname = "stoat-desktop";
version = "1.3.0";
version = "1.4.0";
src = fetchFromGitHub {
owner = "stoatchat";
repo = "for-desktop";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-vMXnBniA0wyoK7Pe13h/yHtf8ky59ts4VQb9k7KuUCE=";
hash = "sha256-l4kxlPwohaxserVyNAb3Dp4f5XhnPUKeuRJwrOl9EWc=";
};
postPatch = ''
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
inherit (finalAttrs) pname version src;
fetcherVersion = 3;
pnpm = pnpm_10;
hash = "sha256-m0EuM8qTCFLxxO0RNze5WgMkuHZXeIi+U/Jiuv91eCg=";
hash = "sha256-bIDwEmt/8URBMx7XIQ1EP4SucwMuyGZE1hlQM0rxDnw=";
};
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";

View File

@@ -743,11 +743,6 @@ fn handle_modified_unit(
// This unit should be restarted instead of stopped and started.
units_to_restart.insert(unit.to_string(), ());
record_unit(&restart_list, unit);
// Remove from units to reload so we don't restart and reload
if units_to_reload.contains_key(unit) {
units_to_reload.remove(unit);
unrecord_unit(&reload_list, unit);
}
} else {
// If this unit is socket-activated, then stop the socket unit(s) as well, and
// restart the socket(s) instead of the service.
@@ -769,10 +764,17 @@ fn handle_modified_unit(
};
if sockets.is_empty() {
sockets.push(format!("{base_name}.socket"));
// For a templated instance (`foo@bar.service`), `base_name`
// includes the trailing `@`; the implicitly-associated socket
// is `foo.socket`, so strip it.
let socket_base = base_name.strip_suffix('@').unwrap_or(base_name);
sockets.push(format!("{socket_base}.socket"));
}
for socket in &sockets {
let socket_in_new_config =
toplevel.join(scope.etc_dir()).join(socket).exists();
if active_cur.contains_key(socket) {
// We can now be sure this is a socket-activated unit
@@ -783,7 +785,7 @@ fn handle_modified_unit(
}
// Only restart sockets that actually exist in new configuration:
if toplevel.join(scope.etc_dir()).join(socket).exists() {
if socket_in_new_config {
if use_restart_as_stop_and_start {
units_to_restart.insert(socket.to_string(), ());
record_unit(&restart_list, socket);
@@ -794,12 +796,9 @@ fn handle_modified_unit(
socket_activated = true;
}
// Remove from units to reload so we don't restart and reload
if units_to_reload.contains_key(unit) {
units_to_reload.remove(unit);
unrecord_unit(&reload_list, unit);
}
} else if socket_in_new_config {
// Transitioning to socket activation; let the socket start it.
socket_activated = true;
}
}
}
@@ -828,11 +827,11 @@ fn handle_modified_unit(
} else {
units_to_stop.insert(unit.to_string(), ());
}
// Remove from units to reload so we don't restart and reload
if units_to_reload.contains_key(unit) {
units_to_reload.remove(unit);
unrecord_unit(&reload_list, unit);
}
}
// Remove from units to reload so we don't restart and reload
if units_to_reload.remove(unit).is_some() {
unrecord_unit(&reload_list, unit);
}
}
}

View File

@@ -1,40 +1,60 @@
{
stdenv,
runtimeShell,
apple-sdk,
fetchFromGitHub,
ibtool,
lib,
fetchzip,
makeBinaryWrapper,
stdenv,
xcbuildHook,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "terminal-notifier";
version = "2.0.0";
src = fetchzip {
url = "https://github.com/alloy/terminal-notifier/releases/download/${version}/terminal-notifier-${version}.zip";
sha256 = "0gi54v92hi1fkryxlz3k5s5d8h0s66cc57ds0vbm1m1qk3z4xhb0";
stripRoot = false;
src = fetchFromGitHub {
owner = "julienXX";
repo = "terminal-notifier";
tag = finalAttrs.version;
hash = "sha256-Hd9cI3R2nQK2deBb5CBYz4DTHAEcO4vzqtA5qZwa1Ao=";
};
dontBuild = true;
nativeBuildInputs = [
ibtool
makeBinaryWrapper
xcbuildHook
];
buildInputs = [
apple-sdk
];
xcbuildFlags = [
"-target"
"terminal-notifier"
"-configuration"
"Release"
];
installPhase = ''
mkdir -p $out/Applications
mkdir -p $out/bin
cp -r terminal-notifier.app $out/Applications
cat >$out/bin/terminal-notifier <<EOF
#!${runtimeShell}
cd $out/Applications/terminal-notifier.app
exec ./Contents/MacOS/terminal-notifier "\$@"
EOF
chmod +x $out/bin/terminal-notifier
runHook preInstall
mkdir -p $out/{Applications,bin}
cp -r Products/Release/terminal-notifier.app $out/Applications/
makeWrapper \
$out/Applications/terminal-notifier.app/Contents/MacOS/terminal-notifier \
$out/bin/terminal-notifier \
--chdir $out/Applications/terminal-notifier.app
runHook postInstall
'';
meta = {
maintainers = [ ];
description = "Send macOS User Notifications from the command-line";
homepage = "https://github.com/julienXX/terminal-notifier";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ amarshall ];
platforms = lib.platforms.darwin;
mainProgram = "terminal-notifier";
};
}
})

View File

@@ -17,7 +17,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ty";
version = "0.0.49";
version = "0.0.52";
__structuredAttrs = true;
src = fetchFromGitHub {
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
repo = "ty";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-IKeoskueujGYFjhUd3V7iwKwZjFZqG3OYfe36S6J2aw=";
hash = "sha256-p9fTzQ4DYvnwrtLdpSTekBV4ZbR1KETR8dfsbp8CDpo=";
};
# For Darwin platforms, remove the integration test for file notifications,
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
cargoBuildFlags = [ "--package=ty" ];
cargoHash = "sha256-y1sKf+KXya/K+WUiIE357U6DXh/d+AQgj0SQIi1gpUw=";
cargoHash = "sha256-NUIdYOeyRsR/ZQueEXshYdWTnSeQiRjZRRi2ag8Dm48=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ rust-jemalloc-sys ];

View File

@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
license = lib.licenses.bsd3;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = [
lib.maintainers.buggymcbugfix
lib.maintainers.thoughtpolice
lib.maintainers.sheganinans
];

View File

@@ -6,13 +6,13 @@
}:
buildGoModule (finalAttrs: {
pname = "witr";
version = "0.3.2";
version = "0.3.3";
src = fetchFromGitHub {
owner = "pranshuparmar";
repo = "witr";
tag = "v${finalAttrs.version}";
hash = "sha256-kNiBcLk+rxJno1ZHPxr28EI5T3tpJnFXgh8zIvEYy6M=";
hash = "sha256-xlVzDEYm/45jmEZKQQeEMSGk2ySjOdkkynRs9Q9qIiY=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;

View File

@@ -271,7 +271,9 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "USE_OPENMP" false) # openblas will refuse building with both USE_OPENMP=ON and USE_THREAD=OFF
];
doCheck = true;
# FIXME: this broke some time between a0374025a863d007d98e3297f6aa46cc3141c2f0 and 34268251cf5547d39063f2c5ea9a196246f7f3a6
# This just serves to unbreak stable
doCheck = stdenv.hostPlatform.system != "i686-linux";
postInstall = ''
# Provide headers in /include directly for compat with some consumers like flint

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