Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-10-20 06:04:33 +00:00 committed by GitHub
commit c38df14dc7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
29 changed files with 2953 additions and 398 deletions

View File

@ -1708,6 +1708,12 @@
githubId = 718812;
name = "Antoine R. Dumont";
};
areif-dev = {
email = "aj@ajreifsnyder.com";
github = "areif-dev";
githubId = 53097078;
name = "AJ Reifsnyder";
};
arezvov = {
email = "alex@rezvov.ru";
github = "arezvov";
@ -14537,6 +14543,12 @@
name = "Arthur Outhenin-Chalandre";
githubId = 3845213;
};
mrgiles = {
email = "marcelogiles@gmail.com";
github = "mrgiles";
githubId = 4009450;
name = "Marcelo Giles";
};
mrityunjaygr8 = {
email = "mrityunjaysaxena1996@gmail.com";
github = "mrityunjaygr8";
@ -20064,6 +20076,12 @@
githubId = 7091399;
keys = [ { fingerprint = "897E 6BE3 0345 B43D CADD 05B7 290F CF08 1AED B3EC"; } ];
};
smonson = {
name = "Samuel Monson";
email = "smonson@irbash.net";
github = "sjmonson";
githubId = 17662218;
};
smrehman = {
name = "Syed Moiz Ur Rehman";
email = "smrehman@proton.me";

View File

@ -201,6 +201,8 @@ The pre-existing `services.ankisyncd` has been marked deprecated and will be dro
- [watchdogd](https://troglobit.com/projects/watchdogd/), a system and process supervisor using watchdog timers. Available as [services.watchdogd](#opt-services.watchdogd.enable).
- [WiVRn](https://github.com/Meumeu/WiVRn), an OpenXR streaming application. Available as [services.wivrn](#opt-services.wivrn.enable).
- [Workout-tracker](https://github.com/jovandeginste/workout-tracker), a workout tracking web application for personal use.
- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite](#opt-services.wyoming.satellite.enable).

View File

@ -77,6 +77,8 @@
## New Modules {#sec-release-24.11-new-modules}
- [Cyrus IMAP](https://github.com/cyrusimap/cyrus-imapd), an email, contacts and calendar server. Available as [services.cyrus-imap](#opt-services.cyrus-imap.enable) service.
- [TaskChampion Sync-Server](https://github.com/GothenburgBitFactory/taskchampion-sync-server), a [Taskwarrior 3](https://taskwarrior.org/docs/upgrade-3/) sync server, replacing Taskwarrior 2's sync server named [`taskserver`](https://github.com/GothenburgBitFactory/taskserver).
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr), proxy server to bypass Cloudflare protection. Available as [services.flaresolverr](#opt-services.flaresolverr.enable) service.
@ -523,6 +525,10 @@
- `services.mautrix-meta` was updated to [0.4](https://github.com/mautrix/meta/releases/tag/v0.4.0). This release makes significant changes to the settings format. If you have custom settings you should migrate them to the new format. Unfortunately upstream provides little guidance for how to do this, but [the auto-migration code](https://github.com/mautrix/meta/blob/f5440b05aac125b4c95b1af85635a717cbc6dd0e/cmd/mautrix-meta/legacymigrate.go#L23) may serve as a useful reference. The NixOS module should warn you if you still have any old settings configured.
- The `nodePackages.shout` package has been removed because it was deprecated upstream in favor of `thelounge`.
The `shout` top-level attribute was an alias to this package.
The associated `services.shout` module has also been removed.
- The `indi-full` package no longer contains non-free drivers.
To get the old collection of drivers use `indi-full-nonfree` or create your own collection of drivers by overriding indi-with-drivers.
E.g.: `pkgs.indi-with-drivers.override {extraDrivers = with pkgs.indi-3rdparty; [indi-gphoto];}`

View File

@ -236,7 +236,7 @@ in
riemanntools = 203;
subsonic = 204;
# riak = 205; # unused, remove 2022-07-22
#shout = 206; # dynamically allocated as of 2021-09-18
#shout = 206; # dynamically allocated as of 2021-09-18, module removed 2024-10-19
gateone = 207;
namecoin = 208;
#lxd = 210; # unused

View File

@ -661,6 +661,7 @@
./services/logging/ulogd.nix
./services/mail/automx2.nix
./services/mail/clamsmtp.nix
./services/mail/cyrus-imap.nix
./services/mail/davmail.nix
./services/mail/dkimproxy-out.nix
./services/mail/dovecot.nix
@ -1205,7 +1206,6 @@
./services/networking/shellhub-agent.nix
./services/networking/shorewall.nix
./services/networking/shorewall6.nix
./services/networking/shout.nix
./services/networking/sing-box.nix
./services/networking/sitespeed-io.nix
./services/networking/skydns.nix
@ -1381,6 +1381,7 @@
./services/video/photonvision.nix
./services/video/mediamtx.nix
./services/video/v4l2-relayd.nix
./services/video/wivrn.nix
./services/wayland/cage.nix
./services/wayland/hypridle.nix
./services/web-apps/akkoma.nix

View File

@ -102,6 +102,7 @@ in
(mkRemovedOptionModule [ "services" "railcar" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "replay-sorcery" ] "the corresponding package has been removed from nixpkgs as it is unmaintained upstream. Consider using `gpu-screen-recorder` or `obs-studio` instead.")
(mkRemovedOptionModule [ "services" "seeks" ] "")
(mkRemovedOptionModule [ "services" "shout" ] "shout was removed because it was deprecated upstream in favor of thelounge.")
(mkRemovedOptionModule [ "services" "ssmtp" ] ''
The ssmtp package and the corresponding module have been removed due to
the program being unmaintained. The options `programs.msmtp.*` can be

View File

@ -0,0 +1,379 @@
{
pkgs,
lib,
config,
...
}:
let
cfg = config.services.cyrus-imap;
cyrus-imapdPkg = pkgs.cyrus-imapd;
inherit (lib)
mkEnableOption
mkIf
mkOption
optionalAttrs
optionalString
generators
mapAttrsToList
;
inherit (lib.strings) concatStringsSep;
inherit (lib.types)
attrsOf
submodule
listOf
oneOf
str
int
bool
nullOr
path
;
mkCyrusConfig =
settings:
let
mkCyrusOptionsList =
v:
mapAttrsToList (
p: q:
if (q != null) then
if builtins.isInt q then
"${p}=${builtins.toString q}"
else
"${p}=\"${if builtins.isList q then (concatStringsSep " " q) else q}\""
else
""
) v;
mkCyrusOptionsString = v: concatStringsSep " " (mkCyrusOptionsList v);
in
concatStringsSep "\n " (mapAttrsToList (n: v: n + " " + (mkCyrusOptionsString v)) settings);
cyrusConfig = lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
${n} {
${mkCyrusConfig v}
}
'') cfg.cyrusSettings
);
imapdConfig =
with generators;
toKeyValue {
mkKeyValue = mkKeyValueDefault {
mkValueString =
v:
if builtins.isBool v then
if v then "yes" else "no"
else if builtins.isList v then
concatStringsSep " " v
else
mkValueStringDefault { } v;
} ": ";
} cfg.imapdSettings;
in
{
options.services.cyrus-imap = {
enable = mkEnableOption "Cyrus IMAP, an email, contacts and calendar server";
debug = mkEnableOption "debugging messages for the Cyrus master process";
listenQueue = mkOption {
type = int;
default = 32;
description = ''
Socket listen queue backlog size. See listen(2) for more information about a backlog.
Default is 32, which may be increased if you have a very high connection rate.
'';
};
tmpDBDir = mkOption {
type = path;
default = "/run/cyrus/db";
description = ''
Location where DB files are stored.
Databases in this directory are recreated upon startup, so ideally they should live in ephemeral storage for best performance.
'';
};
cyrusSettings = mkOption {
type = submodule {
freeformType = attrsOf (
attrsOf (oneOf [
bool
int
(listOf str)
])
);
options = {
START = mkOption {
default = {
recover = {
cmd = [
"ctl_cyrusdb"
"-r"
];
};
};
description = ''
This section lists the processes to run before any SERVICES are spawned.
This section is typically used to initialize databases.
Master itself will not startup until all tasks in START have completed, so put no blocking commands here.
'';
};
SERVICES = mkOption {
default = {
imap = {
cmd = [ "imapd" ];
listen = "imap";
prefork = 0;
};
pop3 = {
cmd = [ "pop3d" ];
listen = "pop3";
prefork = 0;
};
lmtpunix = {
cmd = [ "lmtpd" ];
listen = "/run/cyrus/lmtp";
prefork = 0;
};
notify = {
cmd = [ "notifyd" ];
listen = "/run/cyrus/notify";
proto = "udp";
prefork = 0;
};
};
description = ''
This section is the heart of the cyrus.conf file. It lists the processes that should be spawned to handle client connections made on certain Internet/UNIX sockets.
'';
};
EVENTS = mkOption {
default = {
tlsprune = {
cmd = [ "tls_prune" ];
at = 400;
};
delprune = {
cmd = [
"cyr_expire"
"-E"
"3"
];
at = 400;
};
deleteprune = {
cmd = [
"cyr_expire"
"-E"
"4"
"-D"
"28"
];
at = 430;
};
expungeprune = {
cmd = [
"cyr_expire"
"-E"
"4"
"-X"
"28"
];
at = 445;
};
checkpoint = {
cmd = [
"ctl_cyrusdb"
"-c"
];
period = 30;
};
};
description = ''
This section lists processes that should be run at specific intervals, similar to cron jobs. This section is typically used to perform scheduled cleanup/maintenance.
'';
};
DAEMON = mkOption {
default = { };
description = ''
This section lists long running daemons to start before any SERVICES are spawned. master(8) will ensure that these processes are running, restarting any process which dies or forks. All listed processes will be shutdown when master(8) is exiting.
'';
};
};
};
description = "Cyrus configuration settings. See [cyrus.conf(5)](https://www.cyrusimap.org/imap/reference/manpages/configs/cyrus.conf.html)";
};
imapdSettings = mkOption {
type = submodule {
freeformType = attrsOf (oneOf [
str
int
bool
(listOf str)
]);
options = {
configdirectory = mkOption {
type = path;
default = "/var/lib/cyrus";
description = ''
The pathname of the IMAP configuration directory.
'';
};
lmtpsocket = mkOption {
type = path;
default = "/run/cyrus/lmtp";
description = ''
Unix socket that lmtpd listens on, used by deliver(8). This should match the path specified in cyrus.conf(5).
'';
};
idlesocket = mkOption {
type = path;
default = "/run/cyrus/idle";
description = ''
Unix socket that idled listens on.
'';
};
notifysocket = mkOption {
type = path;
default = "/run/cyrus/notify";
description = ''
Unix domain socket that the mail notification daemon listens on.
'';
};
};
};
default = {
admins = [ "cyrus" ];
allowplaintext = true;
defaultdomain = "localhost";
defaultpartition = "default";
duplicate_db_path = "/run/cyrus/db/deliver.db";
hashimapspool = true;
httpmodules = [
"carddav"
"caldav"
];
mboxname_lockpath = "/run/cyrus/lock";
partition-default = "/var/lib/cyrus/storage";
popminpoll = 1;
proc_path = "/run/cyrus/proc";
ptscache_db_path = "/run/cyrus/db/ptscache.db";
sasl_auto_transition = true;
sasl_pwcheck_method = [ "saslauthd" ];
sievedir = "/var/lib/cyrus/sieve";
statuscache_db_path = "/run/cyrus/db/statuscache.db";
syslog_prefix = "cyrus";
tls_client_ca_dir = "/etc/ssl/certs";
tls_session_timeout = 1440;
tls_sessions_db_path = "/run/cyrus/db/tls_sessions.db";
virtdomains = "on";
};
description = "IMAP configuration settings. See [imapd.conf(5)](https://www.cyrusimap.org/imap/reference/manpages/configs/imapd.conf.html)";
};
user = mkOption {
type = nullOr str;
default = null;
description = "Cyrus IMAP user name. If this is not set, a user named `cyrus` will be created.";
};
group = mkOption {
type = nullOr str;
default = null;
description = "Cyrus IMAP group name. If this is not set, a group named `cyrus` will be created.";
};
imapdConfigFile = mkOption {
type = nullOr path;
default = null;
description = "Path to the configuration file used for cyrus-imap.";
apply = v: if v != null then v else pkgs.writeText "imapd.conf" imapdConfig;
};
cyrusConfigFile = mkOption {
type = nullOr path;
default = null;
description = "Path to the configuration file used for Cyrus.";
apply = v: if v != null then v else pkgs.writeText "cyrus.conf" cyrusConfig;
};
sslCACert = mkOption {
type = nullOr str;
default = null;
description = "File path which containing one or more CA certificates to use.";
};
sslServerCert = mkOption {
type = nullOr str;
default = null;
description = "File containing the global certificate used for all services (IMAP, POP3, LMTP, Sieve)";
};
sslServerKey = mkOption {
type = nullOr str;
default = null;
description = "File containing the private key belonging to the global server certificate.";
};
};
config = mkIf cfg.enable {
users.users.cyrus = optionalAttrs (cfg.user == null) {
description = "Cyrus IMAP user";
isSystemUser = true;
group = optionalString (cfg.group == null) "cyrus";
};
users.groups.cyrus = optionalAttrs (cfg.group == null) { };
environment.etc."imapd.conf".source = cfg.imapdConfigFile;
environment.etc."cyrus.conf".source = cfg.cyrusConfigFile;
systemd.services.cyrus-imap = {
description = "Cyrus IMAP server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
restartTriggers = [
"/etc/imapd.conf"
"/etc/cyrus.conf"
];
startLimitIntervalSec = 60;
environment = {
CYRUS_VERBOSE = mkIf cfg.debug "1";
LISTENQUEUE = builtins.toString cfg.listenQueue;
};
serviceConfig = {
User = if (cfg.user == null) then "cyrus" else cfg.user;
Group = if (cfg.group == null) then "cyrus" else cfg.group;
Type = "simple";
ExecStart = "${cyrus-imapdPkg}/libexec/master -l $LISTENQUEUE -C /etc/imapd.conf -M /etc/cyrus.conf -p /run/cyrus/master.pid -D";
Restart = "on-failure";
RestartSec = "1s";
RuntimeDirectory = "cyrus";
StateDirectory = "cyrus";
# Hardening
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
PrivateTmp = true;
PrivateDevices = true;
ProtectSystem = "full";
CapabilityBoundingSet = [ "~CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE" ];
MemoryDenyWriteExecute = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_NETLINK"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;
};
preStart = ''
mkdir -p '${cfg.imapdSettings.configdirectory}/socket' '${cfg.tmpDBDir}' /run/cyrus/proc /run/cyrus/lock
'';
};
environment.systemPackages = [ cyrus-imapdPkg ];
};
}

View File

@ -1,115 +0,0 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.services.shout;
shoutHome = "/var/lib/shout";
defaultConfig = pkgs.runCommand "config.js" { preferLocalBuild = true; } ''
EDITOR=true ${pkgs.shout}/bin/shout config --home $PWD
mv config.js $out
'';
finalConfigFile = if (cfg.configFile != null) then cfg.configFile else ''
var _ = require('${pkgs.shout}/lib/node_modules/shout/node_modules/lodash')
module.exports = _.merge(
{},
require('${defaultConfig}'),
${builtins.toJSON cfg.config}
)
'';
in {
options.services.shout = {
enable = mkEnableOption "Shout web IRC client";
private = mkOption {
type = types.bool;
default = false;
description = ''
Make your shout instance private. You will need to configure user
accounts by adding entries in {file}`${shoutHome}/users`.
'';
};
listenAddress = mkOption {
type = types.str;
default = "0.0.0.0";
description = "IP interface to listen on for http connections.";
};
port = mkOption {
type = types.port;
default = 9000;
description = "TCP port to listen on for http connections.";
};
configFile = mkOption {
type = types.nullOr types.lines;
default = null;
description = ''
Contents of Shout's {file}`config.js` file.
Used for backward compatibility, recommended way is now to use
the `config` option.
Documentation: http://shout-irc.com/docs/server/configuration.html
'';
};
config = mkOption {
default = {};
type = types.attrs;
example = {
displayNetwork = false;
defaults = {
name = "Your Network";
host = "localhost";
port = 6697;
};
};
description = ''
Shout {file}`config.js` contents as attribute set (will be
converted to JSON to generate the configuration file).
The options defined here will be merged to the default configuration file.
Documentation: http://shout-irc.com/docs/server/configuration.html
'';
};
};
config = mkIf cfg.enable {
users.users.shout = {
isSystemUser = true;
group = "shout";
description = "Shout daemon user";
home = shoutHome;
createHome = true;
};
users.groups.shout = {};
systemd.services.shout = {
description = "Shout web IRC client";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
preStart = "ln -sf ${pkgs.writeText "config.js" finalConfigFile} ${shoutHome}/config.js";
script = concatStringsSep " " [
"${pkgs.shout}/bin/shout"
(if cfg.private then "--private" else "--public")
"--port" (toString cfg.port)
"--host" (toString cfg.listenAddress)
"--home" shoutHome
];
serviceConfig = {
User = "shout";
ProtectHome = "true";
ProtectSystem = "full";
PrivateTmp = "true";
};
};
};
}

View File

@ -0,0 +1,226 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
mkIf
mkEnableOption
mkPackageOption
mkOption
optionalString
optionalAttrs
isDerivation
recursiveUpdate
getExe
literalExpression
types
maintainers
;
cfg = config.services.wivrn;
configFormat = pkgs.formats.json { };
# For the application option to work with systemd PATH, we find the store binary path of
# the package, concat all of the following strings, and then update the application attribute.
# Application can either be a package or a list that has a package as the first element.
applicationExists = builtins.hasAttr "application" cfg.config.json;
applicationListNotEmpty = (
if builtins.isList cfg.config.json.application then
(builtins.length cfg.config.json.application) != 0
else
true
);
applicationCheck = applicationExists && applicationListNotEmpty;
applicationBinary = (
if builtins.isList cfg.config.json.application then
builtins.head cfg.config.json.application
else
cfg.config.json.application
);
applicationStrings = builtins.tail cfg.config.json.application;
applicationPath = mkIf applicationCheck applicationBinary;
applicationConcat = (
if builtins.isList cfg.config.json.application then
builtins.concatStringsSep " " ([ (getExe applicationBinary) ] ++ applicationStrings)
else
(getExe applicationBinary)
);
applicationUpdate = recursiveUpdate cfg.config.json (
optionalAttrs applicationCheck { application = applicationConcat; }
);
configFile = configFormat.generate "config.json" applicationUpdate;
in
{
options = {
services.wivrn = {
enable = mkEnableOption "WiVRn, an OpenXR streaming application";
package = mkPackageOption pkgs "wivrn" { };
openFirewall = mkEnableOption "the default ports in the firewall for the WiVRn server";
defaultRuntime = mkEnableOption ''
WiVRn Monado as the default OpenXR runtime on the system.
The config can be found at `/etc/xdg/openxr/1/active_runtime.json`.
Note that applications can bypass this option by setting an active
runtime in a writable XDG_CONFIG_DIRS location like `~/.config`
'';
autoStart = mkEnableOption "starting the service by default";
monadoEnvironment = mkOption {
type = types.attrs;
description = "Environment variables to be passed to the Monado environment.";
default = {
XRT_COMPOSITOR_LOG = "debug";
XRT_PRINT_OPTIONS = "on";
IPC_EXIT_ON_DISCONNECT = "off";
};
};
extraPackages = mkOption {
type = types.listOf types.package;
description = "Packages to add to the wivrn-application service $PATH.";
default = [ ];
example = literalExpression "[ pkgs.bash pkgs.procps ]";
};
config = {
enable = mkEnableOption "configuration for WiVRn";
json = mkOption {
type = configFormat.type;
description = ''
Configuration for WiVRn. The attributes are serialized to JSON in config.json.
Note that the application option must be either a package or a
list with package as the first element.
See https://github.com/Meumeu/WiVRn/blob/master/docs/configuration.md
'';
default = { };
example = literalExpression ''
{
scale = 0.8;
bitrate = 100000000;
encoders = [
{
encoder = "nvenc";
codec = "h264";
width = 1.0;
height = 1.0;
offset_x = 0.0;
offset_y = 0.0;
}
];
application = [ pkgs.wlx-overlay-s ];
tcp_only = true;
}
'';
};
};
};
};
config = mkIf cfg.enable {
assertions = [
{
assertion = !applicationCheck || isDerivation applicationBinary;
message = "The application in WiVRn configuration is not a package. Please ensure that the application is a package or that a package is the first element in the list.";
}
];
systemd.user = {
services = {
# The WiVRn server runs in a hardened service and starts the applications in a different service
wivrn = {
description = "WiVRn XR runtime service";
environment = {
# Default options
# https://gitlab.freedesktop.org/monado/monado/-/blob/598080453545c6bf313829e5780ffb7dde9b79dc/src/xrt/targets/service/monado.in.service#L12
XRT_COMPOSITOR_LOG = "debug";
XRT_PRINT_OPTIONS = "on";
IPC_EXIT_ON_DISCONNECT = "off";
} // cfg.monadoEnvironment;
serviceConfig = {
ExecStart = (
(getExe cfg.package) + " --systemd" + optionalString cfg.config.enable " -f ${configFile}"
);
# Hardening options
CapabilityBoundingSet = [ "CAP_SYS_NICE" ];
AmbientCapabilities = [ "CAP_SYS_NICE" ];
LockPersonality = true;
NoNewPrivileges = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictNamespaces = true;
RestrictSUIDSGID = true;
};
wantedBy = mkIf cfg.autoStart [ "default.target" ];
restartTriggers = [
cfg.package
configFile
];
};
wivrn-application = mkIf applicationCheck {
description = "WiVRn application service";
requires = [ "wivrn.service" ];
serviceConfig = {
ExecStart = (
(getExe cfg.package) + " --application" + optionalString cfg.config.enable " -f ${configFile}"
);
Restart = "on-failure";
RestartSec = 0;
PrivateTmp = true;
};
# We need to add the application to PATH so WiVRn can find it
path = [ applicationPath ] ++ cfg.extraPackages;
};
};
};
services = {
# WiVRn can be used with some wired headsets so we include xr-hardware
udev.packages = with pkgs; [
android-udev-rules
xr-hardware
];
avahi = {
enable = true;
publish = {
enable = true;
userServices = true;
};
};
};
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ 9757 ];
allowedUDPPorts = [ 9757 ];
};
environment = {
systemPackages = [
cfg.package
applicationPath
];
pathsToLink = [ "/share/openxr" ];
etc."xdg/openxr/1/active_runtime.json" = mkIf cfg.defaultRuntime {
source = "${cfg.package}/share/openxr/1/openxr_wivrn.json";
};
};
};
meta.maintainers = with maintainers; [ passivelemon ];
}

View File

@ -245,6 +245,7 @@ in {
curl-impersonate = handleTest ./curl-impersonate.nix {};
custom-ca = handleTest ./custom-ca.nix {};
croc = handleTest ./croc.nix {};
cyrus-imap = runTest ./cyrus-imap.nix;
darling = handleTest ./darling.nix {};
darling-dmg = runTest ./darling-dmg.nix;
dae = handleTest ./dae.nix {};

120
nixos/tests/cyrus-imap.nix Normal file
View File

@ -0,0 +1,120 @@
{ lib, pkgs, ... }:
{
name = "cyrus-imap";
meta = {
maintainers = with lib.maintainers; [ moraxyc ];
};
nodes.machine =
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
curl
sudo
];
services.saslauthd = {
enable = true;
config = ''
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECH_OPTIONS=""
THREADS=5
START=yes
OPTIONS="-c -m /run/saslauthd"
'';
};
services.cyrus-imap = {
enable = true;
cyrusSettings = {
START = {
recover = {
cmd = [
"ctl_cyrusdb"
"-r"
];
};
};
EVENTS = {
tlsprune = {
cmd = [ "tls_prune" ];
at = 400;
};
delprune = {
cmd = [
"cyr_expire"
"-E"
"3"
];
at = 400;
};
deleteprune = {
cmd = [
"cyr_expire"
"-E"
"4"
"-D"
"28"
];
at = 430;
};
expungeprune = {
cmd = [
"cyr_expire"
"-E"
"4"
"-X"
"28"
];
at = 445;
};
checkpoint = {
cmd = [
"ctl_cyrusdb"
"-c"
];
period = 30;
};
};
SERVICES = {
http = {
cmd = [ "httpd" ];
listen = "80";
prefork = 0;
};
imap = {
cmd = [ "imapd" ];
listen = "143";
prefork = 0;
};
lmtpunix = {
cmd = [ "lmtpd" ];
listen = "/run/cyrus/lmtp";
prefork = 0;
};
notify = {
cmd = [ "notifyd" ];
listen = "/run/cyrus/notify";
proto = "udp";
prefork = 0;
};
};
};
};
};
testScript = ''
machine.wait_for_unit("saslauthd.service")
machine.wait_for_unit("cyrus-imap.service")
machine.wait_for_open_port(80)
machine.wait_for_open_port(143)
machine.succeed("echo 'secret' | ${lib.getExe' pkgs.cyrus_sasl.bin "saslpasswd2"} -p -c cyrus")
machine.succeed("chown cyrus /etc/sasldb2")
machine.succeed("sudo -ucyrus curl --fail --max-time 10 imap://cyrus:secret@localhost:143")
machine.fail("curl --fail --max-time 10 imap://cyrus:wrongsecret@localhost:143")
machine.fail("curl --fail --max-time 10 -X PROPFIND -H 'Depth: 1' 'http://localhost/dav/addressbooks/user/cyrus@localhost/Default'")
'';
}

View File

@ -17,7 +17,7 @@ in
meta = {
description = "Fork of Firefox, focused on privacy, security and freedom";
homepage = "https://librewolf.net/";
maintainers = with lib.maintainers; [ dotlambda squalus ];
maintainers = with lib.maintainers; [ squalus ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".

View File

@ -30,7 +30,7 @@ rec {
cp ${source}/patches/pref-pane/librewolf.css browser/themes/shared/preferences
cp ${source}/patches/pref-pane/librewolf.inc.xhtml browser/components/preferences
cp ${source}/patches/pref-pane/librewolf.js browser/components/preferences
cat ${source}/patches/pref-pane/preferences.ftl >> browser/locales/en-US/browser/preferences/preferences.ftl
cat ${source}/browser/preferences/preferences.ftl >> browser/locales/en-US/browser/preferences/preferences.ftl
'';
extraPrefsFiles = [ "${source}/settings/librewolf.cfg" ];

View File

@ -1,11 +1,11 @@
{
"packageVersion": "131.0.2-1",
"packageVersion": "131.0.3-1",
"source": {
"rev": "131.0.2-1",
"sha256": "1knx485kdjv8d0rn5ai1x1jp0403dvxz9m7lpim1y2d2ilyi26x7"
"rev": "131.0.3-1",
"sha256": "0ayl43nq3h9a3b4nl7sfmil43v0k3x1bmxl7c7ws8710dj2674rc"
},
"firefox": {
"version": "131.0.2",
"sha512": "fb1a1179a8c62de975c93e1ac6f058cb5492e955bbb7ac2d4b83cdd14ba17bdb2450078bd6f626124b14542f3fda9514bea476aaa34ff4f5a2bee6b1625ec963"
"version": "131.0.3",
"sha512": "3aa96db839f7a45e34c43b5e7e3333e1100ca11545ad26a8e42987fbc72df5ae7ebebe7dfc8c4e856d2bb4676c0516914a07c001f6047799f314146a3329c0ce"
}
}

View File

@ -0,0 +1,204 @@
{
# build tools
stdenv,
autoreconfHook,
makeWrapper,
pkg-config,
# check hook
versionCheckHook,
# fetchers
fetchFromGitHub,
fetchpatch,
fetchurl,
# build inputs
bison,
brotli,
coreutils,
cunit,
cyrus_sasl,
fig2dev,
flex,
icu,
jansson,
lib,
libbsd,
libcap,
libchardet,
libical,
libmysqlclient,
libsrs2,
libuuid,
libxml2,
nghttp2,
openssl,
pcre2,
perl,
postgresql,
rsync,
shapelib,
sqlite,
unixtools,
valgrind,
wslay,
xapian,
zlib,
# feature flags
enableAutoCreate ? true,
enableBackup ? true,
enableCalalarmd ? true,
enableHttp ? true,
enableIdled ? true,
enableJMAP ? true,
enableMurder ? true,
enableNNTP ? false,
enableReplication ? true,
enableSrs ? true,
enableUnitTests ? true,
enableXapian ? true,
withLibcap ? true,
withMySQL ? false,
withOpenssl ? true,
withPgSQL ? false,
withSQLite ? true,
withZlib ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cyrus-imapd";
version = "3.10.0";
src = fetchFromGitHub {
owner = "cyrusimap";
repo = "cyrus-imapd";
rev = "refs/tags/cyrus-imapd-${finalAttrs.version}";
hash = "sha256-dyybRqmrVX+ERGpToS5JjGC6S/B0t967dLCWfeUrLKA=";
};
nativeBuildInputs = [
makeWrapper
pkg-config
autoreconfHook
];
buildInputs =
[
unixtools.xxd
pcre2
flex
valgrind
fig2dev
perl
cyrus_sasl.dev
icu
jansson
libbsd
libuuid
openssl
zlib
bison
libsrs2
]
++ lib.optionals stdenv.isLinux [ libcap ]
++ lib.optionals (enableHttp || enableCalalarmd || enableJMAP) [
brotli.dev
libical.dev
libxml2.dev
nghttp2.dev
shapelib
]
++ lib.optionals enableJMAP [
libchardet
wslay
]
++ lib.optionals enableXapian [
rsync
xapian
]
++ lib.optionals withMySQL [ libmysqlclient ]
++ lib.optionals withPgSQL [ postgresql ]
++ lib.optionals withSQLite [ sqlite ];
enableParallelBuilding = true;
postPatch =
let
managesieveLibs =
[
zlib
cyrus_sasl
]
# Darwin doesn't have libuuid, try to build without it
++ lib.optional (!stdenv.isDarwin) libuuid;
imapLibs = managesieveLibs ++ [ pcre2 ];
mkLibsString = lib.strings.concatMapStringsSep " " (l: "-L${lib.getLib l}/lib");
in
''
patchShebangs cunit/*.pl
patchShebangs imap/promdatagen
patchShebangs tools/*
echo ${finalAttrs.version} > VERSION
substituteInPlace cunit/command.testc \
--replace-fail /usr/bin/touch ${lib.getExe' coreutils "touch"} \
--replace-fail /bin/echo ${lib.getExe' coreutils "echo"} \
--replace-fail /usr/bin/tr ${lib.getExe' coreutils "tr"} \
--replace-fail /bin/sh ${stdenv.shell}
# fix for https://github.com/cyrusimap/cyrus-imapd/issues/3893
substituteInPlace perl/imap/Makefile.PL.in \
--replace-fail '"$LIB_SASL' '"${mkLibsString imapLibs} -lpcre2-posix $LIB_SASL'
substituteInPlace perl/sieve/managesieve/Makefile.PL.in \
--replace-fail '"$LIB_SASL' '"${mkLibsString managesieveLibs} $LIB_SASL'
'';
postFixup = ''
wrapProgram $out/bin/cyradm --set PERL5LIB $(find $out/lib/perl5 -type d | tr "\\n" ":")
'';
configureFlags = [
"--with-pidfile=/run/cyrus/master.pid"
(lib.enableFeature enableAutoCreate "autocreate")
(lib.enableFeature enableSrs "srs")
(lib.enableFeature enableIdled "idled")
(lib.enableFeature enableMurder "murder")
(lib.enableFeature enableBackup "backup")
(lib.enableFeature enableReplication "replication")
(lib.enableFeature enableUnitTests "unit-tests")
(lib.enableFeature (enableHttp || enableCalalarmd || enableJMAP) "http")
(lib.enableFeature enableJMAP "jmap")
(lib.enableFeature enableNNTP "nntp")
(lib.enableFeature enableXapian "xapian")
(lib.enableFeature enableCalalarmd "calalarmd")
(lib.withFeature withZlib "zlib=${zlib}")
(lib.withFeature withOpenssl "openssl")
(lib.withFeature withLibcap "libcap=${libcap}")
(lib.withFeature withMySQL "mysql")
(lib.withFeature withPgSQL "pgsql")
(lib.withFeature withSQLite "sqlite")
];
checkInputs = [ cunit ];
doCheck = true;
versionCheckProgram = "${builtins.placeholder "out"}/libexec/master";
versionCheckProgramArg = "-V";
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
meta = {
homepage = "https://www.cyrusimap.org";
description = "Email, contacts and calendar server";
license = with lib.licenses; [ bsdOriginal ];
mainProgram = "cyrus";
maintainers = with lib.maintainers; [
moraxyc
pingiun
];
platforms = lib.platforms.unix;
};
})

View File

@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "river-bsp-layout";
version = "2.1.0";
src = fetchFromGitHub {
owner = "areif-dev";
repo = "river-bsp-layout";
rev = "v${version}";
hash = "sha256-LRVZPAS4V5PtrqyOkKUfrZuwLqPZbLoyjn2DPxCFE2o=";
};
cargoHash = "sha256-CtVyRwfIS8R48LUecKXoak+HHB5yNZ5RgguIWOhyFA8=";
meta = {
homepage = "https://github.com/areif-dev/river-bsp-layout";
description = "Binary space partition / grid layout manager for River WM";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ areif-dev ];
mainProgram = "river-bsp-layout";
platforms = lib.platforms.linux;
};
}

View File

@ -6,13 +6,13 @@
buildGoModule rec {
pname = "spacectl";
version = "1.5.0";
version = "1.6.0";
src = fetchFromGitHub {
owner = "spacelift-io";
repo = "spacectl";
rev = "v${version}";
hash = "sha256-wEu7AmFn1782XTKKb7JxQWn/ZSHrQbuZ/SDldn6pUNo=";
hash = "sha256-pO+jYuCyP6YrU9vE3//O0EyTDXYQ1WSpFI/8WbneDCA=";
};
vendorHash = "sha256-SYfXG6YM0Q2rCnoTM2tYvE17uBCD8yQiW/5DTCxMPWo=";

1774
pkgs/by-name/sy/system76-power/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,19 +2,24 @@
rustPlatform.buildRustPackage rec {
pname = "system76-power";
version = "1.1.23";
version = "1.2.1";
src = fetchFromGitHub {
owner = "pop-os";
repo = "system76-power";
rev = version;
sha256 = "sha256-RuYDG4eZE599oa04xUR+W5B3/IPOpQUss1x7hzoydUQ=";
sha256 = "sha256-kYDrSfpOuRigDX792w3hATXoxX6PWpYWXkxw9Q28P5s=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ dbus libusb1 ];
cargoHash = "sha256-Vps02ZRVmeOQ8jDFZJYAUb502MhqY+2YV2W1/9XGY+0=";
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"sysfs-class-0.1.3" = "sha256-ztfwfCRAkxUd/LLNG5fpVuFdgX+tCKL3F35qYJ2GDm8=";
};
};
postInstall = ''
install -D -m 0644 data/com.system76.PowerDaemon.conf $out/etc/dbus-1/system.d/com.system76.PowerDaemon.conf
@ -28,6 +33,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/pop-os/system76-power";
license = licenses.gpl3Plus;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = [ ];
maintainers = [ maintainers.smonson ];
};
}

View File

@ -0,0 +1,149 @@
{
config,
lib,
stdenv,
fetchFromGitHub,
fetchFromGitLab,
applyPatches,
autoAddDriverRunpath,
avahi,
boost,
cli11,
cmake,
cudaPackages ? { },
cudaSupport ? config.cudaSupport,
eigen,
ffmpeg,
freetype,
git,
glm,
glslang,
harfbuzz,
libdrm,
libGL,
libva,
libpulseaudio,
libX11,
libXrandr,
nix-update-script,
nlohmann_json,
onnxruntime,
openxr-loader,
pipewire,
pkg-config,
python3,
shaderc,
spdlog,
systemd,
udev,
vulkan-headers,
vulkan-loader,
vulkan-tools,
x264,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wivrn";
version = "0.19";
src = fetchFromGitHub {
owner = "wivrn";
repo = "wivrn";
rev = "v${finalAttrs.version}";
hash = "sha256-DYV+JUWjjhLZLq+4Hv7jxOyxDqQut/mU1X0ZFMoNkDI=";
};
monado = applyPatches {
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "monado";
repo = "monado";
rev = "bcbe19ddd795f182df42051e5495e9727db36c1c";
hash = "sha256-sh5slHROcuC3Dgenu1+hm8U5lUOW48JUbiluYvc3NiQ=";
};
patches = [
"${finalAttrs.src}/patches/monado/0001-c-multi-disable-dropping-of-old-frames.patch"
"${finalAttrs.src}/patches/monado/0002-ipc-server-Always-listen-to-stdin.patch"
"${finalAttrs.src}/patches/monado/0003-c-multi-Don-t-log-frame-time-diff.patch"
"${finalAttrs.src}/patches/monado/0005-distortion-images.patch"
"${finalAttrs.src}/patches/monado/0008-Use-mipmaps-for-distortion-shader.patch"
"${finalAttrs.src}/patches/monado/0009-convert-to-YCbCr-in-monado.patch"
];
};
strictDeps = true;
postUnpack = ''
# Let's make sure our monado source revision matches what is used by WiVRn upstream
ourMonadoRev="${finalAttrs.monado.src.rev}"
theirMonadoRev=$(grep "GIT_TAG" ${finalAttrs.src.name}/CMakeLists.txt | awk '{print $2}')
if [ ! "$theirMonadoRev" == "$ourMonadoRev" ]; then
echo "Our Monado source revision doesn't match CMakeLists.txt." >&2
echo " theirs: $theirMonadoRev" >&2
echo " ours: $ourMonadoRev" >&2
return 1
fi
'';
nativeBuildInputs = [
cmake
git
glslang
pkg-config
python3
] ++ lib.optionals cudaSupport [ autoAddDriverRunpath ];
buildInputs = [
avahi
boost
cli11
eigen
ffmpeg
freetype
glm
harfbuzz
libdrm
libGL
libva
libX11
libXrandr
libpulseaudio
nlohmann_json
onnxruntime
openxr-loader
pipewire
shaderc
spdlog
systemd
udev
vulkan-headers
vulkan-loader
vulkan-tools
x264
] ++ lib.optionals cudaSupport [ cudaPackages.cudatoolkit ];
cmakeFlags = [
(lib.cmakeBool "WIVRN_USE_VAAPI" true)
(lib.cmakeBool "WIVRN_USE_X264" true)
(lib.cmakeBool "WIVRN_USE_NVENC" cudaSupport)
(lib.cmakeBool "WIVRN_USE_SYSTEMD" true)
(lib.cmakeBool "WIVRN_USE_PIPEWIRE" true)
(lib.cmakeBool "WIVRN_USE_PULSEAUDIO" true)
(lib.cmakeBool "WIVRN_BUILD_CLIENT" false)
(lib.cmakeBool "WIVRN_OPENXR_INSTALL_ABSOLUTE_RUNTIME_PATH" true)
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MONADO" "${finalAttrs.monado}")
];
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "An OpenXR streaming application to a standalone headset";
homepage = "https://github.com/Meumeu/WiVRn/";
changelog = "https://github.com/Meumeu/WiVRn/releases/";
license = licenses.gpl3Only;
maintainers = with maintainers; [ passivelemon ];
platforms = platforms.linux;
mainProgram = "wivrn-server";
};
})

View File

@ -158,6 +158,7 @@ mapAliases {
inherit (pkgs) rtlcss; # added 2023-08-29
s3http = throw "s3http was removed because it was abandoned upstream"; # added 2023-08-18
inherit (pkgs) serverless; # Added 2023-11-29
shout = throw "shout was removed because it was deprecated upstream in favor of thelounge."; # Added 2024-10-19
inherit (pkgs) snyk; # Added 2023-08-30
inherit (pkgs) sql-formatter; # added 2024-06-29
"@squoosh/cli" = throw "@squoosh/cli was removed because it was abandoned upstream"; # added 2023-09-02

View File

@ -174,7 +174,6 @@
, "sass"
, "semver"
, "serve"
, "shout"
, "sloc"
, "smartdc"
, "socket.io"

View File

@ -79540,253 +79540,6 @@ in
bypassCache = true;
reconstructLock = true;
};
shout = nodeEnv.buildNodePackage {
name = "shout";
packageName = "shout";
version = "0.53.0";
src = fetchurl {
url = "https://registry.npmjs.org/shout/-/shout-0.53.0.tgz";
sha512 = "WX6Be8BtHxMskOZkxEx96cy7Qs+DTsasvmITJDa28OMkGQS59EuR7LPVq4BB1O5uvvjxvIi1rF1WqZwbF/PfKQ==";
};
dependencies = [
sources."CSSselect-0.4.1"
sources."CSSwhat-0.4.7"
sources."accepts-1.3.8"
sources."after-0.8.1"
sources."ajv-6.12.6"
sources."array-flatten-1.1.1"
sources."arraybuffer.slice-0.0.6"
sources."asn1-0.2.6"
sources."assert-plus-1.0.0"
sources."asynckit-0.4.0"
sources."aws-sign2-0.7.0"
sources."aws4-1.13.2"
sources."base64-arraybuffer-0.1.2"
sources."base64id-0.1.0"
sources."bcrypt-nodejs-0.0.3"
sources."bcrypt-pbkdf-1.0.2"
sources."better-assert-1.0.2"
sources."blob-0.0.2"
sources."body-parser-1.20.3"
sources."bytes-3.1.2"
sources."call-bind-1.0.7"
sources."callsite-1.0.0"
sources."caseless-0.12.0"
sources."cheerio-0.17.0"
sources."combined-stream-1.0.8"
sources."commander-2.20.3"
sources."component-bind-1.0.0"
sources."component-emitter-1.1.2"
sources."component-inherit-0.0.3"
sources."content-disposition-0.5.4"
sources."content-type-1.0.5"
sources."cookie-0.6.0"
sources."cookie-signature-1.0.6"
sources."core-util-is-1.0.3"
sources."dashdash-1.14.1"
sources."debug-2.6.9"
sources."define-data-property-1.1.4"
sources."delayed-stream-1.0.0"
sources."depd-2.0.0"
sources."destroy-1.2.0"
(sources."dom-serializer-0.0.1" // {
dependencies = [
sources."domelementtype-1.1.3"
];
})
sources."domelementtype-1.3.1"
sources."domhandler-2.2.1"
sources."domutils-1.4.3"
sources."duplexer-0.1.2"
sources."ecc-jsbn-0.1.2"
sources."ee-first-1.1.1"
sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
sources."encodeurl-2.0.0"
(sources."engine.io-1.3.1" // {
dependencies = [
sources."debug-0.6.0"
];
})
(sources."engine.io-client-1.3.1" // {
dependencies = [
sources."debug-0.7.4"
];
})
sources."engine.io-parser-1.0.6"
sources."entities-1.1.2"
sources."es-define-property-1.0.0"
sources."es-errors-1.3.0"
sources."escape-html-1.0.3"
sources."etag-1.8.1"
sources."event-stream-3.3.5"
sources."express-4.21.0"
sources."extend-3.0.2"
sources."extsprintf-1.3.0"
sources."fast-deep-equal-3.1.3"
sources."fast-json-stable-stringify-2.1.0"
sources."finalhandler-1.3.1"
sources."forever-agent-0.6.1"
sources."form-data-2.3.3"
sources."forwarded-0.2.0"
sources."fresh-0.5.2"
sources."from-0.1.7"
sources."function-bind-1.1.2"
sources."get-intrinsic-1.2.4"
sources."getpass-0.1.7"
sources."global-https://github.com/component/global/archive/v2.0.1.tar.gz"
sources."gopd-1.0.1"
sources."har-schema-2.0.0"
sources."har-validator-5.1.5"
sources."has-binary-data-0.1.1"
sources."has-cors-1.0.3"
sources."has-property-descriptors-1.0.2"
sources."has-proto-1.0.3"
sources."has-symbols-1.0.3"
sources."hasown-2.0.2"
(sources."htmlparser2-3.7.3" // {
dependencies = [
sources."domutils-1.5.1"
sources."entities-1.0.0"
];
})
sources."http-errors-2.0.0"
sources."http-signature-1.2.0"
sources."iconv-lite-0.4.24"
sources."indexof-0.0.1"
sources."inherits-2.0.4"
sources."ipaddr.js-1.9.1"
sources."irc-replies-2.0.1"
sources."is-typedarray-1.0.0"
sources."isarray-0.0.1"
sources."isstream-0.1.2"
sources."jsbn-0.1.1"
sources."json-schema-0.4.0"
sources."json-schema-traverse-0.4.1"
sources."json-stringify-safe-5.0.1"
sources."json3-3.2.6"
sources."jsprim-1.4.2"
sources."linewise-0.0.3"
sources."lodash-2.4.2"
sources."map-stream-0.0.7"
sources."media-typer-0.3.0"
sources."merge-descriptors-1.0.3"
sources."methods-1.1.2"
sources."mime-1.6.0"
sources."mime-db-1.52.0"
sources."mime-types-2.1.35"
sources."minimist-1.2.8"
sources."mkdirp-0.5.6"
sources."moment-2.7.0"
sources."ms-2.0.0"
sources."mute-stream-0.0.8"
sources."nan-0.3.2"
sources."negotiator-0.6.3"
sources."oauth-sign-0.9.0"
sources."object-component-0.0.3"
sources."object-inspect-1.13.2"
sources."on-finished-2.4.1"
sources."options-0.0.6"
sources."parsejson-0.0.1"
sources."parseqs-0.0.2"
sources."parseuri-0.0.2"
sources."parseurl-1.3.3"
sources."path-to-regexp-0.1.10"
sources."pause-stream-0.0.11"
sources."performance-now-2.1.0"
sources."proxy-addr-2.0.7"
sources."psl-1.9.0"
sources."punycode-2.3.1"
sources."qs-6.13.0"
sources."range-parser-1.2.1"
sources."raw-body-2.5.2"
sources."read-1.0.7"
sources."readable-stream-1.1.14"
(sources."request-2.88.2" // {
dependencies = [
sources."qs-6.5.3"
];
})
sources."safe-buffer-5.2.1"
sources."safer-buffer-2.1.2"
(sources."send-0.19.0" // {
dependencies = [
sources."encodeurl-1.0.2"
sources."ms-2.1.3"
];
})
sources."serve-static-1.16.2"
sources."set-function-length-1.2.2"
sources."setprototypeof-1.2.0"
sources."side-channel-1.0.6"
sources."slate-irc-0.7.3"
(sources."slate-irc-parser-0.0.2" // {
dependencies = [
sources."debug-0.7.4"
];
})
(sources."socket.io-1.0.6" // {
dependencies = [
sources."debug-0.7.4"
];
})
(sources."socket.io-adapter-0.2.0" // {
dependencies = [
sources."debug-0.7.4"
sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
sources."socket.io-parser-2.1.2"
];
})
(sources."socket.io-client-1.0.6" // {
dependencies = [
sources."debug-0.7.4"
];
})
(sources."socket.io-parser-2.2.0" // {
dependencies = [
sources."debug-0.7.4"
];
})
sources."split-1.0.1"
sources."sshpk-1.18.0"
sources."statuses-2.0.1"
sources."stream-combiner-0.2.2"
sources."string_decoder-0.10.31"
sources."through-2.3.8"
sources."tinycolor-0.0.1"
sources."to-array-0.1.3"
sources."toidentifier-1.0.1"
sources."tough-cookie-2.5.0"
sources."tunnel-agent-0.6.0"
sources."tweetnacl-0.14.5"
sources."type-is-1.6.18"
sources."unpipe-1.0.0"
sources."uri-js-4.4.1"
sources."utf8-2.0.0"
sources."utils-merge-1.0.1"
sources."uuid-3.4.0"
sources."vary-1.1.2"
(sources."verror-1.10.0" // {
dependencies = [
sources."core-util-is-1.0.2"
];
})
(sources."ws-0.4.31" // {
dependencies = [
sources."commander-0.6.1"
];
})
sources."xmlhttprequest-https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz"
];
buildInputs = globalBuildInputs;
meta = {
description = "The self-hosted Web IRC client";
homepage = "https://github.com/erming/shout#readme";
license = "MIT";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
sloc = nodeEnv.buildNodePackage {
name = "sloc";
packageName = "sloc";

View File

@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "eq3btsmart";
version = "1.1.9";
version = "1.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "EuleMitKeule";
repo = "eq3btsmart";
rev = "refs/tags/${version}";
hash = "sha256-7kJqPygX2Oc7fz31qZWrS1ZA+kANZr8vxOwarUzgp/M=";
hash = "sha256-Z3GfUTh3qp5ICJAYsCO6ufw/Jd5FDjOaQE9SaD3H0IU=";
};
build-system = [ poetry-core ];

View File

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "triton";
version = "2.1.0";
version = "3.1.0";
format = "wheel";
src =

View File

@ -7,26 +7,31 @@
version:
builtins.getAttr version {
"2.1.0" = {
"3.1.0" = {
x86_64-linux-38 = {
name = "triton-2.1.0-cp38-cp38-linux_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";
hash = "sha256-Ofb7a9zLPpjzFS4/vqck8a6ufXSUErux+pxEHUdOuiY=";
name = "triton-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
hash = "sha256-ba2sp/wk3jThgCcbXPhkwWdVcC6fY6FvYt9xSoCZEmo=";
};
x86_64-linux-39 = {
name = "triton-2.1.0-cp39-cp39-linux_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";
hash = "sha256-IVROUiwCAFpibIrWPTm9/y8x1BBpWSkZ7ygelk7SZEY=";
name = "triton-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl ";
url = "https://download.pytorch.org/whl/triton-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
hash = "sha256-qvqaIM0Nn+5SPNRQSqcTGAeoZM133Pbv5+mB8YuMbBE=";
};
x86_64-linux-310 = {
name = "triton-2.1.0-cp310-cp310-linux_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";
hash = "sha256-ZkOZI6MNXUg5mwip6uEDcPbCYaXshkpkmDuuYxUtOdc=";
name = "triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl ";
url = "https://download.pytorch.org/whl/triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
hash = "sha256-aw3RCpJSY6u+n6N9zeZ6Xpsjg/wmn99Z9WV8rDjF0dg=";
};
x86_64-linux-311 = {
name = "triton-2.1.0-cp311-cp311-linux_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";
hash = "sha256-kZsGRT8AM+pSwT6veDPeDlfbMXjSPU4E+fxxxPLDK/g=";
name = "triton-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
hash = "sha256-DzT254hdG/Dqr3uodaXwzm88E7qY+VA2UcHm3GdX7Vw=";
};
x86_64-linux-312 = {
name = "triton-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
url = "https://download.pytorch.org/whl/triton-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
hash = "sha256-yBgvQv2AgKfTnWZoFPo2xeMMwA6n7usaKYPbtMmaD9w=";
};
};
}

View File

@ -1,6 +1,5 @@
{ stdenvNoCC
, fetchzip
, findutils
, lib
, python3
, rdfind
@ -13,7 +12,7 @@ let
# in a perfectly pristine tree, so we can fake just enough of git to run it.
gitStub = writeShellScriptBin "git" ''
if [ "$1" == "ls-files" ]; then
${lib.getExe findutils} -type f -printf "%P\n"
find -type f -printf "%P\n"
else
echo "Git stub called with unexpected arguments $@" >&2
exit 1

View File

@ -1497,6 +1497,7 @@ mapAliases {
inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17
shhgit = throw "shhgit is broken and is no longer maintained. See https://github.com/eth0izzle/shhgit#-shhgit-is-no-longer-maintained-"; # Added 2023-08-08
shipyard = jumppad; # Added 2023-06-06
shout = nodePackages.shout; # Added unknown; moved 2024-10-19
signumone-ks = throw "signumone-ks has been removed from nixpkgs because the developers stopped offering the binaries"; # Added 2023-08-17
simplenote = throw "'simplenote' has been removed because it is no longer maintained and insecure"; # Added 2023-10-09
skk-dicts = throw "'skk-dicts' has been split into multiple packages under 'skkDictionaries'"; # Added 2023-11-08

View File

@ -12157,8 +12157,6 @@ with pkgs;
shotwell = callPackage ../applications/graphics/shotwell { };
shout = nodePackages.shout;
shrikhand = callPackage ../data/fonts/shrikhand { };
shunit2 = callPackage ../tools/misc/shunit2 { };