mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-19 15:11:30 +00:00
Merge master into staging-nixos
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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 U‐Boot 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.
|
||||
|
||||
@@ -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
|
||||
|
||||
26
nixos/modules/programs/tack.nix
Normal file
26
nixos/modules/programs/tack.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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}");
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
|
||||
43
pkgs/by-name/ta/tack/package.nix
Normal file
43
pkgs/by-name/ta/tack/package.nix
Normal 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
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -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 [
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
40
pkgs/development/ocaml-modules/fuse3/default.nix
Normal file
40
pkgs/development/ocaml-modules/fuse3/default.nix
Normal 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;
|
||||
};
|
||||
})
|
||||
@@ -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 ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
44
pkgs/development/python-modules/vtherm-api/default.nix
Normal file
44
pkgs/development/python-modules/vtherm-api/default.nix
Normal 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 ];
|
||||
};
|
||||
})
|
||||
@@ -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=";
|
||||
|
||||
@@ -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).*"; };
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user