diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 59eb26ab4350..99907a6877f8 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -69,6 +69,12 @@
fingerprint = "F466 A548 AD3F C1F1 8C88 4576 8702 7528 B006 D66D";
}];
};
+ _0xB10C = {
+ email = "nixpkgs@b10c.me";
+ name = "0xB10C";
+ github = "0xb10c";
+ githubId = 19157360;
+ };
_0xbe7a = {
email = "nix@be7a.de";
name = "Bela Stoyan";
@@ -2156,6 +2162,13 @@
githubId = 51231053;
name = "Daniel";
};
+ calavera = {
+ email = "david.calavera@gmail.com";
+ github = "calavera";
+ githubId = 1050;
+ matrix = "@davidcalavera:matrix.org";
+ name = "David Calavera";
+ };
callahad = {
email = "dan.callahan@gmail.com";
github = "callahad";
@@ -10165,7 +10178,7 @@
matrix = "@obfusk:matrix.org";
github = "obfusk";
githubId = 1260687;
- name = "Felix C. Stegerman";
+ name = "FC Stegerman";
keys = [{
fingerprint = "D5E4 A51D F8D2 55B9 FAC6 A9BB 2F96 07F0 9B36 0F2D";
}];
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index 02cb2dd9ccd1..22aa1ec88fa8 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -130,6 +130,13 @@
PHP now defaults to PHP 8.1, updated from 8.0.
+
+
+ protonup has been aliased to and replaced
+ by protonup-ng due to upstream not
+ maintaining it.
+
+
Perl has been updated to 5.36, and its core module
@@ -457,6 +464,14 @@
services.uptime-kuma.
+
+
+ Mepo, a
+ fast, simple, hackable OSM map viewer for mobile and desktop
+ Linux. Available as
+ programs.mepo.enable.
+
+
@@ -804,6 +819,28 @@
+
+
+ arangodb versions 3.3, 3.4, and 3.5 have
+ been removed because they are at EOL upstream. The default is
+ now 3.10.0. Support for aarch64-linux has been removed since
+ the target cannot be built reproducibly. By default
+ arangodb is now built for the
+ haswell architecture. If you wish to build
+ for a different architecture, you may override the
+ targetArchitecture argument with a value
+ from
+ this
+ list supported upstream. Some architecture specific
+ optimizations are also conditionally enabled. You may alter
+ this behavior by overriding the
+ asmOptimizations parameter. You may also
+ add additional architecture support by adding more
+ -DHAS_XYZ flags to
+ cmakeFlags via
+ overrideAttrs.
+
+
The meta.mainProgram attribute of packages
@@ -961,6 +998,13 @@
configure this behaviour.
+
+
+ mastodon now automatically removes remote
+ media attachments older than 30 days. This is configurable
+ through services.mastodon.mediaAutoRemove.
+
+
The Redis module now disables RDB persistence when
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 43abb40b8a04..b59ecc83e7dc 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -53,6 +53,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- PHP now defaults to PHP 8.1, updated from 8.0.
+- `protonup` has been aliased to and replaced by `protonup-ng` due to upstream not maintaining it.
+
- Perl has been updated to 5.36, and its core module `HTTP::Tiny` was patched to verify SSL/TLS certificates by default.
- Improved performances of `lib.closePropagation` which was previously quadratic. This is used in e.g. `ghcWithPackages`. Please see backward incompatibilities notes below.
@@ -149,6 +151,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
- [Uptime Kuma](https://uptime.kuma.pet/), a fancy self-hosted monitoring tool. Available as [services.uptime-kuma](#opt-services.uptime-kuma.enable).
+- [Mepo](https://mepo.milesalan.com), a fast, simple, hackable OSM map viewer for mobile and desktop Linux. Available as [programs.mepo.enable](#opt-programs.mepo.enable).
+
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
@@ -253,6 +257,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
* `systemd.network.networks..dhcpV6Config` no longer accepts the `ForceDHCPv6PDOtherInformation=` setting. Please use the `WithoutRA=` and `UseDelegatedPrefix=` settings in your `systemd.network.networks..dhcpV6Config` and the `DHCPv6Client=` setting in your `systemd.network.networks..ipv6AcceptRAConfig` to control when the DHCPv6 client is started and how the delegated prefixes are handled by the DHCPv6 client.
* `systemd.network.networks..networkConfig` no longer accepts the `IPv6Token=` setting. Use the `Token=` setting in your `systemd.network.networks..ipv6AcceptRAConfig` instead. The `systemd.network.networks..ipv6Prefixes.*.ipv6PrefixConfig` now also accepts the `Token=` setting.
+- `arangodb` versions 3.3, 3.4, and 3.5 have been removed because they are at EOL upstream. The default is now 3.10.0. Support for aarch64-linux has been removed since the target cannot be built reproducibly. By default `arangodb` is now built for the `haswell` architecture. If you wish to build for a different architecture, you may override the `targetArchitecture` argument with a value from [this list supported upstream](https://github.com/arangodb/arangodb/blob/207ec6937e41a46e10aea34953879341f0606841/cmake/OptimizeForArchitecture.cmake#L594). Some architecture specific optimizations are also conditionally enabled. You may alter this behavior by overriding the `asmOptimizations` parameter. You may also add additional architecture support by adding more `-DHAS_XYZ` flags to `cmakeFlags` via `overrideAttrs`.
+
- The `meta.mainProgram` attribute of packages in `wineWowPackages` now defaults to `"wine64"`.
- The `paperless` module now defaults `PAPERLESS_TIME_ZONE` to your configured system timezone.
@@ -296,6 +302,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
- ZFS module will not allow hibernation by default, this is a safety measure to prevent data loss cases like the ones described at [OpenZFS/260](https://github.com/openzfs/zfs/issues/260) and [OpenZFS/12842](https://github.com/openzfs/zfs/issues/12842). Use the `boot.zfs.allowHibernation` option to configure this behaviour.
+- `mastodon` now automatically removes remote media attachments older than 30 days. This is configurable through `services.mastodon.mediaAutoRemove`.
+
- The Redis module now disables RDB persistence when `services.redis.servers..save = []` instead of using the Redis default.
- Neo4j was updated from version 3 to version 4. See this [migration guide](https://neo4j.com/docs/upgrade-migration-guide/current/) on how to migrate your Neo4j instance.
@@ -364,7 +372,7 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
[systemd.oomd.enableRootSlice](options.html#opt-systemd.oomd.enableRootSlice),
[systemd.oomd.enableSystemSlice](options.html#opt-systemd.oomd.enableSystemSlice),
and [systemd.oomd.enableUserServices](options.html#opt-systemd.oomd.enableUserServices).
-
+
- The `tt-rss` service performs two database migrations when you first use its web UI after upgrade. Consider backing up its database before updating.
- The `pass-secret-service` package now includes systemd units from upstream, so adding it to the NixOS `services.dbus.packages` option will make it start automatically as a systemd user service when an application tries to talk to the libsecret D-Bus API.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index cffd73cd8b1f..8dac67f0c308 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -186,6 +186,8 @@
./programs/less.nix
./programs/liboping.nix
./programs/light.nix
+ ./programs/mdevctl.nix
+ ./programs/mepo.nix
./programs/mosh.nix
./programs/mininet.nix
./programs/msmtp.nix
@@ -320,6 +322,7 @@
./services/backup/znapzend.nix
./services/blockchain/ethereum/geth.nix
./services/blockchain/ethereum/erigon.nix
+ ./services/blockchain/ethereum/lighthouse.nix
./services/backup/zrepl.nix
./services/cluster/corosync/default.nix
./services/cluster/hadoop/default.nix
diff --git a/nixos/modules/programs/less.nix b/nixos/modules/programs/less.nix
index 51a326393805..a1134e774364 100644
--- a/nixos/modules/programs/less.nix
+++ b/nixos/modules/programs/less.nix
@@ -103,7 +103,8 @@ in
type = types.nullOr types.str;
default = null;
description = lib.mdDoc ''
- When less closes a file opened in such a way, it will call another program, called the input postprocessor, which may perform any desired clean-up action (such as deleting the replacement file created by LESSOPEN).
+ When less closes a file opened in such a way, it will call another program, called the input postprocessor,
+ which may perform any desired clean-up action (such as deleting the replacement file created by LESSOPEN).
'';
};
};
diff --git a/nixos/modules/programs/mdevctl.nix b/nixos/modules/programs/mdevctl.nix
new file mode 100644
index 000000000000..2b7285233350
--- /dev/null
+++ b/nixos/modules/programs/mdevctl.nix
@@ -0,0 +1,18 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+let
+ cfg = config.programs.mdevctl;
+in {
+ options.programs.mdevctl = {
+ enable = mkEnableOption (lib.mdDoc "Mediated Device Management");
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = with pkgs; [ mdevctl ];
+
+ environment.etc."mdevctl.d/scripts.d/notifiers/.keep".text = "";
+ environment.etc."mdevctl.d/scripts.d/callouts/.keep".text = "";
+
+ };
+}
diff --git a/nixos/modules/programs/mepo.nix b/nixos/modules/programs/mepo.nix
new file mode 100644
index 000000000000..4b1706a2a0e5
--- /dev/null
+++ b/nixos/modules/programs/mepo.nix
@@ -0,0 +1,46 @@
+{ pkgs, config, lib, ...}:
+with lib;
+let
+ cfg = config.programs.mepo;
+in
+{
+ options.programs.mepo = {
+ enable = mkEnableOption (mdDoc "Mepo");
+
+ locationBackends = {
+ gpsd = mkOption {
+ type = types.bool;
+ default = false;
+ description = mdDoc ''
+ Whether to enable location detection via gpsd.
+ This may require additional configuration of gpsd, see [here](#opt-services.gpsd.enable)
+ '';
+ };
+
+ geoclue = mkOption {
+ type = types.bool;
+ default = true;
+ description = mdDoc "Whether to enable location detection via geoclue";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = with pkgs; [
+ mepo
+ ] ++ lib.optional cfg.locationBackends.geoclue geoclue2-with-demo-agent
+ ++ lib.optional cfg.locationBackends.gpsd gpsd;
+
+ services.geoclue2 = mkIf cfg.locationBackends.geoclue {
+ enable = true;
+ appConfig.where-am-i = {
+ isAllowed = true;
+ isSystem = false;
+ };
+ };
+
+ services.gpsd.enable = cfg.locationBackends.gpsd;
+ };
+
+ meta.maintainers = with maintainers; [ laalsaas ];
+}
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index dc145d858515..412c5a433601 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -392,6 +392,24 @@ let
'';
};
+ failDelay = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc ''
+ If enabled, this will replace the `FAIL_DELAY` setting from `login.defs`.
+ Change the delay on failure per-application.
+ '';
+ };
+
+ delay = mkOption {
+ default = 3000000;
+ type = types.int;
+ example = 1000000;
+ description = lib.mdDoc "The delay time (in microseconds) on failure.";
+ };
+ };
+
gnupg = {
enable = mkOption {
type = types.bool;
@@ -531,6 +549,7 @@ let
|| cfg.enableGnomeKeyring
|| cfg.googleAuthenticator.enable
|| cfg.gnupg.enable
+ || cfg.failDelay.enable
|| cfg.duoSecurity.enable))
(
''
@@ -551,6 +570,9 @@ let
optionalString cfg.gnupg.enable ''
auth optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so ${optionalString cfg.gnupg.storeOnly " store-only"}
'' +
+ optionalString cfg.failDelay.enable ''
+ auth optional ${pkgs.pam}/lib/security/pam_faildelay.so delay=${toString cfg.failDelay.delay}
+ '' +
optionalString cfg.googleAuthenticator.enable ''
auth required ${pkgs.google-authenticator}/lib/security/pam_google_authenticator.so no_increment_hotp
'' +
diff --git a/nixos/modules/services/blockchain/ethereum/erigon.nix b/nixos/modules/services/blockchain/ethereum/erigon.nix
index 162774730976..892262d246b7 100644
--- a/nixos/modules/services/blockchain/ethereum/erigon.nix
+++ b/nixos/modules/services/blockchain/ethereum/erigon.nix
@@ -13,6 +13,15 @@ in {
services.erigon = {
enable = mkEnableOption (lib.mdDoc "Ethereum implementation on the efficiency frontier");
+ group = mkOption {
+ type = types.str;
+ default = "ethereum";
+ description = lib.mdDoc ''
+ Group of the user running the lighthouse process. This is used to share the jwt
+ secret with the execution layer.
+ '';
+ };
+
settings = mkOption {
description = lib.mdDoc ''
Configuration for Erigon
@@ -55,6 +64,19 @@ in {
};
config = mkIf cfg.enable {
+ users = {
+ users.erigon = {
+ name = "erigon";
+ group = cfg.group;
+ description = "Erigon user";
+ home = "/var/lib/erigon";
+ isSystemUser = true;
+ };
+ groups = mkIf (cfg.group == "ethereum") {
+ ethereum = {};
+ };
+ };
+
# Default values are the same as in the binary, they are just written here for convenience.
services.erigon.settings = {
datadir = mkDefault "/var/lib/erigon";
@@ -77,10 +99,11 @@ in {
serviceConfig = {
ExecStart = "${pkgs.erigon}/bin/erigon --config ${configFile}";
+ User = "erigon";
+ Group = cfg.group;
Restart = "on-failure";
StateDirectory = "erigon";
CapabilityBoundingSet = "";
- DynamicUser = true;
NoNewPrivileges = true;
PrivateTmp = true;
ProtectHome = true;
@@ -97,7 +120,6 @@ in {
RestrictNamespaces = true;
LockPersonality = true;
RemoveIPC = true;
- RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
SystemCallFilter = [ "@system-service" "~@privileged" ];
};
};
diff --git a/nixos/modules/services/blockchain/ethereum/lighthouse.nix b/nixos/modules/services/blockchain/ethereum/lighthouse.nix
new file mode 100644
index 000000000000..6002b16785a7
--- /dev/null
+++ b/nixos/modules/services/blockchain/ethereum/lighthouse.nix
@@ -0,0 +1,335 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+
+ cfg = config.services.lighthouse;
+in {
+
+ options = {
+ services.lighthouse = {
+ beacon = mkOption {
+ description = lib.mdDoc "Beacon node";
+ default = {};
+ type = types.submodule {
+ options = {
+ enable = lib.mkEnableOption (lib.mdDoc "Lightouse Beacon node");
+
+ dataDir = mkOption {
+ type = types.str;
+ default = "/var/lib/lighthouse-beacon";
+ description = lib.mdDoc ''
+ Directory where data will be stored. Each chain will be stored under it's own specific subdirectory.
+ '';
+ };
+
+ address = mkOption {
+ type = types.str;
+ default = "0.0.0.0";
+ description = lib.mdDoc ''
+ Listen address of Beacon node.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 9000;
+ description = lib.mdDoc ''
+ Port number the Beacon node will be listening on.
+ '';
+ };
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc ''
+ Open the port in the firewall
+ '';
+ };
+
+ disableDepositContractSync = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc ''
+ Explictly disables syncing of deposit logs from the execution node.
+ This overrides any previous option that depends on it.
+ Useful if you intend to run a non-validating beacon node.
+ '';
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "ethereum";
+ description = lib.mdDoc ''
+ Group of the user running the lighthouse process. This is used to share the jwt
+ secret with the execution layer.
+ '';
+ };
+
+ execution = {
+ address = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ description = lib.mdDoc ''
+ Listen address for the execution layer.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 8551;
+ description = lib.mdDoc ''
+ Port number the Beacon node will be listening on for the execution layer.
+ '';
+ };
+
+ jwtPath = mkOption {
+ type = types.str;
+ default = "";
+ description = lib.mdDoc ''
+ Path for the jwt secret required to connect to the execution layer.
+ '';
+ };
+ };
+
+ http = {
+ enable = lib.mkEnableOption (lib.mdDoc "Beacon node http api");
+ port = mkOption {
+ type = types.port;
+ default = 5052;
+ description = lib.mdDoc ''
+ Port number of Beacon node RPC service.
+ '';
+ };
+
+ address = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ description = lib.mdDoc ''
+ Listen address of Beacon node RPC service.
+ '';
+ };
+ };
+
+ metrics = {
+ enable = lib.mkEnableOption (lib.mdDoc "Beacon node prometheus metrics");
+ address = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ description = lib.mdDoc ''
+ Listen address of Beacon node metrics service.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 5054;
+ description = lib.mdDoc ''
+ Port number of Beacon node metrics service.
+ '';
+ };
+ };
+
+ extraArgs = mkOption {
+ type = types.str;
+ description = lib.mdDoc ''
+ Additional arguments passed to the lighthouse beacon command.
+ '';
+ default = "";
+ example = "";
+ };
+ };
+ };
+ };
+
+ validator = mkOption {
+ description = lib.mdDoc "Validator node";
+ default = {};
+ type = types.submodule {
+ options = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc "Enable Lightouse Validator node.";
+ };
+
+ dataDir = mkOption {
+ type = types.str;
+ default = "/var/lib/lighthouse-validator";
+ description = lib.mdDoc ''
+ Directory where data will be stored. Each chain will be stored under it's own specific subdirectory.
+ '';
+ };
+
+ beaconNodes = mkOption {
+ type = types.listOf types.str;
+ default = ["http://localhost:5052"];
+ description = lib.mdDoc ''
+ Beacon nodes to connect to.
+ '';
+ };
+
+ metrics = {
+ enable = lib.mkEnableOption (lib.mdDoc "Validator node prometheus metrics");
+ address = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ description = lib.mdDoc ''
+ Listen address of Validator node metrics service.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 5056;
+ description = lib.mdDoc ''
+ Port number of Validator node metrics service.
+ '';
+ };
+ };
+
+ extraArgs = mkOption {
+ type = types.str;
+ description = lib.mdDoc ''
+ Additional arguments passed to the lighthouse validator command.
+ '';
+ default = "";
+ example = "";
+ };
+ };
+ };
+ };
+
+ network = mkOption {
+ type = types.enum [ "mainnet" "prater" "goerli" "gnosis" "kiln" "ropsten" "sepolia" ];
+ default = "mainnet";
+ description = lib.mdDoc ''
+ The network to connect to. Mainnet is the default ethereum network.
+ '';
+ };
+
+ extraArgs = mkOption {
+ type = types.str;
+ description = lib.mdDoc ''
+ Additional arguments passed to every lighthouse command.
+ '';
+ default = "";
+ example = "";
+ };
+ };
+ };
+
+ config = mkIf (cfg.beacon.enable || cfg.validator.enable) {
+
+ users = {
+ users.lighthouse-beacon = {
+ name = "lighthouse-beacon";
+ group = cfg.beacon.group;
+ description = "Lighthouse beacon node user";
+ home = "${cfg.beacon.dataDir}";
+ isSystemUser = true;
+ };
+ groups = mkIf (cfg.beacon.group == "ethereum") {
+ ethereum = {};
+ };
+ };
+
+ environment.systemPackages = [ pkgs.lighthouse ] ;
+
+ networking.firewall = mkIf cfg.beacon.enable {
+ allowedTCPPorts = mkIf cfg.beacon.openFirewall [ cfg.beacon.port ];
+ allowedUDPPorts = mkIf cfg.beacon.openFirewall [ cfg.beacon.port ];
+ };
+
+
+ systemd.services.lighthouse-beacon = mkIf cfg.beacon.enable {
+ description = "Lighthouse beacon node (connect to P2P nodes and verify blocks)";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ script = ''
+ # make sure the chain data directory is created on first run
+ mkdir -p ${cfg.beacon.dataDir}/${cfg.network}
+
+ ${pkgs.lighthouse}/bin/lighthouse beacon_node \
+ --disable-upnp \
+ ${lib.optionalString cfg.beacon.disableDepositContractSync "--disable-deposit-contract-sync"} \
+ --port ${toString cfg.beacon.port} \
+ --listen-address ${cfg.beacon.address} \
+ --network ${cfg.network} \
+ --datadir ${cfg.beacon.dataDir}/${cfg.network} \
+ --execution-endpoint http://${cfg.beacon.execution.address}:${toString cfg.beacon.execution.port} \
+ --execution-jwt ${cfg.beacon.execution.jwtPath} \
+ ${lib.optionalString cfg.beacon.http.enable '' --http --http-address ${cfg.beacon.http.address} --http-port ${toString cfg.beacon.http.port}''} \
+ ${lib.optionalString cfg.beacon.metrics.enable '' --metrics --metrics-address ${cfg.beacon.metrics.address} --metrics-port ${toString cfg.beacon.metrics.port}''} \
+ ${cfg.extraArgs} ${cfg.beacon.extraArgs}
+ '';
+ serviceConfig = {
+ User = "lighthouse-beacon";
+ Group = cfg.beacon.group;
+ Restart = "on-failure";
+ StateDirectory = "lighthouse-beacon";
+ NoNewPrivileges = true;
+ PrivateTmp = true;
+ ProtectHome = true;
+ ProtectClock = true;
+ ProtectProc = "noaccess";
+ ProcSubset = "pid";
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectControlGroups = true;
+ ProtectHostname = true;
+ RestrictSUIDSGID = true;
+ RestrictRealtime = true;
+ RestrictNamespaces = true;
+ LockPersonality = true;
+ RemoveIPC = true;
+ SystemCallFilter = [ "@system-service" "~@privileged" ];
+ };
+ };
+
+ systemd.services.lighthouse-validator = mkIf cfg.validator.enable {
+ description = "Lighthouse validtor node (manages validators, using data obtained from the beacon node via a HTTP API)";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ script = ''
+ # make sure the chain data directory is created on first run
+ mkdir -p ${cfg.validator.dataDir}/${cfg.network}
+
+ ${pkgs.lighthouse}/bin/lighthouse validator_client \
+ --network ${cfg.network} \
+ --beacon-nodes ${lib.concatStringsSep "," cfg.validator.beaconNodes} \
+ --datadir ${cfg.validator.dataDir}/${cfg.network}
+ ${optionalString cfg.validator.metrics.enable ''--metrics --metrics-address ${cfg.validator.metrics.address} --metrics-port ${toString cfg.validator.metrics.port}''} \
+ ${cfg.extraArgs} ${cfg.validator.extraArgs}
+ '';
+
+ serviceConfig = {
+ Restart = "on-failure";
+ StateDirectory = "lighthouse-validator";
+ CapabilityBoundingSet = "";
+ DynamicUser = true;
+ NoNewPrivileges = true;
+ PrivateTmp = true;
+ ProtectHome = true;
+ ProtectClock = true;
+ ProtectProc = "noaccess";
+ ProcSubset = "pid";
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectControlGroups = true;
+ ProtectHostname = true;
+ RestrictSUIDSGID = true;
+ RestrictRealtime = true;
+ RestrictNamespaces = true;
+ LockPersonality = true;
+ RemoveIPC = true;
+ RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+ SystemCallFilter = [ "@system-service" "~@privileged" ];
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index e8a21c352bdd..26e7cbfca733 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -206,7 +206,7 @@ in
daemonIOSchedPriority = mkOption {
type = types.int;
- default = 0;
+ default = 4;
example = 1;
description = lib.mdDoc ''
Nix daemon process I/O scheduling priority. This priority propagates
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 7c03c188356e..892d8e537ccf 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -1796,6 +1796,33 @@ in
WorkingDirectory = workingDir;
StateDirectory = cfg.stateDir;
StateDirectoryMode = "0700";
+ # Hardening
+ AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
+ CapabilityBoundingSet = if (cfg.port < 1024) then [ "CAP_NET_BIND_SERVICE" ] else [ "" ];
+ DeviceAllow = [ "/dev/null rw" ];
+ DevicePolicy = "strict";
+ LockPersonality = true;
+ MemoryDenyWriteExecute = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ PrivateTmp = true;
+ PrivateUsers = true;
+ ProtectClock = true;
+ ProtectControlGroups = true;
+ ProtectHome = true;
+ ProtectHostname = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectProc = "invisible";
+ ProtectSystem = "full";
+ RemoveIPC = true;
+ RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+ RestrictNamespaces = true;
+ RestrictRealtime = true;
+ RestrictSUIDSGID = true;
+ SystemCallArchitectures = "native";
+ SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
};
};
# prometheus-config-reload will activate after prometheus. However, what we
diff --git a/nixos/modules/services/monitoring/teamviewer.nix b/nixos/modules/services/monitoring/teamviewer.nix
index f77b194c5656..9b1278317943 100644
--- a/nixos/modules/services/monitoring/teamviewer.nix
+++ b/nixos/modules/services/monitoring/teamviewer.nix
@@ -30,7 +30,7 @@ in
description = "TeamViewer remote control daemon";
wantedBy = [ "multi-user.target" ];
- after = [ "NetworkManager-wait-online.service" "network.target" "dbus.service" ];
+ after = [ "network-online.target" "network.target" "dbus.service" ];
requires = [ "dbus.service" ];
preStart = "mkdir -pv /var/lib/teamviewer /var/log/teamviewer";
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 3f6fa3c86402..e3c3d3ba3c96 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -391,6 +391,19 @@ let
'';
};
+ # the target is required to start new peer units when they are added
+ generateInterfaceTarget = name: values:
+ let
+ mkPeerUnit = peer: (peerUnitServiceName name peer.publicKey (peer.dynamicEndpointRefreshSeconds != 0)) + ".service";
+ in
+ nameValuePair "wireguard-${name}"
+ rec {
+ description = "WireGuard Tunnel - ${name}";
+ wantedBy = [ "multi-user.target" ];
+ wants = [ "wireguard-${name}.service" ] ++ map mkPeerUnit values.peers;
+ after = wants;
+ };
+
generateInterfaceUnit = name: values:
# exactly one way to specify the private key must be set
#assert (values.privateKey != null) != (values.privateKeyFile != null);
@@ -409,7 +422,6 @@ let
after = [ "network-pre.target" ];
wants = [ "network.target" ];
before = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
environment.DEVICE = name;
path = with pkgs; [ kmod iproute2 wireguard-tools ];
@@ -540,6 +552,8 @@ in
// (mapAttrs' generateKeyServiceUnit
(filterAttrs (name: value: value.generatePrivateKeyFile) cfg.interfaces));
- });
+ systemd.targets = mapAttrs' generateInterfaceTarget cfg.interfaces;
+ }
+ );
}
diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix
index dad8c3d3e38b..83890e969909 100644
--- a/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixos/modules/services/web-apps/mastodon.nix
@@ -425,6 +425,39 @@ in {
Do automatic database migrations.
'';
};
+
+ mediaAutoRemove = {
+ enable = lib.mkOption {
+ type = lib.types.bool;
+ default = true;
+ example = false;
+ description = lib.mdDoc ''
+ Automatically remove remote media attachments and preview cards older than the configured amount of days.
+
+ Recommended in https://docs.joinmastodon.org/admin/setup/.
+ '';
+ };
+
+ startAt = lib.mkOption {
+ type = lib.types.str;
+ default = "daily";
+ example = "hourly";
+ description = lib.mdDoc ''
+ How often to remove remote media.
+
+ The format is described in {manpage}`systemd.time(7)`.
+ '';
+ };
+
+ olderThanDays = lib.mkOption {
+ type = lib.types.int;
+ default = 30;
+ example = 14;
+ description = lib.mdDoc ''
+ How old remote media needs to be in order to be removed.
+ '';
+ };
+ };
};
};
@@ -585,6 +618,22 @@ in {
path = with pkgs; [ file imagemagick ffmpeg ];
};
+ systemd.services.mastodon-media-auto-remove = lib.mkIf cfg.mediaAutoRemove.enable {
+ description = "Mastodon media auto remove";
+ environment = env;
+ serviceConfig = {
+ Type = "oneshot";
+ script = let
+ olderThanDays = toString cfg.mediaAutoRemove.olderThanDays;
+ in ''
+ ${cfg.package}/bin/tootctl media remove --days=${olderThanDays}
+ ${cfg.package}/bin/tootctl preview_cards remove --days=${olderThanDays}
+ '';
+ EnvironmentFile = "/var/lib/mastodon/.secrets_env";
+ startAt = cfg.mediaAutoRemove.startAt;
+ } // cfgService;
+ };
+
services.nginx = lib.mkIf cfg.configureNginx {
enable = true;
recommendedProxySettings = true; # required for redirections to work
diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix
index 660f1b2d7f86..43a6d7e75dc6 100644
--- a/nixos/modules/services/web-apps/wordpress.nix
+++ b/nixos/modules/services/web-apps/wordpress.nix
@@ -409,6 +409,8 @@ in
"d '${stateDir hostName}' 0750 ${user} ${webserver.group} - -"
"d '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
"Z '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
+ "d '${cfg.fontsDir}' 0750 ${user} ${webserver.group} - -"
+ "Z '${cfg.fontsDir}' 0750 ${user} ${webserver.group} - -"
]) eachSite);
systemd.services = mkMerge [
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix
new file mode 100644
index 000000000000..31cc9b3deaa1
--- /dev/null
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix
@@ -0,0 +1,26 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ dmcfg = config.services.xserver.displayManager;
+ ldmcfg = dmcfg.lightdm;
+ cfg = ldmcfg.greeters.mobile;
+in
+{
+ options = {
+ services.xserver.displayManager.lightdm.greeters.mobile = {
+ enable = mkEnableOption (lib.mdDoc
+ "lightdm-mobile-greeter as the lightdm greeter"
+ );
+ };
+ };
+
+ config = mkIf (ldmcfg.enable && cfg.enable) {
+ services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
+
+ services.xserver.displayManager.lightdm.greeter = mkDefault {
+ package = pkgs.lightdm-mobile-greeter.xgreeters;
+ name = "lightdm-mobile-greeter";
+ };
+ };
+}
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index b0508c3b4f79..f74e8efb8f64 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -83,6 +83,7 @@ in
./lightdm-greeters/pantheon.nix
./lightdm-greeters/tiny.nix
./lightdm-greeters/slick.nix
+ ./lightdm-greeters/mobile.nix
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [
"services"
"xserver"
diff --git a/nixos/modules/system/boot/binfmt.nix b/nixos/modules/system/boot/binfmt.nix
index 260638ceed50..87e66f73be0e 100644
--- a/nixos/modules/system/boot/binfmt.nix
+++ b/nixos/modules/system/boot/binfmt.nix
@@ -321,5 +321,6 @@ in {
"proc-sys-fs-binfmt_misc.mount"
"systemd-binfmt.service"
];
+ systemd.services.systemd-binfmt.restartTriggers = [ (builtins.toJSON config.boot.binfmt.registrations) ];
};
}
diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix
index 618633935213..cdfdcc9bcdd2 100644
--- a/nixos/tests/chromium.nix
+++ b/nixos/tests/chromium.nix
@@ -166,6 +166,8 @@ mapAttrs (channel: chromiumPkg: makeTest {
clipboard = machine.succeed(
ru("${pkgs.xclip}/bin/xclip -o")
)
+ if url == "chrome://gpu":
+ clipboard = "" # TODO: We cannot copy the text via Ctrl+a
print(f"{description} window content:\n{clipboard}")
with machine.nested(description):
yield clipboard
@@ -246,11 +248,10 @@ mapAttrs (channel: chromiumPkg: makeTest {
machine.screenshot("after_copy_from_chromium")
- if major_version < "107":
- # TODO: Fix the chrome://gpu test for M107+
- with test_new_win("gpu_info", "chrome://gpu", "chrome://gpu"):
- # To check the text rendering (catches regressions like #131074):
- machine.wait_for_text("Graphics Feature Status")
+ with test_new_win("gpu_info", "chrome://gpu", "GPU Internals"):
+ # To check the text rendering (catches regressions like #131074):
+ machine.wait_for_text("Graphics Feature Status")
+ # TODO: Fix copying all of the text to the clipboard
with test_new_win("version_info", "chrome://version", "About Version") as clipboard:
diff --git a/nixos/tests/podman/default.nix b/nixos/tests/podman/default.nix
index 67c7823c5a31..106ba2057d06 100644
--- a/nixos/tests/podman/default.nix
+++ b/nixos/tests/podman/default.nix
@@ -1,5 +1,3 @@
-# This test runs podman and checks if simple container starts
-
import ../make-test-python.nix (
{ pkgs, lib, ... }: {
name = "podman";
@@ -8,31 +6,31 @@ import ../make-test-python.nix (
};
nodes = {
- podman =
- { pkgs, ... }:
- {
- virtualisation.podman.enable = true;
-
- # To test docker socket support
- virtualisation.podman.dockerSocket.enable = true;
- environment.systemPackages = [
- pkgs.docker-client
- ];
-
- users.users.alice = {
- isNormalUser = true;
- home = "/home/alice";
- description = "Alice Foobar";
- extraGroups = [ "podman" ];
- };
-
- users.users.mallory = {
- isNormalUser = true;
- home = "/home/mallory";
- description = "Mallory Foobar";
- };
+ podman = { pkgs, ... }: {
+ virtualisation.podman.enable = true;
+ users.users.alice = {
+ isNormalUser = true;
};
+ };
+ docker = { pkgs, ... }: {
+ virtualisation.podman.enable = true;
+
+ virtualisation.podman.dockerSocket.enable = true;
+
+ environment.systemPackages = [
+ pkgs.docker-client
+ ];
+
+ users.users.alice = {
+ isNormalUser = true;
+ extraGroups = [ "podman" ];
+ };
+
+ users.users.mallory = {
+ isNormalUser = true;
+ };
+ };
};
testScript = ''
@@ -45,6 +43,7 @@ import ../make-test-python.nix (
podman.wait_for_unit("sockets.target")
+ docker.wait_for_unit("sockets.target")
start_all()
with subtest("Run container as root with runc"):
@@ -74,8 +73,10 @@ import ../make-test-python.nix (
podman.succeed("podman stop sleeping")
podman.succeed("podman rm sleeping")
- # create systemd session for rootless
+ # start systemd session for rootless
podman.succeed("loginctl enable-linger alice")
+ podman.succeed(su_cmd("whoami"))
+ podman.sleep(1)
with subtest("Run container rootless with runc"):
podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
@@ -120,22 +121,22 @@ import ../make-test-python.nix (
assert pid == "2"
with subtest("A podman member can use the docker cli"):
- podman.succeed(su_cmd("docker version"))
+ docker.succeed(su_cmd("docker version"))
with subtest("Run container via docker cli"):
- podman.succeed("docker network create default")
- podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
- podman.succeed(
+ docker.succeed("docker network create default")
+ docker.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
+ docker.succeed(
"docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin localhost/scratchimg /bin/sleep 10"
)
- podman.succeed("docker ps | grep sleeping")
- podman.succeed("podman ps | grep sleeping")
- podman.succeed("docker stop sleeping")
- podman.succeed("docker rm sleeping")
- podman.succeed("docker network rm default")
+ docker.succeed("docker ps | grep sleeping")
+ docker.succeed("podman ps | grep sleeping")
+ docker.succeed("docker stop sleeping")
+ docker.succeed("docker rm sleeping")
+ docker.succeed("docker network rm default")
with subtest("A podman non-member can not use the docker cli"):
- podman.fail(su_cmd("docker version", user="mallory"))
+ docker.fail(su_cmd("docker version", user="mallory"))
# TODO: add docker-compose test
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index ae81b13597e1..9db6656dd38d 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -1,6 +1,7 @@
{ lib
, python3Packages
, fetchFromGitHub
+, fetchpatch
, gettext
, chromaprint
, qt5
@@ -27,6 +28,15 @@ pythonPackages.buildPythonApplication rec {
sha256 = "sha256-KUHciIlwaKXvyCCkAzdh1vpe9cunDizrMUl0SoCpxgY=";
};
+ patches = [
+ # fix for tests failing with newer mutagen, remove after >2.8.3
+ # https://tickets.metabrainz.org/browse/PICARD-2583
+ (fetchpatch {
+ url = "https://github.com/metabrainz/picard/commit/76c2dff6b61140bbc7675c9e9f62a086b885e539.patch";
+ hash = "sha256-V1/oq1tEcb1mtqbYAA9o7mJcw16vRO0IK3GGmJkwO1Q=";
+ })
+ ];
+
nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
++ lib.optionals (pyqt5.multimediaEnabled) [
qt5.qtmultimedia.bin
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index 32d989e7a253..ad55ef1ab8c8 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -8,13 +8,13 @@
python3Packages.buildPythonApplication rec {
pname = "vorta";
- version = "0.8.7";
+ version = "0.8.9";
src = fetchFromGitHub {
owner = "borgbase";
repo = "vorta";
rev = "refs/tags/v${version}";
- sha256 = "sha256-9SfHZbNM+lRtwLO/0dE9C4cHb3pSPkxBUITYNEdPMQw=";
+ sha256 = "sha256-5RZXHMov3CX0zRprs7sgz0+cGEdESLrg4I2glRnTkcU=";
};
nativeBuildInputs = [ wrapQtAppsHook ];
diff --git a/pkgs/applications/blockchains/btcd/default.nix b/pkgs/applications/blockchains/btcd/default.nix
new file mode 100644
index 000000000000..34a6aa1dad83
--- /dev/null
+++ b/pkgs/applications/blockchains/btcd/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "btcd";
+ version = "0.23.3";
+
+ src = fetchFromGitHub {
+ owner = "btcsuite";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-LdK68Ianiyrs+HVMwrkiX2ruCWKkdpuY8ylxhNbm9qI=";
+ };
+
+ vendorSha256 = "sha256-3w8rb0sfAIFCXqPXOKb4QwoLd7WsbFv3phu/rJCEjeY=";
+
+ subPackages = [ "." "cmd/*" ];
+
+ preCheck = ''
+ DIR="github.com/btcsuite/btcd/"
+ # TestCreateDefaultConfigFile requires the sample-btcd.conf in $DIR
+ mkdir -p $DIR
+ cp sample-btcd.conf $DIR
+ '';
+
+ meta = with lib; {
+ description = "An alternative full node bitcoin implementation written in Go (golang)";
+ homepage = "https://github.com/btcsuite/btcd";
+ license = licenses.isc;
+ maintainers = with maintainers; [ _0xB10C ];
+ };
+}
diff --git a/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
new file mode 100644
index 000000000000..a4ea16aa4a78
--- /dev/null
+++ b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, fetchFromGitea
+, gtk3
+, libhandy_0
+, lightdm
+, lightdm-mobile-greeter
+, linkFarm
+, pkg-config
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "lightdm-mobile-greeter";
+ version = "2022-10-30";
+
+ src = fetchFromGitea {
+ domain = "git.raatty.club";
+ owner = "raatty";
+ repo = "lightdm-mobile-greeter";
+ rev = "8c8d6dfce62799307320c8c5a1f0dd5c8c18e4d3";
+ hash = "sha256-SrAR2+An3BN/doFl/s8PcYZMUHLfVPXKZOo6ndO60nY=";
+ };
+ cargoHash = "sha256-NZ0jOkEBNa5oOydfyKm0XQB/vkAvBv9wHBbnM9egQFQ=";
+
+ buildInputs = [
+ gtk3
+ libhandy_0
+ lightdm
+ ];
+ nativeBuildInputs = [
+ pkg-config
+ ];
+
+ postInstall = ''
+ mkdir -p $out/share/xgreeters
+ substitute lightdm-mobile-greeter.desktop \
+ $out/share/xgreeters/lightdm-mobile-greeter.desktop \
+ --replace lightdm-mobile-greeter $out/bin/lightdm-mobile-greeter
+ '';
+
+ passthru.xgreeters = linkFarm "lightdm-mobile-greeter-xgreeters" [{
+ path = "${lightdm-mobile-greeter}/share/xgreeters/lightdm-mobile-greeter.desktop";
+ name = "lightdm-mobile-greeter.desktop";
+ }];
+
+ meta = with lib; {
+ description = "A simple log in screen for use on touch screens";
+ homepage = "https://git.raatty.club/raatty/lightdm-mobile-greeter";
+ maintainers = with maintainers; [ colinsane ];
+ platforms = platforms.linux;
+ license = licenses.mit;
+ };
+}
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 976cfb95fd0c..70d146db3218 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -10,8 +10,8 @@ let
inherit tiling_wm;
};
stableVersion = {
- version = "2021.3.1.16"; # "Android Studio Dolphin (2021.3.1)"
- sha256Hash = "GnJbWFeG9DuUQzbK9wM2BEbj9LXm4jQFf/Eh5Q75HZo=";
+ version = "2021.3.1.17"; # "Android Studio Dolphin (2021.3.1)"
+ sha256Hash = "sha256-ia2wzg/6RreJTnv+2xQrH11SxDwXHmpsualaSfd3Vso=";
};
betaVersion = {
version = "2022.1.1.12"; # "Android Studio Electric Eel (2022.1.1) Beta 2"
diff --git a/pkgs/applications/editors/neovim/neovide/default.nix b/pkgs/applications/editors/neovim/neovide/default.nix
index 3d1aa9cdc57c..3a32516b7d3c 100644
--- a/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/pkgs/applications/editors/neovim/neovide/default.nix
@@ -31,16 +31,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "neovide";
- version = "0.10.1";
+ version = "0.10.3";
src = fetchFromGitHub {
owner = "Kethku";
repo = "neovide";
rev = version;
- sha256 = "sha256-PViSiK6+H79MLIOFe26cNqUZ6gZdqDC/S+ksTrbOm54=";
+ sha256 = "sha256-CcBiCcfOJzuq0DnokTUHpMdo7Ry29ugQ+N7Hk0R+cQE=";
};
- cargoSha256 = "sha256-GvueDUY4Hzfih/MyEfhdz/QNVd9atTC8SCF+PyuJJic=";
+ cargoSha256 = "sha256-bS7yBnxAWPoTTabxI6W5Knl1DFiDztYSkEPJMa8bqlY=";
SKIA_SOURCE_DIR =
let
diff --git a/pkgs/applications/emulators/zsnes/default.nix b/pkgs/applications/emulators/zsnes/default.nix
index 956604cd6cc6..b9dd0f77a4ff 100644
--- a/pkgs/applications/emulators/zsnes/default.nix
+++ b/pkgs/applications/emulators/zsnes/default.nix
@@ -34,7 +34,8 @@ in stdenv.mkDerivation {
# Workaround build failure on -fno-common toolchains:
# ld: initc.o:(.bss+0x28): multiple definition of `HacksDisable'; cfg.o:(.bss+0x59e3): first defined here
- NIX_CFLAGS_COMPILE = "-fcommon";
+ # Use pre-c++17 standard (c++17 forbids throw annotations)
+ NIX_CFLAGS_COMPILE = "-fcommon -std=c++14";
preConfigure = ''
cd src
diff --git a/pkgs/applications/graphics/json-plot/default.nix b/pkgs/applications/graphics/json-plot/default.nix
new file mode 100644
index 000000000000..9b43518a87d2
--- /dev/null
+++ b/pkgs/applications/graphics/json-plot/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, fetchFromGitHub
+, buildGoPackage
+}:
+# upstream is pretty stale, but it still works, so until they merge module
+# support we have to use gopath: see sgreben/jp#29
+buildGoPackage rec {
+ pname = "json-plot";
+ version = "1.1.12";
+
+ src = fetchFromGitHub {
+ owner = "sgreben";
+ repo = "jp";
+ rev = version;
+ hash = "sha256-WWARAh/CF3lGli3VLRzAGaCA8xQyryPi8WcuwvdInjk=";
+ };
+
+ goPackagePath = "github.com/sgreben/jp";
+
+ meta = with lib; {
+ description = "Dead simple terminal plots from JSON (or CSV) data. Bar charts, line charts, scatter plots, histograms and heatmaps are supported.";
+ homepage = "https://github.com/sgreben/jp";
+ license = licenses.mit;
+ maintainers = with maintainers; [ urandom ];
+ mainProgram = "jp";
+ };
+}
diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix
index c87a71fdf6c7..52c3fa3bae4e 100644
--- a/pkgs/applications/graphics/synfigstudio/default.nix
+++ b/pkgs/applications/graphics/synfigstudio/default.nix
@@ -103,6 +103,7 @@ stdenv.mkDerivation {
pkg-config
autoreconfHook
gettext
+ intltool
wrapGAppsHook
];
buildInputs = [
diff --git a/pkgs/applications/misc/auto-multiple-choice/default.nix b/pkgs/applications/misc/auto-multiple-choice/default.nix
index d8db5441df5e..c34872de4cc5 100644
--- a/pkgs/applications/misc/auto-multiple-choice/default.nix
+++ b/pkgs/applications/misc/auto-multiple-choice/default.nix
@@ -11,6 +11,7 @@
, graphicsmagick
, gsettings-desktop-schemas
, gtk3
+, hicolor-icon-theme
, libnotify
, librsvg
, libxslt
@@ -56,6 +57,8 @@ stdenv.mkDerivation rec {
"LANG_GTKSOURCEVIEW_DIR=/share/gtksourceview-4/language-specs"
# Pretend to be redhat so `install` doesn't try to chown/chgrp.
"SYSTEM_TYPE=rpm"
+ "GCC=${stdenv.cc.targetPrefix}cc"
+ "GCC_PP=${stdenv.cc.targetPrefix}c++"
];
preFixup = ''
@@ -82,7 +85,7 @@ stdenv.mkDerivation rec {
XMLSimple
XMLWriter
]}:"$out/share/perl5 \
- --prefix XDG_DATA_DIRS : "$out/share" \
+ --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--set TEXINPUTS ":.:$out/tex/latex"
'';
@@ -101,6 +104,7 @@ stdenv.mkDerivation rec {
graphicsmagick
gsettings-desktop-schemas
gtk3
+ hicolor-icon-theme
libnotify
librsvg
libxslt
diff --git a/pkgs/applications/misc/bb/default.nix b/pkgs/applications/misc/bb/default.nix
index fd7eb4990f06..94775b97baee 100644
--- a/pkgs/applications/misc/bb/default.nix
+++ b/pkgs/applications/misc/bb/default.nix
@@ -18,10 +18,14 @@ stdenv.mkDerivation rec {
sed -i -e '/^#include $/d' *.c
'';
+ # error: 'regparm' is not valid on this platform
+ NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64)
+ "-D__STRICT_ANSI__";
+
meta = with lib; {
homepage = "http://aa-project.sourceforge.net/bb";
description = "AA-lib demo";
- license = licenses.gpl2;
+ license = licenses.gpl2Plus;
maintainers = [ maintainers.rnhmjoj ];
platforms = platforms.unix;
};
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index 33829ff12e2f..c6e6568eaa09 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
buildGoModule rec {
pname = "cheat";
- version = "4.3.3";
+ version = "4.4.0";
src = fetchFromGitHub {
owner = "cheat";
repo = "cheat";
rev = version;
- sha256 = "sha256-cOryo70eJj2PIJ6R09Kx6lfoguYcduIiWiOBpYp8eqY=";
+ sha256 = "sha256-lEMwPGXvgI8wtXska9ngAy9R2tr41Jq5yO6xQk9V5n4=";
};
subPackages = [ "cmd/cheat" ];
diff --git a/pkgs/applications/misc/clipqr/default.nix b/pkgs/applications/misc/clipqr/default.nix
index 7a83da6222a2..996018aeaff8 100644
--- a/pkgs/applications/misc/clipqr/default.nix
+++ b/pkgs/applications/misc/clipqr/default.nix
@@ -12,6 +12,7 @@
, makeDesktopItem
, mesa
, pkg-config
+, stdenv
}:
buildGoModule rec {
@@ -66,5 +67,6 @@ buildGoModule rec {
license = licenses.mit;
maintainers = with maintainers; [ MatthieuBarthel ];
homepage = "https://gitlab.com/imatt-foss/clipqr";
+ broken = stdenv.isDarwin;
};
}
diff --git a/pkgs/applications/misc/fuzzel/default.nix b/pkgs/applications/misc/fuzzel/default.nix
index 421f98b1fb62..162b6362fd7d 100644
--- a/pkgs/applications/misc/fuzzel/default.nix
+++ b/pkgs/applications/misc/fuzzel/default.nix
@@ -25,14 +25,14 @@ assert svgSupport -> enableCairo;
stdenv.mkDerivation rec {
pname = "fuzzel";
- version = "1.7.0";
+ version = "1.8.2";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fuzzel";
rev = version;
- sha256 = "1261gwxiky37pvzmmbrpml1psa22kkglb141ybj1fbnwg6j7jvlf";
+ sha256 = "sha256-5uXf5HfQ8bDQSMNCHHaC9sCX5P/D89T2ZOUiXTDx3bQ=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/mangal/default.nix b/pkgs/applications/misc/mangal/default.nix
index f4c7869f152c..1c7840be855a 100644
--- a/pkgs/applications/misc/mangal/default.nix
+++ b/pkgs/applications/misc/mangal/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "mangal";
- version = "4.0.1";
+ version = "4.0.2";
src = fetchFromGitHub {
owner = "metafates";
repo = pname;
rev = "v${version}";
- hash = "sha256-pMiZgO/+koyIDm7ONZn0qEq+d6HeFfQFaU1Qjovqmc4=";
+ hash = "sha256-ssvd8gdF5h6EKLY/W+1zbZWcVQqy+UirIS0p0DBQj0E=";
};
proxyVendor = true;
diff --git a/pkgs/applications/misc/mepo/default.nix b/pkgs/applications/misc/mepo/default.nix
index 1afcd3c3f1a7..5a7640c2414f 100644
--- a/pkgs/applications/misc/mepo/default.nix
+++ b/pkgs/applications/misc/mepo/default.nix
@@ -4,38 +4,38 @@
, pkg-config
, zig
, makeWrapper
+, busybox
, curl
, SDL2
, SDL2_gfx
, SDL2_image
, SDL2_ttf
+, findutils
, jq
, ncurses
-, inconsolata-nerdfont
-, dmenu
-, xdotool
-, bemenu
-, withX11 ? false
+, gnome
+, xorg
+, util-linux
+, gpsd
+, geoclue2-with-demo-agent
}:
-let
- menuInputs = if withX11 then [ dmenu xdotool ] else [ bemenu ];
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "mepo";
- version = "0.4.2";
+ version = "1.1";
src = fetchFromSourcehut {
owner = "~mil";
repo = pname;
rev = version;
- hash = "sha256-k6YXaqB3EwbDPlTvijZf10q+IYwt4/MiqGXL495KIcY=";
+ hash = "sha256-OIZ617QLjiTiDwcsn0DnRussYtjDkVyifr2mdSqA98A=";
};
nativeBuildInputs = [ pkg-config zig makeWrapper ];
buildInputs = [
- curl SDL2 SDL2_gfx SDL2_image SDL2_ttf inconsolata-nerdfont jq ncurses
- ] ++ menuInputs;
+ curl SDL2 SDL2_gfx SDL2_image SDL2_ttf jq ncurses
+ ];
preBuild = ''
export HOME=$TMPDIR
@@ -54,30 +54,33 @@ in stdenv.mkDerivation rec {
runHook preInstall
zig build -Drelease-safe=true -Dcpu=baseline --prefix $out install
+ install -d $out/share/man/man1
+ $out/bin/mepo -docman > $out/share/man/man1/mepo.1
runHook postInstall
'';
postInstall = ''
- wrapProgram $out/bin/mepo_dl.sh\
- --suffix PATH : ${lib.makeBinPath [ jq ncurses ]}
- wrapProgram $out/bin/mepo_ui_helper_menu.sh\
- --suffix PATH : ${lib.makeBinPath menuInputs}
- for script in $(grep -l jq out/bin/mepo_ui_menu_*.sh); do
- wrapProgram $script --suffix PATH : $out/bin:${lib.makeBinPath [ jq ]}
- done
- for prog in $out/bin/mepo*; do
- if [ ! -f $out/bin/.$(basename $prog)-wrapped ]; then
- wrapProgram $prog --suffix PATH : $out/bin
- fi
+ substituteInPlace $out/bin/mepo_ui_menu_user_pin_updater.sh \
+ --replace /usr/libexec/geoclue-2.0 ${geoclue2-with-demo-agent}/libexec/geoclue-2.0
+ substituteInPlace $out/bin/mepo_ui_central_menu.sh \
+ --replace "grep mepo_" "grep '^\.mepo_\|^mepo_'" \
+ --replace " ls " " ls -a " #circumvent wrapping for script detection
+ for program in $out/bin/* ; do
+ wrapProgram $program \
+ --suffix PATH : $out/bin:${lib.makeBinPath ([ jq ncurses curl busybox findutils util-linux gpsd gnome.zenity xorg.xwininfo ])}
done
'';
meta = with lib; {
description = "Fast, simple, and hackable OSM map viewer";
- homepage = "https://sr.ht/~mil/mepo/";
+ longDescription = ''
+ It is recommended to use the corresponding NixOS module.
+ '';
+
+ homepage = "https://mepo.milesalan.com";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ sikmir McSinyx ];
+ maintainers = with maintainers; [ sikmir McSinyx laalsaas ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/safeeyes/default.nix b/pkgs/applications/misc/safeeyes/default.nix
index d3d875a5b401..51ae6888b2a9 100644
--- a/pkgs/applications/misc/safeeyes/default.nix
+++ b/pkgs/applications/misc/safeeyes/default.nix
@@ -1,6 +1,5 @@
{ lib
-, buildPythonApplication
-, fetchPypi
+, python3
, alsa-utils
, gobject-introspection
, libappindicator-gtk3
@@ -10,14 +9,10 @@
, xprintidle
, xprop
, wrapGAppsHook
-, babel
-, psutil
-, xlib
-, pygobject3
-, dbus-python
-, croniter
}:
+with python3.pkgs;
+
buildPythonApplication rec {
pname = "safeeyes";
version = "2.1.3";
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index e1705efc8ddb..df10fc474257 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -87,7 +87,7 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source
- version = "11.5.6";
+ version = "11.5.7";
lang = "en-US";
@@ -99,7 +99,7 @@ let
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
];
- sha256 = "sha256-DTMY6n7GXokOz6WSrvFUkC64Siuo1Zy80A4UDolmIME=";
+ sha256 = "sha256-K50T9Fe6tMuP1J5gfwK9f/25ZeakQ9vsJi4IOPa6fMk=";
};
i686-linux = fetchurl {
@@ -109,7 +109,7 @@ let
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
];
- sha256 = "sha256-2/fGt+m/EDoeaSune32zmktHVHt8zH2wCr8+stewKCs=";
+ sha256 = "sha256-tbL/iTI3vR0gdMcLwOoWlfIDZNefIKA2hfvWKNNM9vE=";
};
};
in
diff --git a/pkgs/applications/networking/cluster/odo/default.nix b/pkgs/applications/networking/cluster/odo/default.nix
index d1773827c76f..fb3dd4850506 100644
--- a/pkgs/applications/networking/cluster/odo/default.nix
+++ b/pkgs/applications/networking/cluster/odo/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "odo";
- version = "3.1.0";
+ version = "3.2.0";
src = fetchFromGitHub {
owner = "redhat-developer";
repo = "odo";
rev = "v${version}";
- sha256 = "sha256-+QLRm01JTV7nnMiIvitdkm38E08TsmU6EfrNTUCTddY=";
+ sha256 = "sha256-nevwmw2d8HARRwOy8dPsjtjQj+W3psknphcmebRjrNE=";
};
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 04a711142b15..15e5f6ddbacf 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -93,13 +93,14 @@
"version": "0.39.0"
},
"avi": {
- "hash": "sha256-BQ4M1e7wWDCq2HEJIoAAqSUmq9hV66auvH47p3j2M8I=",
+ "hash": "sha256-0FcdVd7EGVHZ0iRonoGfjwYgXpJtUhqX5i925Ejhv54=",
"owner": "vmware",
"provider-source-address": "registry.terraform.io/vmware/avi",
+ "proxyVendor": true,
"repo": "terraform-provider-avi",
- "rev": "v22.1.1",
- "vendorHash": "sha256-otOArethLfanpp3KjQCutrlOxkcpr+6YHn5xWl31feE=",
- "version": "22.1.1"
+ "rev": "v22.1.2",
+ "vendorHash": "sha256-yDkox74g0N8iniWHSNk6KjfM0HJa8H2HUxm6RxrdhkE=",
+ "version": "22.1.2"
},
"aviatrix": {
"hash": "sha256-1zHaSdDcGynLhgLMDRbRgRzt0IvQI25TDZrYzZwwQ34=",
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 007714644374..185974539a1f 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -3,7 +3,7 @@ let
versions = if stdenv.isLinux then {
stable = "0.0.21";
ptb = "0.0.34";
- canary = "0.0.142";
+ canary = "0.0.143";
} else {
stable = "0.0.264";
ptb = "0.0.59";
@@ -22,7 +22,7 @@ let
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
- sha256 = "sha256-/EWJC3hFIBqwHa9z4nMWR7CpoaqYY+pvw+1vcq4F0LU=";
+ sha256 = "sha256-K+yyg9GTAvggfn4JQCTmq016tMyyzq+nD7aL3+bWFlo=";
};
};
x86_64-darwin = {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 92130d309902..864c70f1917b 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -18,73 +18,93 @@ let
disable_guests = true; # disable automatic guest account registration at matrix.org
piwik = false; # disable analytics
};
- configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
-in stdenv.mkDerivation rec {
- pname = "element-web";
- inherit (pinData) version;
+ unwrapped = stdenv.mkDerivation rec {
+ pname = "element-web";
+ inherit (pinData) version;
- src = fetchFromGitHub {
- owner = "vector-im";
- repo = pname;
- rev = "v${version}";
- sha256 = pinData.webSrcHash;
+ src = fetchFromGitHub {
+ owner = "vector-im";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = pinData.webSrcHash;
+ };
+
+ offlineCache = fetchYarnDeps {
+ yarnLock = src + "/yarn.lock";
+ sha256 = pinData.webYarnHash;
+ };
+
+ nativeBuildInputs = [ yarn fixup_yarn_lock jq nodejs ];
+
+ configurePhase = ''
+ runHook preConfigure
+
+ export HOME=$PWD/tmp
+ # with the update of openssl3, some key ciphers are not supported anymore
+ # this flag will allow those codecs again as a workaround
+ # see https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382#5f07
+ # and https://github.com/vector-im/element-web/issues/21043
+ export NODE_OPTIONS=--openssl-legacy-provider
+ mkdir -p $HOME
+
+ fixup_yarn_lock yarn.lock
+ yarn config --offline set yarn-offline-mirror $offlineCache
+ yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
+ patchShebangs node_modules
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ export VERSION=${version}
+ yarn build:res --offline
+ yarn build:module_system --offline
+ yarn build:bundle --offline
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ cp -R webapp $out
+ cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js
+ echo "${version}" > "$out/version"
+ jq -s '.[0] * $conf' "config.sample.json" --argjson "conf" '${builtins.toJSON noPhoningHome}' > "$out/config.json"
+
+ runHook postInstall
+ '';
+
+ meta = {
+ description = "A glossy Matrix collaboration client for the web";
+ homepage = "https://element.io/";
+ changelog = "https://github.com/vector-im/element-web/blob/v${version}/CHANGELOG.md";
+ maintainers = lib.teams.matrix.members;
+ license = lib.licenses.asl20;
+ platforms = lib.platforms.all;
+ };
};
+in
+if (conf == { }) then unwrapped else
+stdenv.mkDerivation rec {
+ pname = "${unwrapped.pname}-wrapped";
+ inherit (unwrapped) version meta;
- offlineCache = fetchYarnDeps {
- yarnLock = src + "/yarn.lock";
- sha256 = pinData.webYarnHash;
- };
+ dontUnpack = true;
- nativeBuildInputs = [ yarn fixup_yarn_lock jq nodejs ];
-
- configurePhase = ''
- runHook preConfigure
-
- export HOME=$PWD/tmp
- # with the update of openssl3, some key ciphers are not supported anymore
- # this flag will allow those codecs again as a workaround
- # see https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382#5f07
- # and https://github.com/vector-im/element-web/issues/21043
- export NODE_OPTIONS=--openssl-legacy-provider
- mkdir -p $HOME
-
- fixup_yarn_lock yarn.lock
- yarn config --offline set yarn-offline-mirror $offlineCache
- yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
- patchShebangs node_modules
-
- runHook postConfigure
- '';
-
- buildPhase = ''
- runHook preBuild
-
- export VERSION=${version}
- yarn build:res --offline
- yarn build:module_system --offline
- yarn build:bundle --offline
-
- runHook postBuild
- '';
+ nativeBuildInputs = [ jq ];
installPhase = ''
runHook preInstall
- cp -R webapp $out
- cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js
- echo "${version}" > "$out/version"
- jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
+ mkdir -p $out
+ ln -s ${unwrapped}/* $out
+ rm $out/config.json
+ jq -s '.[0] * $conf' "${unwrapped}/config.json" --argjson "conf" '${builtins.toJSON conf}' > "$out/config.json"
runHook postInstall
'';
-
- meta = {
- description = "A glossy Matrix collaboration client for the web";
- homepage = "https://element.io/";
- changelog = "https://github.com/vector-im/element-web/blob/v${version}/CHANGELOG.md";
- maintainers = lib.teams.matrix.members;
- license = lib.licenses.asl20;
- platforms = lib.platforms.all;
- };
}
diff --git a/pkgs/applications/networking/instant-messengers/gotktrix/default.nix b/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
index d0f9f3d9e52e..edcac9062848 100644
--- a/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "gotktrix";
- version = "0.1.4";
+ version = "unstable-2022-09-29";
src = fetchFromGitHub {
owner = "diamondburned";
repo = pname;
- rev = "v${version}";
- sha256 = "sha256-ZaE7L43fA9L5WbTAsBiIxlwYgjl1hMrtfrraAROz+7k=";
+ rev = "3d9e8ac4810f7cb9d9ead7b4b13ffa6f5da8927f"; # compound
+ sha256 = "sha256-VIV4vSntu3oCIE23f5fiYj8cxcKY1n4M4Xkf0MGhvxI=";
};
- vendorSha256 = "sha256-k6T44aH1NogyrbUnflfEHkp0zpOOH1YFly/X2kwbMzs=";
+ vendorSha256 = "sha256-R55tfTJL/bgNWTgmuBFRxIQleKS9zeDqvfez2VyzqjI=";
buildInputs = [
gtk4
@@ -32,8 +32,12 @@ buildGoModule rec {
# Checking requires a working display
doCheck = false;
- postInstall = ''
+ postPatch = ''
+ sed -i '/DBusActivatable/d' .nix/com.github.diamondburned.gotktrix.desktop
echo 'X-Purism-FormFactor=Workstation;Mobile;' >> .nix/com.github.diamondburned.gotktrix.desktop
+ '';
+
+ postInstall = ''
install -Dm444 .nix/com.github.diamondburned.gotktrix.desktop -t $out/share/applications/
install -Dm444 .github/logo-256.png -T $out/share/icons/hicolor/256x256/apps/gotktrix.png
'';
diff --git a/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch b/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
index 9e1578e6f1a1..1d9ca8d838d9 100644
--- a/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
+++ b/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
@@ -1,4 +1,4 @@
-From 8ed5f3c9117e08f7c2e4e1e01c2eee501675049b Mon Sep 17 00:00:00 2001
+From 2c126682aaabd7f486dfb2ff75fe29b5d8697060 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch
Date: Sat, 26 Feb 2022 12:33:13 +0100
Subject: [PATCH] Fetch buildconfig during gradle build inside Nix FOD
@@ -8,7 +8,7 @@ Subject: [PATCH] Fetch buildconfig during gradle build inside Nix FOD
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/build.gradle b/build.gradle
-index eaa6e0e..63c2947 100644
+index 799e782..caceaac 100644
--- a/build.gradle
+++ b/build.gradle
@@ -83,6 +83,9 @@ static String getVersion() {
@@ -22,11 +22,11 @@ index eaa6e0e..63c2947 100644
}
@@ -104,6 +107,8 @@ dependencies {
- implementation 'io.prometheus:simpleclient_httpserver:0.15.0'
+ implementation 'io.prometheus:simpleclient_httpserver:0.16.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
- implementation 'io.sentry:sentry:5.7.3'
-+ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
-+ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31'
+ implementation 'io.sentry:sentry:6.4.0'
++ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.1.0'
++ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
}
@@ -38,5 +38,5 @@ index eaa6e0e..63c2947 100644
\ No newline at end of file
+}
--
-2.36.0
+2.36.2
diff --git a/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch b/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
index a6efeb4a44f1..96a7d6d2ef3f 100644
--- a/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
+++ b/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
@@ -1,4 +1,4 @@
-From f319e1db47ae1eeddb6021cafe7b4f8551a702d7 Mon Sep 17 00:00:00 2001
+From b068af1f3e49dedfb489e3ed957934ff651e98ee Mon Sep 17 00:00:00 2001
From: Maximilian Bosch
Date: Sat, 26 Feb 2022 12:36:15 +0100
Subject: [PATCH 2/2] buildconfig/local deps fixes
@@ -8,7 +8,7 @@ Subject: [PATCH 2/2] buildconfig/local deps fixes
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/build.gradle b/build.gradle
-index eaa6e0e..9a2f4e2 100644
+index 799e782..6ecef3e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,11 +10,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal
@@ -48,11 +48,11 @@ index eaa6e0e..9a2f4e2 100644
dependencies {
@@ -104,6 +117,8 @@ dependencies {
- implementation 'io.prometheus:simpleclient_httpserver:0.15.0'
+ implementation 'io.prometheus:simpleclient_httpserver:0.16.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
- implementation 'io.sentry:sentry:5.7.3'
-+ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
-+ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31'
+ implementation 'io.sentry:sentry:6.4.0'
++ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.1.0'
++ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
}
@@ -67,5 +67,5 @@ index eaa6e0e..9a2f4e2 100644
-}
\ No newline at end of file
--
-2.36.0
+2.36.2
diff --git a/pkgs/applications/networking/instant-messengers/signald/default.nix b/pkgs/applications/networking/instant-messengers/signald/default.nix
index 0b8552436451..b6c6d982fb87 100644
--- a/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -4,18 +4,18 @@
let
pname = "signald";
- version = "0.19.1";
+ version = "0.23.0";
src = fetchFromGitLab {
owner = pname;
repo = pname;
rev = version;
- sha256 = "sha256-Ma6kIKRVM8UUU/TvfVp2RVl/FLxFgBQU3mEypnujJ+c=";
+ sha256 = "sha256-RN0OYjOmVtHKeFkviep952uf3qWuBj8lhcaP1Lk/gDo=";
};
jre' = jre_minimal.override {
jdk = jdk17_headless;
- # from https://gitlab.com/signald/signald/-/blob/0.19.1/build.gradle#L173
+ # from https://gitlab.com/signald/signald/-/blob/0.23.0/build.gradle#L173
modules = [
"java.base"
"java.management"
@@ -54,8 +54,8 @@ let
outputHashMode = "recursive";
# Downloaded jars differ by platform
outputHash = {
- x86_64-linux = "sha256-q1gzauIL7aKalvPSfiK5IvkNkidCh+6jp5bpwxR+PZ0=";
- aarch64-linux = "sha256-cM+7MaV0/4yAzobXX9FSdl/ZfLddwySayao96UdDgzk=";
+ x86_64-linux = "sha256-ANiNDdTuCuDEH5zUPsrVF6Uegdq3zVsMv+uMtYRX0jE=";
+ aarch64-linux = "sha256-V9zn4v/ZeLELAwFJ5y7OVAeJwZp4DmHm4KWxE6KpwGs=";
}.${stdenv.system} or (throw "Unsupported platform");
};
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index f8a47d1023ba..a2dc79559346 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -21,12 +21,12 @@
stdenv.mkDerivation rec {
pname = "mutt";
- version = "2.2.7";
+ version = "2.2.8";
outputs = [ "out" "doc" "info" ];
src = fetchurl {
url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
- sha256 = "6xOFj1i7Np9He/ZS2Q6baq3dDWEKy+o0VQSeXvrTbfE=";
+ sha256 = "A/PSN6LuKh0WM2QXyaXxe0nPcEXu/qYCHwggu/hdClM=";
};
patches = lib.optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/science/biology/octopus/default.nix b/pkgs/applications/science/biology/octopus/default.nix
index 95912d3a7c32..659b1e97f200 100644
--- a/pkgs/applications/science/biology/octopus/default.nix
+++ b/pkgs/applications/science/biology/octopus/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
+{lib, stdenv, fetchurl, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
stdenv.mkDerivation rec {
pname = "octopus";
@@ -14,6 +14,11 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ boost gmp htslib zlib xz ];
+ patches = [ (fetchurl {
+ url = "https://github.com/luntergroup/octopus/commit/17a597d192bcd5192689bf38c5836a98b824867a.patch";
+ sha256 = "sha256-VaUr63v7mzhh4VBghH7a7qrqOYwl6vucmmKzTi9yAjY=";
+ }) ];
+
postInstall = ''
mkdir $out/bin
mv $out/octopus $out/bin
diff --git a/pkgs/applications/science/logic/potassco/clingcon.nix b/pkgs/applications/science/logic/potassco/clingcon.nix
index 2238e490a603..e024ffb9364e 100644
--- a/pkgs/applications/science/logic/potassco/clingcon.nix
+++ b/pkgs/applications/science/logic/potassco/clingcon.nix
@@ -7,19 +7,15 @@
stdenv.mkDerivation rec {
pname = "clingcon";
- version = "5.0.0";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "potassco";
repo = pname;
rev = "v${version}";
- sha256 = "1g2xkz9nsgqnrw3fdf5jchl16f0skj5mm32va61scc2yrchll166";
+ sha256 = "sha256-wZfTneoQSqEnLAVE8WyPh9EABmOEhDgRm6yWAF1T7Nk=";
};
- patches = [
- ./clingcon_limits.patch
- ];
-
postPatch = ''
cp ${catch2}/include/catch2/catch.hpp libclingcon/tests/catch.hpp
'';
diff --git a/pkgs/applications/science/logic/potassco/clingcon_limits.patch b/pkgs/applications/science/logic/potassco/clingcon_limits.patch
deleted file mode 100644
index 0343e10e2112..000000000000
--- a/pkgs/applications/science/logic/potassco/clingcon_limits.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git i/libclingcon/clingcon/base.hh w/libclingcon/clingcon/base.hh
-index 2d449fe..0b5fa17 100644
---- i/libclingcon/clingcon/base.hh
-+++ w/libclingcon/clingcon/base.hh
-@@ -28,6 +28,7 @@
- #include
- #include
- #include
-+#include
-
- //! @file clingcon/base.hh
- //! Basic data types.
-diff --git i/libclingcon/clingcon/util.hh w/libclingcon/clingcon/util.hh
-index df4cddd..308259e 100644
---- i/libclingcon/clingcon/util.hh
-+++ w/libclingcon/clingcon/util.hh
-@@ -30,6 +30,7 @@
- #include