Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-01-19 00:09:13 +00:00 committed by GitHub
commit 4ce5d01652
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
86 changed files with 2095 additions and 1145 deletions

View file

@ -2,35 +2,33 @@
rec {
/* Print a trace message if pred is false.
/* Throw if pred is false, else return pred.
Intended to be used to augment asserts with helpful error messages.
Example:
assertMsg false "nope"
=> false
stderr> trace: nope
stderr> error: nope
assert (assertMsg ("foo" == "bar") "foo is not bar, silly"); ""
stderr> trace: foo is not bar, silly
stderr> assert failed at
assert assertMsg ("foo" == "bar") "foo is not bar, silly"; ""
stderr> error: foo is not bar, silly
Type:
assertMsg :: Bool -> String -> Bool
*/
# TODO(Profpatsch): add tests that check stderr
assertMsg = pred: msg:
if pred
then true
else builtins.trace msg false;
pred || builtins.throw msg;
/* Specialized `assertMsg` for checking if val is one of the elements
of a list. Useful for checking enums.
Example:
let sslLibrary = "libressl"
let sslLibrary = "libressl";
in assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ]
=> false
stderr> trace: sslLibrary must be one of "openssl", "bearssl", but is: "libressl"
stderr> error: sslLibrary must be one of [
stderr> "openssl"
stderr> "bearssl"
stderr> ], but is: "libressl"
Type:
assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool

View file

@ -4256,6 +4256,16 @@
githubId = 1313787;
name = "Gabriel Gonzalez";
};
gador = {
email = "florian.brandes@posteo.de";
github = "gador";
githubId = 1883533;
name = "Florian Brandes";
keys = [{
longkeyid = "rsa4096/0xBBB3E40E53797FD9";
fingerprint = "0200 3EF8 8D2B CF2D 8F00 FFDC BBB3 E40E 5379 7FD9";
}];
};
gal_bolle = {
email = "florent.becker@ens-lyon.org";
github = "FlorentBecker";
@ -4455,6 +4465,16 @@
githubId = 1621335;
name = "Andrew Trachenko";
};
gordias = {
name = "Gordias";
email = "gordias@disroot.org";
github = "NotGordias";
githubId = 94724133;
keys = [{
longkeyid = "ed25519/0x5D47284830FAA4FA";
fingerprint = "C006 B8A0 0618 F3B6 E0E4 2ECD 5D47 2848 30FA A4FA";
}];
};
govanify = {
name = "Gauvain 'GovanifY' Roussel-Tarbouriech";
email = "gauvain@govanify.com";

View file

@ -32,10 +32,14 @@
</listitem>
<listitem>
<para>
Mattermost has been updated to version 6.2. Migrations may
take a while, see the
<link xlink:href="https://docs.mattermost.com/install/self-managed-changelog.html#release-v6.2-feature-release">upgrade
notes</link>.
Mattermost has been updated to extended support release 6.3,
as the previously packaged extended support release 5.37 is
<link xlink:href="https://docs.mattermost.com/upgrade/extended-support-release.html">reaching
its end of life</link>. Migrations may take a while, see the
<link xlink:href="https://docs.mattermost.com/install/self-managed-changelog.html#release-v6-3-extended-support-release">changelog</link>
and
<link xlink:href="https://docs.mattermost.com/upgrade/important-upgrade-notes.html">important
upgrade notes</link>.
</para>
</listitem>
</itemizedlist>
@ -387,6 +391,35 @@
<literal>reloadIfChanged</literal> of the units.
</para>
</listitem>
<listitem>
<para>
The <literal>services.bookstack.cacheDir</literal> option has
been removed, since the cache directory is now handled by
systemd.
</para>
</listitem>
<listitem>
<para>
The <literal>services.bookstack.extraConfig</literal> option
has been replaced by
<literal>services.bookstack.config</literal> which implements
a
<link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link>
configuration.
</para>
</listitem>
<listitem>
<para>
<literal>lib.assertMsg</literal> and
<literal>lib.assertOneOf</literal> no longer return
<literal>false</literal> if the passed condition is
<literal>false</literal>, <literal>throw</literal>ing the
given error message instead (which makes the resulting error
message less cluttered). This will not impact the behaviour of
code using these functions as intended, namely as top-level
wrapper for <literal>assert</literal> conditions.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.05-notable-changes">
@ -530,6 +563,14 @@
renamed to <literal>linux-firmware</literal>.
</para>
</listitem>
<listitem>
<para>
The <literal>services.mbpfan</literal> module was converted to
a
<link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
0042</link> configuration.
</para>
</listitem>
<listitem>
<para>
A new module was added for the
@ -539,6 +580,13 @@
<literal>programs.starship.settings</literal>.
</para>
</listitem>
<listitem>
<para>
<literal>services.mattermost.plugins</literal> has been added
to allow the declarative installation of Mattermost plugins.
Plugins are automatically repackaged using autoPatchelf.
</para>
</listitem>
<listitem>
<para>
The <literal>zrepl</literal> package has been updated from
@ -564,6 +612,17 @@
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Renamed option
<literal>services.openssh.challengeResponseAuthentication</literal>
to
<literal>services.openssh.kbdInteractiveAuthentication</literal>.
Reason is that the old name has been deprecated upstream.
Using the old option name will still work, but produce a
warning.
</para>
</listitem>
</itemizedlist>
</section>
</section>

View file

@ -13,8 +13,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- PHP 8.1 is now available
- Mattermost has been updated to version 6.2. Migrations may take a while,
see the [upgrade notes](https://docs.mattermost.com/install/self-managed-changelog.html#release-v6.2-feature-release).
- Mattermost has been updated to extended support release 6.3, as the previously packaged extended support release 5.37 is [reaching its end of life](https://docs.mattermost.com/upgrade/extended-support-release.html).
Migrations may take a while, see the [changelog](https://docs.mattermost.com/install/self-managed-changelog.html#release-v6-3-extended-support-release)
and [important upgrade notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html).
## New Services {#sec-release-22.05-new-services}
@ -52,6 +53,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [rstudio-server](https://www.rstudio.com/products/rstudio/#rstudio-server), a browser-based version of the RStudio IDE for the R programming language. Available as [services.rstudio-server](options.html#opt-services.rstudio-server.enable).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
- `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`.
@ -121,6 +124,18 @@ In addition to numerous new and upgraded packages, this release has the followin
- The interface that allows activation scripts to restart units has been reworked. Restarting and reloading is now done by a single file `/run/nixos/activation-restart-list` that honors `restartIfChanged` and `reloadIfChanged` of the units.
- The `services.bookstack.cacheDir` option has been removed, since the
cache directory is now handled by systemd.
- The `services.bookstack.extraConfig` option has been replaced by
`services.bookstack.config` which implements a
[settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)
configuration.
- `lib.assertMsg` and `lib.assertOneOf` no longer return `false` if the passed condition is `false`, `throw`ing the given error message instead (which makes the resulting error message less cluttered). This will not impact the behaviour of code using these functions as intended, namely as top-level wrapper for `assert` conditions.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Other Notable Changes {#sec-release-22.05-notable-changes}
- The option [services.redis.servers](#opt-services.redis.servers) was added
@ -183,9 +198,20 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `firmwareLinuxNonfree` package has been renamed to `linux-firmware`.
- The `services.mbpfan` module was converted to a [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
- A new module was added for the [Starship](https://starship.rs/) shell prompt,
providing the options `programs.starship.enable` and `programs.starship.settings`.
- `services.mattermost.plugins` has been added to allow the declarative installation of Mattermost plugins.
Plugins are automatically repackaged using autoPatchelf.
- The `zrepl` package has been updated from 0.4.0 to 0.5:
* The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
* A bug involving encrypt-on-receive has been fixed. Read the [zrepl documentation](https://zrepl.github.io/configuration/sendrecvoptions.html#job-recv-options-placeholder) and check the output of `zfs get -r encryption,zrepl:placeholder PATH_TO_ROOTFS` on the receiver.
- Renamed option `services.openssh.challengeResponseAuthentication` to `services.openssh.kbdInteractiveAuthentication`.
Reason is that the old name has been deprecated upstream.
Using the old option name will still work, but produce a warning.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View file

@ -22,8 +22,15 @@ let
'';
};
scudo = {
libPath = "${pkgs.llvmPackages_latest.compiler-rt}/lib/linux/libclang_rt.scudo-x86_64.so";
scudo = let
platformMap = {
aarch64-linux = "aarch64";
x86_64-linux = "x86_64";
};
systemPlatform = platformMap.${pkgs.stdenv.hostPlatform.system} or (throw "scudo not supported on ${pkgs.stdenv.hostPlatform.system}");
in {
libPath = "${pkgs.llvmPackages_latest.compiler-rt}/lib/linux/libclang_rt.scudo-${systemPlatform}.so";
description = ''
A user-mode allocator based on LLVM Sanitizers CombinedAllocator,
which aims at providing additional mitigations against heap based

View file

@ -968,6 +968,7 @@
./services/security/vault.nix
./services/security/vaultwarden/default.nix
./services/security/yubikey-agent.nix
./services/system/cachix-agent/default.nix
./services/system/cloud-init.nix
./services/system/dbus.nix
./services/system/earlyoom.nix

View file

@ -7,7 +7,7 @@ let
inherit (lib.modules) mkDefault mkIf;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.strings) concatStringsSep optionalString toLower;
inherit (lib.types) addCheck attrsOf lines nullOr package path port str strMatching submodule;
inherit (lib.types) addCheck attrsOf lines nonEmptyStr nullOr package path port str strMatching submodule;
# Checks if given list of strings contains unique
# elements when compared without considering case.
@ -35,7 +35,7 @@ let
'';
};
options.server = mkOption {
type = strMatching ".+";
type = nonEmptyStr;
example = "tsmserver.company.com";
description = ''
Host/domain name or IP address of the IBM TSM server.
@ -56,7 +56,7 @@ let
'';
};
options.node = mkOption {
type = strMatching ".+";
type = nonEmptyStr;
example = "MY-TSM-NODE";
description = ''
Target node name on the IBM TSM server.
@ -144,7 +144,7 @@ let
};
config.name = mkDefault name;
# Client system-options file directives are explained here:
# https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.8/client/c_opt_usingopts.html
# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=commands-processing-options
config.extraConfig =
mapAttrs (lib.trivial.const mkDefault) (
{

View file

@ -99,7 +99,18 @@ let
BORG_REPO = cfg.repo;
inherit (cfg) extraArgs extraInitArgs extraCreateArgs extraPruneArgs;
} // (mkPassEnv cfg) // cfg.environment;
inherit (cfg) startAt;
};
mkBackupTimers = name: cfg:
nameValuePair "borgbackup-job-${name}" {
description = "BorgBackup job ${name} timer";
wantedBy = [ "timers.target" ];
timerConfig = {
Persistent = cfg.persistentTimer;
OnCalendar = cfg.startAt;
};
# if remote-backup wait for network
after = optional (cfg.persistentTimer && !isLocalPath cfg.repo) "network-online.target";
};
# utility function around makeWrapper
@ -321,6 +332,19 @@ in {
'';
};
persistentTimer = mkOption {
default = false;
type = types.bool;
example = true;
description = literalDocBook ''
Set the <literal>persistentTimer</literal> option for the
<citerefentry><refentrytitle>systemd.timer</refentrytitle>
<manvolnum>5</manvolnum></citerefentry>
which triggers the backup immediately if the last trigger
was missed (e.g. if the system was powered down).
'';
};
user = mkOption {
type = types.str;
description = ''
@ -695,6 +719,10 @@ in {
# A repo named "foo" is mapped to systemd.services.borgbackup-repo-foo
// mapAttrs' mkRepoService repos;
# A job named "foo" is mapped to systemd.timers.borgbackup-job-foo
# only generate the timer if interval (startAt) is set
systemd.timers = mapAttrs' mkBackupTimers (filterAttrs (_: cfg: cfg.startAt != []) jobs);
users = mkMerge (mapAttrsToList mkUsersConfig repos);
environment.systemPackages = with pkgs; [ borgbackup ] ++ (mapAttrsToList mkBorgWrapper jobs);

View file

@ -5,7 +5,7 @@ let
inherit (lib.attrsets) hasAttr;
inherit (lib.modules) mkDefault mkIf;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) nullOr strMatching;
inherit (lib.types) nonEmptyStr nullOr;
options.services.tsmBackup = {
enable = mkEnableOption ''
@ -15,7 +15,7 @@ let
<option>programs.tsmClient.enable</option>
'';
command = mkOption {
type = strMatching ".+";
type = nonEmptyStr;
default = "backup";
example = "incr";
description = ''
@ -24,7 +24,7 @@ let
'';
};
servername = mkOption {
type = strMatching ".+";
type = nonEmptyStr;
example = "mainTsmServer";
description = ''
Create a systemd system service
@ -41,7 +41,7 @@ let
'';
};
autoTime = mkOption {
type = nullOr (strMatching ".+");
type = nullOr nonEmptyStr;
default = null;
example = "12:00";
description = ''
@ -87,16 +87,35 @@ in
environment.DSM_LOG = "/var/log/tsm-backup/";
# TSM needs a HOME dir to store certificates.
environment.HOME = "/var/lib/tsm-backup";
# for exit status description see
# https://www.ibm.com/support/knowledgecenter/en/SSEQVQ_8.1.8/client/c_sched_rtncode.html
serviceConfig.SuccessExitStatus = "4 8";
# The `-se` option must come after the command.
# The `-optfile` option suppresses a `dsm.opt`-not-found warning.
serviceConfig.ExecStart =
"${cfgPrg.wrappedPackage}/bin/dsmc ${cfg.command} -se='${cfg.servername}' -optfile=/dev/null";
serviceConfig.LogsDirectory = "tsm-backup";
serviceConfig.StateDirectory = "tsm-backup";
serviceConfig.StateDirectoryMode = "0750";
serviceConfig = {
# for exit status description see
# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=clients-client-return-codes
SuccessExitStatus = "4 8";
# The `-se` option must come after the command.
# The `-optfile` option suppresses a `dsm.opt`-not-found warning.
ExecStart =
"${cfgPrg.wrappedPackage}/bin/dsmc ${cfg.command} -se='${cfg.servername}' -optfile=/dev/null";
LogsDirectory = "tsm-backup";
StateDirectory = "tsm-backup";
StateDirectoryMode = "0750";
# systemd sandboxing
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
#PrivateTmp = true; # would break backup of {/var,}/tmp
#PrivateUsers = true; # would block backup of /home/*
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = "read-only";
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "noaccess";
ProtectSystem = "strict";
RestrictNamespaces = true;
RestrictSUIDSGID = true;
};
startAt = mkIf (cfg.autoTime!=null) cfg.autoTime;
};
};

View file

@ -84,7 +84,7 @@ in
} // (if ((lib.getName cfg.package) == (lib.getName pkgs.ananicy-cpp)) then {
# https://gitlab.com/ananicy-cpp/ananicy-cpp/-/blob/master/src/config.cpp#L12
loglevel = mkOD "warn"; # default is info but its spammy
cgroup_realtime_workaround = mkOD true;
cgroup_realtime_workaround = mkOD config.systemd.enableUnifiedCgroupHierarchy;
} else {
# https://github.com/Nefelim4ag/Ananicy/blob/master/ananicy.d/ananicy.conf
check_disks_schedulers = mkOD true;

View file

@ -23,7 +23,7 @@ let
in
{
options.services.heisenbridge = {
enable = mkEnableOption "A bouncer-style Matrix IRC bridge";
enable = mkEnableOption "the Matrix to IRC bridge";
package = mkOption {
type = types.package;
@ -172,25 +172,39 @@ in
++ (map (lib.escapeShellArg) cfg.extraArgs)
);
ProtectHome = true;
PrivateDevices = true;
ProtectKernelTunables = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
StateDirectory = "heisenbridge";
StateDirectoryMode = "755";
# Hardening options
User = "heisenbridge";
Group = "heisenbridge";
RuntimeDirectory = "heisenbridge";
RuntimeDirectoryMode = "0700";
StateDirectory = "heisenbridge";
StateDirectoryMode = "0755";
CapabilityBoundingSet = [ "CAP_CHOWN" ] ++ optional (cfg.port < 1024 || cfg.identd.port < 1024) "CAP_NET_BIND_SERVICE";
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
RestrictSUIDSGID = true;
PrivateMounts = true;
ProtectKernelModules = true;
ProtectKernelLogs = true;
ProtectHostname = true;
ProtectClock = true;
ProtectProc = "invisible";
ProcSubset = "pid";
RestrictNamespaces = true;
RemoveIPC = true;
UMask = "0077";
CapabilityBoundingSet = [ "CAP_CHOWN" ] ++ optional (cfg.port < 1024 || (cfg.identd.enable && cfg.identd.port < 1024)) "CAP_NET_BIND_SERVICE";
AmbientCapabilities = CapabilityBoundingSet;
NoNewPrivileges = true;
LockPersonality = true;
RestrictRealtime = true;
PrivateMounts = true;
SystemCallFilter = "~@aio @clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @setuid @swap";
SystemCallFilter = ["@system-service" "~@priviledged" "@chown"];
SystemCallArchitectures = "native";
RestrictAddressFamilies = "AF_INET AF_INET6";
};

View file

@ -5,6 +5,8 @@ with lib;
let
cfg = config.services.mbpfan;
verbose = if cfg.verbose then "v" else "";
settingsFormat = pkgs.formats.ini {};
settingsFile = settingsFormat.generate "config.conf" cfg.settings;
in {
options.services.mbpfan = {
@ -19,54 +21,6 @@ in {
'';
};
minFanSpeed = mkOption {
type = types.int;
default = 2000;
description = ''
The minimum fan speed.
'';
};
maxFanSpeed = mkOption {
type = types.int;
default = 6200;
description = ''
The maximum fan speed.
'';
};
lowTemp = mkOption {
type = types.int;
default = 63;
description = ''
The low temperature.
'';
};
highTemp = mkOption {
type = types.int;
default = 66;
description = ''
The high temperature.
'';
};
maxTemp = mkOption {
type = types.int;
default = 86;
description = ''
The maximum temperature.
'';
};
pollingInterval = mkOption {
type = types.int;
default = 7;
description = ''
The polling interval.
'';
};
verbose = mkOption {
type = types.bool;
default = false;
@ -74,23 +28,61 @@ in {
If true, sets the log level to verbose.
'';
};
settings = mkOption {
default = {};
description = "The INI configuration for Mbpfan.";
type = types.submodule {
freeformType = settingsFormat.type;
options.general.min_fan1_speed = mkOption {
type = types.int;
default = 2000;
description = "The minimum fan speed.";
};
options.general.max_fan1_speed = mkOption {
type = types.int;
default = 6199;
description = "The maximum fan speed.";
};
options.general.low_temp = mkOption {
type = types.int;
default = 55;
description = "The low temperature.";
};
options.general.high_temp = mkOption {
type = types.int;
default = 58;
description = "The high temperature.";
};
options.general.max_temp = mkOption {
type = types.int;
default = 86;
description = "The maximum temperature.";
};
options.general.polling_interval = mkOption {
type = types.int;
default = 1;
description = "The polling interval.";
};
};
};
};
imports = [
(mkRenamedOptionModule [ "services" "mbpfan" "pollingInterval" ] [ "services" "mbpfan" "settings" "general" "polling_interval" ])
(mkRenamedOptionModule [ "services" "mbpfan" "maxTemp" ] [ "services" "mbpfan" "settings" "general" "max_temp" ])
(mkRenamedOptionModule [ "services" "mbpfan" "lowTemp" ] [ "services" "mbpfan" "settings" "general" "low_temp" ])
(mkRenamedOptionModule [ "services" "mbpfan" "highTemp" ] [ "services" "mbpfan" "settings" "general" "high_temp" ])
(mkRenamedOptionModule [ "services" "mbpfan" "minFanSpeed" ] [ "services" "mbpfan" "settings" "general" "min_fan1_speed" ])
(mkRenamedOptionModule [ "services" "mbpfan" "maxFanSpeed" ] [ "services" "mbpfan" "settings" "general" "max_fan1_speed" ])
];
config = mkIf cfg.enable {
boot.kernelModules = [ "coretemp" "applesmc" ];
environment = {
etc."mbpfan.conf".text = ''
[general]
min_fan_speed = ${toString cfg.minFanSpeed}
max_fan_speed = ${toString cfg.maxFanSpeed}
low_temp = ${toString cfg.lowTemp}
high_temp = ${toString cfg.highTemp}
max_temp = ${toString cfg.maxTemp}
polling_interval = ${toString cfg.pollingInterval}
'';
systemPackages = [ cfg.package ];
};
environment.etc."mbpfan.conf".source = settingsFile;
environment.systemPackages = [ cfg.package ];
systemd.services.mbpfan = {
description = "A fan manager daemon for MacBook Pro";

View file

@ -26,6 +26,12 @@ in
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = "Open ports in the firewall for nix-serve.";
};
secretKeyFile = mkOption {
type = types.nullOr types.str;
default = null;
@ -77,5 +83,9 @@ in
"NIX_SECRET_KEY_FILE:${cfg.secretKeyFile}";
};
};
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
};
}

View file

@ -81,6 +81,7 @@ in
imports = [
(mkAliasOptionModule [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ])
(mkAliasOptionModule [ "services" "openssh" "knownHosts" ] [ "programs" "ssh" "knownHosts" ])
(mkRenamedOptionModule [ "services" "openssh" "challengeResponseAuthentication" ] [ "services" "openssh" "kbdInteractiveAuthentication" ])
];
###### interface
@ -218,11 +219,11 @@ in
'';
};
challengeResponseAuthentication = mkOption {
kbdInteractiveAuthentication = mkOption {
type = types.bool;
default = true;
description = ''
Specifies whether challenge/response authentication is allowed.
Specifies whether keyboard-interactive authentication is allowed.
'';
};
@ -534,7 +535,7 @@ in
PermitRootLogin ${cfg.permitRootLogin}
GatewayPorts ${cfg.gatewayPorts}
PasswordAuthentication ${if cfg.passwordAuthentication then "yes" else "no"}
ChallengeResponseAuthentication ${if cfg.challengeResponseAuthentication then "yes" else "no"}
KbdInteractiveAuthentication ${if cfg.kbdInteractiveAuthentication then "yes" else "no"}
PrintMotd no # handled by pam_motd

View file

@ -468,7 +468,7 @@ in {
default = false;
example = true;
description = ''
Whether to open the default ports in the firewall: TCP 22000 for transfers
Whether to open the default ports in the firewall: TCP/UDP 22000 for transfers
and UDP 21027 for discovery.
If multiple users are running Syncthing on this machine, you will need
@ -504,7 +504,7 @@ in {
networking.firewall = mkIf cfg.openDefaultPorts {
allowedTCPPorts = [ 22000 ];
allowedUDPPorts = [ 21027 ];
allowedUDPPorts = [ 21027 22000 ];
};
systemd.packages = [ pkgs.syncthing ];

View file

@ -0,0 +1,57 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.cachix-agent;
in {
meta.maintainers = [ lib.maintainers.domenkozar ];
options.services.cachix-agent = {
enable = mkEnableOption "Cachix Deploy Agent: https://docs.cachix.org/deploy/";
name = mkOption {
type = types.str;
description = "Agent name, usually same as the hostname";
default = config.networking.hostName;
defaultText = "config.networking.hostName";
};
profile = mkOption {
type = types.nullOr types.str;
default = null;
description = "Profile name, defaults to 'system' (NixOS).";
};
package = mkOption {
type = types.package;
default = pkgs.cachix;
defaultText = literalExpression "pkgs.cachix";
description = "Cachix Client package to use.";
};
credentialsFile = mkOption {
type = types.path;
default = "/etc/cachix-agent.token";
description = ''
Required file that needs to contain CACHIX_AGENT_TOKEN=...
'';
};
};
config = mkIf cfg.enable {
systemd.services.cachix-agent = {
description = "Cachix Deploy Agent";
after = ["network-online.target"];
path = [ config.nix.package ];
wantedBy = [ "multi-user.target" ];
# don't restart while changing
reloadIfChanged = true;
serviceConfig = {
Restart = "on-failure";
EnvironmentFile = cfg.credentialsFile;
ExecStart = "${cfg.package}/bin/cachix deploy agent ${cfg.name} ${if cfg.profile != null then profile else ""}";
};
};
};
}

View file

@ -24,8 +24,14 @@ let
$sudo ${pkgs.php}/bin/php artisan $*
'';
tlsEnabled = cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME;
in {
imports = [
(mkRemovedOptionModule [ "services" "bookstack" "extraConfig" ] "Use services.bookstack.config instead.")
(mkRemovedOptionModule [ "services" "bookstack" "cacheDir" ] "The cache directory is now handled automatically.")
];
options.services.bookstack = {
enable = mkEnableOption "BookStack";
@ -44,28 +50,38 @@ in {
appKeyFile = mkOption {
description = ''
A file containing the AppKey.
Used for encryption where needed. Can be generated with <code>head -c 32 /dev/urandom| base64</code> and must be prefixed with <literal>base64:</literal>.
A file containing the Laravel APP_KEY - a 32 character long,
base64 encoded key used for encryption where needed. Can be
generated with <code>head -c 32 /dev/urandom | base64</code>.
'';
example = "/run/keys/bookstack-appkey";
type = types.path;
};
hostname = lib.mkOption {
type = lib.types.str;
default = if config.networking.domain != null then
config.networking.fqdn
else
config.networking.hostName;
defaultText = lib.literalExpression "config.networking.fqdn";
example = "bookstack.example.com";
description = ''
The hostname to serve BookStack on.
'';
};
appURL = mkOption {
description = ''
The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <code>php artisan bookstack:update-url https://old.example.com https://new.example.com</code>
'';
default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
defaultText = ''http''${lib.optionalString tlsEnabled "s"}://''${cfg.hostname}'';
example = "https://example.com";
type = types.str;
};
cacheDir = mkOption {
description = "BookStack cache directory";
default = "/var/cache/bookstack";
type = types.path;
};
dataDir = mkOption {
description = "BookStack data directory";
default = "/var/lib/bookstack";
@ -202,16 +218,59 @@ in {
'';
};
extraConfig = mkOption {
type = types.nullOr types.lines;
default = null;
example = ''
ALLOWED_IFRAME_HOSTS="https://example.com"
WKHTMLTOPDF=/home/user/bins/wkhtmltopdf
config = mkOption {
type = with types;
attrsOf
(nullOr
(either
(oneOf [
bool
int
port
path
str
])
(submodule {
options = {
_secret = mkOption {
type = nullOr str;
description = ''
The path to a file containing the value the
option should be set to in the final
configuration file.
'';
};
};
})));
default = {};
example = literalExpression ''
{
ALLOWED_IFRAME_HOSTS = "https://example.com";
WKHTMLTOPDF = "/home/user/bins/wkhtmltopdf";
AUTH_METHOD = "oidc";
OIDC_NAME = "MyLogin";
OIDC_DISPLAY_NAME_CLAIMS = "name";
OIDC_CLIENT_ID = "bookstack";
OIDC_CLIENT_SECRET = {_secret = "/run/keys/oidc_secret"};
OIDC_ISSUER = "https://keycloak.example.com/auth/realms/My%20Realm";
OIDC_ISSUER_DISCOVER = true;
}
'';
description = ''
Lines to be appended verbatim to the BookStack configuration.
Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/> for details on supported values.
BookStack configuration options to set in the
<filename>.env</filename> file.
Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/>
for details on supported values.
Settings containing secret data should be set to an attribute
set containing the attribute <literal>_secret</literal> - a
string pointing to a file containing the value the option
should be set to. See the example to get a better picture of
this: in the resulting <filename>.env</filename> file, the
<literal>OIDC_CLIENT_SECRET</literal> key will be set to the
contents of the <filename>/run/keys/oidc_secret</filename>
file.
'';
};
@ -228,6 +287,30 @@ in {
}
];
services.bookstack.config = {
APP_KEY._secret = cfg.appKeyFile;
APP_URL = cfg.appURL;
DB_HOST = db.host;
DB_PORT = db.port;
DB_DATABASE = db.name;
DB_USERNAME = db.user;
MAIL_DRIVER = mail.driver;
MAIL_FROM_NAME = mail.fromName;
MAIL_FROM = mail.from;
MAIL_HOST = mail.host;
MAIL_PORT = mail.port;
MAIL_USERNAME = mail.user;
MAIL_ENCRYPTION = mail.encryption;
DB_PASSWORD._secret = db.passwordFile;
MAIL_PASSWORD._secret = mail.passwordFile;
APP_SERVICES_CACHE = "/run/bookstack/cache/services.php";
APP_PACKAGES_CACHE = "/run/bookstack/cache/packages.php";
APP_CONFIG_CACHE = "/run/bookstack/cache/config.php";
APP_ROUTES_CACHE = "/run/bookstack/cache/routes-v7.php";
APP_EVENTS_CACHE = "/run/bookstack/cache/events.php";
SESSION_SECURE_COOKIE = tlsEnabled;
};
environment.systemPackages = [ artisan ];
services.mysql = mkIf db.createLocally {
@ -258,24 +341,19 @@ in {
services.nginx = {
enable = mkDefault true;
virtualHosts.bookstack = mkMerge [ cfg.nginx {
recommendedTlsSettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
virtualHosts.${cfg.hostname} = mkMerge [ cfg.nginx {
root = mkForce "${bookstack}/public";
extraConfig = optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
locations = {
"/" = {
index = "index.php";
extraConfig = ''try_files $uri $uri/ /index.php?$query_string;'';
};
"~ \.php$" = {
extraConfig = ''
try_files $uri $uri/ /index.php?$query_string;
include ${pkgs.nginx}/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
'';
tryFiles = "$uri $uri/ /index.php?$query_string";
};
"~ \.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
'';
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
@ -290,50 +368,54 @@ in {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
User = user;
WorkingDirectory = "${bookstack}";
RuntimeDirectory = "bookstack/cache";
RuntimeDirectoryMode = 0700;
};
script = ''
path = [ pkgs.replace-secret ];
script =
let
isSecret = v: isAttrs v && v ? _secret && isString v._secret;
bookstackEnvVars = lib.generators.toKeyValue {
mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
mkValueString = v: with builtins;
if isInt v then toString v
else if isString v then v
else if true == v then "true"
else if false == v then "false"
else if isSecret v then v._secret
else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
};
};
secretPaths = lib.mapAttrsToList (_: v: v._secret) (lib.filterAttrs (_: isSecret) cfg.config);
mkSecretReplacement = file: ''
replace-secret ${escapeShellArgs [ file file "${cfg.dataDir}/.env" ]}
'';
secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ {} null ])) cfg.config;
bookstackEnv = pkgs.writeText "bookstack.env" (bookstackEnvVars filteredConfig);
in ''
# error handling
set -euo pipefail
# set permissions
umask 077
# create .env file
echo "
APP_KEY=base64:$(head -n1 ${cfg.appKeyFile})
APP_URL=${cfg.appURL}
DB_HOST=${db.host}
DB_PORT=${toString db.port}
DB_DATABASE=${db.name}
DB_USERNAME=${db.user}
MAIL_DRIVER=${mail.driver}
MAIL_FROM_NAME=\"${mail.fromName}\"
MAIL_FROM=${mail.from}
MAIL_HOST=${mail.host}
MAIL_PORT=${toString mail.port}
${optionalString (mail.user != null) "MAIL_USERNAME=${mail.user};"}
${optionalString (mail.encryption != null) "MAIL_ENCRYPTION=${mail.encryption};"}
${optionalString (db.passwordFile != null) "DB_PASSWORD=$(head -n1 ${db.passwordFile})"}
${optionalString (mail.passwordFile != null) "MAIL_PASSWORD=$(head -n1 ${mail.passwordFile})"}
APP_SERVICES_CACHE=${cfg.cacheDir}/services.php
APP_PACKAGES_CACHE=${cfg.cacheDir}/packages.php
APP_CONFIG_CACHE=${cfg.cacheDir}/config.php
APP_ROUTES_CACHE=${cfg.cacheDir}/routes-v7.php
APP_EVENTS_CACHE=${cfg.cacheDir}/events.php
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "SESSION_SECURE_COOKIE=true"}
${toString cfg.extraConfig}
" > "${cfg.dataDir}/.env"
install -T -m 0600 -o ${user} ${bookstackEnv} "${cfg.dataDir}/.env"
${secretReplacements}
if ! grep 'APP_KEY=base64:' "${cfg.dataDir}/.env" >/dev/null; then
sed -i 's/APP_KEY=/APP_KEY=base64:/' "${cfg.dataDir}/.env"
fi
# migrate db
${pkgs.php}/bin/php artisan migrate --force
# clear & create caches (needed in case of update)
${pkgs.php}/bin/php artisan cache:clear
${pkgs.php}/bin/php artisan config:clear
${pkgs.php}/bin/php artisan view:clear
'';
};
systemd.tmpfiles.rules = [
"d ${cfg.cacheDir} 0700 ${user} ${group} - -"
"d ${cfg.dataDir} 0710 ${user} ${group} - -"
"d ${cfg.dataDir}/public 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/public/uploads 0750 ${user} ${group} - -"

File diff suppressed because it is too large Load diff

View file

@ -181,7 +181,7 @@ in
description = ''
Plugins to add to the configuration. Overrides any installed if non-null.
This is a list of paths to .tar.gz files or derivations evaluating to
.tar.gz files. All entries will be passed to `mattermost plugin add`.
.tar.gz files.
'';
};

View file

@ -490,6 +490,7 @@ in
trezord = handleTest ./trezord.nix {};
trickster = handleTest ./trickster.nix {};
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
tsm-client-gui = handleTest ./tsm-client-gui.nix {};
txredisapi = handleTest ./txredisapi.nix {};
tuptime = handleTest ./tuptime.nix {};
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};

View file

@ -106,7 +106,7 @@ in {
services.openssh = {
enable = true;
passwordAuthentication = false;
challengeResponseAuthentication = false;
kbdInteractiveAuthentication = false;
};
services.borgbackup.repos.repo1 = {

View file

@ -53,7 +53,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
services.openssh = {
enable = true;
passwordAuthentication = false;
challengeResponseAuthentication = false;
kbdInteractiveAuthentication = false;
};
services.btrbk = {
extraPackages = [ pkgs.lz4 ];

View file

@ -17,7 +17,7 @@ in {
};
services.openssh.enable = true;
services.openssh.challengeResponseAuthentication = false;
services.openssh.kbdInteractiveAuthentication = false;
services.openssh.passwordAuthentication = false;
security.googleOsLogin.enable = true;

View file

@ -0,0 +1,57 @@
# The tsm-client GUI first tries to connect to a server.
# We can't simulate a server, so we just check if
# it reports the correct connection failure error.
# After that the test persuades the GUI
# to show its main application window
# and verifies some configuration information.
import ./make-test-python.nix ({ lib, pkgs, ... }: {
name = "tsm-client";
enableOCR = true;
machine = { pkgs, ... }: {
imports = [ ./common/x11.nix ];
programs.tsmClient = {
enable = true;
package = pkgs.tsm-client-withGui;
defaultServername = "testserver";
servers.testserver = {
# 192.0.0.8 is a "dummy address" according to RFC 7600
server = "192.0.0.8";
node = "SOME-NODE";
passwdDir = "/tmp";
};
};
};
testScript = ''
machine.succeed("which dsmj") # fail early if this is missing
machine.wait_for_x()
machine.execute("DSM_LOG=/tmp dsmj -optfile=/dev/null >&2 &")
# does it report the "TCP/IP connection failure" error code?
machine.wait_for_window("IBM Spectrum Protect")
machine.wait_for_text("ANS2610S")
machine.send_key("esc")
# it asks to continue to restore a local backupset now;
# "yes" (return) leads to the main application window
machine.wait_for_text("backupset")
machine.send_key("ret")
# main window: navigate to "Connection Information"
machine.wait_for_text("Welcome")
machine.send_key("alt-f") # "File" menu
machine.send_key("c") # "Connection Information"
# "Connection Information" dialog box
machine.wait_for_window("Connection Information")
machine.wait_for_text("SOME-NODE")
machine.wait_for_text("${pkgs.tsm-client.passthru.unwrapped.version}")
machine.shutdown()
'';
meta.maintainers = [ lib.maintainers.yarny ];
})

View file

@ -1,40 +1,46 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, fetchzip
, libjack2, alsa-lib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
, libGL, python3, ncurses, libusb1
, gtk3, webkitgtk, curl, xvfb-run, makeWrapper
# "Debug", or "Release"
, buildType ? "Release"
{ lib
, stdenv
, fetchFromGitHub
, fetchzip
, cmake
, pkg-config
, ninja
, makeWrapper
, libjack2
, alsa-lib
, alsa-tools
, freetype
, libusb1
, libX11
, libXrandr
, libXinerama
, libXext
, libXcursor
, libXScrnSaver
, libGL
, libxcb
, xcbutil
, libxkbcommon
, xcbutilkeysyms
, xcb-util-cursor
, gtk3
, webkitgtk
, python3
, curl
, pcre
, mount
, gnome
, Cocoa
, WebKit
, CoreServices
, CoreAudioKit
# It is not allowed to distribute binaries with the VST2 SDK plugin without a license
# (the author of Bespoke has such a licence but not Nix). VST3 should work out of the box.
# Read more in https://github.com/NixOS/nixpkgs/issues/145607
, enableVST2 ? false
}:
let
projucer = stdenv.mkDerivation rec {
pname = "projucer";
version = "5.4.7";
src = fetchFromGitHub {
owner = "juce-framework";
repo = "JUCE";
rev = version;
sha256= "0qpiqfwwpcghk7ij6w4vy9ywr3ryg7ppg77bmd7783kxg6zbhj8h";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
freetype libX11 libXrandr libXinerama libXext gtk3 webkitgtk
libjack2 curl
];
preBuild = ''
cd extras/Projucer/Builds/LinuxMakefile
'';
makeFlags = [ "CONFIG=${buildType}" ];
enableParallelBuilding = true;
installPhase = ''
mkdir -p $out/bin
cp -a build/Projucer $out/bin/Projucer
'';
};
# equal to vst-sdk in ../oxefmsynth/default.nix
vst-sdk = stdenv.mkDerivation rec {
name = "vstsdk3610_11_06_2018_build_37";
@ -50,70 +56,92 @@ let
in
stdenv.mkDerivation rec {
pname = "bespokesynth";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "awwbees";
owner = "BespokeSynth";
repo = pname;
rev = "v${version}";
sha256 = "04b2m40jszphslkd4850jcb8qwls392lwy3lc6vlj01h4izvapqk";
sha256 = "sha256-PN0Q6/gI1PeMaF/8EZFGJdLR8JVHQZfWunAhOIQxkHw=";
fetchSubmodules = true;
};
configurePhase = ''
runHook preConfigure
cmakeBuildType = "Release";
export HOME=$(mktemp -d)
xvfb-run sh -e <<EOF
${projucer}/bin/Projucer --set-global-search-path linux defaultJuceModulePath ${projucer.src}/modules
${projucer}/bin/Projucer --resave BespokeSynth.jucer
EOF
cmakeFlags = lib.optionals enableVST2 [ "-DBESPOKE_VST2_SDK_LOCATION=${vst-sdk}/VST2_SDK" ];
runHook postConfigure
'';
CFLAGS = "-I${vst-sdk}/VST2_SDK";
nativeBuildInputs = [ python3 makeWrapper cmake pkg-config ninja ];
nativeBuildInputs = [ xvfb-run pkg-config python3 makeWrapper ];
buildInputs = [
libX11 libXrandr libXinerama libXext libXcursor freetype libGL
ncurses libusb1
alsa-lib libjack2
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
# List obtained in https://github.com/BespokeSynth/BespokeSynth/blob/main/azure-pipelines.yml
libX11
libXrandr
libXinerama
libXext
libXcursor
libXScrnSaver
curl
gtk3
webkitgtk
freetype
libGL
libusb1
alsa-lib
libjack2
gnome.zenity
alsa-tools
libxcb
xcbutil
libxkbcommon
xcbutilkeysyms
xcb-util-cursor
pcre
mount
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
WebKit
CoreServices
CoreAudioKit
];
preBuild = ''
cd Builds/LinuxMakefile
'';
makeFlags = [ "CONFIG=${buildType}" ];
enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin (toString [
# Fails to find fp.h on its own
"-isystem ${CoreServices}/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/CarbonCore.framework/Versions/Current/Headers/"
]);
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/bespokesynth $out/share/applications $out/share/icons/hicolor/512x512/apps
cp build/BespokeSynth $out/bin/
cp -ar ../MacOSX/build/Release/resource $out/share/bespokesynth/
wrapProgram $out/bin/BespokeSynth \
--run "cd $out/share/bespokesynth"
mkdir -p $out/share/applications/ $out/share/icons/hicolor/512x512/apps/
cp ../../bespoke_icon.png $out/share/icons/hicolor/512x512/apps/
substitute ../../BespokeSynth.desktop $out/share/applications/BespokseSynth.desktop \
--replace "/usr/bin/" ""
runHook postInstall
'';
postInstall =
if stdenv.hostPlatform.isDarwin then ''
mkdir -p $out/{Applications,bin}
mv Source/BespokeSynth_artefacts/${cmakeBuildType}/BespokeSynth.app $out/Applications/
# Symlinking confuses the resource finding about the actual location of the binary
# Resources are looked up relative to the executed file's location
makeWrapper $out/{Applications/BespokeSynth.app/Contents/MacOS,bin}/BespokeSynth
'' else ''
# Ensure zenity is available, or it won't be able to open new files.
# Ensure the python used for compilation is the same as the python used at run-time.
# jedi is also required for auto-completion.
# These X11 libs get dlopen'd, they cause visual bugs when unavailable.
wrapProgram $out/bin/BespokeSynth \
--prefix PATH : '${lib.makeBinPath [
gnome.zenity
(python3.withPackages (ps: with ps; [ jedi ]))
]}' \
--prefix LD_LIBRARY_PATH : '${lib.makeLibraryPath [
libXrandr
libXinerama
libXcursor
libXScrnSaver
]}'
'';
meta = with lib; {
description = "Software modular synth with controllers support, scripting and VST";
description =
"Software modular synth with controllers support, scripting and VST";
homepage = "https://github.com/awwbees/BespokeSynth";
license = with licenses; [
gpl3Plus
# This package is unfree and not distributable due to the license of VST2.
# see #145607
unfree
];
maintainers = with maintainers; [ astro ];
] ++ lib.optional enableVST2 unfree;
maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,60 @@
{ stdenv, lib, fetchurl, makeWrapper, makeDesktopItem, copyDesktopItems, electron }:
let
version = "0.13.0";
appIcon = fetchurl {
url = "https://raw.githubusercontent.com/Splode/pomotroid/v${version}/static/icon.png";
sha256 = "sha256-BEPoOBErw5ZCeK4rtdxdwZZLimbpglu1Cu++4xzuVUs=";
};
in stdenv.mkDerivation rec {
pname = "pomotroid";
inherit version;
src = fetchurl {
url = "https://github.com/Splode/pomotroid/releases/download/v${version}/${pname}-${version}-linux.tar.gz";
sha256 = "sha256-AwpVnvwWQd/cgmZvtr5NprnLyeXz6ym4Fywc808tcSc=";
};
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
desktopItems = [
(makeDesktopItem {
name = pname;
exec = "pomotroid";
icon = "pomotroid";
comment = meta.description;
desktopName = "Pomotroid";
genericName = "Pomodoro Application";
})
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/opt/pomotroid $out/share/pomotroid $out/share/pixmaps
cp -r ./ $out/opt/pomotroid
mv $out/opt/pomotroid/{locales,resources} $out/share/pomotroid
cp ${appIcon} $out/share/pixmaps/pomotroid.png
makeWrapper ${electron}/bin/electron $out/bin/pomotroid \
--add-flags $out/share/pomotroid/resources/app.asar
runHook postInstall
'';
meta = with lib; {
description = "Simple and visually-pleasing Pomodoro timer";
homepage = "https://splode.github.io/pomotroid";
license = licenses.mit;
maintainers = with maintainers; [ wolfangaukang ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -7,82 +7,97 @@
, cdrtools # libvirt
}:
let
list = lib.importJSON ./providers.json;
buildWithGoModule = data:
# Our generic constructor to build new providers.
#
# Is designed to combine with the terraform.withPlugins implementation.
mkProvider =
{ owner
, repo
, rev
, version
, sha256
, vendorSha256 ? throw "vendorSha256 missing: please use `buildGoModule`" /* added 2022/01 */
, deleteVendor ? false
, proxyVendor ? false
, provider-source-address
}@attrs:
buildGoModule {
pname = data.repo;
inherit (data) vendorSha256 version;
pname = repo;
inherit vendorSha256 version deleteVendor proxyVendor;
subPackages = [ "." ];
doCheck = false;
# https://github.com/hashicorp/terraform-provider-scaffolding/blob/a8ac8375a7082befe55b71c8cbb048493dd220c2/.goreleaser.yml
# goreleaser (used for builds distributed via terraform registry) requires that CGO is disabled
CGO_ENABLED = 0;
ldflags = [ "-s" "-w" "-X main.version=${data.version}" "-X main.commit=${data.rev}" ];
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${rev}" ];
src = fetchFromGitHub {
inherit (data) owner repo rev sha256;
inherit owner repo rev sha256;
};
deleteVendor = data.deleteVendor or false;
proxyVendor = data.proxyVendor or false;
# Terraform allow checking the provider versions, but this breaks
# if the versions are not provided via file paths.
postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}";
passthru = data;
postBuild = "mv $NIX_BUILD_TOP/go/bin/${repo}{,_v${version}}";
passthru = attrs;
};
# Our generic constructor to build new providers
mkProvider = attrs:
(if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else throw /* added 2022/01 */ "vendorSha256 missing: please use `buildGoModule`")
attrs;
list = lib.importJSON ./providers.json;
# These providers are managed with the ./update-all script
automated-providers = lib.mapAttrs (_: attrs: mkProvider attrs) list;
# These are the providers that don't fall in line with the default model
special-providers = let archived = throw "the provider has been archived by upstream"; in {
# Packages that don't fit the default model
gandi = callPackage ./gandi { };
# mkisofs needed to create ISOs holding cloud-init data,
# and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
teleport = callPackage ./teleport { };
vpsadmin = callPackage ./vpsadmin { };
} // (lib.optionalAttrs (config.allowAliases or false) {
arukas = archived; # added 2022/01
bitbucket = archived; # added 2022/01
chef = archived; # added 2022/01
cherryservers = archived; # added 2022/01
clc = archived; # added 2022/01
cloudstack = throw "removed from nixpkgs"; # added 2022/01
cobbler = archived; # added 2022/01
cohesity = archived; # added 2022/01
dyn = archived; # added 2022/01
genymotion = archived; # added 2022/01
hedvig = archived; # added 2022/01
ignition = archived; # added 2022/01
incapsula = archived; # added 2022/01
influxdb = archived; # added 2022/01
jdcloud = archived; # added 2022/01
kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details";
librato = archived; # added 2022/01
logentries = archived; # added 2022/01
metalcloud = archived; # added 2022/01
mysql = archived; # added 2022/01
nixos = archived; # added 2022/01
oneandone = archived; # added 2022/01
packet = archived; # added 2022/01
profitbricks = archived; # added 2022/01
pureport = archived; # added 2022/01
rancher = archived; # added 2022/01
rightscale = archived; # added 2022/01
runscope = archived; # added 2022/01
segment = throw "removed from nixpkgs"; # added 2022/01
softlayer = archived; # added 2022/01
telefonicaopencloud = archived; # added 2022/01
terraform = archived; # added 2022/01
ultradns = archived; # added 2022/01
vthunder = throw "provider was renamed to thunder"; # added 2022/01
});
special-providers =
{
# Packages that don't fit the default model
gandi = callPackage ./gandi { };
# mkisofs needed to create ISOs holding cloud-init data,
# and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
teleport = callPackage ./teleport { };
vpsadmin = callPackage ./vpsadmin { };
};
# Put all the providers we not longer support in this list.
removed-providers =
let
archived = date: throw "the provider has been archived by upstream on ${date}";
removed = date: throw "removed from nixpkgs on ${date}";
in
lib.optionalAttrs (config.allowAliases or false) {
arukas = archived "2022/01";
bitbucket = archived "2022/01";
chef = archived "2022/01";
cherryservers = archived "2022/01";
clc = archived "2022/01";
cloudstack = removed "2022/01";
cobbler = archived "2022/01";
cohesity = archived "2022/01";
dyn = archived "2022/01";
genymotion = archived "2022/01";
hedvig = archived "2022/01";
ignition = archived "2022/01";
incapsula = archived "2022/01";
influxdb = archived "2022/01";
jdcloud = archived "2022/01";
kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details";
librato = archived "2022/01";
logentries = archived "2022/01";
metalcloud = archived "2022/01";
mysql = archived "2022/01";
nixos = archived "2022/01";
oneandone = archived "2022/01";
packet = archived "2022/01";
profitbricks = archived "2022/01";
pureport = archived "2022/01";
rancher = archived "2022/01";
rightscale = archived "2022/01";
runscope = archived "2022/01";
segment = removed "2022/01";
softlayer = archived "2022/01";
telefonicaopencloud = archived "2022/01";
terraform = archived "2022/01";
ultradns = archived "2022/01";
vthunder = throw "provider was renamed to thunder on 2022/01";
};
in
automated-providers // special-providers // { inherit mkProvider; }
automated-providers // special-providers // removed-providers // { inherit mkProvider; }

