Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-07-08 09:10:36 +00:00
committed by GitHub
31 changed files with 397 additions and 223 deletions

View File

@@ -25,6 +25,8 @@
- `zerofs` has been updated from `1.x` to `2.x` which is a breaking change. Volumes created by earlier releases are refused at open with a clear error. There is no migration tool; older volumes remain readable and writable by the release that created them.
- `alps` has been rewritten upstream, see [upstream repository](https://github.com/migadu/alps) for documentation.
- `uhttpmock` providing 0.0 ABI was removed. `uhttpmock_1_0` providing 1.0 ABI was renamed to `uhttpmock` and `uhttpmock_1_0` was kept as an alias.
- `nix-serve-ng` (and `haskellPackages.nix-serve-ng`) is now built against Lix instead of CppNix, following upstream which has switched to Lix as its supported Nix implementation.

View File

@@ -47,6 +47,8 @@
Deployments running the server and worker in the same network namespace must also set at least the worker
`AUTHENTIK_LISTEN__HTTP` address so that the server and worker do not bind to the same address.
- `services.alps` has been rewritten, see [upstream repository](https://github.com/migadu/alps) for configuration.
- Support for the legacy UBoot image format has been removed from the initrd generators, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- Rustical migrates from `settings.http.host` and `settings.http.port` to `settings.http.bind` to support UNIX domain sockets as well as TCP sockets in one setting.

View File

@@ -329,6 +329,7 @@
./programs/sysdig.nix
./programs/system-config-printer.nix
./programs/systemtap.nix
./programs/tack.nix
./programs/tcpdump.nix
./programs/television.nix
./programs/throne.nix

View File

@@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.tack;
in
{
options.programs.tack = {
enable = lib.mkEnableOption "tack, flake-like toml nix pins";
package = lib.mkPackageOption pkgs "tack" { };
nixConfTokens = lib.mkEnableOption "tack reading access tokens from nix.conf (significantly improves comparison speed)";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
environment.sessionVariables = lib.mkIf cfg.nixConfTokens {
TACK_NIX_CONF_TOKENS = "1";
};
};
}

View File

@@ -1,151 +1,108 @@
{
config,
lib,
pkgs,
config,
utils,
...
}:
with lib;
let
cfg = config.services.alps;
in
{
imports = [
(lib.mkRemovedOptionModule [ "services" "alps" "port" ] ''
Use `services.alps.settings.server.addr` instead.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "bindIP" ] ''
Use `services.alps.settings.server.addr` instead.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "theme" ] ''
Themes are no longer customizable.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "imaps" "port" ] ''
Use `services.alps.settings.provider.imap.server` instead.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "imaps" "host" ] ''
Use `services.alps.settings.provider.imap.server` instead.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "smtps" "port" ] ''
Use `services.alps.settings.smtp.server` instead.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "smtps" "host" ] ''
Use `services.alps.settings.smtp.server` instead.
'')
(lib.mkRemovedOptionModule [ "services" "alps" "args" ] ''
Use `services.alps.settings` instead.
'')
];
options.services.alps = {
enable = mkEnableOption "alps";
enable = lib.mkEnableOption "alps";
package = lib.mkPackageOption pkgs "alps" { };
port = mkOption {
type = types.port;
default = 1323;
settings = lib.mkOption {
description = ''
TCP port the service should listen on.
The ALPS configuration, see <https://github.com/migadu/alps/blob/main/docs/CONFIGURATION.md> for documentation.
Options containing secret data should be set to an attribute set
containing the attribute `_secret` - a string pointing to a file
containing the value the option should be set to.
'';
};
bindIP = mkOption {
default = "[::]";
type = types.str;
description = ''
The IP the service should listen on.
'';
};
theme = mkOption {
type = types.enum [
"alps"
"sourcehut"
];
default = "sourcehut";
description = ''
The frontend's theme to use.
'';
};
imaps = {
port = mkOption {
type = types.port;
default = 993;
description = ''
The IMAPS server port.
'';
default = { };
type = lib.types.submodule {
freeformType = lib.types.toml;
options = { };
};
host = mkOption {
type = types.str;
default = "[::1]";
example = "mail.example.org";
description = ''
The IMAPS server address.
'';
};
};
smtps = {
port = mkOption {
type = types.port;
default = 465;
description = ''
The SMTPS server port.
'';
};
host = mkOption {
type = types.str;
default = cfg.imaps.host;
defaultText = "services.alps.imaps.host";
example = "mail.example.org";
description = ''
The SMTPS server address.
'';
};
};
package = mkOption {
internal = true;
type = types.package;
default = pkgs.alps;
};
args = mkOption {
internal = true;
type = types.listOf types.str;
default = [
"-addr"
"${cfg.bindIP}:${toString cfg.port}"
"-theme"
"${cfg.theme}"
"imaps://${cfg.imaps.host}:${toString cfg.imaps.port}"
"smtps://${cfg.smtps.host}:${toString cfg.smtps.port}"
];
};
};
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
systemd.packages = [ cfg.package ];
systemd.services.alps = {
description = "alps is a simple and extensible webmail.";
documentation = [ "https://git.sr.ht/~migadu/alps" ];
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [
"network.target"
"network-online.target"
];
serviceConfig = {
ExecStart = "${cfg.package}/bin/alps ${escapeShellArgs cfg.args}";
AmbientCapabilities = "";
CapabilityBoundingSet = "";
DynamicUser = true;
RuntimeDirectory = "alps";
ExecStartPre =
let
script = pkgs.writeShellScript "alps-pre-start" ''
${utils.genJqSecretsReplacementSnippet cfg.settings "/run/alps/config.json"}
${lib.getExe pkgs.remarshal} -f json -t toml /run/alps/config.json /run/alps/config.toml
chown --reference=/run/alps /run/alps/config.json /run/alps/config.toml
'';
in
"+${script}";
ExecStart = [
""
"${lib.getExe cfg.package} -config \${RUNTIME_DIRECTORY}/config.toml"
];
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateIPC = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SocketBindAllow = cfg.port;
SocketBindDeny = "any";
SystemCallArchitectures = "native";
SystemCallArchitectures = [ "native" ];
SystemCallFilter = [
"@system-service"
"~@privileged @obsolete"
"~@privileged"
"~@resources"
];
};
};

View File

@@ -1,12 +1,16 @@
{ lib, ... }:
let
certs = import ./common/acme/server/snakeoil-certs.nix;
domain = certs.domain;
port = 1323;
in
{ pkgs, ... }:
{
name = "alps";
meta = with pkgs.lib.maintainers; {
maintainers = [ hmenke ];
meta = {
maintainers = with lib.maintainers; [
hmenke
prince213
];
};
nodes = {
@@ -53,9 +57,8 @@ in
};
};
};
client =
{ nodes, config, ... }:
{ nodes, pkgs, ... }:
{
security.pki.certificateFiles = [
certs.ca.cert
@@ -65,31 +68,44 @@ in
'';
services.alps = {
enable = true;
theme = "alps";
imaps = {
host = domain;
port = 993;
};
smtps = {
host = domain;
port = 465;
settings = {
server = {
addr = ":${toString port}";
};
provider = {
type = "imap";
imap = {
server = "imaps://${domain}:993";
};
};
smtp = {
server = "smtps://${domain}:465";
};
};
};
environment.systemPackages = [
(pkgs.writers.writePython3Bin "test-alps-login" { } ''
from urllib.request import build_opener, HTTPCookieProcessor, Request
from urllib.parse import urlencode, urljoin
from urllib.parse import urljoin
from http.cookiejar import CookieJar
import json
baseurl = "http://localhost:${toString config.services.alps.port}"
baseurl = "http://localhost:${toString port}"
username = "alice"
password = "${nodes.server.users.users.alice.password}"
cookiejar = CookieJar()
cookieprocessor = HTTPCookieProcessor(cookiejar)
opener = build_opener(cookieprocessor)
data = urlencode({"username": username, "password": password}).encode()
req = Request(urljoin(baseurl, "login"), data=data, method="POST")
data = json.dumps(
{"username": username, "password": password, "remember-me": ""}
).encode()
req = Request(
urljoin(baseurl, "session"),
data=data,
headers={"Content-Type": "application/json"},
method="POST",
)
with opener.open(req) as ret:
# Check that the alps_session cookie is set
print(cookiejar)
@@ -102,9 +118,9 @@ in
assert any(cookie.name == "alps_session" for cookie in cookiejar)
# ...and that we have not been redirected back to the login page
print(ret.url)
assert ret.url == urljoin(baseurl, "mailbox/INBOX")
assert ret.url != urljoin(baseurl, "#/login")
req = Request(urljoin(baseurl, "logout"))
req = Request(urljoin(baseurl, "session"), method="DELETE")
with opener.open(req) as ret:
# Check that the alps_session cookie is now gone
print(cookiejar)
@@ -114,18 +130,16 @@ in
};
};
testScript =
{ nodes, ... }:
''
server.start()
server.wait_for_unit("postfix.service")
server.wait_for_unit("dovecot.service")
server.wait_for_open_port(465)
server.wait_for_open_port(993)
testScript = ''
server.start()
server.wait_for_unit("postfix.service")
server.wait_for_unit("dovecot.service")
server.wait_for_open_port(465)
server.wait_for_open_port(993)
client.start()
client.wait_for_unit("alps.service")
client.wait_for_open_port(${toString nodes.client.services.alps.port})
client.succeed("test-alps-login")
'';
client.start()
client.wait_for_unit("alps.service")
client.wait_for_open_port(${toString port})
client.succeed("test-alps-login")
'';
}

View File

@@ -4,41 +4,45 @@
buildDunePackage,
fetchFromGitHub,
extlib,
ocamlfuse,
fuse3,
gapi-ocaml,
ocaml_sqlite3,
otoml,
tiny_httpd,
ounit2,
}:
buildDunePackage rec {
buildDunePackage (finalAttrs: {
pname = "google-drive-ocamlfuse";
version = "0.7.32";
version = "0.9.0";
minimalOCamlVersion = "4.13";
src = fetchFromGitHub {
owner = "astrada";
repo = "google-drive-ocamlfuse";
rev = "v${version}";
hash = "sha256-AWr1tcium70rXFKMTv6xcWxndOJua3UXG8Q04TN1Siw=";
tag = "v${finalAttrs.version}";
hash = "sha256-nTZdE9F6ufQ/O/Ck6fzoK65uZ0ylMR6HkwKsBNRDjMs=";
};
doCheck = lib.versionAtLeast ocaml.version "5";
doCheck = lib.versionAtLeast ocaml.version "4.14";
checkInputs = [ ounit2 ];
buildInputs = [
extlib
ocamlfuse
fuse3
gapi-ocaml
ocaml_sqlite3
otoml
tiny_httpd
];
meta = {
inherit (src.meta) homepage;
homepage = "https://github.com/astrada/google-drive-ocamlfuse/";
description = "FUSE-based file system backed by Google Drive, written in OCaml";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ obadz ];
mainProgram = "google-drive-ocamlfuse";
};
}
})

View File

@@ -1,61 +1,86 @@
{
lib,
buildGoModule,
fetchFromSourcehut,
fetchpatch,
buildNpmPackage,
fetchFromGitHub,
nixosTests,
util-linux,
versionCheckHook,
}:
buildGoModule {
buildGoModule (finalAttrs: {
pname = "alps";
version = "2022-10-18";
version = "1";
__structuredAttrs = true;
src = fetchFromSourcehut {
owner = "~migadu";
src = fetchFromGitHub {
owner = "migadu";
repo = "alps";
rev = "f01fbcbc48db5e65d69a0ebd9d7cb0deb378cf13";
hash = "sha256-RSug3YSiqYLGs05Bee4NoaoCyPvUZ7IqlKWI1hmxbiA=";
tag = "v${finalAttrs.version}";
hash = "sha256-uzr0N50qKpIoOr7YFfuhnJ/CTaMvcP7TZujM5YpklMs=";
};
vendorHash = "sha256-QsGfINktk+rBj4b5h+NBVS6XV1SVz+9fDL1vtUqcKEU=";
postPatch = ''
substituteInPlace dist/alps.service \
--replace-fail /usr/local/bin "$out/bin" \
--replace-fail /bin/kill "${lib.getExe' util-linux "kill"}"
rm -r frontend/dist
cp -r ${finalAttrs.passthru.frontend} frontend/dist
'';
vendorHash = "sha256-Nm9TC0j/PSraO1AtxUJmFQWdhdLzeLP0CXY0FZZ6pV8=";
subPackages = [ "cmd/alps" ];
ldflags = [
"-s"
"-w"
"-X main.themesPath=${placeholder "out"}/share/alps/themes"
"-X git.sr.ht/~migadu/alps.PluginDir=${placeholder "out"}/share/alps/plugins"
"-X main.version=${finalAttrs.version}"
];
patches = [
(fetchpatch {
name = "Issue-160-Alps-theme-has-a-enormous-move-to-list-sel";
url = "https://lists.sr.ht/~migadu/alps-devel/patches/30096/mbox";
hash = "sha256-Sz/SCkrrXZWrmJzjfPXi+UfCcbwsy6QiA7m34iiEFX0=";
})
];
postPatch = ''
substituteInPlace plugin.go --replace "const PluginDir" "var PluginDir"
'';
postInstall = ''
mkdir -p "$out/share/alps"
cp -r themes plugins "$out/share/alps/"
install -Dm644 -t "$out/lib/systemd/system/" dist/alps.service
'';
proxyVendor = true;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "-version";
passthru.tests = { inherit (nixosTests) alps; };
passthru = {
frontend = buildNpmPackage (finalAttrs': {
pname = "${finalAttrs.pname}-frontend";
inherit (finalAttrs) version src;
sourceRoot = "${finalAttrs'.src.name}/frontend";
npmDepsHash = "sha256-gR9leLQSPo/qBNf6Yy1b2klawwuhKIvofCSPYkHOJKk=";
postPatch = ''
rm -r dist
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
cp -r dist/. "$out"
runHook postInstall
'';
});
tests = { inherit (nixosTests) alps; };
};
meta = {
description = "Simple and extensible webmail";
homepage = "https://git.sr.ht/~migadu/alps";
homepage = "https://github.com/migadu/alps";
downloadPage = "https://github.com/migadu/alps/releases";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
booklearner
madonius
hmenke
prince213
];
teams = with lib.teams; [ ngi ];
mainProgram = "alps";
};
}
})

View File

@@ -9,11 +9,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "astyle";
version = "3.6.16";
version = "3.6.17";
src = fetchurl {
url = "mirror://sourceforge/astyle/astyle-${finalAttrs.version}.tar.bz2";
hash = "sha256-QU6dpM/e6zXY98Fw4V70OvX6AGbJ9ZKnRvcHHzVuzac=";
hash = "sha256-7cg5uAB35g7VeGtjlNRCtOsQFWzL3VlEtLNg4SWvs+E=";
};
nativeBuildInputs = [ cmake ];

View File

@@ -8,16 +8,16 @@
}:
let
openShiftVersion = "4.21.14";
openShiftVersion = "4.22.1";
okdVersion = "4.21.0-okd-scos.8";
microshiftVersion = "4.21.7";
microshiftVersion = "4.22.0";
writeKey = "$(MODULEPATH)/pkg/crc/segment.WriteKey=cvpHsNcmGCJqVzf6YxrSnVlwFSAZaYtp";
gitCommit = "6eb443d169c5a6dd461db1181f95506aa429f34b";
gitHash = "sha256-sVByFqYvPLrpG90GYigLEDemaJVF2fj+tSgERmmRzsM=";
gitCommit = "70f0c9879a8812cdd6ae19c059ca5816d8de7900";
gitHash = "sha256-TRqKCsHHc2+dpsLJ7t9apPvaR0jf/1xQrYV9swpk3RA=";
in
buildGoModule (finalAttrs: {
pname = "crc";
version = "2.61.0";
version = "2.62.0";
src = fetchFromGitHub {
owner = "crc-org";

View File

@@ -50,8 +50,8 @@ stdenvNoCC.mkDerivation {
outputHash =
{
x86_64-linux = "sha256-p8jx9HDYG2q2nhBiBK8XDTYm9O0ptTqv8L+PrQ8oiy8=";
aarch64-linux = "sha256-UsccQFaSSjhmv1+oF2FZcRG8xtWBCcPD+tizbdQ7SSI=";
x86_64-linux = "sha256-dLATw5Mb9grQnI/JTdlRdNP2JETELeqY8aXqb5dCXOA=";
aarch64-linux = "sha256-Zrk0aTHw7nrN6lKFa/ap7Hz1OJwnY4jtCLw2KWWqyJQ=";
}
.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");

View File

@@ -22,13 +22,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "equibop";
version = "3.2.0";
version = "3.2.1";
src = fetchFromGitHub {
owner = "Equicord";
repo = "Equibop";
tag = "v${finalAttrs.version}";
hash = "sha256-CPRn1F15N4Rjry91Gu+ZXWpKVTOEnHI3TmZn8502QB4=";
hash = "sha256-WqfxrVAJvD6Y6ZjkhbvibL6Bps7PL2lx3JBY94Yd6kk=";
};
postPatch = ''

View File

@@ -11,7 +11,7 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "herdr";
version = "0.7.1";
version = "0.7.3";
__structuredAttrs = true;
@@ -19,10 +19,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "ogulcancelik";
repo = "herdr";
tag = "v${finalAttrs.version}";
hash = "sha256-/WnsUO1DuSmBfVo8LCFaDJEZvSrYnJZPyRNqASbPzV8=";
hash = "sha256-Q2yvMs/N6oAF8xnRIrMxEOOV6Aj8aAXQzuvcaux2enA=";
};
cargoHash = "sha256-enVFwIGTM7oBg3teWC6MO/bdT/jDIKbaxKq4jE9E0aw=";
cargoHash = "sha256-DRjcIJXWGxiA9c7xIiQoWU9az2EFjXsnFKu5sC933eE=";
zigDeps = zig_0_15.fetchDeps {
inherit (finalAttrs) pname version;

View File

@@ -8,12 +8,12 @@
}:
let
pname = "models-dev";
version = "0-unstable-2026-06-29";
version = "sdk-v0.0.5-unstable-2026-07-07";
src = fetchFromGitHub {
owner = "anomalyco";
repo = "models.dev";
rev = "25e012fcdd12652969e37837863e3dba53bd5582";
hash = "sha256-QOGlYaE4c1UVStlKPqvinBbmO6lfTAj4X1Q1fCtixwo=";
rev = "f1a9be19f62c24474d27947d5236067504dd755a";
hash = "sha256-ty8l1jURV2uf245Xqm+I95qZ8gU9IjTGqR7+yLGxBUs=";
};
node_modules = stdenvNoCC.mkDerivation {
@@ -57,7 +57,7 @@ let
# NOTE: Required else we get errors that our fixed-output derivation references store paths
dontFixup = true;
outputHash = "sha256-kn5Ung5DGDYMf5MHnZ+jsqXCg+MYahfkbiixcD9kh4Y=";
outputHash = "sha256-aL2kNCYF6Y4QnEvlpQ9U5Qe+K8a1J2X7BvJqE+BnRcY=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};

View File

@@ -5,13 +5,13 @@
}:
buildGoModule (finalAttrs: {
pname = "pmtiles";
version = "1.30.3";
version = "1.31.0";
src = fetchFromGitHub {
owner = "protomaps";
repo = "go-pmtiles";
tag = "v${finalAttrs.version}";
hash = "sha256-SFuW/TKKxBGOeyYdHLm7J2w3n8xPjLzSJTIi322WTk0=";
hash = "sha256-OWf66RsOvYoJEsDI4rVsimX60uxuZoqTgIwAI7kxvs0=";
};
vendorHash = "sha256-0u/04mpqhpRideIf8eOzgC7ZWNp4P2c2ssQvyWlcD4M=";

View File

@@ -23,13 +23,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "pvz-portable-unwrapped";
version = "0.1.25";
version = "0.1.26";
src = fetchFromGitHub {
owner = "wszqkzqk";
repo = "PvZ-Portable";
tag = finalAttrs.version;
hash = "sha256-ePPDzHlUu+b0bbRHSHtbgqOVrOdW3FR0WPXZM9iTKWM=";
hash = "sha256-IsU/l7k7F79nfM6TYdbcofOmJKm6v55HR7HHAZc7sH0=";
};
nativeBuildInputs = [

View File

@@ -43,11 +43,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "saga";
version = "9.12.5";
version = "9.12.6";
src = fetchurl {
url = "mirror://sourceforge/saga-gis/saga-${finalAttrs.version}.tar.gz";
hash = "sha256-sqZYbdLOLtpTd168ZUZdK9zBBSixHiLuQcH9KDT2jP0=";
hash = "sha256-1A8Irbl135Uh+ywU4xQrmrp5Byr7UJRfBhvbcc70CIY=";
};
sourceRoot = "saga-${finalAttrs.version}/saga-gis";

View File

@@ -0,0 +1,43 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tack";
version = "1.0.0";
src = fetchFromGitHub {
owner = "manic-systems";
repo = "tack";
tag = "v${finalAttrs.version}";
hash = "sha256-KhJb0NWLhj8AkD8uWEbXt179YlFLemk0OgOltw4jEk8=";
};
__structuredAttrs = true;
strictDeps = true;
cargoHash = "sha256-3vDMM5uTsmRso6McH/b3+RpjeKjhgQm9V1piBrnSRjk=";
prePatch = ''
rm .cargo/config.toml
'';
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/manic-systems/tack";
description = "flake-like toml nix pins, lazily fetched and transformed";
mainProgram = "tack";
license = [ lib.licenses.eupl12 ];
maintainers = with lib.maintainers; [
amaanq
atagen
faukah
max
NotAShelf
];
};
})

View File

@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
# `xvfb` inherits `version` and `src` from here, leading to many rebuilds. If
# necessary, these can be moved out of lockstep in order to merge updates
# quickly.
version = "21.1.23";
version = "21.1.24";
outputs = [
"out"
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://xorg/individual/xserver/xorg-server-${finalAttrs.version}.tar.xz";
hash = "sha256-45gy5WF9ra8HL9+fDhnl0uHCoTYHrCgLrBq6n4/hRjQ=";
hash = "sha256-Gk6zbKZcw7G5NlZtZ3qXhuE8Ec1YBulRrFXz9c45hK8=";
};
patches = lib.optionals stdenv.hostPlatform.isDarwin [

View File

@@ -38,7 +38,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xvfb";
inherit (xorg-server) src version;
# TODO: commented out for rebuild avoidance after xorg-server update. revert
# on staging.
# inherit (xorg-server) src version;
version = "21.1.23";
src = fetchurl {
url = "mirror://xorg/individual/xserver/xorg-server-${finalAttrs.version}.tar.xz";
hash = "sha256-45gy5WF9ra8HL9+fDhnl0uHCoTYHrCgLrBq6n4/hRjQ=";
};
strictDeps = true;

View File

@@ -56,11 +56,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xwayland";
version = "24.1.12";
version = "24.1.13";
src = fetchurl {
url = "mirror://xorg/individual/xserver/xwayland-${finalAttrs.version}.tar.xz";
hash = "sha256-bfAsURuSwbmEhzTZ0bA6TCT4N1ujytpE6WhKIbX3jiE=";
hash = "sha256-FzrqPW95YJFkwEUo4cjkybYPzVk5HDydrUZnKX1yf7Y=";
};
postPatch = ''

View File

@@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
buildDunePackage,
camlidl,
dune-configurator,
pkg-config,
fuse3,
}:
buildDunePackage (finalAttrs: {
pname = "fuse3";
version = "3.10.0";
src = fetchFromGitHub {
owner = "astrada";
repo = "ocamlfuse";
tag = "v${finalAttrs.version}";
hash = "sha256-xy3Jf4GTQP3vM6vRxBAeOIASWRuoNdlbt91eCco2zMg=";
};
nativeBuildInputs = [
camlidl
pkg-config
];
buildInputs = [ dune-configurator ];
propagatedBuildInputs = [
camlidl
fuse3
];
meta = {
description = "OCaml bindings for libfuse 3";
homepage = "https://github.com/astrada/ocamlfuse/";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};
})

View File

@@ -12,7 +12,7 @@
buildDunePackage (finalAttrs: {
pname = "gapi-ocaml";
version = if lib.versionAtLeast cryptokit.version "1.21" then "0.4.8" else "0.4.7";
version = if lib.versionAtLeast cryptokit.version "1.21" then "0.4.9" else "0.4.7";
src = fetchFromGitHub {
owner = "astrada";
@@ -21,7 +21,7 @@ buildDunePackage (finalAttrs: {
hash =
{
"0.4.7" = "sha256-uQJfrgF0oafURlamHslt9hX9MP4vFeVqDhuX7T/kjiY=";
"0.4.8" = "sha256-RvHcse3ech8BwnR0Kd1oE5ycAdSBpeQ0IGAp9egFbBY=";
"0.4.9" = "sha256-UWoWWpCAKCNEwEFO4UBXrTO49QyxLXrulDHX6dGr0z4=";
}
."${finalAttrs.version}";
};
@@ -42,6 +42,7 @@ buildDunePackage (finalAttrs: {
description = "OCaml client for google services";
homepage = "https://github.com/astrada/gapi-ocaml";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ bennofs ];
};
})

View File

@@ -12,14 +12,14 @@
buildPythonPackage (finalAttrs: {
pname = "frigidaire";
version = "0.18.47";
version = "0.18.49";
pyproject = true;
src = fetchFromGitHub {
owner = "bm1549";
repo = "frigidaire";
tag = finalAttrs.version;
hash = "sha256-KiWMzx22YNJNkhkfSFVdCC6amTGjtwpd/a040vQh8c4=";
hash = "sha256-wEiIkeF5ybb6wVVEhoIo/L4GjtTy2UAR6tSaoH+qp7Y=";
};
postPatch = ''

View File

@@ -5,15 +5,15 @@
poetry-core,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "std-uritemplate";
version = "2.0.10";
version = "2.0.11";
pyproject = true;
src = fetchPypi {
pname = "std_uritemplate";
inherit version;
hash = "sha256-NQSKMiIXrtl2b9/+WmnwYy9zGVd6SiZSaHYc1P+jIF4=";
inherit (finalAttrs) version;
hash = "sha256-afqeUkc41RG7S5Sz4jk8oFJKrRGOVJJZxU2zZ+BdmFI=";
};
build-system = [ poetry-core ];
@@ -26,8 +26,8 @@ buildPythonPackage rec {
meta = {
description = "Std-uritemplate implementation for Python";
homepage = "https://github.com/std-uritemplate/std-uritemplate";
changelog = "https://github.com/std-uritemplate/std-uritemplate/releases/tag/${version}";
changelog = "https://github.com/std-uritemplate/std-uritemplate/releases/tag/${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
})

View File

@@ -9,14 +9,14 @@
buildPythonPackage (finalAttrs: {
pname = "tencentcloud-sdk-python";
version = "3.1.128";
version = "3.1.129";
pyproject = true;
src = fetchFromGitHub {
owner = "TencentCloud";
repo = "tencentcloud-sdk-python";
tag = finalAttrs.version;
hash = "sha256-TYevKf5EzQGU/JYNyWFrKhWaqJy7YXt8M9Mm1Ai1gbA=";
hash = "sha256-XW4vhZuXZZeOBuryAHtjKNR2rjxRU0LSTBKn+1+ox9g=";
};
build-system = [ setuptools ];

View File

@@ -0,0 +1,44 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
home-assistant,
pythonOlder,
pytest-asyncio,
pytestCheckHook,
setuptools,
}:
buildPythonPackage (finalAttrs: {
pname = "vtherm-api";
version = "0.3.0";
pyproject = true;
disabled = pythonOlder "3.14";
src = fetchFromGitHub {
owner = "jmcollin78";
repo = "vtherm_api";
tag = finalAttrs.version;
hash = "sha256-8YE9+Y+R6TvBKssRPvDLSdVzonDawWgg01Ngk94eMzM=";
};
build-system = [ setuptools ];
dependencies = [ home-assistant ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "vtherm_api" ];
meta = {
changelog = "https://github.com/jmcollin78/vtherm_api/releases/tag/${finalAttrs.version}";
description = "API for Versatile Thermostat Home Assistant integrations";
homepage = "https://github.com/jmcollin78/vtherm_api";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ geri1701 ];
};
})

View File

@@ -12,7 +12,7 @@
sedlex,
version ?
if lib.versionAtLeast ocaml.version "4.13" then
"6.4.0"
"6.4.1"
else if lib.versionAtLeast ocaml.version "4.11" then
"6.0.1"
else
@@ -27,7 +27,7 @@ buildDunePackage {
url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
hash =
{
"6.4.0" = "sha256-euIqflpsaqFKjiaV+mLGbzLLINsX8bRdwh6XAJNCFR8=";
"6.4.1" = "sha256-5Zu//K76ujGRYgVWUUt/U7sySeP4gaBw1yckI03/2Bk=";
"6.3.2" = "sha256-qTr8llTsNGRwH7zg3M86i+uVCKyxLGBFd2vyzxBsq8A=";
"6.2.0" = "sha256-fMZBd40bFyo1KogzPuDoxiE2WgrPzZuH44v9243Spdo=";
"6.1.1" = "sha256-0x2kGq5hwCqqi01QTk6TcFIz0wPNgaB7tKxe7bA9YBQ=";

View File

@@ -4,24 +4,26 @@
lib,
numpy,
scipy,
vtherm-api,
gitUpdater,
}:
buildHomeAssistantComponent rec {
owner = "jmcollin78";
domain = "versatile_thermostat";
version = "9.3.3";
version = "10.0.2";
src = fetchFromGitHub {
inherit owner;
repo = domain;
tag = version;
hash = "sha256-TiaJFFx3nEUYHVB5Ka71MaP8pngcPSdHxt920NSCQ8c=";
hash = "sha256-WnhOsvBhIyumWkEiX2Id2fz4GQQTZxBOLPtR6zHqsXw=";
};
dependencies = [
numpy
scipy
vtherm-api
];
passthru.updateScript = gitUpdater { ignoredVersions = "(Alpha|Beta|alpha|beta).*"; };

View File

@@ -710,6 +710,10 @@ let
functory = callPackage ../development/ocaml-modules/functory { };
fuse3 = callPackage ../development/ocaml-modules/fuse3 {
inherit (pkgs) fuse3;
};
### G ###
gapi-ocaml = callPackage ../development/ocaml-modules/gapi-ocaml { };

View File

@@ -21810,6 +21810,8 @@ self: super: with self; {
vt-py = callPackage ../development/python-modules/vt-py { };
vtherm-api = callPackage ../development/python-modules/vtherm-api { };
vtjp = callPackage ../development/python-modules/vtjp { };
vtk = toPythonModule (