Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-12-05 12:07:33 +00:00
committed by GitHub
70 changed files with 3598 additions and 473 deletions
+5
View File
@@ -16,6 +16,11 @@
- All Log4Shell vulnerability scanners were removed, as they were all unmaintained upstream and are no longer relevant given that the vulnerability has been fixed upstream for several years.
- `asio` (standalone version of `boost::asio`) has been updated from 1.24.0 to 1.36.0. Some breaking changes were introduced between these
two versions, and the one affected most was the removal of `asio::io_service` in favor of `asio::io_context` in 1.33.0. `asio_1_32_0` is
retained for packages that have not completed migration. `asio_1_10` has been removed as no packages depend on it anymore.
`asio` also no longer propagates `boost` as it is used independent from `boost` in most cases.
- `python3packages.pillow-avif-plugin` has been removed as the functionality is included in `python3packages.pillow` directly since version 11.3.
## Other Notable Changes {#sec-nixpkgs-release-26.05-notable-changes}
@@ -22,4 +22,4 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
- `services.openssh` now supports generating host SSH keys by setting `services.openssh.generateHostKeys = true` while leaving `services.openssh.enable` disabled. This is particularly useful for systems that have no need of an SSH daemon but want SSH host keys for other purposes such as using agenix or sops-nix.
+227 -209
View File
@@ -381,6 +381,19 @@ in
'';
};
generateHostKeys = lib.mkOption {
type = lib.types.bool;
default = config.services.openssh.enable;
defaultText = lib.literalExpression "services.openssh.enable";
description = ''
Whether to generate SSH host keys.
This can be enabled explicitly if you want to generate host keys but
don't want to enable the SSH daemon.
'';
example = true;
};
banner = lib.mkOption {
type = lib.types.nullOr lib.types.lines;
default = null;
@@ -669,115 +682,232 @@ in
###### implementation
config = lib.mkIf cfg.enable {
config = lib.mkMerge [
(lib.mkIf cfg.enable {
users.users.sshd = {
isSystemUser = true;
group = "sshd";
description = "SSH privilege separation user";
};
users.groups.sshd = { };
services.openssh.moduliFile = lib.mkDefault "${cfg.package}/etc/ssh/moduli";
services.openssh.sftpServerExecutable = lib.mkDefault "${cfg.package}/libexec/sftp-server";
environment.etc =
authKeysFiles
// authPrincipalsFiles
// {
"ssh/moduli".source = cfg.moduliFile;
"ssh/sshd_config".source = sshconf;
users.users.sshd = {
isSystemUser = true;
group = "sshd";
description = "SSH privilege separation user";
};
users.groups.sshd = { };
systemd.tmpfiles.settings."ssh-root-provision" = {
"/root"."d-" = {
user = "root";
group = ":root";
mode = ":700";
};
"/root/.ssh"."d-" = {
user = "root";
group = ":root";
mode = ":700";
};
"/root/.ssh/authorized_keys"."f^" = {
user = "root";
group = ":root";
mode = ":600";
argument = "ssh.authorized_keys.root";
};
};
services.openssh.moduliFile = lib.mkDefault "${cfg.package}/etc/ssh/moduli";
services.openssh.sftpServerExecutable = lib.mkDefault "${cfg.package}/libexec/sftp-server";
systemd = {
sockets.sshd = lib.mkIf cfg.startWhenNeeded {
description = "SSH Socket";
wantedBy = [ "sockets.target" ];
socketConfig.ListenStream =
if cfg.listenAddresses != [ ] then
lib.concatMap (
{ addr, port }:
if port != null then [ "${addr}:${toString port}" ] else map (p: "${addr}:${toString p}") cfg.ports
) cfg.listenAddresses
else
cfg.ports;
socketConfig.Accept = true;
# Prevent brute-force attacks from shutting down socket
socketConfig.TriggerLimitIntervalSec = 0;
};
environment.etc =
authKeysFiles
// authPrincipalsFiles
// {
"ssh/moduli".source = cfg.moduliFile;
"ssh/sshd_config".source = sshconf;
};
services."sshd@" = {
description = "SSH per-connection Daemon";
after = [
"network.target"
"sshd-keygen.service"
];
wants = [ "sshd-keygen.service" ];
stopIfChanged = false;
path = [ cfg.package ];
environment.LD_LIBRARY_PATH = nssModulesPath;
serviceConfig = {
ExecStart = lib.concatStringsSep " " [
"-${lib.getExe' cfg.package "sshd"}"
"-i"
"-D"
"-f /etc/ssh/sshd_config"
];
KillMode = "process";
StandardInput = "socket";
StandardError = "journal";
systemd.tmpfiles.settings."ssh-root-provision" = {
"/root"."d-" = {
user = "root";
group = ":root";
mode = ":700";
};
"/root/.ssh"."d-" = {
user = "root";
group = ":root";
mode = ":700";
};
"/root/.ssh/authorized_keys"."f^" = {
user = "root";
group = ":root";
mode = ":600";
argument = "ssh.authorized_keys.root";
};
};
services.sshd = lib.mkIf (!cfg.startWhenNeeded) {
description = "SSH Daemon";
wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"sshd-keygen.service"
];
wants = [ "sshd-keygen.service" ];
stopIfChanged = false;
path = [ cfg.package ];
environment.LD_LIBRARY_PATH = nssModulesPath;
systemd = {
sockets.sshd = lib.mkIf cfg.startWhenNeeded {
description = "SSH Socket";
wantedBy = [ "sockets.target" ];
socketConfig.ListenStream =
if cfg.listenAddresses != [ ] then
lib.concatMap (
{ addr, port }:
if port != null then [ "${addr}:${toString port}" ] else map (p: "${addr}:${toString p}") cfg.ports
) cfg.listenAddresses
else
cfg.ports;
socketConfig.Accept = true;
# Prevent brute-force attacks from shutting down socket
socketConfig.TriggerLimitIntervalSec = 0;
};
restartTriggers = [ config.environment.etc."ssh/sshd_config".source ];
serviceConfig = {
Type = "notify-reload";
Restart = "always";
ExecStart = lib.concatStringsSep " " [
(lib.getExe' cfg.package "sshd")
"-D"
"-f"
"/etc/ssh/sshd_config"
services."sshd@" = {
description = "SSH per-connection Daemon";
after = [
"network.target"
"sshd-keygen.service"
];
KillMode = "process";
wants = lib.mkIf cfg.generateHostKeys [ "sshd-keygen.service" ];
stopIfChanged = false;
path = [ cfg.package ];
environment.LD_LIBRARY_PATH = nssModulesPath;
serviceConfig = {
ExecStart = lib.concatStringsSep " " [
"-${lib.getExe' cfg.package "sshd"}"
"-i"
"-D"
"-f /etc/ssh/sshd_config"
];
KillMode = "process";
StandardInput = "socket";
StandardError = "journal";
};
};
services.sshd = lib.mkIf (!cfg.startWhenNeeded) {
description = "SSH Daemon";
wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"sshd-keygen.service"
];
wants = lib.mkIf cfg.generateHostKeys [ "sshd-keygen.service" ];
stopIfChanged = false;
path = [ cfg.package ];
environment.LD_LIBRARY_PATH = nssModulesPath;
restartTriggers = [ config.environment.etc."ssh/sshd_config".source ];
serviceConfig = {
Type = "notify-reload";
Restart = "always";
ExecStart = lib.concatStringsSep " " [
(lib.getExe' cfg.package "sshd")
"-D"
"-f"
"/etc/ssh/sshd_config"
];
KillMode = "process";
};
};
};
services.sshd-keygen = {
networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall cfg.ports;
security.pam.services.sshd = lib.mkIf cfg.settings.UsePAM {
startSession = true;
showMotd = true;
unixAuth = if cfg.settings.PasswordAuthentication == true then true else false;
};
# These values are merged with the ones defined externally, see:
# https://github.com/NixOS/nixpkgs/pull/10155
# https://github.com/NixOS/nixpkgs/pull/41745
services.openssh.authorizedKeysFiles =
lib.optional cfg.authorizedKeysInHomedir "%h/.ssh/authorized_keys"
++ [ "/etc/ssh/authorized_keys.d/%u" ];
services.openssh.settings.AuthorizedPrincipalsFile = lib.mkIf (
authPrincipalsFiles != { }
) "/etc/ssh/authorized_principals.d/%u";
services.openssh.extraConfig = lib.mkOrder 0 (
lib.concatStringsSep "\n" (
[
"Banner ${if cfg.banner == null then "none" else pkgs.writeText "ssh_banner" cfg.banner}"
"AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}"
]
++ lib.map (port: ''Port ${toString port}'') cfg.ports
++ lib.map (
{ port, addr, ... }:
''ListenAddress ${addr}${lib.optionalString (port != null) (":" + toString port)}''
) cfg.listenAddresses
++ lib.optional cfgc.setXAuthLocation "XAuthLocation ${lib.getExe pkgs.xorg.xauth}"
++ lib.optional cfg.allowSFTP ''Subsystem sftp ${cfg.sftpServerExecutable} ${lib.concatStringsSep " " cfg.sftpFlags}''
++ [
"AuthorizedKeysFile ${toString cfg.authorizedKeysFiles}"
]
++ lib.optional (cfg.authorizedKeysCommand != "none") ''
AuthorizedKeysCommand ${cfg.authorizedKeysCommand}
AuthorizedKeysCommandUser ${cfg.authorizedKeysCommandUser}
''
++ lib.map (k: "HostKey ${k.path}") cfg.hostKeys
)
);
system.checks = [
(pkgs.runCommand "check-sshd-config"
{
nativeBuildInputs = [ validationPackage ];
}
''
${lib.concatMapStringsSep "\n" (
lport: "sshd -G -T -C lport=${toString lport} -f ${sshconf} > /dev/null"
) cfg.ports}
${lib.concatMapStringsSep "\n" (
la:
lib.concatMapStringsSep "\n" (
port:
"sshd -G -T -C ${lib.escapeShellArg "laddr=${la.addr},lport=${toString port}"} -f ${sshconf} > /dev/null"
) (if la.port != null then [ la.port ] else cfg.ports)
) cfg.listenAddresses}
touch $out
''
)
];
assertions = [
{
assertion = if cfg.settings.X11Forwarding then cfgc.setXAuthLocation else true;
message = "cannot enable X11 forwarding without setting xauth location";
}
{
assertion =
(builtins.match "(.*\n)?(\t )*[Kk][Ee][Rr][Bb][Ee][Rr][Oo][Ss][Aa][Uu][Tt][Hh][Ee][Nn][Tt][Ii][Cc][Aa][Tt][Ii][Oo][Nn][ |\t|=|\"]+yes.*" "${configFile}\n${cfg.extraConfig}")
!= null
-> cfgc.package.withKerberos;
message = "cannot enable Kerberos authentication without using a package with Kerberos support";
}
{
assertion =
(builtins.match "(.*\n)?(\t )*[Gg][Ss][Ss][Aa][Pp][Ii][Aa][Uu][Tt][Hh][Ee][Nn][Tt][Ii][Cc][Aa][Tt][Ii][Oo][Nn][ |\t|=|\"]+yes.*" "${configFile}\n${cfg.extraConfig}")
!= null
-> cfgc.package.withKerberos;
message = "cannot enable GSSAPI authentication without using a package with Kerberos support";
}
(
let
duplicates =
# Filter out the groups with more than 1 element
lib.filter (l: lib.length l > 1) (
# Grab the groups, we don't care about the group identifiers
lib.attrValues (
# Group the settings that are the same in lower case
lib.groupBy lib.strings.toLower (lib.attrNames cfg.settings)
)
);
formattedDuplicates = lib.concatMapStringsSep ", " (
dupl: "(${lib.concatStringsSep ", " dupl})"
) duplicates;
in
{
assertion = lib.length duplicates == 0;
message = ''Duplicate sshd config key; does your capitalization match the option's? Duplicate keys: ${formattedDuplicates}'';
}
)
]
++ lib.forEach cfg.listenAddresses (
{ addr, ... }:
{
assertion = addr != null;
message = "addr must be specified in each listenAddresses entry";
}
);
})
(lib.mkIf cfg.generateHostKeys {
systemd.services.sshd-keygen = {
description = "SSH Host Keys Generation";
wantedBy = [ "multi-user.target" ];
unitConfig = {
ConditionFileNotEmpty = map (k: "|!${k.path}") cfg.hostKeys;
};
@@ -802,119 +932,7 @@ in
fi
'');
};
};
networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall cfg.ports;
security.pam.services.sshd = lib.mkIf cfg.settings.UsePAM {
startSession = true;
showMotd = true;
unixAuth = if cfg.settings.PasswordAuthentication == true then true else false;
};
# These values are merged with the ones defined externally, see:
# https://github.com/NixOS/nixpkgs/pull/10155
# https://github.com/NixOS/nixpkgs/pull/41745
services.openssh.authorizedKeysFiles =
lib.optional cfg.authorizedKeysInHomedir "%h/.ssh/authorized_keys"
++ [ "/etc/ssh/authorized_keys.d/%u" ];
services.openssh.settings.AuthorizedPrincipalsFile = lib.mkIf (
authPrincipalsFiles != { }
) "/etc/ssh/authorized_principals.d/%u";
services.openssh.extraConfig = lib.mkOrder 0 (
lib.concatStringsSep "\n" (
[
"Banner ${if cfg.banner == null then "none" else pkgs.writeText "ssh_banner" cfg.banner}"
"AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}"
]
++ lib.map (port: ''Port ${toString port}'') cfg.ports
++ lib.map (
{ port, addr, ... }:
''ListenAddress ${addr}${lib.optionalString (port != null) (":" + toString port)}''
) cfg.listenAddresses
++ lib.optional cfgc.setXAuthLocation "XAuthLocation ${lib.getExe pkgs.xorg.xauth}"
++ lib.optional cfg.allowSFTP ''Subsystem sftp ${cfg.sftpServerExecutable} ${lib.concatStringsSep " " cfg.sftpFlags}''
++ [
"AuthorizedKeysFile ${toString cfg.authorizedKeysFiles}"
]
++ lib.optional (cfg.authorizedKeysCommand != "none") ''
AuthorizedKeysCommand ${cfg.authorizedKeysCommand}
AuthorizedKeysCommandUser ${cfg.authorizedKeysCommandUser}
''
++ lib.map (k: "HostKey ${k.path}") cfg.hostKeys
)
);
system.checks = [
(pkgs.runCommand "check-sshd-config"
{
nativeBuildInputs = [ validationPackage ];
}
''
${lib.concatMapStringsSep "\n" (
lport: "sshd -G -T -C lport=${toString lport} -f ${sshconf} > /dev/null"
) cfg.ports}
${lib.concatMapStringsSep "\n" (
la:
lib.concatMapStringsSep "\n" (
port:
"sshd -G -T -C ${lib.escapeShellArg "laddr=${la.addr},lport=${toString port}"} -f ${sshconf} > /dev/null"
) (if la.port != null then [ la.port ] else cfg.ports)
) cfg.listenAddresses}
touch $out
''
)
];
assertions = [
{
assertion = if cfg.settings.X11Forwarding then cfgc.setXAuthLocation else true;
message = "cannot enable X11 forwarding without setting xauth location";
}
{
assertion =
(builtins.match "(.*\n)?(\t )*[Kk][Ee][Rr][Bb][Ee][Rr][Oo][Ss][Aa][Uu][Tt][Hh][Ee][Nn][Tt][Ii][Cc][Aa][Tt][Ii][Oo][Nn][ |\t|=|\"]+yes.*" "${configFile}\n${cfg.extraConfig}")
!= null
-> cfgc.package.withKerberos;
message = "cannot enable Kerberos authentication without using a package with Kerberos support";
}
{
assertion =
(builtins.match "(.*\n)?(\t )*[Gg][Ss][Ss][Aa][Pp][Ii][Aa][Uu][Tt][Hh][Ee][Nn][Tt][Ii][Cc][Aa][Tt][Ii][Oo][Nn][ |\t|=|\"]+yes.*" "${configFile}\n${cfg.extraConfig}")
!= null
-> cfgc.package.withKerberos;
message = "cannot enable GSSAPI authentication without using a package with Kerberos support";
}
(
let
duplicates =
# Filter out the groups with more than 1 element
lib.filter (l: lib.length l > 1) (
# Grab the groups, we don't care about the group identifiers
lib.attrValues (
# Group the settings that are the same in lower case
lib.groupBy lib.strings.toLower (lib.attrNames cfg.settings)
)
);
formattedDuplicates = lib.concatMapStringsSep ", " (
dupl: "(${lib.concatStringsSep ", " dupl})"
) duplicates;
in
{
assertion = lib.length duplicates == 0;
message = ''Duplicate sshd config key; does your capitalization match the option's? Duplicate keys: ${formattedDuplicates}'';
}
)
]
++ lib.forEach cfg.listenAddresses (
{ addr, ... }:
{
assertion = addr != null;
message = "addr must be specified in each listenAddresses entry";
}
);
};
})
];
}
+26
View File
@@ -250,6 +250,15 @@ in
};
};
server-no-sshd-with-key =
{ pkgs, ... }:
{
services.openssh.generateHostKeys = true;
users.users.root.openssh.authorizedKeys.keys = [
snakeOilPublicKey
];
};
client =
{ ... }:
{
@@ -276,6 +285,10 @@ in
server_localhost_only_lazy.wait_for_unit("sshd.socket", timeout=30)
server_lazy_socket.wait_for_unit("sshd.socket", timeout=30)
# sshd-keygen is a oneshot unit, so just wait for multi-user.target, which
# pulls it in.
server_no_sshd_with_key.wait_for_unit("multi-user.target", timeout=30)
with subtest("manual-authkey"):
client.succeed(
'${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""'
@@ -408,6 +421,19 @@ in
server_sftp.wait_for_file("/srv/sftp/uploads/test-file")
with subtest("keygen without sshd"):
client.fail(
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@server-no-sshd-with-key true",
timeout=30
)
server_no_sshd_with_key.succeed("test -e /etc/ssh/ssh_host_ed25519_key")
server_no_sshd_with_key.succeed("test -e /etc/ssh/ssh_host_ed25519_key.pub")
server_no_sshd_with_key.fail("pgrep sshd")
# Validate the above check for sshd using pgrep does pass on a server
# that should have sshd running, just to prove it's a useful test.
server.succeed("pgrep sshd")
# None of the per-connection units should have failed.
server_lazy.fail("systemctl is-failed 'sshd@*.service'")
'';
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mame2003-plus";
version = "0-unstable-2025-11-13";
version = "0-unstable-2025-12-02";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-plus-libretro";
rev = "62c7089644966f6ac5fc79fe03592603579a409d";
hash = "sha256-NHJfZpo4/aR9a6Sn3x+BQaVfKtkMBUoDQlgtvIkXDFI=";
rev = "e58d3285f4323a19a0f5aea01f4cdf7a934e1155";
hash = "sha256-3n34FDDQ1CjmZ4V7Vl/JYi/24w9F3z1nLSEuq44KvMg=";
};
makefile = "Makefile";
@@ -13,13 +13,13 @@
}:
mkLibretroCore {
core = "ppsspp";
version = "0-unstable-2025-11-27";
version = "0-unstable-2025-12-04";
src = fetchFromGitHub {
owner = "hrydgard";
repo = "ppsspp";
rev = "e5bafa4264e88cf2699e44740e2580ced0454a90";
hash = "sha256-+Rmj75yBodwqENJppTWpsef9R0ajCoz9KaxVuYktUII=";
rev = "cf306e9cec919011339fb123d009cb470f628df4";
hash = "sha256-5UNd59QG10yD7wuiXWC5JwqWvggx07M6n320dhJ3rU0=";
fetchSubmodules = true;
};
+69
View File
@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
openssl,
boost,
testers,
asioVersion ? "1.36.0",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "asio";
version = asioVersion;
src = fetchFromGitHub {
owner = "chriskohlhoff";
repo = "asio";
tag = "asio-${lib.replaceStrings [ "." ] [ "-" ] finalAttrs.version}";
hash =
{
# Preserve 1.32.0 because some project depends on asio/io_service.hpp
"1.32.0" = "sha256-PBoa4OAOOmHas9wCutjz80rWXc3zGONntb9vTQk3FNY=";
"1.36.0" = "sha256-BhJpE5+t0WXsuQ5CtncU0P8Kf483uFoV+OGlFLc7TpQ=";
}
.${asioVersion} or (throw "Unsupported asio version. Please use overrideAttrs directly");
};
sourceRoot = "${finalAttrs.src.name}/asio";
nativeBuildInputs = [
autoreconfHook
pkg-config
];
# Only used for test coverage
checkInputs = [
openssl
boost
];
configureFlags = lib.optionals finalAttrs.finalPackage.doCheck [
# Only used in tests, "HAVE_BOOST_COROUTINE"
"--enable-boost-coroutine"
# There is also the "--with-boost" flag, but
# after several tests, it doesn't make any difference
# in the output.
];
enableParallelBuilding = true;
doCheck = true;
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
versionCheck = true;
};
meta = {
homepage = "https://think-async.com/Asio";
description = "Cross-platform C++ library for network and low-level I/O programming";
license = lib.licenses.boost;
maintainers = with lib.maintainers; [ aleksana ];
platforms = lib.platforms.unix;
pkgConfigModules = [ "asio" ];
};
})
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cfspeedtest";
version = "2.0.0";
version = "2.0.1";
src = fetchFromGitHub {
owner = "code-inflation";
repo = "cfspeedtest";
tag = "v${finalAttrs.version}";
hash = "sha256-uqWTYhC+ADwGpUSYXKKD4t0ZSEsVxVM6hNHKewuW0Ts=";
hash = "sha256-q69ti2bEJBO7Evz8X2EQGbMP3n27fesSO1z8HaEhKJM=";
};
cargoHash = "sha256-VuCYy8awQTmOxh9efJb0t6BXcxwlkz/uJNb8bCzXMdc=";
cargoHash = "sha256-AvcbA4V9Ht9yWNOPPVQvAGULiTh7cY92NaZJbOAOk1U=";
nativeBuildInputs = [ installShellFiles ];
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "clorinde";
version = "1.1.1";
version = "1.2.0";
src = fetchFromGitHub {
owner = "halcyonnouveau";
repo = "clorinde";
tag = "clorinde-v${finalAttrs.version}";
hash = "sha256-a44y0cVmpQf3AmN4DXR50pFhUrWlANN9X0v0zQttT7M=";
hash = "sha256-d+fVk3ZWccw/E6/mAyiGkP5t5/nl3riBAHwhzsaLiDs=";
};
cargoHash = "sha256-YSyHp3JwsLO7yrLko5NE2lb6ozy8Ah9i2Rz3854ujh0=";
cargoHash = "sha256-bu31l7slpWIHe2Ze/pP2udygt/KeWrdh0MYkCXCSWIc=";
cargoBuildFlags = [ "--package=clorinde" ];
+3 -3
View File
@@ -14,18 +14,18 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codex";
version = "0.64.0";
version = "0.65.0";
src = fetchFromGitHub {
owner = "openai";
repo = "codex";
tag = "rust-v${finalAttrs.version}";
hash = "sha256-1nUawra7VChAcLAwWgcasy22q37DQxq6q8qAx55gHMc=";
hash = "sha256-1zh6ifwavP3RFqQbHIClEQ4cKRQ5LdU61LReA6+HSW8=";
};
sourceRoot = "${finalAttrs.src.name}/codex-rs";
cargoHash = "sha256-cIiHB8THztG/TqPMjFekkQl8wEvALIf5Bg/fqXJ/hKs=";
cargoHash = "sha256-XzqEI8wpI5g1+u+AOWiZYOzCVhwysMtHKPDpcfu2HAU=";
nativeBuildInputs = [
installShellFiles
+3 -3
View File
@@ -20,17 +20,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-applets";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-applets";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-4BH7qEoUf5UtpiQtk3WvgA3p/hAa58RnQ4jUjG8tpd0=";
hash = "sha256-HZi9pT9s7h/TJtWK28vlCvhiuQqmxZa0HmSsnBa8F80=";
};
cargoHash = "sha256-XOA5yREoQHGxPI9PVYd2UsaHRCIfbb3Tkr1eovqIIow=";
cargoHash = "sha256-8Zq8l4gRI9FuGFy6Gi5doFNvOT7nOy8qCE9pmbcCELQ=";
nativeBuildInputs = [
just
@@ -11,7 +11,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-applibrary";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+1 -1
View File
@@ -13,7 +13,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-bg";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+2 -2
View File
@@ -20,14 +20,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-comp";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-comp";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-MyE2C7oUMSIkNn03am/ytc1/oJITsAO7Ok3XV231EmA=";
hash = "sha256-ozymo6ucBEv4vEADIHyn/G+p5V8SMgsyW/TcEi3Dhxg=";
};
cargoHash = "sha256-qlfCCHqjKX72hVj5Bgh1wKT7pMsy5vG1VEIqJk4prR8=";
+2 -2
View File
@@ -16,14 +16,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-edit";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-edit";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-Zk4qo/2ZdlAv2g1gIoMfzRXwndmqtyIqtX/2Z1nmhLM=";
hash = "sha256-lqM2MYuGXUh0gTosjbJbusP5daHhs7tsnDTmYzh1Vbo=";
};
cargoHash = "sha256-6b6m6mZTa3Li74JCm6czR0VBc7H5IRTPr7yic3V1FL4=";
+2 -2
View File
@@ -12,14 +12,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-files";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-files";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-jH88PzgHMbbtGc68v/7Azia+LrB1kfA7QdBJOVAsEs0=";
hash = "sha256-rjGhT8ZFLpVEGz5g9Hy3E8eYigxUXF1ZHLXUhHdIyHE=";
};
cargoHash = "sha256-WPBK7/7l+Z69AFrqnDL6XszUcBHuZdKsNZ31HS+Ol4o=";
+1 -1
View File
@@ -19,7 +19,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-greeter";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+1 -1
View File
@@ -9,7 +9,7 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cosmic-icons";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+1 -1
View File
@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-idle";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -14,14 +14,14 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-initial-setup";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-initial-setup";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-iSxBd/0DsaId7PETZMZbN4uZHiUJmxzm/1KXRXDwpEo=";
hash = "sha256-eK+1nEpCgWOdhA0Kdg/RwgAON0dMjZujWxqd5CdSqNk=";
};
cargoHash = "sha256-jOPJiKPE3UUD/QHmb+6s6l2RVhtUFls3QRGQ6DmEFSE=";
+1 -1
View File
@@ -11,7 +11,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-launcher";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-notifications";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+3 -3
View File
@@ -15,17 +15,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-osd";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-osd";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-mbsTDxd8vvkY0EQCOI8sXxY80odJgSAuuP2gNzy6HXo=";
hash = "sha256-WK90ml7xIRK2Xd1FIjRJg0QmXfFL1slmZOI8hhGsVtg=";
};
cargoHash = "sha256-cpNp/by8TU2lbb2d3smxUr48mTSLnoPXseiRZScwSXI=";
cargoHash = "sha256-DNQvmE/2swrDybjcQfCAjMRkAttjl+ibbLG0HSlcZwU=";
nativeBuildInputs = [
just
+2 -2
View File
@@ -11,14 +11,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-panel";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-panel";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-gvEHieM8osGyRrkeE8gEOPduTv3y3KgoZ2YhFgW5qp8=";
hash = "sha256-1Xwe1uONJbl4wq6QBbTI1suLiSlTzU4e/5WBccvghHE=";
};
cargoHash = "sha256-ZkjXZrcA4qKHSjEOxj7+j10PxJw/du8B2Mee2fxPJxs=";
+1 -1
View File
@@ -18,7 +18,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-player";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+1 -1
View File
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-randr";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -11,7 +11,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-screenshot";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+1 -1
View File
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-session";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-settings-daemon";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
+3 -3
View File
@@ -27,17 +27,17 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-settings";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-settings";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-Z+MJMHcyqUnSKSUeYH5PyFFkzUQ33bkFoAd3m/TckrQ=";
hash = "sha256-MNse8aUfRuJ7svNWv/b+XF2LVNKw4O6oZN7bUmrPE78=";
};
cargoHash = "sha256-Su+yAQLr3Us8YNU8z83XO1UDjjOY3SCGnkmwGaIGFho=";
cargoHash = "sha256-zubJwm+4Jb6Fv2+tu93It4wkD9KJe3KaPUkxlWAvuZE=";
nativeBuildInputs = [
cmake
+3 -3
View File
@@ -15,17 +15,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-store";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-store";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-rrM0ibnapXv+IYDPqw/dXQJ44cDWPNlz7rREVQw5J1o=";
hash = "sha256-6PysnBu6b4REfmIwk7MgYZpNXeFKX2kIrwoflqAAKNg=";
};
cargoHash = "sha256-nJLowAuWvj5JfmPyExQyfCJ9pqNJ0OdzPPku9z7RDWc=";
cargoHash = "sha256-n9QuACHrSctmH8qLpDL3Z6iGyKXhYKVoGOiw14jVIkc=";
nativeBuildInputs = [
just
+1 -1
View File
@@ -15,7 +15,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-term";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -7,7 +7,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cosmic-wallpapers";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -14,14 +14,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-workspaces-epoch";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-workspaces-epoch";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-XsBOT4AUdw9cA1wjHzS0StbSIt4z3tEMnnJdegdsROI=";
hash = "sha256-/NLEI+rBuqq1NXh9KijkR+lOlyEOfgwc46dgUoPxF1E=";
};
cargoHash = "sha256-7BdyHz66A+QhJY0haohaQiNkhpmX9rqIW9gD8E4Q7Qg=";
+17 -3
View File
@@ -1,6 +1,20 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7dbc2c3..cfdd98d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,6 @@ project(Crow
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPM.cmake)
# Make sure Findasio.cmake module is found
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 67c458c..2873530 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -5,18 +5,9 @@
@@ -5,18 +5,9 @@ set(CMAKE_POLICY_DEFAULT_CMP0077 new)
set(CMAKE_POLICY_WARNING_CMP0126 new)
include(${CMAKE_SOURCE_DIR}/cmake/compiler_options.cmake)
@@ -9,7 +23,7 @@
+find_package(Catch2 REQUIRED)
-CPMAddPackage(Catch2
- VERSION 3.7.0
- VERSION 3.10.0
- GITHUB_REPOSITORY catchorg/Catch2
- OPTIONS
- "CATCH_INSTALL_DOCS Off"
@@ -19,4 +33,4 @@
-
enable_testing()
set(TEST_SRCS
# list the test sources
+4 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "crow";
version = "1.2.1.2";
version = "1.3.0.0";
src = fetchFromGitHub {
owner = "CrowCpp";
repo = "Crow";
tag = "v${finalAttrs.version}";
hash = "sha256-iQ2owNry4LOmMxyO5L7O7XZB5vwUf+ZuZL76hZ6FThk=";
hash = "sha256-QLYQ0RouqDDvhnBF79O/9M7IwlF0eQ3HTqR6bXWm574=";
};
patches = [
@@ -30,6 +30,8 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "CROW_BUILD_EXAMPLES" false)
# Requires more non-trivial patches to get around CPM
(lib.cmakeBool "CROW_GENERATE_SBOM" false)
];
doCheck = true;
-2
View File
@@ -21,7 +21,6 @@
speexdsp,
hamlib_4,
wxGTK32,
sioclient,
dbus,
apple-sdk_15,
nix-update-script,
@@ -133,7 +132,6 @@ stdenv.mkDerivation (finalAttrs: {
speexdsp
hamlib_4
wxGTK32
sioclient
python3.pkgs.numpy
]
++ (
+3 -3
View File
@@ -15,13 +15,13 @@
buildGoModule rec {
pname = "fulcio";
version = "1.8.2";
version = "1.8.3";
src = fetchFromGitHub {
owner = "sigstore";
repo = "fulcio";
tag = "v${version}";
hash = "sha256-yAaMXlcGU1JXGMr2nkUHAWkd2JAlprPbKxs1MKvU6iM=";
hash = "sha256-yR8Q1ksz1fB8sc8NA6Hr4dwe5VXerEgIQYiIpNTOEf8=";
# 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;
@@ -33,7 +33,7 @@ buildGoModule rec {
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-xOM92evfKrjFhPPny1kIVK5uxZkLJZ+qyJ15/4HpsN0=";
vendorHash = "sha256-G+vtNCm9Ecpj5IzxXojzcjGEQL47R5gNMFI/JCs7C0w=";
nativeBuildInputs = [ installShellFiles ];
+3 -5
View File
@@ -5,18 +5,16 @@
}:
buildGoModule rec {
pname = "gokey";
version = "0.1.3";
patches = [ ./version.patch ];
version = "0.2.0";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "gokey";
tag = "v${version}";
hash = "sha256-pvtRSWq/vXlyUShb61aiDlis9AiQnrA2PWycr1Zw0og=";
hash = "sha256-tJ9nCHhKPrw7SRGsqAlo/tf3tBLF63+CevEXggZADlE=";
};
vendorHash = "sha256-qlP2tI6QQMjxP59zaXgx4mX9IWSrOKWmme717wDaUEc=";
vendorHash = "sha256-Btac9Oi8efqRy+OH49Na3Y6RGehHEmGfvDo2/7EWPL4=";
meta = with lib; {
homepage = "https://github.com/cloudflare/gokey";
-15
View File
@@ -1,15 +0,0 @@
diff --git a/go.mod b/go.mod
index 50b6806..f23b2ec 100644
--- a/go.mod
+++ b/go.mod
@@ -1,8 +1,9 @@
module github.com/cloudflare/gokey
-go 1.13
+go 1.17
require (
golang.org/x/crypto v0.17.0
golang.org/x/term v0.15.0
+ golang.org/x/sys v0.15.0
)
+4 -3
View File
@@ -8,7 +8,7 @@
qt6,
libusb1,
protobuf,
asio,
asio_1_32_0,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
postPatch = ''
substituteInPlace {hidviz,libhidx{,/libhidx{,_server{,_daemon}}}}/CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 3.2)' 'cmake_minimum_required(VERSION 3.10)'
substituteInPlace libhidx/cmake_modules/Findasio.cmake --replace-fail '/usr/include/asio' '${lib.getDev asio}/include/asio'
substituteInPlace libhidx/cmake_modules/Findasio.cmake --replace-fail '/usr/include/asio' '${lib.getDev asio_1_32_0}/include/asio'
substituteInPlace libhidx/libhidx/src/Connector.cc --replace-fail '/usr/local/libexec' "$out/libexec"
'';
@@ -39,7 +39,8 @@ stdenv.mkDerivation (finalAttrs: {
qt6.qtwebengine
libusb1
protobuf
asio
# depends on io_service
asio_1_32_0
];
meta = with lib; {
+6
View File
@@ -22,6 +22,12 @@ stdenv.mkDerivation rec {
hash = "sha256-AhByaw1KnEDuRfKiN+/vQMbkG0BJ6Z3+h+QT8scFzAY=";
};
patches = [
# https://github.com/STEllAR-GROUP/hpx/pull/6731
# Fix build with asio >= 1.34.0
./remove_deprecated_asio_features.patch
];
propagatedBuildInputs = [ hwloc ];
buildInputs = [
asio
@@ -0,0 +1,557 @@
From f073c54f9c69108707dc477c890592049fcd95db Mon Sep 17 00:00:00 2001
From: Hartmut Kaiser <hartmut.kaiser@gmail.com>
Date: Mon, 30 Jun 2025 09:49:03 -0500
Subject: [PATCH 1/2] Removing deprecated Asio features
Signed-off-by: Hartmut Kaiser <hartmut.kaiser@gmail.com>
---
.../iostreams/src/server/output_stream.cpp | 30 ++++--
examples/async_io/async_io_low_level.cpp | 5 +
libs/core/asio/include/hpx/asio/asio_util.hpp | 6 ++
libs/core/asio/src/asio_util.cpp | 102 +++++++++++++++++-
libs/core/executors/src/service_executors.cpp | 10 +-
.../hpx/io_service/io_service_pool.hpp | 4 +
libs/core/io_service/src/io_service_pool.cpp | 4 +
libs/core/runtime_local/src/pool_timer.cpp | 2 +-
.../src/parcelport_gasnet.cpp | 6 ++
.../parcelport_lci/src/parcelport_lci.cpp | 13 ++-
.../parcelport_mpi/src/parcelport_mpi.cpp | 6 ++
11 files changed, 168 insertions(+), 20 deletions(-)
diff --git a/components/iostreams/src/server/output_stream.cpp b/components/iostreams/src/server/output_stream.cpp
index dd0a519b27f8..40f8ee0758a3 100644
--- a/components/iostreams/src/server/output_stream.cpp
+++ b/components/iostreams/src/server/output_stream.cpp
@@ -34,7 +34,7 @@ namespace hpx::iostreams::detail {
ar << valid;
if (valid)
{
- ar& data_;
+ ar & data_;
}
}
@@ -44,7 +44,7 @@ namespace hpx::iostreams::detail {
ar >> valid;
if (valid)
{
- ar& data_;
+ ar & data_;
}
}
} // namespace hpx::iostreams::detail
@@ -53,23 +53,29 @@ namespace hpx::iostreams::server {
///////////////////////////////////////////////////////////////////////////
void output_stream::call_write_async(std::uint32_t locality_id,
std::uint64_t count, detail::buffer const& in, hpx::id_type /*this_id*/)
- { // {{{
+ {
// Perform the IO operation.
pending_output_.output(locality_id, count, in, write_f, mtx_);
- } // }}}
+ }
void output_stream::write_async(std::uint32_t locality_id,
std::uint64_t count, detail::buffer const& buf_in)
- { // {{{
+ {
// Perform the IO in another OS thread.
detail::buffer in(buf_in);
// we need to capture the GID of the component to keep it alive long
// enough.
hpx::id_type this_id = this->get_id();
+#if ASIO_VERSION >= 103400
+ asio::post(hpx::get_thread_pool("io_pool")->get_io_service(),
+ hpx::bind_front(&output_stream::call_write_async, this, locality_id,
+ count, HPX_MOVE(in), HPX_MOVE(this_id)));
+#else
hpx::get_thread_pool("io_pool")->get_io_service().post(
hpx::bind_front(&output_stream::call_write_async, this, locality_id,
count, HPX_MOVE(in), HPX_MOVE(this_id)));
- } // }}}
+#endif
+ }
///////////////////////////////////////////////////////////////////////////
void output_stream::call_write_sync(std::uint32_t locality_id,
@@ -86,16 +92,22 @@ namespace hpx::iostreams::server {
void output_stream::write_sync(std::uint32_t locality_id,
std::uint64_t count, detail::buffer const& buf_in)
- { // {{{
+ {
// Perform the IO in another OS thread.
detail::buffer in(buf_in);
+#if ASIO_VERSION >= 103400
+ asio::post(hpx::get_thread_pool("io_pool")->get_io_service(),
+ hpx::bind_front(&output_stream::call_write_sync, this, locality_id,
+ count, std::ref(in),
+ threads::thread_id_ref_type(threads::get_outer_self_id())));
+#else
hpx::get_thread_pool("io_pool")->get_io_service().post(
hpx::bind_front(&output_stream::call_write_sync, this, locality_id,
count, std::ref(in),
threads::thread_id_ref_type(threads::get_outer_self_id())));
-
+#endif
// Sleep until the worker thread wakes us up.
this_thread::suspend(threads::thread_schedule_state::suspended,
"output_stream::write_sync");
- } // }}}
+ }
} // namespace hpx::iostreams::server
diff --git a/examples/async_io/async_io_low_level.cpp b/examples/async_io/async_io_low_level.cpp
index 75312984bf7f..153e5d124930 100644
--- a/examples/async_io/async_io_low_level.cpp
+++ b/examples/async_io/async_io_low_level.cpp
@@ -39,7 +39,12 @@ hpx::future<int> async_io(char const* string_to_write)
hpx::get_runtime().get_thread_pool("io_pool");
// ... and schedule the handler to run on one of its OS-threads.
+#if ASIO_VERSION >= 103400
+ asio::post(
+ pool->get_io_service(), hpx::bind(&do_async_io, string_to_write, p));
+#else
pool->get_io_service().post(hpx::bind(&do_async_io, string_to_write, p));
+#endif
return p->get_future();
}
diff --git a/libs/core/asio/include/hpx/asio/asio_util.hpp b/libs/core/asio/include/hpx/asio/asio_util.hpp
index 286536692102..e79bb15c4cb1 100644
--- a/libs/core/asio/include/hpx/asio/asio_util.hpp
+++ b/libs/core/asio/include/hpx/asio/asio_util.hpp
@@ -17,6 +17,7 @@
#endif
#include <asio/io_context.hpp>
#include <asio/ip/tcp.hpp>
+#include <asio/version.hpp>
/* The asio support includes termios.h.
* The termios.h file on ppc64le defines these macros, which
@@ -50,7 +51,12 @@ namespace hpx::util {
[[nodiscard]] HPX_CORE_EXPORT std::string cleanup_ip_address(
std::string const& addr);
+#if ASIO_VERSION >= 103400
+ using endpoint_iterator_type =
+ asio::ip::basic_resolver_iterator<asio::ip::tcp>;
+#else
using endpoint_iterator_type = asio::ip::tcp::resolver::iterator;
+#endif
[[nodiscard]] endpoint_iterator_type HPX_CORE_EXPORT connect_begin(
std::string const& address, std::uint16_t port,
diff --git a/libs/core/asio/src/asio_util.cpp b/libs/core/asio/src/asio_util.cpp
index b5443e5dfa4e..bd248f3345d0 100644
--- a/libs/core/asio/src/asio_util.cpp
+++ b/libs/core/asio/src/asio_util.cpp
@@ -54,8 +54,13 @@ namespace hpx::util {
{
using namespace asio::ip;
std::error_code ec;
+#if ASIO_VERSION >= 103400
+ address_v4 const addr4 = //-V821
+ make_address_v4(addr.c_str(), ec);
+#else
address_v4 const addr4 = //-V821
address_v4::from_string(addr.c_str(), ec);
+#endif
if (!ec)
{ // it's an IPV4 address
ep = tcp::endpoint(address(addr4), port);
@@ -64,8 +69,13 @@ namespace hpx::util {
if (!force_ipv4)
{
+#if ASIO_VERSION >= 103400
+ address_v6 const addr6 = //-V821
+ make_address_v6(addr.c_str(), ec);
+#else
address_v6 const addr6 = //-V821
address_v6::from_string(addr.c_str(), ec);
+#endif
if (!ec)
{ // it's an IPV6 address
ep = tcp::endpoint(address(addr6), port);
@@ -108,8 +118,26 @@ namespace hpx::util {
{
// resolve the given address
tcp::resolver resolver(io_service);
- tcp::resolver::query query(hostname, std::to_string(port));
+#if ASIO_VERSION >= 103400
+ auto resolver_results = resolver.resolve(
+ asio::ip::tcp::v4(), hostname, std::to_string(port));
+
+ auto it = resolver_results.begin();
+ auto end = resolver_results.begin();
+
+ // skip ipv6 results, if required
+ if (it == end && !force_ipv4)
+ {
+ resolver_results = resolver.resolve(
+ asio::ip::tcp::v6(), hostname, std::to_string(port));
+ it = resolver_results.begin();
+ }
+
+ HPX_ASSERT(it != end);
+ return *it;
+#else
+ tcp::resolver::query query(hostname, std::to_string(port));
asio::ip::tcp::resolver::iterator it = resolver.resolve(query);
// skip ipv6 results, if required
@@ -121,9 +149,9 @@ namespace hpx::util {
++it;
}
}
-
HPX_ASSERT(it != asio::ip::tcp::resolver::iterator());
return *it;
+#endif
}
catch (std::system_error const&)
{
@@ -149,8 +177,21 @@ namespace hpx::util {
{
asio::io_context io_service;
tcp::resolver resolver(io_service);
+
+#if ASIO_VERSION >= 103400
+ auto resolver_results = resolver.resolve(
+ asio::ip::tcp::v4(), asio::ip::host_name(), "");
+ auto it = resolver_results.begin();
+ if (it == resolver_results.end())
+ {
+ resolver_results = resolver.resolve(
+ asio::ip::tcp::v6(), asio::ip::host_name(), "");
+ it = resolver_results.begin();
+ }
+#else
tcp::resolver::query query(asio::ip::host_name(), "");
tcp::resolver::iterator it = resolver.resolve(query);
+#endif
tcp::endpoint endpoint = *it;
return endpoint.address().to_string();
}
@@ -230,8 +271,14 @@ namespace hpx::util {
tcp::endpoint ep;
if (util::get_endpoint(address, port, ep))
{
+#if ASIO_VERSION >= 103400
+ auto resolver_results =
+ tcp::resolver::results_type::create(ep, address, port_str);
+ return resolver_results.begin();
+#else
return {
tcp::resolver::results_type::create(ep, address, port_str)};
+#endif
}
}
catch (std::system_error const&)
@@ -244,10 +291,24 @@ namespace hpx::util {
{
// resolve the given address
tcp::resolver resolver(io_service);
+
+#if ASIO_VERSION >= 103400
+ auto resolver_results = resolver.resolve(asio::ip::tcp::v4(),
+ !address.empty() ? address : asio::ip::host_name(), port_str);
+ auto it = resolver_results.begin();
+ if (it == resolver_results.end())
+ {
+ resolver_results = resolver.resolve(asio::ip::tcp::v6(),
+ !address.empty() ? address : asio::ip::host_name(),
+ port_str);
+ it = resolver_results.begin();
+ }
+ return it;
+#else
tcp::resolver::query query(
!address.empty() ? address : asio::ip::host_name(), port_str);
-
return {resolver.resolve(query)};
+#endif
}
catch (std::system_error const&)
{
@@ -276,8 +337,14 @@ namespace hpx::util {
tcp::endpoint ep;
if (util::get_endpoint(address, port, ep))
{
+#if ASIO_VERSION >= 103400
+ auto resolver_results =
+ tcp::resolver::results_type::create(ep, address, port_str);
+ return resolver_results.begin();
+#else
return {
tcp::resolver::results_type::create(ep, address, port_str)};
+#endif
}
}
catch (std::system_error const&)
@@ -290,9 +357,21 @@ namespace hpx::util {
{
// resolve the given address
tcp::resolver resolver(io_service);
+#if ASIO_VERSION >= 103400
+ auto resolver_results =
+ resolver.resolve(asio::ip::tcp::v4(), address, port_str);
+ auto it = resolver_results.begin();
+ if (it == resolver_results.end())
+ {
+ resolver_results =
+ resolver.resolve(asio::ip::tcp::v6(), address, port_str);
+ it = resolver_results.begin();
+ }
+ return it;
+#else
tcp::resolver::query query(address, port_str);
-
return {resolver.resolve(query)};
+#endif
}
catch (std::system_error const&)
{
@@ -306,9 +385,22 @@ namespace hpx::util {
{
// resolve the given address
tcp::resolver resolver(io_service);
- tcp::resolver::query query(asio::ip::host_name(), port_str);
+#if ASIO_VERSION >= 103400
+ auto resolver_results = resolver.resolve(
+ asio::ip::tcp::v4(), asio::ip::host_name(), port_str);
+ auto it = resolver_results.begin();
+ if (it == resolver_results.end())
+ {
+ resolver_results = resolver.resolve(
+ asio::ip::tcp::v6(), asio::ip::host_name(), port_str);
+ it = resolver_results.begin();
+ }
+ return it;
+#else
+ tcp::resolver::query query(asio::ip::host_name(), port_str);
return {resolver.resolve(query)};
+#endif
}
catch (std::system_error const&)
{
diff --git a/libs/core/executors/src/service_executors.cpp b/libs/core/executors/src/service_executors.cpp
index 4e3ba88a2392..3e39e59ede45 100644
--- a/libs/core/executors/src/service_executors.cpp
+++ b/libs/core/executors/src/service_executors.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2023 Hartmut Kaiser
+// Copyright (c) 2023-2025 Hartmut Kaiser
//
// SPDX-License-Identifier: BSL-1.0
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -10,12 +10,20 @@
#include <hpx/io_service/io_service_pool.hpp>
#include <asio/io_context.hpp>
+#include <asio/version.hpp>
+#if ASIO_VERSION >= 103400
+#include <asio/post.hpp>
+#endif
namespace hpx::parallel::execution::detail {
void service_executor::post(
hpx::util::io_service_pool* pool, hpx::function<void()>&& f)
{
+#if ASIO_VERSION >= 103400
+ asio::post(pool->get_io_service(), HPX_MOVE(f));
+#else
pool->get_io_service().post(HPX_MOVE(f));
+#endif
}
} // namespace hpx::parallel::execution::detail
diff --git a/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp b/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp
index 8d800f36d18d..8441886b9a1d 100644
--- a/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp
+++ b/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp
@@ -19,6 +19,10 @@
#endif
#include <asio/executor_work_guard.hpp>
#include <asio/io_context.hpp>
+#include <asio/version.hpp>
+#if ASIO_VERSION >= 103400
+#include <asio/post.hpp>
+#endif
// The boost asio support includes termios.h. The termios.h file on ppc64le
// defines these macros, which are also used by blaze, blaze_tensor as Template
diff --git a/libs/core/io_service/src/io_service_pool.cpp b/libs/core/io_service/src/io_service_pool.cpp
index 44eb3318c04b..ca2fe443e219 100644
--- a/libs/core/io_service/src/io_service_pool.cpp
+++ b/libs/core/io_service/src/io_service_pool.cpp
@@ -259,7 +259,11 @@ namespace hpx::util {
for (std::size_t i = 0; i < pool_size_; ++i)
{
work_.emplace_back(initialize_work(*io_services_[i]));
+#if ASIO_VERSION >= 103400
+ io_services_[i]->restart();
+#else
io_services_[i]->reset();
+#endif
}
continue_barrier_->wait();
diff --git a/libs/core/runtime_local/src/pool_timer.cpp b/libs/core/runtime_local/src/pool_timer.cpp
index 7487b5a72692..d2723d2452e8 100644
--- a/libs/core/runtime_local/src/pool_timer.cpp
+++ b/libs/core/runtime_local/src/pool_timer.cpp
@@ -146,7 +146,7 @@ namespace hpx::util::detail {
}
HPX_ASSERT(timer_ != nullptr);
- timer_->expires_from_now(time_duration.value());
+ timer_->expires_at(time_duration.from_now());
timer_->async_wait(hpx::bind_front( //-V779
&pool_timer::timer_handler, this->shared_from_this()));
diff --git a/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp b/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp
index 77da0c839b16..16160af101b7 100644
--- a/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp
+++ b/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp
@@ -142,8 +142,14 @@ namespace hpx::parcelset {
for (std::size_t i = 0; i != io_service_pool_.size(); ++i)
{
+#if ASIO_VERSION >= 103400
+ asio::post(
+ io_service_pool_.get_io_service(static_cast<int>(i)),
+ hpx::bind(&parcelport::io_service_work, this));
+#else
io_service_pool_.get_io_service(int(i)).post(
hpx::bind(&parcelport::io_service_work, this));
+#endif
}
return true;
}
diff --git a/libs/full/parcelport_lci/src/parcelport_lci.cpp b/libs/full/parcelport_lci/src/parcelport_lci.cpp
index d9083191376a..40cf14faba5c 100644
--- a/libs/full/parcelport_lci/src/parcelport_lci.cpp
+++ b/libs/full/parcelport_lci/src/parcelport_lci.cpp
@@ -98,8 +98,13 @@ namespace hpx::parcelset::policies::lci {
sender_p->run();
for (std::size_t i = 0; i != io_service_pool_.size(); ++i)
{
+#if ASIO_VERSION >= 103400
+ asio::post(io_service_pool_.get_io_service(static_cast<int>(i)),
+ hpx::bind(&parcelport::io_service_work, this));
+#else
io_service_pool_.get_io_service(int(i)).post(
hpx::bind(&parcelport::io_service_work, this));
+#endif
}
return true;
}
@@ -167,10 +172,10 @@ namespace hpx::parcelset::policies::lci {
static_cast<int>(hpx::get_local_worker_thread_num());
HPX_ASSERT(prg_thread_id < config_t::progress_thread_num);
for (int i = prg_thread_id * config_t::ndevices /
- config_t::progress_thread_num;
- i < (prg_thread_id + 1) * config_t::ndevices /
- config_t::progress_thread_num;
- ++i)
+ config_t::progress_thread_num;
+ i < (prg_thread_id + 1) * config_t::ndevices /
+ config_t::progress_thread_num;
+ ++i)
{
devices_to_progress.push_back(&devices[i]);
}
diff --git a/libs/full/parcelport_mpi/src/parcelport_mpi.cpp b/libs/full/parcelport_mpi/src/parcelport_mpi.cpp
index e30025899e76..c319c54df7ef 100644
--- a/libs/full/parcelport_mpi/src/parcelport_mpi.cpp
+++ b/libs/full/parcelport_mpi/src/parcelport_mpi.cpp
@@ -181,8 +181,14 @@ namespace hpx::parcelset {
for (std::size_t i = 0; i != io_service_pool_.size(); ++i)
{
+#if ASIO_VERSION >= 103400
+ asio::post(
+ io_service_pool_.get_io_service(static_cast<int>(i)),
+ hpx::bind(&parcelport::io_service_work, this));
+#else
io_service_pool_.get_io_service(static_cast<int>(i))
.post(hpx::bind(&parcelport::io_service_work, this));
+#endif
}
return true;
}
From 85805f56579fe6fa6c5905daa0d228eba26c40c3 Mon Sep 17 00:00:00 2001
From: Hartmut Kaiser <hartmut.kaiser@gmail.com>
Date: Mon, 30 Jun 2025 10:31:26 -0500
Subject: [PATCH 2/2] Changing some CIs to use Asio 1.34.2
Signed-off-by: Hartmut Kaiser <hartmut.kaiser@gmail.com>
---
.github/workflows/linux_debug.yml | 1 +
.github/workflows/macos_debug.yml | 1 +
.github/workflows/windows_debug_vs2022.yml | 1 +
libs/full/parcelport_lci/src/parcelport_lci.cpp | 2 ++
4 files changed, 5 insertions(+)
diff --git a/.github/workflows/linux_debug.yml b/.github/workflows/linux_debug.yml
index 551e6d7215b2..0048b533326f 100644
--- a/.github/workflows/linux_debug.yml
+++ b/.github/workflows/linux_debug.yml
@@ -26,6 +26,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Debug \
-DHPX_WITH_MALLOC=system \
-DHPX_WITH_FETCH_ASIO=ON \
+ -DHPX_WITH_ASIO_TAG=asio-1-34-2 \
-DHPX_WITH_EXAMPLES=ON \
-DHPX_WITH_TESTS=ON \
-DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=2 \
diff --git a/.github/workflows/macos_debug.yml b/.github/workflows/macos_debug.yml
index 7d0936730d54..5406fc0be0f1 100644
--- a/.github/workflows/macos_debug.yml
+++ b/.github/workflows/macos_debug.yml
@@ -29,6 +29,7 @@ jobs:
-GNinja \
-DCMAKE_BUILD_TYPE=Debug \
-DHPX_WITH_FETCH_ASIO=ON \
+ -DHPX_WITH_ASIO_TAG=asio-1-34-2 \
-DHPX_WITH_EXAMPLES=ON \
-DHPX_WITH_TESTS=ON \
-DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=3 \
diff --git a/.github/workflows/windows_debug_vs2022.yml b/.github/workflows/windows_debug_vs2022.yml
index cebecd992140..f91765418163 100644
--- a/.github/workflows/windows_debug_vs2022.yml
+++ b/.github/workflows/windows_debug_vs2022.yml
@@ -31,6 +31,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_TOOLCHAIN_FILE='C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake' \
-DHPX_WITH_FETCH_ASIO=ON \
+ -DHPX_WITH_ASIO_TAG=asio-1-34-2 \
-DHPX_WITH_EXAMPLES=ON \
-DHPX_WITH_TESTS=ON \
-DHPX_WITH_TESTS_EXAMPLES=ON \
diff --git a/libs/full/parcelport_lci/src/parcelport_lci.cpp b/libs/full/parcelport_lci/src/parcelport_lci.cpp
index 40cf14faba5c..b9d1bcf293e9 100644
--- a/libs/full/parcelport_lci/src/parcelport_lci.cpp
+++ b/libs/full/parcelport_lci/src/parcelport_lci.cpp
@@ -171,6 +171,7 @@ namespace hpx::parcelset::policies::lci {
int prg_thread_id =
static_cast<int>(hpx::get_local_worker_thread_num());
HPX_ASSERT(prg_thread_id < config_t::progress_thread_num);
+ // clang-format off
for (int i = prg_thread_id * config_t::ndevices /
config_t::progress_thread_num;
i < (prg_thread_id + 1) * config_t::ndevices /
@@ -179,6 +180,7 @@ namespace hpx::parcelset::policies::lci {
{
devices_to_progress.push_back(&devices[i]);
}
+ // clang-format on
}
}
}
+3 -2
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
asio,
asio_1_32_0,
boost,
check,
openssl,
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = [
asio
# depends on io_service
asio_1_32_0
boost.dev
check
openssl
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "msolve";
version = "0.9.2";
version = "0.9.3";
src = fetchFromGitHub {
owner = "algebraic-solving";
repo = "msolve";
tag = "v${finalAttrs.version}";
hash = "sha256-/KV4zmato86DKDOUe3D/Ru/cFQaKOPyx6cQ8wZS4bgA=";
hash = "sha256-N/ePJGbF3pGU+IiyztkKujpfFRLy7FSIkpUltv6iJXY=";
};
postPatch = ''
+2 -2
View File
@@ -20,13 +20,13 @@
stdenvNoCC.mkDerivation rec {
pname = "noto-fonts${suffix}";
version = "2025.11.01";
version = "2025.12.01";
src = fetchFromGitHub {
owner = "notofonts";
repo = "notofonts.github.io";
rev = "noto-monthly-release-${version}";
hash = "sha256-T7F8SUCbEEuJfgUYWk+/lDGuXn/df2DaGc+3hCuYhS0=";
hash = "sha256-XYamBsakiqfpwghuQan81ZNJTvcfua9hIbVXU4HWOqY=";
};
outputs = [
+3 -2
View File
@@ -5,7 +5,7 @@
fetchpatch,
cmake,
boost,
asio,
asio_1_32_0,
openssl,
zlib,
}:
@@ -34,7 +34,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
asio
# Depends on io_service
asio_1_32_0
openssl
zlib
];
+4 -3
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
asio,
asio_1_32_0,
glib,
jsoncpp,
libcap_ng,
@@ -81,7 +81,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
asio
# Depends on io_service
asio_1_32_0
glib
jsoncpp
libcap_ng
@@ -101,7 +102,7 @@ stdenv.mkDerivation rec {
(lib.mesonOption "bash-completion" "enabled")
(lib.mesonOption "test_programs" "disabled")
(lib.mesonOption "unit_tests" "disabled")
(lib.mesonOption "asio_path" "${asio}")
(lib.mesonOption "asio_path" "${asio_1_32_0}")
(lib.mesonOption "dbus_policy_dir" "${placeholder "out"}/share/dbus-1/system.d")
(lib.mesonOption "dbus_system_service_dir" "${placeholder "out"}/share/dbus-1/system-services")
(lib.mesonOption "systemd_system_unit_dir" "${placeholder "out"}/lib/systemd/system")
+3 -2
View File
@@ -5,7 +5,7 @@
fetchFromGitHub,
cmake,
git,
asio,
asio_1_32_0,
catch2,
spdlog,
udev,
@@ -47,7 +47,8 @@ stdenv.mkDerivation rec {
git
];
buildInputs = [
asio
# Depends on io_service
asio_1_32_0
catch2
spdlog
];
@@ -6,17 +6,17 @@
}:
buildGoModule (finalAttrs: {
pname = "prometheus-qbittorrent-exporter";
version = "1.12.1";
version = "1.13.0";
src = fetchFromGitHub {
owner = "martabal";
repo = "qbittorrent-exporter";
tag = "v${finalAttrs.version}";
hash = "sha256-9J4nGG52M7SSeXigLBJK/dqXRvSpPqOGRJ8BQx7+1eU=";
hash = "sha256-ivHTGj2+6c23KW5aT5a8NFzUxV13u0y9UnHttZYTkuA=";
};
sourceRoot = "${finalAttrs.src.name}/src";
vendorHash = "sha256-jJmhRnjioeTq9Uol0lYLChPi4O1D9JnGqN7q1XK36yE=";
vendorHash = "sha256-FHKt2QpvianVVbAJUcaou/+Ok69a8NbkM7ymVgxUi0I=";
ldflags = [
"-s"
+13 -9
View File
@@ -33,7 +33,7 @@
buildGoModule (finalAttrs: {
pname = "prometheus";
version = "3.7.2";
version = "3.8.0";
outputs = [
"out"
@@ -45,14 +45,14 @@ buildGoModule (finalAttrs: {
owner = "prometheus";
repo = "prometheus";
tag = "v${finalAttrs.version}";
hash = "sha256-bitRDX1oymFfzvQVYL31BON6UBfQYnqjZefQKc+yXx0=";
hash = "sha256-hRuZxwPPDLxQvy5MPKEyfmanNabcSjLRO+XbNKugPtk=";
};
vendorHash = "sha256-V+qLxjqGOaT1veEwtklqcS7iO31ufvDHBA9DbZLzDiE=";
vendorHash = "sha256-5wDaG01vcTtGzrS/S33U5XWXoSWM+N9z3dzXZlILxD8=";
webUiStatic = fetchurl {
url = "https://github.com/prometheus/prometheus/releases/download/v${finalAttrs.version}/prometheus-web-ui-${finalAttrs.version}.tar.gz";
hash = "sha256-NFv6zNpMacd0RgVYBlWKbXKNCEh7WijpREg0bNojisM=";
hash = "sha256-oOEvNZFlYtTNBsn+B2pAWXi0A2oJ6IAo7V8bOLtjfCM=";
};
excludedPackages = [
@@ -107,7 +107,6 @@ buildGoModule (finalAttrs: {
in
[
"-s"
"-w"
"-X ${t}.Version=${finalAttrs.version}"
"-X ${t}.Revision=unknown"
"-X ${t}.Branch=unknown"
@@ -129,19 +128,24 @@ buildGoModule (finalAttrs: {
# Test mock data uses 64 bit data without an explicit (u)int64
doCheck = !(stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.parsed.cpu.bits < 64);
checkFlags = lib.optionals stdenv.hostPlatform.isAarch64 [
checkFlags = [
# Skip for issue during TSDB compaction
"-skip=TestBlockRanges"
]
++ lib.optionals stdenv.hostPlatform.isAarch64 [
"-skip=TestEvaluations/testdata/aggregators.test"
];
passthru.tests = { inherit (nixosTests) prometheus; };
meta = with lib; {
meta = {
description = "Service monitoring system and time series database";
homepage = "https://prometheus.io";
license = licenses.asl20;
maintainers = with maintainers; [
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
fpletz
Frostman
];
mainProgram = "prometheus";
};
})
+2 -2
View File
@@ -6,10 +6,10 @@
}:
let
pname = "remnote";
version = "1.22.23";
version = "1.22.28";
src = fetchurl {
url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
hash = "sha256-8AliWnmYemaF6R7MGiU+H0ZwVw5hZRIbMHuGo4p+NQg=";
hash = "sha256-suYd2IK/lwPd0sEoRmKPydgyExX5aRNyBLikubBmMpI=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
+3 -3
View File
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec {
pname = "ripunzip";
version = "2.0.3";
version = "2.0.4";
src = fetchFromGitHub {
owner = "google";
repo = "ripunzip";
rev = "v${version}";
hash = "sha256-giNaTALPZYOfQ+kPyQufbRTdTwwKLK7iDvg50YNfzDg=";
hash = "sha256-oujRw/4yKNNqLJLTN4wxaOllSUGMu077YgWZkD0DJ4M=";
};
cargoHash = "sha256-uz07yZBkmBTEGB64rhBYQ2iL0KbrY4UAM96utv8HCSE=";
cargoHash = "sha256-J6FtaWjeJhbSB1WoAbh6c4DeShPmqGgmh2NTNRS6CUk=";
buildInputs = [ openssl ];
nativeBuildInputs = [ pkg-config ];
+2 -2
View File
@@ -5,13 +5,13 @@
}:
stdenv.mkDerivation (finaAttrs: {
pname = "scom";
version = "1.2.2";
version = "1.2.3";
src = fetchFromGitHub {
owner = "crash-systems";
repo = "scom";
tag = finaAttrs.version;
hash = "sha256-erHer9oeCFwenaEDk/RWYzGkrqigpwB+RPa+UVxFrOI=";
hash = "sha256-eFnCXMrks5V6o+0+vMjR8zaCdkc+hC3trSS+pOh4Y6U=";
};
enableParallelBuilding = true;
-39
View File
@@ -1,39 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
asio,
rapidjson,
websocketpp,
}:
stdenv.mkDerivation {
pname = "sioclient";
version = "3.1.0-unstable-2023-11-10";
src = fetchFromGitHub {
owner = "socketio";
repo = "socket.io-client-cpp";
rev = "0dc2f7afea17a0e5bfb5e9b1e6d6f26ab1455cef";
hash = "sha256-iUKWDv/CS2e68cCSM0QUobkfz2A8ZjJ7S0zw7rowQJ0=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
asio
rapidjson
websocketpp
];
meta = with lib; {
description = "C++11 implementation of Socket.IO client";
homepage = "https://github.com/socketio/socket.io-client-cpp";
license = licenses.mit;
maintainers = with maintainers; [ wegank ];
platforms = platforms.unix;
};
}
@@ -9,7 +9,7 @@
let
pname = "surrealdb-migrations";
version = "2.3.0";
version = "2.4.0";
in
rustPlatform.buildRustPackage {
inherit pname version;
@@ -18,10 +18,10 @@ rustPlatform.buildRustPackage {
owner = "Odonno";
repo = "surrealdb-migrations";
rev = "v${version}";
hash = "sha256-BCShTHZSeahJclOHcWh7etl0FajhFs4/RVVszFZdOV8=";
hash = "sha256-eeIXbpfXZ91XcQ+4T76BGZU0Ron5dAf2pUAvLj9nEok=";
};
cargoHash = "sha256-fV7yHRiqcM4l9i3tnoMawEQxd9fqbcZYZkeTITy310g=";
cargoHash = "sha256-XA4OXHKSdVKoq3aKpKnYXzWjXHolDqPNLeIDS3iARYI=";
# Error: No such file or directory (os error 2)
# failures:
+4
View File
@@ -18,10 +18,14 @@ stdenv.mkDerivation rec {
};
patches = [
# Fix build with cmake4
(fetchpatch {
url = "https://github.com/zaphoyd/websocketpp/commit/deb0a334471362608958ce59a6b0bcd3e5b73c24.patch?full_index=1";
hash = "sha256-bFCHwtRuCFz9vr4trmmBLziPSlEx6SNjsTcBv9zV8go=";
})
# Fix build with boost187/newer asio
# https://github.com/zaphoyd/websocketpp/pull/1164
./websocketpp-0.8.2-boost-1.87-compat.patch
];
nativeBuildInputs = [ cmake ];
File diff suppressed because it is too large Load Diff
@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "xdg-desktop-portal-cosmic";
version = "1.0.0-beta.8";
version = "1.0.0-beta.9";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
-9
View File
@@ -1,9 +0,0 @@
{ callPackage, ... }@args:
callPackage ./generic.nix (
args
// {
version = "1.10.8";
sha256 = "0jgdl4fxw0hwy768rl3lhdc0czz7ak7czf3dg10j21pdpfpfvpi6";
}
)
@@ -1,9 +0,0 @@
{ callPackage, ... }@args:
callPackage ./generic.nix (
args
// {
version = "1.24.0";
sha256 = "sha256-iXaBLCShGGAPb88HGiBgZjCmmv5MCr7jsN6lKOaCxYU=";
}
)
@@ -1,32 +0,0 @@
{
lib,
stdenv,
fetchurl,
boost,
openssl,
version,
sha256,
...
}:
stdenv.mkDerivation {
pname = "asio";
inherit version;
src = fetchurl {
url = "mirror://sourceforge/asio/asio-${version}.tar.bz2";
inherit sha256;
};
propagatedBuildInputs = [ boost ];
buildInputs = [ openssl ];
meta = with lib; {
homepage = "http://asio.sourceforge.net/";
description = "Cross-platform C++ library for network and low-level I/O programming";
license = licenses.boost;
broken = stdenv.hostPlatform.isDarwin && lib.versionOlder version "1.16.1";
platforms = platforms.unix;
};
}
@@ -1,8 +1,9 @@
{
lib,
asioSupport ? true,
asio,
asio_1_32_0,
boost,
boost186,
log4cxxSupport ? false,
log4cxx,
snappySupport ? false,
@@ -23,30 +24,6 @@
stdenv,
}:
let
/*
Check if null or false
Example:
let result = enableFeature null
=> "OFF"
let result = enableFeature false
=> "OFF"
let result = enableFeature «derivation»
=> "ON"
*/
enableCmakeFeature = p: if (p == null || p == false) then "OFF" else "ON";
defaultOptionals = [
protobuf
]
++ lib.optional snappySupport snappy.dev
++ lib.optional zlibSupport zlib
++ lib.optional zstdSupport zstd
++ lib.optional log4cxxSupport log4cxx
++ lib.optional asioSupport asio
++ lib.optional (!asioSupport) boost;
in
stdenv.mkDerivation (finalAttrs: {
pname = "libpulsar";
version = "3.7.2";
@@ -61,21 +38,38 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
protobuf # protoc
]
++ defaultOptionals
++ lib.optional gtestSupport gtest.dev;
buildInputs = [
jsoncpp
openssl
curl
protobuf
]
++ defaultOptionals;
++ lib.optional snappySupport snappy.dev
++ lib.optional zlibSupport zlib
++ lib.optional zstdSupport zstd
++ lib.optional log4cxxSupport log4cxx
++ lib.optionals asioSupport [
# io_service was removed in 1.33.0
asio_1_32_0
boost
]
++ lib.optionals (!asioSupport) [
# io_service was removed in 1.87.0
boost186
];
strictDeps = true;
cmakeFlags = [
"-DBUILD_TESTS=${enableCmakeFeature gtestSupport}"
"-DUSE_LOG4CXX=${enableCmakeFeature log4cxxSupport}"
"-DUSE_ASIO=${enableCmakeFeature asioSupport}"
(lib.cmakeBool "BUILD_TESTS" gtestSupport)
(lib.cmakeBool "USE_LOG4CXX" log4cxxSupport)
# We enable USE_ASIO here so at least we can
# have newer boost minus boost::asio
(lib.cmakeBool "USE_ASIO" asioSupport)
];
doInstallCheck = true;
@@ -21,6 +21,10 @@ stdenv.mkDerivation (finalAttrs: {
&&
# https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/48
stdenv.hostPlatform.linker == "bfd"
&&
# Even with bfd linker, the above issue occurs on platforms with stricter linker requirements
# https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/48#note_1453201
!(stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isBigEndian)
&& lib.meta.availableOn stdenv.hostPlatform wayland;
src = fetchurl {
@@ -23,26 +23,15 @@
buildPythonPackage rec {
pname = "colbert-ai";
version = "0.2.21";
version = "0.2.22";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "colbert_ai";
hash = "sha256-qNb9tOInLysI7Tf45QlgchYNhBXR5AWFdRiYt35iW6s=";
hash = "sha256-AK/P711xXw06cGvpDStbdKK7fEAgc4B861UVwAJqiIY=";
};
# ImportError: cannot import name 'AdamW' from 'transformers'
# https://github.com/stanford-futuredata/ColBERT/pull/390
postPatch = ''
substituteInPlace colbert/training/training.py \
--replace-fail \
"from transformers import AdamW, get_linear_schedule_with_warmup" \
"from transformers import get_linear_schedule_with_warmup; from torch.optim import AdamW"
'';
pythonRemoveDeps = [ "git-python" ];
build-system = [
setuptools
];
@@ -14,12 +14,12 @@
buildPythonPackage rec {
pname = "pyghmi";
version = "1.6.7";
version = "1.6.8";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-UtFTvWt/VX5bKZgAsnM+fzcG5ovh8TR6EKIn58Ohu7g=";
hash = "sha256-qkiPYbjL5iNeyxb1hC9hBoz8wB+uTMhp9NaWwlqijnk=";
};
build-system = [
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "sagemaker-mlflow";
version = ".0.2.0";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
@@ -23,13 +23,13 @@ let
versionHash =
if lib.versionAtLeast ocaml.version "5.4" then
{
version = "6.0.0-54";
hash = "sha256-689OK37ObYhopfcaJ3AmkScGC4lCu3ZOTEM6N+Npvzs=";
version = "6.0.1-54";
hash = "sha256-bV5TD8qlLt7wQdm9W0TyhDDBFFo/PdJXGgiscnsBFmc=";
}
else if lib.versionAtLeast ocaml.version "5.3" then
{
version = "6.0.0-53";
hash = "sha256-jPTQvV095BPB4EDepwGJTZ9sB/60VTO4YJTj2wI39jc=";
version = "6.0.1-53";
hash = "sha256-e1/RIsFsKeAbc2wgQf1Hhta+nyAXIuEP7uatXrU9cLs=";
}
else if lib.versionAtLeast ocaml.version "5.2" then
{
+2
View File
@@ -309,6 +309,7 @@ mapAliases {
artichoke = throw "artichoke has been removed due to being archived upstream."; # Added 2025-11-04
artim-dark = aritim-dark; # Added 2025-07-27
aseprite-unfree = throw "'aseprite-unfree' has been renamed to/replaced by 'aseprite'"; # Converted to throw 2025-10-27
asio_1_10 = throw "'asio_1_10' has been removed as it is outdated and unused. Use 'asio' instead"; # Added 2025-12-03
asitop = throw "'asitop' has been renamed to/replaced by 'macpm'"; # Converted to throw 2025-10-27
asterisk_18 = throw "asterisk_18: Asterisk 18 is end of life and has been removed"; # Added 2025-10-19
atlassian-cli = appfire-cli; # Added 2025-09-29
@@ -1435,6 +1436,7 @@ mapAliases {
sierra-breeze-enhanced = throw "'sierra-breeze-enhanced' has been removed, as it is only compatible with Plasma 5, which is EOL"; # Added 2025-08-20
signal-desktop-source = throw "'signal-desktop-source' has been renamed to/replaced by 'signal-desktop'"; # Converted to throw 2025-10-27
simplesamlphp = throw "'simplesamlphp' was removed because it was unmaintained in nixpkgs"; # Added 2025-10-17
sioclient = throw "'sioclient' has been removed as it is no longer used by freedv, and doesn't build with newer asio"; # Added 2025-12-03
siproxd = throw "'siproxd' has been removed as it was unmaintained and incompatible with newer libosip versions"; # Added 2025-05-18
sipwitch = throw "'sipwitch' has been removed because it has been marked as broken since at least November 2024."; # Added 2025-10-01
sisco.lv2 = throw "'sisco.lv2' has been removed as it was unmaintained and broken"; # Added 2025-08-26
+2 -2
View File
@@ -6850,8 +6850,8 @@ with pkgs;
argparse-manpage = with python3Packages; toPythonApplication argparse-manpage;
asio_1_10 = callPackage ../development/libraries/asio/1.10.nix { };
asio = callPackage ../development/libraries/asio { };
asio_1_32_0 = callPackage ../by-name/as/asio/package.nix { asioVersion = "1.32.0"; };
asio_1_36_0 = callPackage ../by-name/as/asio/package.nix { asioVersion = "1.36.0"; };
aspell = callPackage ../development/libraries/aspell { };