View file

@ -160,20 +160,6 @@ rec {
# Constructor for other terraform versions
mkTerraform = attrs: pluggable (generic attrs);
terraform_0_12 = mkTerraform {
version = "0.12.31";
sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg";
patches = [
./provider-path.patch
(fetchpatch {
name = "fix-mac-mojave-crashes.patch";
url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch";
sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs";
})
];
passthru = { inherit plugins; };
};
terraform_0_13 = mkTerraform {
version = "0.13.7";
sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";

View file

@ -7,6 +7,7 @@
, fetchYarnDeps
, electron
, element-web
, sqlcipher
, callPackage
, Security
, AppKit
@ -78,7 +79,9 @@ mkYarnPackage rec {
ln -s "${desktopItem}/share/applications" "$out/share/applications"
# executable wrapper
# LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102
makeWrapper '${electron_exec}' "$out/bin/${executableName}" \
--set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \
--add-flags "$out/share/element/electron${lib.optionalString useWayland " --enable-features=UseOzonePlatform --ozone-platform=wayland"}"
'';
@ -94,7 +97,7 @@ mkYarnPackage rec {
name = "element-desktop";
exec = "${executableName} %u";
icon = "element";
desktopName = "Element (Riot)";
desktopName = "Element";
genericName = "Matrix Client";
comment = meta.description;
categories = "Network;InstantMessaging;Chat;";

View file

@ -19,16 +19,16 @@ let
maintainers = with maintainers; [ fliegendewurst ];
};
version = "0.49.4";
version = "0.49.5";
desktopSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
sha256 = "078w7jjkn8af3i0y0s236ky54h08b2wgzcaiakqiqx4gxdpf6jrq";
sha256 = "0bis0xkpcr8rvhm9364v0np5cnvkscv2fgl90f455lcwy7kk9m12";
};
serverSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
sha256 = "0hygdxb97373z5cn3s4wr66wc41w7a55kxjyb8alck1fl9l6agn1";
sha256 = "1wv9xz1asjadz1jzgpaxf6lzbj5azgsq0qpawp3y257h488r1z9k";
};
in {

View file

@ -22,7 +22,7 @@
, sanitizeAddress ? false
, sanitizeThreads ? false
, with3d ? true
, withI18n ? false
, withI18n ? true
, withPCM ? true # Plugin and Content Manager
, srcs ? { }
}:

View file

@ -19,11 +19,11 @@ let
in stdenv.mkDerivation rec {
pname = "gromacs";
version = "2021.4";
version = "2021.5";
src = fetchurl {
url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
sha256 = "07ds8abxq0k7vfpjvxb8in3fhb6lz0pbdzbmlidyzaw37qz8lw6b";
sha256 = "1dh9l2gcv61h1r6qsg8vr3k1xp8jgd27czzg24kzf4k823k3z9pb";
};
nativeBuildInputs = [ cmake ];

View file

@ -18,17 +18,20 @@
, sassc
, udisks2
, wrapGAppsHook
, libX11
, libXext
, libXNVCtrl
}:
stdenv.mkDerivation rec {
pname = "monitor";
version = "0.11.0";
version = "0.12.0";
src = fetchFromGitHub {
owner = "stsdc";
repo = "monitor";
rev = version;
sha256 = "sha256-xWhhjn7zk/juXx50wLG2TpB5aqU+588kWBBquWrVJbM=";
sha256 = "1fv98yz9393ddp0k96bwbgccy6x9dmmg8g1pjd3xs6m4c1bnvfc7";
fetchSubmodules = true;
};
@ -53,8 +56,19 @@ stdenv.mkDerivation rec {
libwnck
sassc
udisks2
libX11
libXext
libXNVCtrl
];
# Force link against Xext, otherwise build fails with:
# ld: /nix/store/...-libXNVCtrl-495.46/lib/libXNVCtrl.a(NVCtrl.o): undefined reference to symbol 'XextAddDisplay'
# ld: /nix/store/...-libXext-1.3.4/lib/libXext.so.6: error adding symbols: DSO missing from command line
# https://github.com/stsdc/monitor/issues/292
NIX_LDFLAGS = "-lXext";
mesonFlags = [ "-Dindicator-wingpanel=enabled" ];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "mlterm";
version = "3.9.1";
version = "3.9.2";
src = fetchFromGitHub {
owner = "arakiken";
repo = pname;
rev = "rel-${lib.replaceStrings [ "." ] [ "_" ] version}"; # 3.9.1 -> rel-3_9_1
sha256 = "1hh196kz2n3asv8r8r2bdk5b2w93zq7rw4880ciiq1554h0ib7fj";
sha256 = "sha256-DvGR3rDegInpnLp3H+rXNXktCGhpjsBBPTRMwodeTro=";
};
nativeBuildInputs = [ pkg-config autoconf wrapGAppsHook ];

View file

@ -16,13 +16,13 @@
buildGoModule rec {
pname = "runc";
version = "1.0.3";
version = "1.1.0";
src = fetchFromGitHub {
owner = "opencontainers";
repo = "runc";
rev = "v${version}";
sha256 = "sha256-Tl/JKbIpao+FCjngPzaVkxse50zo3XQ9Mg/AdkblMcI=";
sha256 = "sha256-svLxxfiRDLWkdRuHXaDyH5Ta6qmptI8z+s41iZKgbWM=";
};
vendorSha256 = null;

View file

@ -18,9 +18,9 @@ stdenv.mkDerivation {
buildInputs = [ xorgproto libX11 libXft ];
makeFlags = [
"PREFIX=$(out)"
];
makeFlags = [ "CC:=$(CC)" ];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://tools.suckless.org/tabbed";

View file

@ -71,7 +71,7 @@ let
"pki"
];
in concatStringsSep "\n "
(map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
(map (file: "--ro-bind-try $(${coreutils}/bin/readlink -f /etc/${file}) /etc/${file}") files);
# Create this on the fly instead of linking from /nix
# The container might have to modify it and re-run ldconfig if there are

View file

@ -1,26 +1,67 @@
{ lib, stdenv, fetchFromGitHub, libxml2, gdk-pixbuf, librsvg, gtk-engine-murrine }:
{ lib
, stdenv
, fetchFromGitHub
, gdk-pixbuf
, gtk-engine-murrine
, jdupes
, librsvg
, libxml2
, buttonVariants ? [] # default to all
, colorVariants ? [] # default to all
, opacityVariants ? [] # default to all
, sizeVariants ? [] # default to all
}:
stdenv.mkDerivation rec {
let
pname = "sierra-gtk-theme";
version = "2019-12-16";
in
lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
stdenv.mkDerivation {
inherit pname;
version = "unstable-2021-05-24";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "14hlz8kbrjypyd6wyrwmnj2wm9w3kc8y00ms35ard7x8lmhs56hr";
rev = "05899001c4fc2fec87c4d222cb3997c414e0affd";
sha256 = "174l5mryc34ma1r42pk6572c6i9hmzr9vj1a6w06nqz5qcfm1hds";
};
nativeBuildInputs = [ libxml2 ];
nativeBuildInputs = [
jdupes
libxml2
];
buildInputs = [ gdk-pixbuf librsvg ];
buildInputs = [
gdk-pixbuf
librsvg
];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
installPhase = ''
patchShebangs .
runHook preInstall
patchShebangs install.sh
mkdir -p $out/share/themes
name= ./install.sh --dest $out/share/themes
name= ./install.sh --dest $out/share/themes \
${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
${lib.optionalString (sizeVariants != []) "--flat " + builtins.toString sizeVariants}
# Replace duplicate files with hardlinks to the first file in each
# set of duplicates, reducing the installed size in about 79%
jdupes -L -r $out/share
runHook postInstall
'';
meta = with lib; {

View file

@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ];
# see https://aur.archlinux.org/cgit/aur.git/commit/PKGBUILD?h=libfreenect&id=0d17db49ba64bcb9e3a4eed61cf55c9a5ceb97f1
patchPhase = lib.concatMapStrings (x: ''
substituteInPlace ${x} --replace "{GLUT_LIBRARY}" "{GLUT_LIBRARIES}"
'') [ "examples/CMakeLists.txt" "wrappers/cpp/CMakeLists.txt" ];
meta = {
description = "Drivers and libraries for the Xbox Kinect device on Windows, Linux, and macOS";
homepage = "http://openkinect.org";

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libpqxx";
version = "7.6.0";
version = "7.7.0";
src = fetchFromGitHub {
owner = "jtv";
repo = pname;
rev = version;
sha256 = "sha256-shcGJebjXJ3ORvcdINJFLiuW7ySqe6HyPUQioeUG/wM=";
sha256 = "sha256-O30czHwEDXz5xY4o3MWhmEK06OKTKMQCy0M6qwSEpy8=";
};
nativeBuildInputs = [ gnused python3 ];

View file

@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ andrew-d ];
broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/itpp.x86_64-darwin
};
}

View file

@ -2,7 +2,6 @@
, lib
, fetchurl
# Build-time dependencies
, mlterm
, ncurses # >= 5
, units
}:
@ -17,7 +16,6 @@ buildOctavePackage rec {
};
buildInputs = [
mlterm
ncurses
];

View file

@ -12,16 +12,67 @@
, cairo
, cffi
, numpy
, withXcffib ? false, xcffib
, withXcffib ? false
, xcffib
, python
, glib
, gdk-pixbuf
}@args:
}:
buildPythonPackage rec {
pname = "cairocffi";
version = "1.3.0";
import ./generic.nix ({
version = "1.2.0";
sha256 = "sha256-mpebUAxkyBef7ChvM36P5kTsovLNBYYM4LYtJfIuoUA=";
dlopen_patch = ./dlopen-paths.patch;
disabled = pythonOlder "3.5";
inherit withXcffib;
} // args)
src = fetchPypi {
inherit pname version;
sha256 = "sha256-EIo6fLCeIDvdhQHZuq2R14bSBFYb1x6TZOizSJfEe5E=";
};
LC_ALL = "en_US.UTF-8";
# checkPhase require at least one 'normal' font and one 'monospace',
# otherwise glyph tests fails
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
propagatedNativeBuildInputs = [ cffi ];
# pytestCheckHook does not work
checkInputs = [ numpy pytest glibcLocales ];
postPatch = ''
substituteInPlace setup.cfg \
--replace "pytest-runner" "" \
--replace "pytest-cov" "" \
--replace "pytest-flake8" "" \
--replace "pytest-isort" "" \
--replace "--flake8 --isort" ""
'';
checkPhase = ''
py.test $out/${python.sitePackages}
'';
patches = [
# OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0
(substituteAll {
src = ./dlopen-paths.patch;
ext = stdenv.hostPlatform.extensions.sharedLibrary;
cairo = cairo.out;
glib = glib.out;
gdk_pixbuf = gdk-pixbuf.out;
})
./fix_test_scaled_font.patch
];
meta = with lib; {
homepage = "https://github.com/SimonSapin/cairocffi";
license = licenses.bsd3;
maintainers = with maintainers; [ SuperSandro2000 ];
description = "cffi-based cairo bindings for Python";
};
}

View file

@ -1,63 +0,0 @@
{ version
, sha256
, dlopen_patch
, disabled ? false
, ...
}@args:
with args;
buildPythonPackage rec {
pname = "cairocffi";
inherit version disabled;
src = fetchPypi {
inherit pname version sha256;
};
LC_ALL = "en_US.UTF-8";
# checkPhase require at least one 'normal' font and one 'monospace',
# otherwise glyph tests fails
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
propagatedNativeBuildInputs = [ cffi ];
# pytestCheckHook does not work
checkInputs = [ numpy pytest glibcLocales ];
postPatch = ''
substituteInPlace setup.cfg \
--replace "pytest-runner" "" \
--replace "pytest-cov" "" \
--replace "pytest-flake8" "" \
--replace "pytest-isort" "" \
--replace "--flake8 --isort" ""
'';
checkPhase = ''
py.test $out/${python.sitePackages}
'';
patches = [
# OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0
(substituteAll {
src = dlopen_patch;
ext = stdenv.hostPlatform.extensions.sharedLibrary;
cairo = cairo.out;
glib = glib.out;
gdk_pixbuf = gdk-pixbuf.out;
})
./fix_test_scaled_font.patch
];
meta = with lib; {
homepage = "https://github.com/SimonSapin/cairocffi";
license = licenses.bsd3;
maintainers = with maintainers; [];
description = "cffi-based cairo bindings for Python";
};
}

View file

@ -1,27 +1,57 @@
{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
, colorlog, pyvmomi, requests, verboselogs
, psutil, pyopenssl, setuptools
, mock, pytest-mock, pytestCheckHook, qemu
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, pythonOlder
, colorlog
, pyvmomi
, requests
, verboselogs
, pyopenssl
, setuptools
, mock
, pytest-mock
, pytestCheckHook
, qemu
}:
buildPythonPackage rec {
pname = "cot";
version = "2.2.1";
disabled = !isPy3k;
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "f4b3553415f90daac656f89d3e82e79b3d751793239bb173a683b4cc0ceb2635";
hash = "sha256-9LNVNBX5DarGVvidPoLnmz11F5Mjm7FzpoO0zAzrJjU=";
};
propagatedBuildInputs = [ colorlog pyvmomi requests verboselogs pyopenssl setuptools ]
++ lib.optional (pythonOlder "3.3") psutil;
propagatedBuildInputs = [
colorlog
pyvmomi
requests
verboselogs
pyopenssl
setuptools
];
checkInputs = [ mock pytestCheckHook pytest-mock qemu ];
checkInputs = [
mock
pytestCheckHook
pytest-mock
qemu
];
prePatch = ''
# argparse is part of the standardlib
substituteInPlace setup.py \
--replace "'argparse'," ""
'';
# Many tests require network access and/or ovftool (https://code.vmware.com/web/tool/ovf)
# try enabling these tests with ovftool once/if it is added to nixpkgs
disabledTests = [
# Many tests require network access and/or ovftool (https://code.vmware.com/web/tool/ovf)
# try enabling these tests with ovftool once/if it is added to nixpkgs
"HelperGenericTest"
"TestCOTAddDisk"
"TestCOTAddFile"
@ -34,14 +64,15 @@ buildPythonPackage rec {
"TestQCOW2"
"TestRAW"
"TestVMDKConversion"
# CLI test fails with AssertionError
"test_help"
] ++ lib.optionals stdenv.isDarwin [
"test_serial_fixup_invalid_host"
];
# argparse is part of the standardlib
prePatch = ''
substituteInPlace setup.py --replace "'argparse'," ""
'';
pythonImportsCheck = [
"COT"
];
meta = with lib; {
description = "Common OVF Tool";

View file

@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchPypi
, flask
, pytestCheckHook
, pygments
}:
buildPythonPackage rec {
pname = "flask-gravatar";
version = "0.5.0";
src = fetchPypi {
pname = "Flask-Gravatar";
inherit version;
sha256 = "YGZfMcLGEokdto/4Aek+06CIHGyOw0arxk0qmSP1YuE=";
};
postPatch = ''
sed -i setup.py \
-e "s|tests_require=tests_require,||g" \
-e "s|extras_require=extras_require,||g" \
-e "s|setup_requires=setup_requires,||g"
# pep8 is deprecated and cov not needed
substituteInPlace pytest.ini \
--replace "--pep8" "" \
--replace "--cov=flask_gravatar --cov-report=term-missing" ""
'';
propagatedBuildInputs = [
flask
];
checkInputs = [
pytestCheckHook
pygments
];
pythonImportsCheck = [ "flask_gravatar" ];
meta = with lib; {
homepage = "https://github.com/zzzsochi/Flask-Gravatar";
description = "Small and simple integration of gravatar into flask";
license = licenses.bsd3;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -0,0 +1,40 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, flask
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "flask-paranoid";
version = "0.2";
src = fetchFromGitHub {
owner = "miguelgrinberg";
repo = pname;
rev = "v${version}";
sha256 = "0WWc/ktAOuTk4A75xI1jCj/aef2+1TjLKBA9+PRfJO0=";
};
postPatch = ''
# tests have a typo in one of the assertions
substituteInPlace tests/test_paranoid.py --replace "01-Jan-1970" "01 Jan 1970"
'';
propagatedBuildInputs = [
flask
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "flask_paranoid" ];
meta = with lib; {
homepage = "https://github.com/miguelgrinberg/flask-paranoid/";
description = "Simple user session protection";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -0,0 +1,76 @@
{ lib
, buildPythonPackage
, fetchPypi
, flask
, blinker
, setuptools
, itsdangerous
, flask_principal
, passlib
, email_validator
, flask_wtf
, flask_login
, pytestCheckHook
, flask_mail
, sqlalchemy
, flask_sqlalchemy
, flask-mongoengine
, peewee
, pony
, zxcvbn
, mongoengine
, cryptography
, pyqrcode
, phonenumbers
, bleach
, mongomock
}:
buildPythonPackage rec {
pname = "flask-security-too";
version = "4.1.2";
src = fetchPypi {
pname = "Flask-Security-Too";
inherit version;
sha256 = "16ws5n08vm7wsa2f7lrkxvc7jl3ah1xfylhhyzb4vvqmlk7x9hw8";
};
propagatedBuildInputs = [
flask
flask_login
flask_principal
flask_wtf
email_validator
itsdangerous
passlib
blinker
setuptools
];
checkInputs = [
pytestCheckHook
flask_mail
sqlalchemy
flask_sqlalchemy
flask-mongoengine
peewee
pony
zxcvbn
mongoengine
cryptography
pyqrcode
phonenumbers
bleach
mongomock
];
pythonImportsCheck = [ "flask_security" ];
meta = with lib; {
homepage = "https://pypi.org/project/Flask-Security-Too/";
description = "Simple security for Flask apps (fork)";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "flux-led";
version = "0.28.3";
version = "0.28.4";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Danielhiversen";
repo = "flux_led";
rev = version;
sha256 = "sha256-IkH5cCJbBUekABUcRyJl00tZgx+WqipEVsK8/ks2KDk=";
sha256 = "sha256-mD6pTrUAzApJamqqcLzzQI2JDKy3PAn5TtQz5/aPFXg=";
};
propagatedBuildInputs = [

View file

@ -16,14 +16,14 @@
buildPythonPackage rec {
pname = "hap-python";
version = "4.3.0";
version = "4.4.0";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "ikalchev";
repo = "HAP-python";
rev = "v${version}";
sha256 = "sha256-G4KL6iMeVn/tmvFtFL8vyqHGNfqk6j8iG4tDK9VpCyM=";
sha256 = "sha256-dSiI2W4U4FYwMRBInpxb/wkQLKxPzLHIkLPNgiZEhUA=";
};
propagatedBuildInputs = [

View file

@ -0,0 +1,26 @@
{ lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec {
pname = "httpagentparser";
version = "1.9.1";
src = fetchPypi {
inherit pname version;
sha256 = "73Y9MZk912GCWs7myLNL4yuVzxZ10cc8PNNfnlKDGyY=";
};
# PyPi version does not include test directory
doCheck = false;
pythonImportsCheck = [ "httpagentparser" ];
meta = with lib; {
homepage = "https://github.com/shon/httpagentparser";
description = "Extracts OS Browser etc information from http user agent string";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -8,11 +8,15 @@
, mnemonic
, pyaes
, typing-extensions
, pythonOlder
}:
buildPythonPackage rec {
pname = "hwi";
version = "2.0.2";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "bitcoin-core";
@ -34,18 +38,21 @@ buildPythonPackage rec {
# make compatible with libusb1 2.x
postPatch = ''
substituteInPlace setup.py \
--replace 'libusb1>=1.7,<2.0' 'libusb1>=1.7'
--replace 'libusb1>=1.7,<2.0' 'libusb1>=1.7' \
--replace "'python_requires': '>=3.6,<3.10'," "'python_requires': '>=3.6,<4',"
'';
# tests require to clone quite a few firmwares
doCheck = false;
pythonImportsCheck = [ "hwilib" ];
pythonImportsCheck = [
"hwilib"
];
meta = {
meta = with lib; {
description = "Bitcoin Hardware Wallet Interface";
homepage = "https://github.com/bitcoin-core/hwi";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ prusnak ];
license = with licenses; [ mit ];
maintainers = with maintainers; [ prusnak ];
};
}

View file

@ -0,0 +1,27 @@
{ stdenv
, lib
, buildPythonPackage
, fetchPypi
, attrs
}:
buildPythonPackage rec {
pname = "matrix_common";
version = "1.0.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-ZmiKRoJ8hv1USuJBDzV2U1uIFt2lRxmT+iAOqOShJK4=";
};
propagatedBuildInputs = [ attrs ];
pythonImportsCheck = [ "matrix_common" ];
meta = with lib; {
description = "Common utilities for Synapse, Sydent and Sygnal";
homepage = "https://github.com/matrix-org/matrix-python-common";
license = licenses.asl20;
maintainers = with maintainers; [ sumnerevans ];
};
}

View file

@ -0,0 +1,40 @@
{ lib
, buildPythonPackage
, fetchPypi
, pbr
, sentinels
, six
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "mongomock";
version = "3.23.0";
src = fetchPypi {
inherit pname version;
sha256 = "1pdh4pj5n6dsaqy98q40wig5y6imfs1p043cgkaaw8f2hxy5x56r";
};
nativeBuildInputs = [
pbr
];
propagatedBuildInputs = [
sentinels
six
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "mongomock" ];
meta = with lib; {
homepage = "https://github.com/mongomock/mongomock";
description = "Fake pymongo stub for testing simple MongoDB-dependent code";
license = licenses.bsd3;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "rich";
version = "10.16.2";
version = "11.0.0";
format = "pyproject";
disabled = pythonOlder "3.6";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "willmcgugan";
repo = pname;
rev = "v${version}";
sha256 = "sha256-SVenprbWq+ucQPAM1e9sNVYWbGAeo7qdEBy+cvqAMK8=";
sha256 = "0vkwar22rv1j6a3kqj3c016j0vnnha0kwi79fkd90ib1n501m7rn";
};
nativeBuildInputs = [ poetry-core ];

View file

@ -0,0 +1,36 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, setuptools
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "sentinels";
version = "1.0.0";
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "1cglkxph47pki4db4kjx5g4ikxp2milqdlcjgqwmx4p1gx6p1q3v";
};
propagatedBuildInputs = [
setuptools
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "sentinels" ];
meta = with lib; {
homepage = "https://github.com/vmalloc/sentinels/";
description = "Various objects to denote special meanings in python";
license = licenses.bsd3;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -0,0 +1,23 @@
{ lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec {
pname = "speaklater3";
version = "1.4";
src = fetchPypi {
inherit pname version;
sha256 = "ySYdS2taMEZyMS0esImb4Cj6yRdgGQqA/szTHTo7UEI=";
};
pythonImportsCheck = [ "speaklater" ];
meta = with lib; {
description = "Implements a lazy string for python useful for use with gettext";
homepage = "https://github.com/mitsuhiko/speaklater";
license = licenses.bsd0;
maintainers = with maintainers; [ gador ];
};
}

View file

@ -33,7 +33,8 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'aiohttp = {extras = ["speedups"], version = "^3.7.4"}' 'aiohttp = {extras = ["speedups"], version = ">=3.7.4"}' \
--replace 'async-timeout = "^3.0.1"' 'async-timeout = ">=3.0.1"'
--replace 'async-timeout = "^3.0.1"' 'async-timeout = ">=3.0.1"' \
--replace 'rich = "^10.1.0"' 'rich = ">=10.1.0"'
'';
nativeBuildInputs = [

View file

@ -27,9 +27,12 @@ buildPythonPackage rec {
sha256 = "1hl3wj71c7cp7jzkhyjy7xgs2vc8c89icq0bgfr49y4pwv69n43m";
};
patches = [
./relax-deps.patch
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'rich = "^10.7.0"' 'rich = ">=10.7.0"' \
--replace 'PyYAML = "^5.4.1"' 'PyYAML = ">=5.4.1"' \
--replace 'optax = "^0.0.9"' 'optax = ">=0.0.9"'
'';
nativeBuildInputs = [
poetry-core

View file

@ -1,16 +0,0 @@
diff --git a/pyproject.toml b/pyproject.toml
index f0ff8a0..56787ca 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,9 +16,9 @@ secondary = true
[tool.poetry.dependencies]
python = "^3.7"
flax = "^0.3.4"
-PyYAML = "^5.4.1"
+PyYAML = ">=5.4.1"
rich = "^10.7.0"
-optax = "^0.0.9"
+optax = ">=0.0.9"
einops = "^0.3.2"
treeo = "^0.0.9"
# treeo = { path = "../treeo", develop = true }

View file

@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "yalexs";
version = "1.1.17";
version = "1.1.19";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "bdraco";
repo = pname;
rev = "v${version}";
sha256 = "sha256-kCLL+0ZiraTW7swgdfS9vkLcr/s6lTccFQbC02rdNDY=";
sha256 = "sha256-i6UFsSY2DQ4jB316fy5cZ+2C93TTmvyB4Caxj3syPdo=";
};
propagatedBuildInputs = [

View file

@ -22,13 +22,13 @@ with py.pkgs;
buildPythonApplication rec {
pname = "checkov";
version = "2.0.712";
version = "2.0.727";
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = pname;
rev = version;
hash = "sha256-iUplSd4/OcJtfby2bn7b6GwCbXnBMqUSuLjkkh+7W9Y=";
hash = "sha256-hegbkmM8ZN6zO2iANGRr2QRW3ErdtwYaTo618uELev0=";
};
nativeBuildInputs = with py.pkgs; [
@ -81,6 +81,7 @@ buildPythonApplication rec {
postPatch = ''
substituteInPlace setup.py \
--replace "cyclonedx-python-lib>=0.11.0,<1.0.0" "cyclonedx-python-lib>=0.11.0" \
--replace "jsonschema==3.0.2" "jsonschema>=3.0.2"
'';

View file

@ -11,13 +11,13 @@
mkDerivation rec {
pname = "cutter";
version = "2.0.4";
version = "2.0.5";
src = fetchFromGitHub {
owner = "rizinorg";
repo = "cutter";
rev = "v${version}";
sha256 = "sha256-Z5mqLkeA7AZnvKdpdRzaYfNMsGUI7i7wPTXVyIRYwxI=";
sha256 = "sha256-ljws9S7ZxZK/Ou8jgGSoR++vtzFTEBywHMhCC/UOLEs=";
fetchSubmodules = true;
};

View file

@ -23,11 +23,11 @@
stdenv.mkDerivation rec {
pname = "rizin";
version = "0.3.2";
version = "0.3.4";
src = fetchurl {
url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz";
sha256 = "sha256-T65gm1tfRD7dZSL8qZKMTAbQ65Lx/ecidFc9T1b7cig=";
sha256 = "sha256-7qSbOWOHwJ0ZcFqrAqYXzbFWgvymfxAf8rJ+75SnEOk=";
};
mesonFlags = [

View file

@ -1,18 +1,19 @@
{ buildGoModule, fetchgit, lib }:
{ buildGoModule, fetchFromGitHub, lib }:
buildGoModule rec {
pname = "cue";
version = "0.4.0";
version = "0.4.1";
src = fetchgit {
url = "https://cue.googlesource.com/cue";
src = fetchFromGitHub {
owner = "cue-lang";
repo = "cue";
rev = "v${version}";
sha256 = "sha256-rcGEl+CMFyxZKsOKhVimhv5/ONo3xS6FjgKModZGR2o=";
sha256 = "1q1mkqb6fk515g556yn8ks3gqrimfbadprmbv5rill1lpipq5xbj";
};
vendorSha256 = "sha256-eSKVlBgnHR1R0j1lNwtFoIgRuj8GqoMbvuBl/N1SanY=";
vendorSha256 = "12p77a97lbff6qhncs5qx13k3wmf9hrr09mhh12isw5s0p0n53xm";
doCheck = false;
checkPhase = "go test ./...";
subPackages = [ "cmd/cue" ];
@ -20,6 +21,11 @@ buildGoModule rec {
"-s" "-w" "-X cuelang.org/go/cmd/cue/cmd.version=${version}"
];
doInstallCheck = true;
installCheckPhase = ''
$out/bin/cue eval - <<<'a: "all good"' > /dev/null
'';
meta = {
description = "A data constraint language which aims to simplify tasks involving defining and using data";
homepage = "https://cuelang.org/";

View file

@ -1,5 +1,6 @@
{ lib
, python3
, installShellFiles
}:
with python3.pkgs;
@ -27,6 +28,8 @@ in buildPythonApplication rec {
LC_ALL = "en_US.UTF-8";
nativeBuildInputs = [ installShellFiles ];
postPatch = ''
# pipenv invokes python in a subprocess to create a virtualenv
# and to call setup.py.
@ -38,6 +41,13 @@ in buildPythonApplication rec {
propagatedBuildInputs = runtimeDeps python3.pkgs;
postInstall = ''
installShellCompletion --cmd pipenv \
--bash <(_PIPENV_COMPLETE=bash_source $out/bin/pipenv) \
--zsh <(_PIPENV_COMPLETE=zsh_source $out/bin/pipenv) \
--fish <(_PIPENV_COMPLETE=fish_source $out/bin/pipenv)
'';
doCheck = true;
checkPhase = ''
export HOME=$(mktemp -d)

View file

@ -1,100 +0,0 @@
{ lib
, stdenv
, openjdk8
, buildFHSUserEnv
, fetchzip
, fetchurl
, copyDesktopItems
, makeDesktopItem
}:
let
version = "2.839";
src = stdenv.mkDerivation {
pname = "tlauncher";
inherit version;
src = fetchzip {
name = "tlauncher.zip";
url = "https://dl2.tlauncher.org/f.php?f=files%2FTLauncher-${version}.zip";
sha256 = "sha256-KphpNuTucpuJhXspKxqDyYQN6vbpY0XCB3GAd5YCGbc=";
stripRoot = false;
};
installPhase = ''
cp $src/*.jar $out
'';
};
fhs = buildFHSUserEnv {
name = "tlauncher";
runScript = ''
${openjdk8}/bin/java -jar "${src}" "$@"
'';
targetPkgs = pkgs: with pkgs; [
alsa-lib
cpio
cups
file
fontconfig
freetype
giflib
glib
gnome2.GConf
gnome2.gnome_vfs
gtk2
libjpeg
libGL
openjdk8-bootstrap
perl
which
xorg.libICE
xorg.libX11
xorg.libXcursor
xorg.libXext
xorg.libXi
xorg.libXinerama
xorg.libXrandr
xorg.xrandr
xorg.libXrender
xorg.libXt
xorg.libXtst
xorg.libXtst
xorg.libXxf86vm
zip
zlib
];
};
desktopItem = makeDesktopItem {
name = "tlauncher";
exec = "tlauncher";
icon = fetchurl {
url = "https://styles.redditmedia.com/t5_2o8oax/styles/communityIcon_gu5r5v8eaiq51.png";
sha256 = "sha256-ma8zxaUxdAw5VYfOK8i8s1kjwMgs80Eomq43Cb0HZWw=";
};
comment = "Minecraft launcher";
desktopName = "TLauncher";
categories = "Game;";
};
in stdenv.mkDerivation {
pname = "tlauncher-wrapper";
inherit version;
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir $out/{bin,share/applications} -p
install ${fhs}/bin/tlauncher $out/bin
runHook postInstall
'';
nativeBuildInputs = [ copyDesktopItems ];
desktopItems = [ desktopItem ];
meta = with lib; {
description = "Minecraft launcher that already deal with forge, optifine and mods";
homepage = "https://tlauncher.org/";
maintainers = with maintainers; [ lucasew ];
license = licenses.unfree;
platforms = openjdk8.meta.platforms;
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fceux";
version = "2.6.0";
version = "2.6.1";
src = fetchFromGitHub {
owner = "TASEmulators";
repo = pname;
rev = "${pname}-${version}";
sha256 = "sha256-FNcybq0EFN0tWgWxzwEJQMpsnpvdRxDYnIWDXW2fXkw=";
sha256 = "sha256-LlGM6sOjcpyHApUvSr5etKIqwDoheuiW53DSHs19W6Q=";
};
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];

View file

@ -1064,6 +1064,22 @@ let
};
};
jdinhlife.gruvbox = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "gruvbox";
publisher = "jdinhlife";
version = "1.5.1";
sha256 = "sha256-0ghB0E+Wa9W2bNFFiH2Q3pUJ9HV5+JfKohX4cRyevC8=";
};
meta = with lib; {
description = "Gruvbox Theme";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=jdinhlife.gruvbox";
homepage = "https://github.com/jdinhify/vscode-theme-gruvbox";
license = licenses.mit;
maintainers = with maintainers; [ imgabe ];
};
};
jnoortheen.nix-ide = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "nix-ide";
@ -1474,8 +1490,8 @@ let
mktplcRef = {
name = "metals";
publisher = "scalameta";
version = "1.11.0";
sha256 = "0a4agm0g16cxhvhvsmbsvvicfsjr53330rsab5xdi7gcpx9a1dff";
version = "1.12.0";
sha256 = "13zwjnrmkrs3wxh8c9nz9zxxs3p6lkj41q30v4a1md5pscfa1s44";
};
meta = {
license = lib.licenses.asl20;

View file

@ -0,0 +1,24 @@
{ lib, buildGoModule, fetchFromSourcehut }:
buildGoModule rec {
pname = "alps";
version = "2021-09-29";
src = fetchFromSourcehut {
owner = "~migadu";
repo = "alps";
rev = "d4c35f3c3157bece8e50fd95f2ee1081be30d7ae";
sha256 = "sha256-xKfRLdfeD7lWdmC0iiq4dOIv2SmzbKH7HcAISCJgdug=";
};
vendorSha256 = "sha256-8fmbv5uPRfzUqsYU95YzsnuFkq4cwj+LN2X3W/yBHyA=";
proxyVendor = true;
meta = with lib; {
description = "A simple and extensible webmail.";
homepage = "https://git.sr.ht/~migadu/alps";
license = licenses.mit;
maintainers = with maintainers; [ gordias ];
};
}

View file

@ -2,7 +2,7 @@
# Do not edit!
{
version = "2021.12.9";
version = "2021.12.10";
components = {
"abode" = ps: with ps; [ abodepy ];
"accuweather" = ps: with ps; [ accuweather ];

View file

@ -177,7 +177,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "2021.12.9";
hassVersion = "2021.12.10";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
@ -194,7 +194,7 @@ in python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = version;
hash = "sha256:17lh16c9kklx4q416ns12qjh1hc0g79y56kdkj1pvybblg0a07lm";
hash = "sha256:0nyddcjy4diq5bakpb76frax44i0jraj2vvpfxrj50h9l5pdwsaf";
};
# leave this in, so users don't have to constantly update their downstream patch handling

View file

@ -11,11 +11,11 @@ in
with python3.pkgs;
buildPythonApplication rec {
pname = "matrix-synapse";
version = "1.49.2";
version = "1.50.1";
src = fetchPypi {
inherit pname version;
sha256 = "7b795ecfc36e3f57eb7cffbc5ef9da1745b777536416c31509b3e6220c39ca4d";
sha256 = "sha256-fdO+HJ1+fk+s65jLkPDiG+Ei89x5Fbkh9BUUFQ3NJ3M=";
};
buildInputs = [ openssl ];
@ -31,6 +31,7 @@ buildPythonApplication rec {
jinja2
jsonschema
lxml
matrix-common
msgpack
netaddr
phonenumbers

View file

@ -10,7 +10,7 @@
, storePathAsBuildHash ? false }:
let
version = "6.2.1";
version = "6.3.0";
goPackagePath = "github.com/mattermost/mattermost-server";
@ -22,7 +22,7 @@ let
owner = "mattermost";
repo = "mattermost-server";
rev = "v${version}";
sha256 = "WjBsbW7aEI+MX2I1LrEJh8JgNQ4Do7PpeshXgaQAk1s=";
sha256 = "y3VTDl01UrMpgoN06lf98C+uTu2N9u0EAWYADPpOI3w=";
};
ldflags = [
@ -65,7 +65,7 @@ let
src = fetchurl {
url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
sha256 = "pV/MwMCK8vMzASXuM1+ePcarIgrcNAkFLEdmPya911E=";
sha256 = "PqinkPC7J6Ng1fjTrcAa6ZqiyB2JKkGRdvJ6h2wNS5w=";
};
installPhase = ''

View file

@ -10,14 +10,14 @@ let
"Unsupported system: ${stdenv.hostPlatform.system}");
hash = {
x64-linux_hash = "sha256-4kvcBRMMH4AnTKSES5Cpst/omTRXVRq1V1y/z5njKJI=";
arm64-linux_hash = "sha256-NLsf0ldvlKSrHJyAXv5Ar2zIetoga6iZPOGTxFOqoQQ=";
x64-osx_hash = "sha256-tjvGuShz/fv3qUknFVKJ+tE/bVtIyPZ7dr4JfTEcDJY=";
x64-linux_hash = "sha256-BLtoT6UHsur+jFp4KBlE10/Z/V6RDy0k16H10IC98WQ=";
arm64-linux_hash = "sha256-s8EV/VqiUXWRTNxacx4sy6r+TIAqkqhESAYYa9s0uAQ=";
x64-osx_hash = "sha256-woXFYmX+499NTtWmmGBpZ12PxTUazJ8klA6IPQIDjLE=";
}."${arch}-${os}_hash";
in stdenv.mkDerivation rec {
pname = "ombi";
version = "4.0.1468";
version = "4.3.3";
sourceRoot = ".";

View file

@ -15,7 +15,7 @@ updateHash()
url="https://github.com/Ombi-app/Ombi/releases/download/v$version/$os-$arch.tar.gz"
hash=$(nix-prefetch-url --type sha256 $url)
sriHash="$(nix to-sri --type sha256 $hash)"
sriHash="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $hash)"
sed -i "s|$hashKey = \"[a-zA-Z0-9\/+-=]*\";|$hashKey = \"$sriHash\";|g" "$dirname/default.nix"
}

View file

@ -1,15 +1,20 @@
{ lib
, callPackage
, nixosTests
, stdenv
, autoPatchelfHook
, buildEnv
, fetchurl
, makeWrapper
, procps
, autoPatchelfHook
, rpmextract
, openssl
, zlib
# optional packages that enable certain features
, acl ? null # EXT2/EXT3/XFS ACL support
, jdk8 ? null # Java GUI
, lvm2 ? null # LVM image backup and restore functions
, lvm2 # LVM image backup and restore functions (optional)
, acl # EXT2/EXT3/XFS ACL support (optional)
, gnugrep
, procps
, jdk8 # Java GUI (needed for `enableGui`)
, buildEnv
, makeWrapper
, enableGui ? false # enables Java GUI `dsmj`
# path to `dsm.sys` configuration files
, dsmSysCli ? "/etc/tsm-client/cli.dsm.sys"
, dsmSysApi ? "/etc/tsm-client/api.dsm.sys"
@ -18,7 +23,7 @@
# For an explanation of optional packages
# (features provided by them, version limits), see
# https://www-01.ibm.com/support/docview.wss?uid=swg21052223#Version%208.1
# https://www.ibm.com/support/pages/node/660813#Version%208.1
# IBM Tivoli Storage Manager Client uses a system-wide
@ -40,22 +45,33 @@
# point to this derivations `/dsmi_dir` directory symlink.
# Other environment variables might be necessary,
# depending on local configuration or usage; see:
# https://www.ibm.com/support/knowledgecenter/en/SSEQVQ_8.1.8/client/c_cfg_sapiunix.html
# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=solaris-set-api-environment-variables
# The newest version of TSM client should be discoverable
# by going the the `downloadPage` (see `meta` below),
# there to "Client Latest Downloads",
# "IBM Spectrum Protect Client Downloads and READMEs",
# then to "Linux x86_64 Ubuntu client" (as of 2019-07-15).
# The newest version of TSM client should be discoverable by
# going to the `downloadPage` (see `meta` below).
# Find the "Backup-archive client" table on that page.
# Look for "Download Documents" of the latest release.
# Here, two links must be checked:
# * "IBM Spectrum Protect Client ... Downloads and READMEs":
# In the table at the page's bottom,
# check the date of the "Linux x86_64 client"
# * "IBM Spectrum Protect BA client ... interim fix downloads"
# Look for the "Linux x86_64 client" rows
# in the table # at the bottom of each page.
# Follow the "HTTPS" link of the row with the latest date stamp.
# In the directory listing to show up, pick the big `.tar` file.
#
# (as of 2021-12-18)
let
meta = {
homepage = "https://www.ibm.com/us-en/marketplace/data-protection-and-recovery";
downloadPage = "https://www-01.ibm.com/support/docview.wss?uid=swg21239415";
homepage = "https://www.ibm.com/products/data-protection-and-recovery";
downloadPage = "https://www.ibm.com/support/pages/ibm-spectrum-protect-downloads-latest-fix-packs-and-interim-fixes";
platforms = [ "x86_64-linux" ];
mainProgram = "dsmc";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.yarny ];
description = "IBM Spectrum Protect (Tivoli Storage Manager) CLI and API";
@ -74,34 +90,53 @@ let
'';
};
passthru.tests = {
test-cli = callPackage ./test-cli.nix {};
test-gui = nixosTests.tsm-client-gui;
};
mkSrcUrl = version:
let
major = lib.versions.major version;
minor = lib.versions.minor version;
patch = lib.versions.patch version;
fixup = lib.lists.elemAt (lib.versions.splitVersion version) 3;
in
"https://public.dhe.ibm.com/storage/tivoli-storage-management/${if fixup=="0" then "maintenance" else "patches"}/client/v${major}r${minor}/Linux/LinuxX86/BA/v${major}${minor}${patch}/${version}-TIV-TSMBAC-LinuxX86.tar";
unwrapped = stdenv.mkDerivation rec {
name = "tsm-client-${version}-unwrapped";
version = "8.1.8.0";
version = "8.1.13.3";
src = fetchurl {
url = "ftp://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/client/v8r1/Linux/LinuxX86_DEB/BA/v818/${version}-TIV-TSMBAC-LinuxX86_DEB.tar";
sha256 = "0c1d0jm0i7qjd314nhj2vj8fs7sncm1x2n4d6dg4049jniyvjhpk";
url = mkSrcUrl version;
sha256 = "1dwczf236drdaf4jcfzz5154vdwvxf5zraxhrhiddl6n80hnvbcd";
};
inherit meta;
inherit meta passthru;
nativeBuildInputs = [
autoPatchelfHook
rpmextract
];
buildInputs = [
openssl
stdenv.cc.cc
zlib
];
runtimeDependencies = [
lvm2
(lib.attrsets.getLib lvm2)
];
sourceRoot = ".";
postUnpack = ''
for debfile in *.deb
do
ar -x "$debfile"
tar --xz --extract --file=data.tar.xz
rm data.tar.xz
done
rpmextract TIVsm-API64.x86_64.rpm
rpmextract TIVsm-APIcit.x86_64.rpm
rpmextract TIVsm-BA.x86_64.rpm
rpmextract TIVsm-BAcit.x86_64.rpm
rpmextract TIVsm-BAhdw.x86_64.rpm
rpmextract TIVsm-JBB.x86_64.rpm
# use globbing so that version updates don't break the build:
rpmextract gskcrypt64-*.linux.x86_64.rpm
rpmextract gskssl64-*.linux.x86_64.rpm
'';
installPhase = ''
@ -113,7 +148,7 @@ let
# Fix relative symlinks after `/usr` was moved up one level
preFixup = ''
for link in $out/lib/* $out/bin/*
for link in $out/lib{,64}/* $out/bin/*
do
target=$(readlink "$link")
if [ "$(cut -b -6 <<< "$target")" != "../../" ]
@ -126,14 +161,19 @@ let
'';
};
binPath = lib.makeBinPath ([ acl gnugrep procps ]
++ lib.optional enableGui jdk8);
in
buildEnv {
name = "tsm-client-${unwrapped.version}";
inherit meta;
passthru = { inherit unwrapped; };
meta = meta // lib.attrsets.optionalAttrs enableGui {
mainProgram = "dsmj";
};
passthru = passthru // { inherit unwrapped; };
paths = [ unwrapped ];
buildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper ];
pathsToLink = [
"/"
"/bin"
@ -144,7 +184,7 @@ buildEnv {
# to the so-called "installation directories"
# * Add symlinks to the "installation directories"
# that point to the `dsm.sys` configuration files
# * Drop the Java GUI executable unless `jdk` is present
# * Drop the Java GUI executable unless `enableGui` is set
# * Create wrappers for the command-line interface to
# prepare `PATH` and `DSM_DIR` environment variables
postBuild = ''
@ -152,13 +192,13 @@ buildEnv {
ln --symbolic --no-target-directory opt/tivoli/tsm/client/api/bin64 $out/dsmi_dir
ln --symbolic --no-target-directory "${dsmSysCli}" $out/dsm_dir/dsm.sys
ln --symbolic --no-target-directory "${dsmSysApi}" $out/dsmi_dir/dsm.sys
${lib.optionalString (jdk8==null) "rm $out/bin/dsmj"}
${lib.optionalString (!enableGui) "rm $out/bin/dsmj"}
for bin in $out/bin/*
do
target=$(readlink "$bin")
rm "$bin"
makeWrapper "$target" "$bin" \
--prefix PATH : "$out/dsm_dir:${lib.strings.makeBinPath [ procps acl jdk8 ]}" \
--prefix PATH : "$out/dsm_dir:${binPath}" \
--set DSM_DIR $out/dsm_dir
done
'';

View file

@ -0,0 +1,58 @@
{ lib
, writeText
, runCommand
, tsm-client
}:
# Let the client try to connect to a server.
# We can't simulate a server, so there's no more to test.
let
# 192.0.0.8 is a "dummy address" according to RFC 7600
dsmSysCli = writeText "cli.dsm.sys" ''
defaultserver testserver
server testserver
commmethod v6tcpip
tcpserveraddress 192.0.0.8
nodename ARBITRARYNODENAME
'';
tsm-client_ = tsm-client.override { inherit dsmSysCli; };
env.nativeBuildInputs = [ tsm-client_ ];
versionString =
let
inherit (tsm-client_.passthru.unwrapped) version;
major = lib.versions.major version;
minor = lib.versions.minor version;
patch = lib.versions.patch version;
fixup = lib.lists.elemAt (lib.versions.splitVersion version) 3;
in
"Client Version ${major}, Release ${minor}, Level ${patch}.${fixup}";
in
runCommand "${tsm-client.name}-test-cli" env ''
set -o nounset
set -o pipefail
export DSM_LOG=$(mktemp -d ./dsm_log.XXXXXXXXXXX)
{ dsmc -optfile=/dev/null || true; } | tee dsmc-stdout
# does it report the correct version?
grep --fixed-strings '${versionString}' dsmc-stdout
# does it use the provided dsm.sys config file?
# if it does, it states the node's name
grep ARBITRARYNODENAME dsmc-stdout
# does it try (and fail) to connect to the server?
# if it does, it reports the "TCP/IP connection failure" error code
grep ANS1017E dsmc-stdout
grep ANS1017E $DSM_LOG/dsmerror.log
touch $out
''

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fuse-overlayfs";
version = "1.8";
version = "1.8.1";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = "v${version}";
sha256 = "sha256-VqtBJ8HRyhjwKVoRu6+EArZMVbzXkaK89yV56MzRUJo=";
sha256 = "sha256-0vmcn3AOASjN61QzxxGYpPMWlukanh8+vbZQcFpU/vs=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];

View file

@ -3,12 +3,12 @@
stdenv.mkDerivation rec {
pname = "nncp";
version = "8.0.2";
version = "8.1.0";
outputs = [ "out" "doc" "info" ];
src = fetchurl {
url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
sha256 = "sha256-hMb7bAdk3xFcUe5CTu9LnIR3VSJDUKbMSE86s8d5udM=";
sha256 = "sha256-d3U233dedtZrBWRdb0QElNOd/L1+Ut4CWvkZo5TPU+w=";
};
nativeBuildInputs = [ go redo-apenwarr ];

View file

@ -5,14 +5,14 @@
python3Packages.buildPythonApplication rec {
pname = "pferd";
version = "3.2.0";
version = "3.3.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "Garmelon";
repo = "PFERD";
rev = "v${version}";
sha256 = "0r75a128r8ghrccc1flmpxblfrab5kg6fypzrlfmv2aqhkqg1brb";
sha256 = "162s966kmpngmp0h55x185qxsy96q2kxz2dd8w0zyh0n2hbap3lh";
};
propagatedBuildInputs = with python3Packages; [

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "telepresence2";
version = "2.4.6";
version = "2.4.9";
src = fetchFromGitHub {
owner = "telepresenceio";
repo = "telepresence";
rev = "v${version}";
sha256 = "09w7yk7jk5m6clq3drbgdr61w60b21jmfd635brfahms8pykmmzl";
sha256 = "sha256-cGG357Z0OI+aXGHWJaOPkkKUm1KcsYBvhHxNlIYlL+0=";
};
# The Helm chart is go:embed'ed as a tarball in the binary.
@ -21,7 +21,7 @@ buildGoModule rec {
go run ./build-aux/package_embedded_chart/main.go ${src.rev}
'';
vendorSha256 = "0przkcqaf56a0sgan2xxqfpbs9nbmq4brwdv1qnag7i9myzvixxb";
vendorSha256 = "sha256-DzAxqSiWag9mOgPznjhMCQJhtJZo7hsezhwJBidsvJQ=";
ldflags = [
"-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"

View file

@ -12,20 +12,20 @@
rustPlatform.buildRustPackage rec {
pname = "mdcat";
version = "0.25.0";
version = "0.25.1";
src = fetchFromGitHub {
owner = "lunaryorn";
repo = pname;
rev = "mdcat-${version}";
sha256 = "sha256-wrtvVFOSqpNBWLRGPL+08WBS4ltQyZwRE3/dqqT6IXg=";
sha256 = "sha256-deG2VjyjFs0LFeTXfPYy3zzjj0rpVjxE0DhkpD5PzSQ=";
};
nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
buildInputs = [ openssl ]
++ lib.optional stdenv.isDarwin Security;
cargoSha256 = "sha256-9I6/lt5VXfZp2/W6EoXtagcNj2kfxB5ZT2GkWgsUyM8=";
cargoSha256 = "sha256-bPGSdXooBZMye3yj00f3rWIiW4wfg2B4meH44hpkXTY=";
checkInputs = [ ansi2html ];
# Skip tests that use the network and that include files.

View file

@ -782,6 +782,7 @@ mapAliases ({
pgtap = postgresqlPackages.pgtap;
plv8 = postgresqlPackages.plv8;
timescaledb = postgresqlPackages.timescaledb;
tlauncher = throw "tlauncher has been removed because there questionable practices and legality concerns";
tsearch_extras = postgresqlPackages.tsearch_extras;
cstore_fdw = postgresqlPackages.cstore_fdw;
pg_hll = postgresqlPackages.pg_hll;
@ -997,6 +998,7 @@ mapAliases ({
telepathy_salut = telepathy-salut; # added 2018-02-25
telnet = inetutils; # added 2018-05-15
terminus = throw "terminus has been removed, it was unmaintained in nixpkgs"; # added 2021-08-21
terraform_0_12 = throw "terraform_0_12 has been removed from nixpkgs on 2021/01";
terraform_1_0_0 = throw "terraform_1_0_0 has been renamed to terraform_1"; # added 2021-06-15
terraform_1_0 = throw "terraform_1_0 has been renamed to terraform_1"; # added 2021-12-08
terraform-provider-ibm = terraform-providers.ibm; # added 2018-09-28

View file

@ -4927,8 +4927,8 @@ with pkgs;
timeline = callPackage ../applications/office/timeline { };
tsm-client = callPackage ../tools/backup/tsm-client { jdk8 = null; };
tsm-client-withGui = callPackage ../tools/backup/tsm-client { };
tsm-client = callPackage ../tools/backup/tsm-client { };
tsm-client-withGui = callPackage ../tools/backup/tsm-client { enableGui = true; };
tracker = callPackage ../development/libraries/tracker { };
@ -20764,6 +20764,8 @@ with pkgs;
alerta-server = callPackage ../servers/monitoring/alerta { };
alps = callPackage ../servers/alps {};
apacheHttpd_2_4 = callPackage ../servers/http/apache-httpd/2.4.nix { };
apacheHttpd = apacheHttpd_2_4;
@ -24447,7 +24449,13 @@ with pkgs;
berry = callPackage ../applications/window-managers/berry { };
bespokesynth = callPackage ../applications/audio/bespokesynth { };
bespokesynth = callPackage ../applications/audio/bespokesynth {
inherit (darwin.apple_sdk.frameworks) Cocoa WebKit CoreServices CoreAudioKit;
};
bespokesynth-with-vst2 = bespokesynth.override {
enableVST2 = true;
};
bevelbar = callPackage ../applications/window-managers/bevelbar { };
@ -27193,7 +27201,9 @@ with pkgs;
ocamlPackages = ocaml-ng.ocamlPackages_4_01_0;
};
monitor = callPackage ../applications/system/monitor { };
monitor = callPackage ../applications/system/monitor {
libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
};
moolticute = libsForQt5.callPackage ../applications/misc/moolticute { };
@ -28048,6 +28058,10 @@ with pkgs;
polymake = callPackage ../applications/science/math/polymake { };
pomotroid = callPackage ../applications/misc/pomotroid {
electron = electron_9;
};
pond = callPackage ../applications/networking/instant-messengers/pond { };
ponymix = callPackage ../applications/audio/ponymix { };
@ -30257,6 +30271,22 @@ with pkgs;
drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { };
gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
eureka-editor = callPackage ../applications/misc/eureka-editor { };
eureka-ideas = callPackage ../applications/misc/eureka-ideas {
inherit (darwin.apple_sdk.frameworks) Security;
};
fava = callPackage ../applications/office/fava {};
nux = callPackage ../tools/misc/nux { };
tts = callPackage ../tools/audio/tts { };
fslint = callPackage ../applications/misc/fslint { };
### GAMES
_1oom = callPackage ../games/1oom { };
@ -30279,7 +30309,7 @@ with pkgs;
blockattack = callPackage ../games/blockattack { } ;
colobot = callPackage ../games/colobot {};
colobot = callPackage ../games/colobot { };
doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
@ -30374,7 +30404,7 @@ with pkgs;
amoeba = callPackage ../games/amoeba { };
amoeba-data = callPackage ../games/amoeba/data.nix { };
andyetitmoves = callPackage ../games/andyetitmoves {};
andyetitmoves = callPackage ../games/andyetitmoves { };
angband = callPackage ../games/angband { };
@ -30387,7 +30417,7 @@ with pkgs;
armagetronad-dedicated = callPackage ../games/armagetronad { dedicatedServer = true; };
arena = callPackage ../games/arena {};
arena = callPackage ../games/arena { };
arx-libertatis = libsForQt5.callPackage ../games/arx-libertatis { };
@ -30401,17 +30431,17 @@ with pkgs;
astromenace = callPackage ../games/astromenace { };
atanks = callPackage ../games/atanks {};
atanks = callPackage ../games/atanks { };
azimuth = callPackage ../games/azimuth {};
azimuth = callPackage ../games/azimuth { };
ballAndPaddle = callPackage ../games/ball-and-paddle {
guile = guile_1_8;
};
banner = callPackage ../games/banner {};
banner = callPackage ../games/banner { };
bastet = callPackage ../games/bastet {};
bastet = callPackage ../games/bastet { };
black-hole-solver = callPackage ../games/black-hole-solver {
inherit (perlPackages) PathTiny;
@ -30496,12 +30526,12 @@ with pkgs;
inherit (import ../games/crossfire pkgs)
crossfire-server crossfire-arch crossfire-maps crossfire-client;
crrcsim = callPackage ../games/crrcsim {};
crrcsim = callPackage ../games/crrcsim { };
curseofwar = callPackage ../games/curseofwar { SDL = null; };
curseofwar-sdl = callPackage ../games/curseofwar { ncurses = null; };
cutemaze = libsForQt5.callPackage ../games/cutemaze {};
cutemaze = libsForQt5.callPackage ../games/cutemaze { };
cuyo = callPackage ../games/cuyo { };
@ -30516,7 +30546,7 @@ with pkgs;
};
};
dhewm3 = callPackage ../games/dhewm3 {};
dhewm3 = callPackage ../games/dhewm3 { };
domination = callPackage ../games/domination { };
@ -30564,12 +30594,6 @@ with pkgs;
eternity = callPackage ../games/eternity-engine { };
eureka-editor = callPackage ../applications/misc/eureka-editor { };
eureka-ideas = callPackage ../applications/misc/eureka-ideas {
inherit (darwin.apple_sdk.frameworks) Security;
};
extremetuxracer = callPackage ../games/extremetuxracer {
libpng = libpng12;
};
@ -30598,13 +30622,11 @@ with pkgs;
factorio-utils = callPackage ../games/factorio/utils.nix { };
fairymax = callPackage ../games/fairymax {};
fairymax = callPackage ../games/fairymax { };
fava = callPackage ../applications/office/fava {};
fheroes2 = callPackage ../games/fheroes2 { };
fheroes2 = callPackage ../games/fheroes2 {};
fish-fillets-ng = callPackage ../games/fish-fillets-ng {};
fish-fillets-ng = callPackage ../games/fish-fillets-ng { };
fishfight = callPackage ../games/fishfight {
inherit (xorg) libX11 libXi;
@ -30650,8 +30672,6 @@ with pkgs;
};
};
fslint = callPackage ../applications/misc/fslint {};
galaxis = callPackage ../games/galaxis { };
gambatte = callPackage ../games/gambatte { };
@ -30670,9 +30690,9 @@ with pkgs;
gemrb = callPackage ../games/gemrb { };
gimx = callPackage ../games/gimx {};
gimx = callPackage ../games/gimx { };
gl117 = callPackage ../games/gl-117 {};
gl117 = callPackage ../games/gl-117 { };
globulation2 = callPackage ../games/globulation {
boost = boost155;
@ -30698,13 +30718,11 @@ with pkgs;
gnushogi = callPackage ../games/gnushogi { };
gogui = callPackage ../games/gogui {};
gogui = callPackage ../games/gogui { };
gscrabble = python3Packages.callPackage ../games/gscrabble {};
gscrabble = python3Packages.callPackage ../games/gscrabble { };
gshogi = python3Packages.callPackage ../games/gshogi {};
gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
gshogi = python3Packages.callPackage ../games/gshogi { };
qtads = qt5.callPackage ../games/qtads { };
@ -30718,7 +30736,7 @@ with pkgs;
gtypist = callPackage ../games/gtypist { };
gweled = callPackage ../games/gweled {};
gweled = callPackage ../games/gweled { };
gzdoom = callPackage ../games/gzdoom { };
@ -30766,7 +30784,7 @@ with pkgs;
enableGPU = false;
};
klavaro = callPackage ../games/klavaro {};
klavaro = callPackage ../games/klavaro { };
kobodeluxe = callPackage ../games/kobodeluxe { };
@ -30788,7 +30806,7 @@ with pkgs;
liberation-circuit = callPackage ../games/liberation-circuit { };
lincity = callPackage ../games/lincity {};
lincity = callPackage ../games/lincity { };
lincity_ng = callPackage ../games/lincity/ng.nix {
# https://github.com/lincity-ng/lincity-ng/issues/25
@ -30802,7 +30820,7 @@ with pkgs;
liquidwar5 = callPackage ../games/liquidwar/5.nix {
};
lugaru = callPackage ../games/lugaru {};
lugaru = callPackage ../games/lugaru { };
macopix = callPackage ../games/macopix {
gtk = gtk2;
@ -30814,7 +30832,7 @@ with pkgs;
mars = callPackage ../games/mars { };
megaglest = callPackage ../games/megaglest {};
megaglest = callPackage ../games/megaglest { };
methane = callPackage ../games/methane { };
@ -30837,7 +30855,7 @@ with pkgs;
minecraftServers = import ../games/minecraft-servers { inherit callPackage lib javaPackages; };
minecraft-server = minecraftServers.vanilla; # backwards compatibility
moon-buggy = callPackage ../games/moon-buggy {};
moon-buggy = callPackage ../games/moon-buggy { };
inherit (callPackages ../games/minetest {
inherit (darwin) libiconv;
@ -30883,8 +30901,6 @@ with pkgs;
nexuiz = callPackage ../games/nexuiz { };
nux = callPackage ../tools/misc/nux { };
ninvaders = callPackage ../games/ninvaders { };
njam = callPackage ../games/njam { };
@ -30921,8 +30937,6 @@ with pkgs;
portmod = callPackage ../games/portmod { };
tlauncher = callPackage ../games/tlauncher {};
tr-patcher = callPackage ../games/tr-patcher { };
tes3cmd = callPackage ../games/tes3cmd { };
@ -30949,8 +30963,8 @@ with pkgs;
static = true;
};
};
openttd-grfcodec = callPackage ../games/openttd/grfcodec.nix {};
openttd-nml = callPackage ../games/openttd/nml.nix {};
openttd-grfcodec = callPackage ../games/openttd/grfcodec.nix { };
openttd-nml = callPackage ../games/openttd/nml.nix { };
opentyrian = callPackage ../games/opentyrian { };
@ -30972,7 +30986,7 @@ with pkgs;
pinball = callPackage ../games/pinball { };
pingus = callPackage ../games/pingus {};
pingus = callPackage ../games/pingus { };
pioneer = callPackage ../games/pioneer { };
@ -31016,7 +31030,7 @@ with pkgs;
ioquake3 = callPackage ../games/quake3/ioquake { };
quake3e = callPackage ../games/quake3/quake3e { };
quantumminigolf = callPackage ../games/quantumminigolf {};
quantumminigolf = callPackage ../games/quantumminigolf { };
r2mod_cli = callPackage ../games/r2mod_cli { };
@ -31067,7 +31081,7 @@ with pkgs;
openjdk = openjdk8;
};
sauerbraten = callPackage ../games/sauerbraten {};
sauerbraten = callPackage ../games/sauerbraten { };
scid = callPackage ../games/scid {
tcl = tcl-8_5;
@ -31140,7 +31154,7 @@ with pkgs;
ssl-cert-check = callPackage ../tools/admin/ssl-cert-check { };
stardust = callPackage ../games/stardust {};
stardust = callPackage ../games/stardust { };
starspace = callPackage ../applications/science/machine-learning/starspace { };
@ -31242,8 +31256,6 @@ with pkgs;
tremulous = callPackage ../games/tremulous { };
tts = callPackage ../tools/audio/tts { };
tumiki-fighters = callPackage ../games/tumiki-fighters { };
tuxpaint = callPackage ../games/tuxpaint { };
@ -31386,8 +31398,8 @@ with pkgs;
xpilot-ng = callPackage ../games/xpilot { };
bloodspilot-server = callPackage ../games/xpilot/bloodspilot-server.nix {};
bloodspilot-client = callPackage ../games/xpilot/bloodspilot-client.nix {};
bloodspilot-server = callPackage ../games/xpilot/bloodspilot-server.nix { };
bloodspilot-client = callPackage ../games/xpilot/bloodspilot-client.nix { };
xskat = callPackage ../games/xskat { };
@ -31436,6 +31448,10 @@ with pkgs;
_0verkill = callPackage ../games/0verkill { };
hhexen = callPackage ../games/hhexen { };
wyvern = callPackage ../games/wyvern { };
### DESKTOP ENVIRONMENTS
cdesktopenv = callPackage ../desktops/cdesktopenv { };
@ -31465,8 +31481,6 @@ with pkgs;
gnome-tour = callPackage ../desktops/gnome/core/gnome-tour { };
hhexen = callPackage ../games/hhexen { };
hsetroot = callPackage ../tools/X11/hsetroot { };
imwheel = callPackage ../tools/X11/imwheel { };
@ -33595,7 +33609,6 @@ with pkgs;
buildGoModule = buildGo117Module;
})
mkTerraform
terraform_0_12
terraform_0_13
terraform_0_14
terraform_0_15
@ -33855,8 +33868,6 @@ with pkgs;
wxGTK = wxGTK30;
};
wyvern = callPackage ../games/wyvern { };
x11idle = callPackage ../tools/misc/x11idle {};
x11docker = callPackage ../applications/virtualization/x11docker { };

View file

@ -2888,6 +2888,8 @@ in {
flask_elastic = callPackage ../development/python-modules/flask-elastic { };
flask-gravatar = callPackage ../development/python-modules/flask-gravatar { };
flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
@ -2908,6 +2910,8 @@ in {
flask-paginate = callPackage ../development/python-modules/flask-paginate { };
flask-paranoid = callPackage ../development/python-modules/flask-paranoid { };
flask_principal = callPackage ../development/python-modules/flask-principal { };
flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
@ -2926,6 +2930,8 @@ in {
flask-session = callPackage ../development/python-modules/flask-session { };
flask-security-too = callPackage ../development/python-modules/flask-security-too { };
flask-silk = callPackage ../development/python-modules/flask-silk { };
flask-socketio = callPackage ../development/python-modules/flask-socketio { };
@ -3731,6 +3737,8 @@ in {
httmock = callPackage ../development/python-modules/httmock { };
httpagentparser = callPackage ../development/python-modules/httpagentparser { };
httpauth = callPackage ../development/python-modules/httpauth { };
httpbin = callPackage ../development/python-modules/httpbin { };
@ -4869,6 +4877,8 @@ in {
matrix-client = callPackage ../development/python-modules/matrix-client { };
matrix-common = callPackage ../development/python-modules/matrix-common { };
matrix-nio = callPackage ../development/python-modules/matrix-nio { };
mattermostdriver = callPackage ../development/python-modules/mattermostdriver { };
@ -5062,6 +5072,8 @@ in {
mohawk = callPackage ../development/python-modules/mohawk { };
mongomock = callPackage ../development/python-modules/mongomock { };
mongodict = callPackage ../development/python-modules/mongodict { };
mongoengine = callPackage ../development/python-modules/mongoengine { };
@ -8839,6 +8851,8 @@ in {
sentinel = callPackage ../development/python-modules/sentinel { };
sentinels = callPackage ../development/python-modules/sentinels { };
sentry-sdk = callPackage ../development/python-modules/sentry-sdk { };
sepaxml = callPackage ../development/python-modules/sepaxml { };
@ -9156,6 +9170,8 @@ in {
speaklater = callPackage ../development/python-modules/speaklater { };
speaklater3 = callPackage ../development/python-modules/speaklater3 { };
spectral-cube = callPackage ../development/python-modules/spectral-cube { };
speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };