diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index dc364515cca6..c7ec1c514a75 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -4465,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";
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index dedf4b469ec0..a696d017b312 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -32,10 +32,14 @@
- Mattermost has been updated to version 6.2. Migrations may
- take a while, see the
- upgrade
- notes.
+ 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. Migrations may take a while, see the
+ changelog
+ and
+ important
+ upgrade notes.
@@ -400,6 +404,23 @@
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
+ configuration.
+
+
@@ -552,6 +573,13 @@
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
@@ -577,6 +605,17 @@
+
+
+ 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.
+
+
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 5f2a53a414ab..92e597ef674b 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -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}
@@ -127,6 +128,14 @@ 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.
+
## Other Notable Changes {#sec-release-22.05-notable-changes}
- The option [services.redis.servers](#opt-services.redis.servers) was added
@@ -192,6 +201,13 @@ In addition to numerous new and upgraded packages, this release has the followin
- 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.
diff --git a/nixos/modules/config/malloc.nix b/nixos/modules/config/malloc.nix
index 84da5643004f..a3fed33afa18 100644
--- a/nixos/modules/config/malloc.nix
+++ b/nixos/modules/config/malloc.nix
@@ -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 Sanitizer’s CombinedAllocator,
which aims at providing additional mitigations against heap based
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index c931f6b32f58..fdf93f2e17c5 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -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
diff --git a/nixos/modules/services/backup/borgbackup.nix b/nixos/modules/services/backup/borgbackup.nix
index 6804055a2940..2c307a701f3e 100644
--- a/nixos/modules/services/backup/borgbackup.nix
+++ b/nixos/modules/services/backup/borgbackup.nix
@@ -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 persistentTimer option for the
+ systemd.timer
+ 5
+ 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);
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index f19624aba022..7bfc70050992 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -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
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index e37e324019e8..3a3d4c80ecff 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -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 ];
diff --git a/nixos/modules/services/system/cachix-agent/default.nix b/nixos/modules/services/system/cachix-agent/default.nix
new file mode 100644
index 000000000000..496e0b90355b
--- /dev/null
+++ b/nixos/modules/services/system/cachix-agent/default.nix
@@ -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 ""}";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/web-apps/bookstack.nix b/nixos/modules/services/web-apps/bookstack.nix
index b509e4fff458..54eaea63b6eb 100644
--- a/nixos/modules/services/web-apps/bookstack.nix
+++ b/nixos/modules/services/web-apps/bookstack.nix
@@ -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 head -c 32 /dev/urandom| base64 and must be prefixed with base64:.
+ A file containing the Laravel APP_KEY - a 32 character long,
+ base64 encoded key used for encryption where needed. Can be
+ generated with head -c 32 /dev/urandom | base64.
'';
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: php artisan bookstack:update-url https://old.example.com https://new.example.com
'';
+ 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 for details on supported values.
+ BookStack configuration options to set in the
+ .env file.
+
+ Refer to
+ for details on supported values.
+
+ Settings containing secret data should be set to an attribute
+ set containing the attribute _secret - a
+ string pointing to a file containing the value the option
+ should be set to. See the example to get a better picture of
+ this: in the resulting .env file, the
+ OIDC_CLIENT_SECRET key will be set to the
+ contents of the /run/keys/oidc_secret
+ 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} - -"
diff --git a/nixos/modules/services/web-apps/mattermost.nix b/nixos/modules/services/web-apps/mattermost.nix
index 310a673f5114..2901f307dc5a 100644
--- a/nixos/modules/services/web-apps/mattermost.nix
+++ b/nixos/modules/services/web-apps/mattermost.nix
@@ -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.
'';
};
diff --git a/nixos/tests/borgbackup.nix b/nixos/tests/borgbackup.nix
index cbb28689209b..d3cd6c66bfeb 100644
--- a/nixos/tests/borgbackup.nix
+++ b/nixos/tests/borgbackup.nix
@@ -106,7 +106,7 @@ in {
services.openssh = {
enable = true;
passwordAuthentication = false;
- challengeResponseAuthentication = false;
+ kbdInteractiveAuthentication = false;
};
services.borgbackup.repos.repo1 = {
diff --git a/nixos/tests/btrbk.nix b/nixos/tests/btrbk.nix
index 2689bb66c63a..9f34f7dfbe38 100644
--- a/nixos/tests/btrbk.nix
+++ b/nixos/tests/btrbk.nix
@@ -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 ];
diff --git a/nixos/tests/google-oslogin/server.nix b/nixos/tests/google-oslogin/server.nix
index fdb7141da317..a0a3144ae69f 100644
--- a/nixos/tests/google-oslogin/server.nix
+++ b/nixos/tests/google-oslogin/server.nix
@@ -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;
diff --git a/pkgs/applications/misc/pomotroid/default.nix b/pkgs/applications/misc/pomotroid/default.nix
new file mode 100644
index 000000000000..dfe76aa92f4c
--- /dev/null
+++ b/pkgs/applications/misc/pomotroid/default.nix
@@ -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" ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 67b7cc9cd7d5..109951dfdd1c 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -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; }
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 573cb83ccce2..8c71e5e6df6c 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -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";
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index bce13052e5ac..1a0c25c606b0 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -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;";
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index f30e94f03d88..dd4bb6ef1425 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -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 ];
diff --git a/pkgs/applications/system/monitor/default.nix b/pkgs/applications/system/monitor/default.nix
index 6b535e5ad418..653d727525e8 100644
--- a/pkgs/applications/system/monitor/default.nix
+++ b/pkgs/applications/system/monitor/default.nix
@@ -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
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index 9a2655a379f0..bb1451594475 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
# 3.24.31 does not declare QuartzCore dependency properly and fails to link
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/0ac61443694b477c41fc246cb387ef86aba441de.patch";
- sha256 = "sha256-aiT/NeAxIl6ZS9KwMssQPzD7NtW7qqeySc/CyWakQfk=";
+ sha256 = "sha256-KaMeIdV/gfM4xzN9lIkY99E7bzAfTM6VETk5DEunB2w=";
})
];
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index e95adbd62942..d7eba4c87396 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -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 ];
diff --git a/pkgs/development/tools/cue/default.nix b/pkgs/development/tools/cue/default.nix
index f177ced3092d..9119dbce158d 100644
--- a/pkgs/development/tools/cue/default.nix
+++ b/pkgs/development/tools/cue/default.nix
@@ -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/";
diff --git a/pkgs/development/tools/pipenv/default.nix b/pkgs/development/tools/pipenv/default.nix
index 1c09bb502a23..9d2d9b3962c0 100644
--- a/pkgs/development/tools/pipenv/default.nix
+++ b/pkgs/development/tools/pipenv/default.nix
@@ -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)
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 616f5136d7c9..f40d92909051 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -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";
diff --git a/pkgs/servers/alps/default.nix b/pkgs/servers/alps/default.nix
new file mode 100644
index 000000000000..f367dc59401e
--- /dev/null
+++ b/pkgs/servers/alps/default.nix
@@ -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 ];
+ };
+}
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index fc8a299d251c..2630bb4d56ad 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -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 = ''
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 28109560ac29..7a7f442878ca 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -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 ];
diff --git a/pkgs/tools/networking/telepresence2/default.nix b/pkgs/tools/networking/telepresence2/default.nix
index 9a2e1b4bbc78..7b61dcf746cd 100644
--- a/pkgs/tools/networking/telepresence2/default.nix
+++ b/pkgs/tools/networking/telepresence2/default.nix
@@ -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}"
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 94d6a4761ab6..0118bd5473bf 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -997,6 +997,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
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8558639af0f7..a98511a18b17 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -20783,6 +20783,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;
@@ -27211,7 +27213,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 { };
@@ -28066,6 +28070,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 { };
@@ -30275,6 +30283,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 { };
@@ -30297,7 +30321,7 @@ with pkgs;
blockattack = callPackage ../games/blockattack { } ;
- colobot = callPackage ../games/colobot {};
+ colobot = callPackage ../games/colobot { };
doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
@@ -30392,7 +30416,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 { };
@@ -30405,7 +30429,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 { };
@@ -30419,17 +30443,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;
@@ -30514,12 +30538,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 { };
@@ -30534,7 +30558,7 @@ with pkgs;
};
};
- dhewm3 = callPackage ../games/dhewm3 {};
+ dhewm3 = callPackage ../games/dhewm3 { };
domination = callPackage ../games/domination { };
@@ -30582,12 +30606,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;
};
@@ -30616,13 +30634,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;
@@ -30668,8 +30684,6 @@ with pkgs;
};
};
- fslint = callPackage ../applications/misc/fslint {};
-
galaxis = callPackage ../games/galaxis { };
gambatte = callPackage ../games/gambatte { };
@@ -30688,9 +30702,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;
@@ -30716,13 +30730,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 { };
@@ -30736,7 +30748,7 @@ with pkgs;
gtypist = callPackage ../games/gtypist { };
- gweled = callPackage ../games/gweled {};
+ gweled = callPackage ../games/gweled { };
gzdoom = callPackage ../games/gzdoom { };
@@ -30784,7 +30796,7 @@ with pkgs;
enableGPU = false;
};
- klavaro = callPackage ../games/klavaro {};
+ klavaro = callPackage ../games/klavaro { };
kobodeluxe = callPackage ../games/kobodeluxe { };
@@ -30806,7 +30818,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
@@ -30820,7 +30832,7 @@ with pkgs;
liquidwar5 = callPackage ../games/liquidwar/5.nix {
};
- lugaru = callPackage ../games/lugaru {};
+ lugaru = callPackage ../games/lugaru { };
macopix = callPackage ../games/macopix {
gtk = gtk2;
@@ -30832,7 +30844,7 @@ with pkgs;
mars = callPackage ../games/mars { };
- megaglest = callPackage ../games/megaglest {};
+ megaglest = callPackage ../games/megaglest { };
methane = callPackage ../games/methane { };
@@ -30855,7 +30867,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;
@@ -30901,8 +30913,6 @@ with pkgs;
nexuiz = callPackage ../games/nexuiz { };
- nux = callPackage ../tools/misc/nux { };
-
ninvaders = callPackage ../games/ninvaders { };
njam = callPackage ../games/njam { };
@@ -30939,7 +30949,7 @@ with pkgs;
portmod = callPackage ../games/portmod { };
- tlauncher = callPackage ../games/tlauncher {};
+ tlauncher = callPackage ../games/tlauncher { };
tr-patcher = callPackage ../games/tr-patcher { };
@@ -30967,8 +30977,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 { };
@@ -30990,7 +31000,7 @@ with pkgs;
pinball = callPackage ../games/pinball { };
- pingus = callPackage ../games/pingus {};
+ pingus = callPackage ../games/pingus { };
pioneer = callPackage ../games/pioneer { };
@@ -31034,7 +31044,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 { };
@@ -31085,7 +31095,7 @@ with pkgs;
openjdk = openjdk8;
};
- sauerbraten = callPackage ../games/sauerbraten {};
+ sauerbraten = callPackage ../games/sauerbraten { };
scid = callPackage ../games/scid {
tcl = tcl-8_5;
@@ -31158,7 +31168,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 { };
@@ -31260,8 +31270,6 @@ with pkgs;
tremulous = callPackage ../games/tremulous { };
- tts = callPackage ../tools/audio/tts { };
-
tumiki-fighters = callPackage ../games/tumiki-fighters { };
tuxpaint = callPackage ../games/tuxpaint { };
@@ -31404,8 +31412,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 { };
@@ -31454,6 +31462,10 @@ with pkgs;
_0verkill = callPackage ../games/0verkill { };
+ hhexen = callPackage ../games/hhexen { };
+
+ wyvern = callPackage ../games/wyvern { };
+
### DESKTOP ENVIRONMENTS
cdesktopenv = callPackage ../desktops/cdesktopenv { };
@@ -31483,8 +31495,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 { };
@@ -33613,7 +33623,6 @@ with pkgs;
buildGoModule = buildGo117Module;
})
mkTerraform
- terraform_0_12
terraform_0_13
terraform_0_14
terraform_0_15
@@ -33873,8 +33882,6 @@ with pkgs;
wxGTK = wxGTK30;
};
- wyvern = callPackage ../games/wyvern { };
-
x11idle = callPackage ../tools/misc/x11idle {};
x11docker = callPackage ../applications/virtualization/x11docker { };