mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-29 16:24:10 +00:00
Merge master into staging-next
This commit is contained in:
commit
c38df14dc7
@ -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";
|
||||
|
@ -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).
|
||||
|
@ -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];}`
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
379
nixos/modules/services/mail/cyrus-imap.nix
Normal file
379
nixos/modules/services/mail/cyrus-imap.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
226
nixos/modules/services/video/wivrn.nix
Normal file
226
nixos/modules/services/video/wivrn.nix
Normal 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 ];
|
||||
}
|
@ -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
120
nixos/tests/cyrus-imap.nix
Normal 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'")
|
||||
'';
|
||||
}
|
@ -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".
|
||||
|
@ -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" ];
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
204
pkgs/by-name/cy/cyrus-imapd/package.nix
Normal file
204
pkgs/by-name/cy/cyrus-imapd/package.nix
Normal 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;
|
||||
};
|
||||
})
|
28
pkgs/by-name/ri/river-bsp-layout/package.nix
Normal file
28
pkgs/by-name/ri/river-bsp-layout/package.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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
1774
pkgs/by-name/sy/system76-power/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
149
pkgs/by-name/wi/wivrn/package.nix
Normal file
149
pkgs/by-name/wi/wivrn/package.nix
Normal 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";
|
||||
};
|
||||
})
|
@ -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
|
||||
|
@ -174,7 +174,6 @@
|
||||
, "sass"
|
||||
, "semver"
|
||||
, "serve"
|
||||
, "shout"
|
||||
, "sloc"
|
||||
, "smartdc"
|
||||
, "socket.io"
|
||||
|
247
pkgs/development/node-packages/node-packages.nix
generated
247
pkgs/development/node-packages/node-packages.nix
generated
@ -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";
|
||||
|
@ -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 ];
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "triton";
|
||||
version = "2.1.0";
|
||||
version = "3.1.0";
|
||||
format = "wheel";
|
||||
|
||||
src =
|
||||
|
@ -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=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -12157,8 +12157,6 @@ with pkgs;
|
||||
|
||||
shotwell = callPackage ../applications/graphics/shotwell { };
|
||||
|
||||
shout = nodePackages.shout;
|
||||
|
||||
shrikhand = callPackage ../data/fonts/shrikhand { };
|
||||
|
||||
shunit2 = callPackage ../tools/misc/shunit2 { };
|
||||
|
Loading…
Reference in New Issue
Block a user