Merge master into staging-next

Changed files
+900 -86
maintainers
nixos
doc
manual
from_md
release-notes
release-notes
modules
services
blockchain
monitoring
prometheus
web-apps
x11
display-managers
lightdm-greeters
pkgs
applications
backup
vorta
blockchains
display-managers
lightdm-mobile-greeter
editors
neovim
neovide
misc
fuzzel
mangal
networking
instant-messengers
discord
science
math
virtualization
window-managers
desktops
cinnamon
cinnamon-gsettings-overrides
development
compilers
edk2
openjdk
libraries
lisp-modules-new
ocaml-modules
ppx_yojson_conv
php-packages
deployer
python-modules
amaranth
construct-classes
trezor
zeroconf
tools
servers
roundcube
plugins
contextmenu
shells
zsh
oh-my-zsh
tools
misc
edk2-uefi-shell
security
top-level
+6
maintainers/maintainer-list.nix
···
fingerprint = "F466 A548 AD3F C1F1 8C88 4576 8702 7528 B006 D66D";
}];
};
_0xbe7a = {
email = "nix@be7a.de";
name = "Bela Stoyan";
···
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";
+7
nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
···
</listitem>
<listitem>
<para>
The Redis module now disables RDB persistence when
<literal>services.redis.servers.&lt;name&gt;.save = []</literal>
instead of using the Redis default.
···
</listitem>
<listitem>
<para>
+
<literal>mastodon</literal> now automatically removes remote
+
media attachments older than 30 days. This is configurable
+
through <literal>services.mastodon.mediaAutoRemove</literal>.
+
</para>
+
</listitem>
+
<listitem>
+
<para>
The Redis module now disables RDB persistence when
<literal>services.redis.servers.&lt;name&gt;.save = []</literal>
instead of using the Redis default.
+3 -1
nixos/doc/manual/release-notes/rl-2211.section.md
···
- 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.
- The Redis module now disables RDB persistence when `services.redis.servers.<name>.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.
···
[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.
···
- 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.<name>.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.
···
[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.
+1
nixos/modules/module-list.nix
···
./services/backup/znapzend.nix
./services/blockchain/ethereum/geth.nix
./services/blockchain/ethereum/erigon.nix
./services/backup/zrepl.nix
./services/cluster/corosync/default.nix
./services/cluster/hadoop/default.nix
···
./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
+24 -2
nixos/modules/services/blockchain/ethereum/erigon.nix
···
services.erigon = {
enable = mkEnableOption (lib.mdDoc "Ethereum implementation on the efficiency frontier");
settings = mkOption {
description = lib.mdDoc ''
Configuration for Erigon
···
};
config = mkIf cfg.enable {
# Default values are the same as in the binary, they are just written here for convenience.
services.erigon.settings = {
datadir = mkDefault "/var/lib/erigon";
···
serviceConfig = {
ExecStart = "${pkgs.erigon}/bin/erigon --config ${configFile}";
Restart = "on-failure";
StateDirectory = "erigon";
CapabilityBoundingSet = "";
-
DynamicUser = true;
NoNewPrivileges = true;
PrivateTmp = true;
ProtectHome = true;
···
RestrictNamespaces = true;
LockPersonality = true;
RemoveIPC = true;
-
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
SystemCallFilter = [ "@system-service" "~@privileged" ];
};
};
···
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
···
};
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";
···
serviceConfig = {
ExecStart = "${pkgs.erigon}/bin/erigon --config ${configFile}";
+
User = "erigon";
+
Group = cfg.group;
Restart = "on-failure";
StateDirectory = "erigon";
CapabilityBoundingSet = "";
NoNewPrivileges = true;
PrivateTmp = true;
ProtectHome = true;
···
RestrictNamespaces = true;
LockPersonality = true;
RemoveIPC = true;
SystemCallFilter = [ "@system-service" "~@privileged" ];
};
};
+335
nixos/modules/services/blockchain/ethereum/lighthouse.nix
···
···
+
{ 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" ];
+
};
+
};
+
};
+
}
+27
nixos/modules/services/monitoring/prometheus/default.nix
···
WorkingDirectory = workingDir;
StateDirectory = cfg.stateDir;
StateDirectoryMode = "0700";
};
};
# prometheus-config-reload will activate after prometheus. However, what we
···
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
+49
nixos/modules/services/web-apps/mastodon.nix
···
Do automatic database migrations.
'';
};
};
};
···
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
};
services.nginx = lib.mkIf cfg.configureNginx {
···
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.
+
'';
+
};
+
};
};
};
···
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
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 {
+2
nixos/modules/services/web-apps/wordpress.nix
···
"d '${stateDir hostName}' 0750 ${user} ${webserver.group} - -"
"d '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
"Z '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
]) eachSite);
systemd.services = mkMerge [
···
"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 [
+26
nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix
···
···
+
{ 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";
+
};
+
};
+
}
+1
nixos/modules/services/x11/display-managers/lightdm.nix
···
./lightdm-greeters/pantheon.nix
./lightdm-greeters/tiny.nix
./lightdm-greeters/slick.nix
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [
"services"
"xserver"
···
./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"
+2 -2
pkgs/applications/backup/vorta/default.nix
···
python3Packages.buildPythonApplication rec {
pname = "vorta";
-
version = "0.8.7";
src = fetchFromGitHub {
owner = "borgbase";
repo = "vorta";
rev = "refs/tags/v${version}";
-
sha256 = "sha256-9SfHZbNM+lRtwLO/0dE9C4cHb3pSPkxBUITYNEdPMQw=";
};
nativeBuildInputs = [ wrapQtAppsHook ];
···
python3Packages.buildPythonApplication rec {
pname = "vorta";
+
version = "0.8.9";
src = fetchFromGitHub {
owner = "borgbase";
repo = "vorta";
rev = "refs/tags/v${version}";
+
sha256 = "sha256-5RZXHMov3CX0zRprs7sgz0+cGEdESLrg4I2glRnTkcU=";
};
nativeBuildInputs = [ wrapQtAppsHook ];
+31
pkgs/applications/blockchains/btcd/default.nix
···
···
+
{ 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 ];
+
};
+
}
+53
pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
···
···
+
{ 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;
+
};
+
}
+3 -3
pkgs/applications/editors/neovim/neovide/default.nix
···
}:
rustPlatform.buildRustPackage rec {
pname = "neovide";
-
version = "0.10.1";
src = fetchFromGitHub {
owner = "Kethku";
repo = "neovide";
rev = version;
-
sha256 = "sha256-PViSiK6+H79MLIOFe26cNqUZ6gZdqDC/S+ksTrbOm54=";
};
-
cargoSha256 = "sha256-GvueDUY4Hzfih/MyEfhdz/QNVd9atTC8SCF+PyuJJic=";
SKIA_SOURCE_DIR =
let
···
}:
rustPlatform.buildRustPackage rec {
pname = "neovide";
+
version = "0.10.3";
src = fetchFromGitHub {
owner = "Kethku";
repo = "neovide";
rev = version;
+
sha256 = "sha256-CcBiCcfOJzuq0DnokTUHpMdo7Ry29ugQ+N7Hk0R+cQE=";
};
+
cargoSha256 = "sha256-bS7yBnxAWPoTTabxI6W5Knl1DFiDztYSkEPJMa8bqlY=";
SKIA_SOURCE_DIR =
let
+2 -2
pkgs/applications/misc/fuzzel/default.nix
···
stdenv.mkDerivation rec {
pname = "fuzzel";
-
version = "1.7.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fuzzel";
rev = version;
-
sha256 = "1261gwxiky37pvzmmbrpml1psa22kkglb141ybj1fbnwg6j7jvlf";
};
nativeBuildInputs = [
···
stdenv.mkDerivation rec {
pname = "fuzzel";
+
version = "1.8.2";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fuzzel";
rev = version;
+
sha256 = "sha256-5uXf5HfQ8bDQSMNCHHaC9sCX5P/D89T2ZOUiXTDx3bQ=";
};
nativeBuildInputs = [
+2 -2
pkgs/applications/misc/mangal/default.nix
···
buildGoModule rec {
pname = "mangal";
-
version = "4.0.1";
src = fetchFromGitHub {
owner = "metafates";
repo = pname;
rev = "v${version}";
-
hash = "sha256-pMiZgO/+koyIDm7ONZn0qEq+d6HeFfQFaU1Qjovqmc4=";
};
proxyVendor = true;
···
buildGoModule rec {
pname = "mangal";
+
version = "4.0.2";
src = fetchFromGitHub {
owner = "metafates";
repo = pname;
rev = "v${version}";
+
hash = "sha256-ssvd8gdF5h6EKLY/W+1zbZWcVQqy+UirIS0p0DBQj0E=";
};
proxyVendor = true;
+2 -2
pkgs/applications/networking/instant-messengers/discord/default.nix
···
versions = if stdenv.isLinux then {
stable = "0.0.21";
ptb = "0.0.34";
-
canary = "0.0.142";
} else {
stable = "0.0.264";
ptb = "0.0.59";
···
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-
sha256 = "sha256-/EWJC3hFIBqwHa9z4nMWR7CpoaqYY+pvw+1vcq4F0LU=";
};
};
x86_64-darwin = {
···
versions = if stdenv.isLinux then {
stable = "0.0.21";
ptb = "0.0.34";
+
canary = "0.0.143";
} else {
stable = "0.0.264";
ptb = "0.0.59";
···
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
+
sha256 = "sha256-K+yyg9GTAvggfn4JQCTmq016tMyyzq+nD7aL3+bWFlo=";
};
};
x86_64-darwin = {
+2 -2
pkgs/applications/science/math/gmsh/default.nix
···
stdenv.mkDerivation rec {
pname = "gmsh";
-
version = "4.10.5";
src = fetchurl {
url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
-
sha256 = "sha256-zAMMWu5l59WPhQuLb1WmiUXIm8hx+U4SOSefWiEPxOo=";
};
buildInputs = [
···
stdenv.mkDerivation rec {
pname = "gmsh";
+
version = "4.11.0";
src = fetchurl {
url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
+
sha256 = "sha256-PPLyRFXuCSUsmeZNTmRilW5o8P8fN7rKC3jICdbMVXo=";
};
buildInputs = [
+5 -2
pkgs/applications/virtualization/OVMF/default.nix
···
-
{ stdenv, nixosTests, lib, edk2, util-linux, nasm, acpica-tools
, csmSupport ? false, seabios ? null
, secureBoot ? false
, httpSupport ? false
···
outputs = [ "out" "fd" ];
-
nativeBuildInputs = [ util-linux nasm acpica-tools ];
strictDeps = true;
hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
···
++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ]
++ lib.optionals httpSupport [ "-D NETWORK_HTTP_ENABLE=TRUE" "-D NETWORK_HTTP_BOOT_ENABLE=TRUE" ]
++ lib.optionals tpmSupport [ "-D TPM_ENABLE" "-D TPM2_ENABLE" "-D TPM2_CONFIG_ENABLE"];
postPatch = lib.optionalString csmSupport ''
cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
···
+
{ stdenv, nixosTests, lib, edk2, util-linux, nasm, acpica-tools, llvmPackages
, csmSupport ? false, seabios ? null
, secureBoot ? false
, httpSupport ? false
···
outputs = [ "out" "fd" ];
+
nativeBuildInputs = [ util-linux nasm acpica-tools ]
+
++ lib.optionals stdenv.cc.isClang [ llvmPackages.bintools llvmPackages.llvm ];
strictDeps = true;
hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
···
++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ]
++ lib.optionals httpSupport [ "-D NETWORK_HTTP_ENABLE=TRUE" "-D NETWORK_HTTP_BOOT_ENABLE=TRUE" ]
++ lib.optionals tpmSupport [ "-D TPM_ENABLE" "-D TPM2_ENABLE" "-D TPM2_CONFIG_ENABLE"];
+
+
NIX_CFLAGS_COMPILE = lib.optional stdenv.cc.isClang "-Qunused-arguments";
postPatch = lib.optionalString csmSupport ''
cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
+2 -2
pkgs/applications/virtualization/crun/default.nix
···
in
stdenv.mkDerivation rec {
pname = "crun";
-
version = "1.6";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
-
sha256 = "sha256-JO07bF2Xucz8lSvj7om17a/NT0I7Vru1vayZhPDFLIw=";
fetchSubmodules = true;
};
···
in
stdenv.mkDerivation rec {
pname = "crun";
+
version = "1.7";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
+
sha256 = "sha256-Ly6GBR7nF7J5Dwe1jrQxR4XYsao7KxBAxGn8fsJwmMs=";
fetchSubmodules = true;
};
+2 -1
pkgs/applications/window-managers/eww/default.nix
···
, fetchFromGitHub
, pkg-config
, gtk3
, withWayland ? false
, gtk-layer-shell
, stdenv
···
nativeBuildInputs = [ pkg-config ];
-
buildInputs = [ gtk3 ] ++ lib.optional withWayland gtk-layer-shell;
buildNoDefaultFeatures = withWayland;
buildFeatures = lib.optional withWayland "wayland";
···
, fetchFromGitHub
, pkg-config
, gtk3
+
, gdk-pixbuf
, withWayland ? false
, gtk-layer-shell
, stdenv
···
nativeBuildInputs = [ pkg-config ];
+
buildInputs = [ gtk3 gdk-pixbuf ] ++ lib.optional withWayland gtk-layer-shell;
buildNoDefaultFeatures = withWayland;
buildFeatures = lib.optional withWayland "wayland";
+13 -1
pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
···
, runCommand
, nixos-artwork
, glib
, gtk3
, gsettings-desktop-schemas
, extraGSettingsOverrides ? ""
···
cinnamon-session
cinnamon-settings-daemon
cinnamon-common
gtk3
] ++ extraGSettingsOverridePackages;
in
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
···
chmod -R a+w "$data_dir"
cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF
-
${extraGSettingsOverrides}
EOF
${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir"
···
, runCommand
, nixos-artwork
, glib
+
, gnome
, gtk3
, gsettings-desktop-schemas
, extraGSettingsOverrides ? ""
···
cinnamon-session
cinnamon-settings-daemon
cinnamon-common
+
gnome.gnome-terminal
gtk3
] ++ extraGSettingsOverridePackages;
+
gsettingsOverrides = ''
+
# Use Fedora's default to make text readable and
+
# restore ununified menu.
+
# https://github.com/NixOS/nixpkgs/issues/200017
+
[org.gnome.Terminal.Legacy.Settings]
+
theme-variant='dark'
+
unified-menu=false
+
+
${extraGSettingsOverrides}
+
'';
in
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
···
chmod -R a+w "$data_dir"
cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF
+
${gsettingsOverrides}
EOF
${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir"
+1 -1
pkgs/development/compilers/edk2/default.nix
···
${"GCC5_${targetArch}_PREFIX"}=stdenv.cc.targetPrefix;
makeFlags = [ "-C BaseTools" ]
-
++ lib.optionals (stdenv.cc.isClang) [ "BUILD_CC=clang BUILD_CXX=clang++ BUILD_AS=clang" ];
NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation";
···
${"GCC5_${targetArch}_PREFIX"}=stdenv.cc.targetPrefix;
makeFlags = [ "-C BaseTools" ]
+
++ lib.optionals (stdenv.cc.isClang) [ "CXX=llvm BUILD_AR=ar BUILD_CC=clang BUILD_CXX=clang++ BUILD_AS=clang BUILD_LD=ld" ];
NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation";
+1 -1
pkgs/development/compilers/openjdk/meta.nix
···
maintainers = with maintainers; [ edwtjo asbachb ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
mainProgram = "java";
-
knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" ]) [
"This OpenJDK version has reached its end of life."
];
}
···
maintainers = with maintainers; [ edwtjo asbachb ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
mainProgram = "java";
+
knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" ]) [
"This OpenJDK version has reached its end of life."
];
}
+20
pkgs/development/libraries/aspell/dictionaries.nix
···
homepage = "http://ftp.gnu.org/gnu/aspell/dict/0index.html";
} // (args.meta or {});
} // removeAttrs args [ "language" "filename" "sha256" "meta" ];
in buildDict buildArgs;
···
homepage = "http://ftp.gnu.org/gnu/aspell/dict/0index.html";
} // (args.meta or {});
+
} // lib.optionalAttrs (stdenv.isDarwin && elem language [ "is" "nb" ]) {
+
# tar: Cannot open: Illegal byte sequence
+
unpackPhase = ''
+
runHook preUnpack
+
+
tar -xf $src --strip-components=1 || true
+
+
runHook postUnpack
+
'';
+
+
postPatch = getAttr language {
+
is = ''
+
cp icelandic.alias íslenska.alias
+
sed -i 's/ .slenska\.alias/ íslenska.alias/g' Makefile.pre
+
'';
+
nb = ''
+
cp bokmal.alias bokmål.alias
+
sed -i 's/ bokm.l\.alias/ bokmål.alias/g' Makefile.pre
+
'';
+
};
} // removeAttrs args [ "language" "filename" "sha256" "meta" ];
in buildDict buildArgs;
+4
pkgs/development/libraries/lzlib/default.nix
···
sha256 = "sha256-3ea9WzJTXxeyjJrCS2ZgfgJQUGrBQypBEso8c/XWYsM=";
};
makeFlags = [ "CC:=$(CC)" ];
doCheck = true;
···
sha256 = "sha256-3ea9WzJTXxeyjJrCS2ZgfgJQUGrBQypBEso8c/XWYsM=";
};
+
postPatch = lib.optionalString stdenv.isDarwin ''
+
substituteInPlace Makefile.in --replace '-Wl,--soname=' '-Wl,-install_name,$(out)/lib/'
+
'';
+
makeFlags = [ "CC:=$(CC)" ];
doCheck = true;
+3
pkgs/development/lisp-modules-new/ql.nix
···
trivial-ssh-libssh2 = pkg: {
nativeLibs = [ libssh2 ];
};
sqlite = pkg: {
nativeLibs = [ sqlite ];
};
···
trivial-ssh-libssh2 = pkg: {
nativeLibs = [ libssh2 ];
};
+
mssql = pkg: {
+
nativeLibs = [ freetds ];
+
};
sqlite = pkg: {
nativeLibs = [ sqlite ];
};
+34
pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
···
···
+
{
+
lib,
+
buildDunePackage,
+
fetchFromGitHub,
+
ppx_js_style,
+
ppx_yojson_conv_lib,
+
ppxlib,
+
}:
+
buildDunePackage rec {
+
pname = "ppx_yojson_conv";
+
version = "0.15.1";
+
duneVersion = "3";
+
minimumOCamlVersion = "4.08.0";
+
+
src = fetchFromGitHub {
+
owner = "janestreet";
+
repo = pname;
+
rev = "v${version}";
+
sha256 = "sha256-lSOUSMVgsRiArEhFTKpAj2yFBPbtaIc/SxdPA+24xXs=";
+
};
+
+
propagatedBuildInputs = [
+
ppx_js_style
+
ppx_yojson_conv_lib
+
ppxlib
+
];
+
+
meta = with lib; {
+
description = "A PPX syntax extension that generates code for converting OCaml types to and from Yojson";
+
homepage = "https://github.com/janestreet/ppx_yojson_conv";
+
maintainers = with maintainers; [djacu];
+
license = with licenses; [mit];
+
};
+
}
+1
pkgs/development/php-packages/deployer/default.nix
···
description = "A deployment tool for PHP";
license = licenses.mit;
homepage = "https://deployer.org/";
maintainers = with maintainers; teams.php.members;
};
}
···
description = "A deployment tool for PHP";
license = licenses.mit;
homepage = "https://deployer.org/";
+
mainProgram = "dep";
maintainers = with maintainers; teams.php.members;
};
}
+18
pkgs/development/python-modules/amaranth/default.nix
···
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, setuptools
, setuptools-scm
, pyvcd
···
rev = "39a83f4d995d16364cc9b99da646ff8db6394166";
sha256 = "P9AG3t30eGeeCN5+t7mjhRoOWIGZVzWQji9eYXphjA0=";
};
SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}";
···
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
+
, fetchpatch
, setuptools
, setuptools-scm
, pyvcd
···
rev = "39a83f4d995d16364cc9b99da646ff8db6394166";
sha256 = "P9AG3t30eGeeCN5+t7mjhRoOWIGZVzWQji9eYXphjA0=";
};
+
+
patches = [
+
(fetchpatch {
+
name = "fix-for-setuptools-64.0.2-preparation.patch";
+
url = "https://github.com/amaranth-lang/amaranth/commit/64771a065a280fa683c1e6692383bec4f59f20fa.patch";
+
hash = "sha256-Rsh9vVvUQj9nIcrsRirmR6XwFrfZ2VMaYJ4RCQ8sBE0=";
+
# This commit removes support for Python 3.6, which is unnecessary to fix
+
# the build when using new setuptools. Include only one file, which has a
+
# harmless comment change so that the subsequent patch applies cleanly.
+
includes = ["amaranth/_toolchain/cxx.py"];
+
})
+
(fetchpatch {
+
name = "fix-for-setuptools-64.0.2.patch";
+
url = "https://github.com/amaranth-lang/amaranth/pull/722/commits/e5a56b07c568e5f4cc2603eefebd14c5cc4e13d8.patch";
+
hash = "sha256-C8FyMSKHA7XsEMpO9eYNZx/X5rGaK7p3eXP+jSb6wVg=";
+
})
+
];
SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}";
+41
pkgs/development/python-modules/construct-classes/default.nix
···
···
+
{ lib
+
, stdenv
+
, buildPythonPackage
+
, fetchFromGitHub
+
, poetry-core
+
, construct
+
, pytestCheckHook
+
}:
+
+
buildPythonPackage rec {
+
pname = "construct-classes";
+
version = "0.1.2";
+
format = "pyproject";
+
+
# no tests in PyPI tarball
+
src = fetchFromGitHub {
+
owner = "matejcik";
+
repo = "construct-classes";
+
rev = "v${version}";
+
sha256 = "sha256-l4sVacKTuQbhXCw2lVHCl1OzpCiKmEAm9nSQ8pxFuTo=";
+
};
+
+
nativeBuildInputs = [
+
poetry-core
+
];
+
+
propagatedBuildInputs = [
+
construct
+
];
+
+
checkInputs = [ pytestCheckHook ];
+
+
pythonImportsCheck = [ "construct_classes" ];
+
+
meta = with lib; {
+
description = "Parse your binary data into dataclasses.";
+
homepage = "https://github.com/matejcik/construct-classes";
+
license = licenses.mit;
+
maintainers = with maintainers; [ prusnak ];
+
};
+
}
+5 -2
pkgs/development/python-modules/trezor/default.nix
···
, attrs
, click
, construct
, ecdsa
, hidapi
, libusb1
···
buildPythonPackage rec {
pname = "trezor";
-
version = "0.13.3";
disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
-
sha256 = "055d32174d4ecf2353f7622ee44b8e82e3bef78fe40ce5cdbeafc785b422a049";
};
nativeBuildInputs = [ installShellFiles ];
···
attrs
click
construct
ecdsa
hidapi
libusb1
···
disabledTestPaths = [
"tests/test_stellar.py" # requires stellar-sdk
];
pythonImportsCheck = [ "trezorlib" ];
···
, attrs
, click
, construct
+
, construct-classes
, ecdsa
, hidapi
, libusb1
···
buildPythonPackage rec {
pname = "trezor";
+
version = "0.13.4";
disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
+
sha256 = "04a77b44005971819386bbd55242a1004b1f88fbbdb829deb039a1e0028a4af1";
};
nativeBuildInputs = [ installShellFiles ];
···
attrs
click
construct
+
construct-classes
ecdsa
hidapi
libusb1
···
disabledTestPaths = [
"tests/test_stellar.py" # requires stellar-sdk
+
"tests/test_firmware.py" # requires network downloads
];
pythonImportsCheck = [ "trezorlib" ];
+3
pkgs/development/python-modules/zeroconf/default.nix
···
ifaddr
];
checkInputs = [
pytest-asyncio
pytestCheckHook
···
ifaddr
];
+
# OSError: [Errno 48] Address already in use
+
doCheck = !stdenv.isDarwin;
+
checkInputs = [
pytest-asyncio
pytestCheckHook
+51
pkgs/development/tools/buf/buf-tests-dont-use-file-transport.patch
···
···
+
commit e9219b88de5ed37af337ee2d2e71e7ec7c0aad1b
+
Author: Robbert van Ginkel <rvanginkel@buf.build>
+
Date: Thu Oct 20 16:43:28 2022 -0400
+
+
Fix git unit test by using fake git server rather than file:// (#1518)
+
+
More recent versions of git fix a CVE by disabling some usage of the
+
`file://` transport, see
+
https://github.blog/2022-10-18-git-security-vulnerabilities-announced/#cve-2022-39253.
+
We were using this transport in tests.
+
+
Instead, use https://git-scm.com/docs/git-http-backend to serve up this
+
repository locally so we don't have to use the file protocol. This
+
should be a more accurate tests, since we mostly expect submodules to
+
come from servers.
+
+
diff --git a/private/pkg/git/git_test.go b/private/pkg/git/git_test.go
+
index 7b77b6cd..7132054e 100644
+
--- a/private/pkg/git/git_test.go
+
+++ b/private/pkg/git/git_test.go
+
@@ -17,6 +17,8 @@ package git
+
import (
+
"context"
+
"errors"
+
+ "net/http/cgi"
+
+ "net/http/httptest"
+
"os"
+
"os/exec"
+
"path/filepath"
+
@@ -213,6 +215,21 @@ func createGitDirs(
+
runCommand(ctx, t, container, runner, "git", "-C", submodulePath, "add", "test.proto")
+
runCommand(ctx, t, container, runner, "git", "-C", submodulePath, "commit", "-m", "commit 0")
+
+
+ gitExecPath, err := command.RunStdout(ctx, container, runner, "git", "--exec-path")
+
+ require.NoError(t, err)
+
+ t.Log(filepath.Join(string(gitExecPath), "git-http-backend"))
+
+ // https://git-scm.com/docs/git-http-backend#_description
+
+ f, err := os.Create(filepath.Join(submodulePath, ".git", "git-daemon-export-ok"))
+
+ require.NoError(t, err)
+
+ require.NoError(t, f.Close())
+
+ server := httptest.NewServer(&cgi.Handler{
+
+ Path: filepath.Join(strings.TrimSpace(string(gitExecPath)), "git-http-backend"),
+
+ Dir: submodulePath,
+
+ Env: []string{"GIT_PROJECT_ROOT=" + submodulePath},
+
+ })
+
+ t.Cleanup(server.Close)
+
+ submodulePath = server.URL
+
+
+
originPath := filepath.Join(tmpDir, "origin")
+
require.NoError(t, os.MkdirAll(originPath, 0777))
+
runCommand(ctx, t, container, runner, "git", "-C", originPath, "init")
+3
pkgs/development/tools/buf/default.nix
···
./skip_test_requiring_network.patch
# Skip TestWorkspaceGit which requires .git and commits.
./skip_test_requiring_dotgit.patch
];
nativeBuildInputs = [ installShellFiles ];
···
./skip_test_requiring_network.patch
# Skip TestWorkspaceGit which requires .git and commits.
./skip_test_requiring_dotgit.patch
+
# Remove reliance of tests on file protocol which is disabled in git by default now
+
# Rebased upstream change https://github.com/bufbuild/buf/commit/bcaa77f8bbb8f6c198154c7c8d53596da4506dab
+
./buf-tests-dont-use-file-transport.patch
];
nativeBuildInputs = [ installShellFiles ];
+1 -1
pkgs/development/tools/electron/generic.nix
···
++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ]
++ optionals (versionOlder version "19.0.0") [ "i686-linux" ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-
knownVulnerabilities = optional (versionOlder version "15.0.0") "Electron version ${version} is EOL";
};
fetcher = vers: tag: hash: fetchurl {
···
++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ]
++ optionals (versionOlder version "19.0.0") [ "i686-linux" ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+
knownVulnerabilities = optional (versionOlder version "18.0.0") "Electron version ${version} is EOL";
};
fetcher = vers: tag: hash: fetchurl {
+25 -2
pkgs/development/tools/esbuild/netlify.nix
···
-
{ buildGoModule, fetchFromGitHub, lib }:
buildGoModule rec {
pname = "esbuild";
···
sha256 = "0asjmqfzdrpfx2hd5hkac1swp52qknyqavsm59j8xr4c1ixhc6n9";
};
-
vendorSha256 = "sha256-2ABWPqhK2Cf4ipQH7XvRrd+ZscJhYPc3SV2cGT0apdg=";
meta = with lib; {
description = "A fork of esbuild maintained by netlify";
···
+
{ lib
+
, buildGoModule
+
, fetchFromGitHub
+
, fetchpatch
+
, netlify-cli
+
}:
buildGoModule rec {
pname = "esbuild";
···
sha256 = "0asjmqfzdrpfx2hd5hkac1swp52qknyqavsm59j8xr4c1ixhc6n9";
};
+
vendorSha256 = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
+
+
patches = [
+
# Both upstream patches update the same dependency "x/sys". It's required for darwin compatibility.
+
(fetchpatch {
+
url = "https://github.com/evanw/esbuild/commit/2567e099fcc6959e630f100b2c737ca80e88ba82.patch";
+
hash = "sha256-KdX/Ru9TBX0mSDaS1ijxgzDI+2AoCvt6Wilhpca3VC0=";
+
})
+
(fetchpatch {
+
url = "https://github.com/evanw/esbuild/commit/fd13718c6195afb9e63682476a774fa6d4483be0.patch";
+
hash = "sha256-va/bXRBQf9qgE9LZXcKKAa0ZpMt/QG7BFClJ8bPWG1Y=";
+
})
+
];
+
+
passthru = {
+
tests = {
+
inherit netlify-cli;
+
};
+
};
meta = with lib; {
description = "A fork of esbuild maintained by netlify";
+11 -6
pkgs/development/tools/gllvm/default.nix
···
-
{ lib, buildGoPackage, fetchFromGitHub }:
-
buildGoPackage rec {
pname = "gllvm";
-
version = "1.3.0";
-
-
goPackagePath = "github.com/SRI-CSL/gllvm";
src = fetchFromGitHub {
owner = "SRI-CSL";
repo = "gllvm";
rev = "v${version}";
-
sha256 = "sha256-nu6PRFk+GoN1gT1RTbX6mTPZByAGf0bSsj2C5YriGp8=";
};
meta = with lib; {
homepage = "https://github.com/SRI-CSL/gllvm";
···
+
{ lib, buildGoModule, fetchFromGitHub, llvmPackages, getconf }:
+
buildGoModule rec {
pname = "gllvm";
+
version = "1.3.1";
src = fetchFromGitHub {
owner = "SRI-CSL";
repo = "gllvm";
rev = "v${version}";
+
sha256 = "sha256-CoreqnMRuPuv+Ci1uyF3HJCJFwK2jwB79okynv6AHTA=";
};
+
+
vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+
checkInputs = with llvmPackages; [
+
clang
+
llvm
+
] ++ lib.optionals stdenv.isDarwin [ getconf ];
meta = with lib; {
homepage = "https://github.com/SRI-CSL/gllvm";
+3 -3
pkgs/development/tools/nil/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "nil";
-
version = "2022-10-03";
src = fetchFromGitHub {
owner = "oxalica";
repo = pname;
rev = version;
-
hash = "sha256-Oo0y/333YyeW9zeYQyiUUay7q7GK/Uu/FdEa6+5c4Pk=";
};
-
cargoHash = "sha256-z7wjap7IL2OTd2wEUB6EbSbP71dZiqbKDmJ7oUjVi0U=";
CFG_DATE = version;
CFG_REV = "release";
···
rustPlatform.buildRustPackage rec {
pname = "nil";
+
version = "2022-11-07";
src = fetchFromGitHub {
owner = "oxalica";
repo = pname;
rev = version;
+
hash = "sha256-ioY9RvKx9DKnNTeMW8mAIEq23w7Y+lAOFWMkgUQ5fu4=";
};
+
cargoHash = "sha256-sL/bnLK3TifmVHy3LOsduETHh9SGz639vgEKkbHE0HQ=";
CFG_DATE = version;
CFG_REV = "release";
+2 -2
pkgs/development/tools/yamlpath/default.nix
···
python3.pkgs.buildPythonApplication rec {
pname = "yamlpath";
-
version = "3.6.8";
format = "setuptools";
src = fetchFromGitHub {
owner = "wwkimball";
repo = pname;
rev = "refs/tags/v${version}";
-
sha256 = "sha256-g4Pw0IWLY/9nG2eqbiknWCZjJNGbmV42KEviIENXYYA=";
};
propagatedBuildInputs = with python3.pkgs; [
···
python3.pkgs.buildPythonApplication rec {
pname = "yamlpath";
+
version = "3.6.9";
format = "setuptools";
src = fetchFromGitHub {
owner = "wwkimball";
repo = pname;
rev = "refs/tags/v${version}";
+
sha256 = "sha256-0r1jlDWlYPIjUEudHbwt324rt0H8K3PUb7RILoxNNnw=";
};
propagatedBuildInputs = with python3.pkgs; [
+11
pkgs/servers/roundcube/plugins/contextmenu/default.nix
···
···
+
{ roundcubePlugin, fetchzip }:
+
+
roundcubePlugin rec {
+
pname = "contextmenu";
+
version = "3.3.1";
+
+
src = fetchzip {
+
url = "https://github.com/johndoh/roundcube-contextmenu/archive/refs/tags/${version}.tar.gz";
+
sha256 = "0aya3nv8jwfvd9rlvxfxnyfpdcpw858745xal362l3zzkbkhcrmb";
+
};
+
}
+1
pkgs/servers/roundcube/plugins/plugins.nix
···
roundcubePlugin = callPackage ./roundcube-plugin.nix { };
carddav = callPackage ./carddav { };
persistent_login = callPackage ./persistent_login { };
}
···
roundcubePlugin = callPackage ./roundcube-plugin.nix { };
carddav = callPackage ./carddav { };
+
contextmenu = callPackage ./contextmenu { };
persistent_login = callPackage ./persistent_login { };
}
+3 -3
pkgs/shells/zsh/oh-my-zsh/default.nix
···
, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }:
stdenv.mkDerivation rec {
-
version = "2022-11-06";
pname = "oh-my-zsh";
-
rev = "4806f755694d160f20e3fb8ae0a1d009d56d966b";
src = fetchFromGitHub {
inherit rev;
owner = "ohmyzsh";
repo = "ohmyzsh";
-
sha256 = "zaaTcTka4L3Ec2bWgT0Yd8vSVG/n21G0PC/VxK2DfT8=";
};
strictDeps = true;
···
, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }:
stdenv.mkDerivation rec {
+
version = "2022-11-07";
pname = "oh-my-zsh";
+
rev = "0145d744a9c4c11f00992f7f3ad9555bc8ac6177";
src = fetchFromGitHub {
inherit rev;
owner = "ohmyzsh";
repo = "ohmyzsh";
+
sha256 = "F1h+yTYCVS3rz/ADahOQWyee3TKjkNfUc8O7Ug+2z48=";
};
strictDeps = true;
+6 -1
pkgs/tools/misc/edk2-uefi-shell/default.nix
···
{ lib
, edk2
, util-linux
, nasm
, python3
···
pname = "edk2-uefi-shell";
inherit (edk2) version;
-
nativeBuildInputs = [ util-linux nasm python3 ];
strictDeps = true;
# We only have a .efi file in $out which shouldn't be patched or stripped
dontPatchELF = true;
···
{ lib
+
, stdenv
, edk2
+
, llvmPackages
, util-linux
, nasm
, python3
···
pname = "edk2-uefi-shell";
inherit (edk2) version;
+
nativeBuildInputs = [ util-linux nasm python3 ]
+
++ lib.optionals stdenv.cc.isClang [ llvmPackages.bintools llvmPackages.llvm ];
strictDeps = true;
+
+
NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [ "-fno-pic" "-Qunused-arguments" ];
# We only have a .efi file in $out which shouldn't be patched or stripped
dontPatchELF = true;
+2 -1
pkgs/tools/security/grype/default.nix
···
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
-
vendorSha256 = "sha256-K6MJp07JEit/6AHqLtnzXIaVCi7W6jfX41M96VwnS5A=";
nativeBuildInputs = [
installShellFiles
···
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
+
proxyVendor = true;
+
vendorSha256 = "sha256-tRux9M9vFPj3TqhsF1zSV4V1YKnLVViuQjum9YFr5FU=";
nativeBuildInputs = [
installShellFiles
+1 -1
pkgs/tools/security/metasploit/Gemfile
···
# frozen_string_literal: true
source "https://rubygems.org"
-
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.24"
···
# frozen_string_literal: true
source "https://rubygems.org"
+
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.25"
+15 -15
pkgs/tools/security/metasploit/Gemfile.lock
···
GIT
remote: https://github.com/rapid7/metasploit-framework
-
revision: 1c805324f10bafa3a99fcd0315cc99ef83430b23
-
ref: refs/tags/6.2.24
specs:
-
metasploit-framework (6.2.24)
actionpack (~> 6.0)
activerecord (~> 6.0)
activesupport (~> 6.0)
···
arel-helpers (2.14.0)
activerecord (>= 3.1.0, < 8)
aws-eventstream (1.2.0)
-
aws-partitions (1.652.0)
aws-sdk-core (3.166.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
-
aws-sdk-ec2 (1.343.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.73.0)
···
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bcrypt_pbkdf (1.1.0)
-
bindata (2.4.13)
bson (4.15.0)
builder (3.2.4)
concurrent-ruby (1.0.5)
···
eventmachine (>= 1.0.0.beta.4)
erubi (1.11.0)
eventmachine (1.2.7)
-
faker (2.23.0)
i18n (>= 1.8.11, < 2)
faraday (2.6.0)
faraday-net_http (>= 2.0, < 3.1)
···
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-payloads (2.0.97)
-
metasploit_data_models (5.0.5)
activerecord (~> 6.0)
activesupport (~> 6.0)
arel-helpers
···
metasploit-model (>= 3.1)
pg
railties (~> 6.0)
-
recog (~> 2.0)
webrick
metasploit_payloads-mettle (1.0.20)
method_source (1.0.0)
···
net-ldap (0.17.1)
net-protocol (0.1.3)
timeout
-
net-smtp (0.3.2)
net-protocol
net-ssh (7.0.1)
network_interface (0.0.2)
···
thor (~> 1.0)
rake (13.0.6)
rb-readline (0.5.5)
-
recog (2.3.23)
nokogiri
redcarpet (3.5.1)
reline (0.3.1)
···
rex-socket
rex-text
rex-struct2 (0.1.3)
-
rex-text (0.2.45)
rex-zip (0.1.4)
rex-text
rexml (3.2.5)
···
ttfunk (1.7.0)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
-
tzinfo-data (1.2022.5)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
···
activesupport (>= 4.2, < 8.0)
xmlrpc (0.3.2)
webrick
-
zeitwerk (2.6.1)
PLATFORMS
ruby
···
metasploit-framework!
BUNDLED WITH
-
2.3.23
···
GIT
remote: https://github.com/rapid7/metasploit-framework
+
revision: 2ab12336a4a6197c88ca4777c016311fa4fb7a3d
+
ref: refs/tags/6.2.25
specs:
+
metasploit-framework (6.2.25)
actionpack (~> 6.0)
activerecord (~> 6.0)
activesupport (~> 6.0)
···
arel-helpers (2.14.0)
activerecord (>= 3.1.0, < 8)
aws-eventstream (1.2.0)
+
aws-partitions (1.656.0)
aws-sdk-core (3.166.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
+
aws-sdk-ec2 (1.345.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.73.0)
···
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bcrypt_pbkdf (1.1.0)
+
bindata (2.4.14)
bson (4.15.0)
builder (3.2.4)
concurrent-ruby (1.0.5)
···
eventmachine (>= 1.0.0.beta.4)
erubi (1.11.0)
eventmachine (1.2.7)
+
faker (3.0.0)
i18n (>= 1.8.11, < 2)
faraday (2.6.0)
faraday-net_http (>= 2.0, < 3.1)
···
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-payloads (2.0.97)
+
metasploit_data_models (5.0.6)
activerecord (~> 6.0)
activesupport (~> 6.0)
arel-helpers
···
metasploit-model (>= 3.1)
pg
railties (~> 6.0)
+
recog
webrick
metasploit_payloads-mettle (1.0.20)
method_source (1.0.0)
···
net-ldap (0.17.1)
net-protocol (0.1.3)
timeout
+
net-smtp (0.3.3)
net-protocol
net-ssh (7.0.1)
network_interface (0.0.2)
···
thor (~> 1.0)
rake (13.0.6)
rb-readline (0.5.5)
+
recog (3.0.3)
nokogiri
redcarpet (3.5.1)
reline (0.3.1)
···
rex-socket
rex-text
rex-struct2 (0.1.3)
+
rex-text (0.2.46)
rex-zip (0.1.4)
rex-text
rexml (3.2.5)
···
ttfunk (1.7.0)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
+
tzinfo-data (1.2022.6)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
···
activesupport (>= 4.2, < 8.0)
xmlrpc (0.3.2)
webrick
+
zeitwerk (2.6.5)
PLATFORMS
ruby
···
metasploit-framework!
BUNDLED WITH
+
2.3.24
+2 -2
pkgs/tools/security/metasploit/default.nix
···
};
in stdenv.mkDerivation rec {
pname = "metasploit-framework";
-
version = "6.2.24";
src = fetchFromGitHub {
owner = "rapid7";
repo = "metasploit-framework";
rev = version;
-
sha256 = "sha256-BU6R4/wCgXjxLcWrIGo5MSRD71SV3kEHWil8HIeHK0k=";
};
nativeBuildInputs = [ makeWrapper ];
···
};
in stdenv.mkDerivation rec {
pname = "metasploit-framework";
+
version = "6.2.25";
src = fetchFromGitHub {
owner = "rapid7";
repo = "metasploit-framework";
rev = version;
+
sha256 = "sha256-lrooEMmSu7pgG3Nm35G385ipdc4WdlM696Dd5KdwVJ0=";
};
nativeBuildInputs = [ makeWrapper ];
+23 -23
pkgs/tools/security/metasploit/gemset.nix
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "0jxv2az9l3q1nk4bif07yr7kc0wi9znihgdph6cf8z74lbbpl7kv";
type = "gem";
};
-
version = "1.652.0";
};
aws-sdk-core = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "0crzfd4g0ym8gnn989cbv6xdwzkkp8fdqn4y7aqahyh4vixq0zki";
type = "gem";
};
-
version = "1.343.0";
};
aws-sdk-iam = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "0gbwv05hlpqrz483zd8kbsgf4i62n1gzh7rnk6nl4ik4swkdmxwa";
type = "gem";
};
-
version = "2.4.13";
};
bson = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "1wslw5gh335zcahxmdd497xaa7h0d8l60c0jfv942mn47fxy8m47";
type = "gem";
};
-
version = "2.23.0";
};
faraday = {
groups = ["default"];
···
platforms = [];
source = {
fetchSubmodules = false;
-
rev = "1c805324f10bafa3a99fcd0315cc99ef83430b23";
-
sha256 = "0j9bhy3iqz19b83l3plmakpl691i75m21ay55pqpi082zkir2kh5";
type = "git";
url = "https://github.com/rapid7/metasploit-framework";
};
-
version = "6.2.24";
};
metasploit-model = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "1h7w6kavbylbs55rkv12hg28wcchwqvzmagw9yrkqmncwdavl0dl";
type = "gem";
};
-
version = "5.0.5";
};
metasploit_payloads-mettle = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "0d1y3nkgwypfsivip8vzphs3a01a40ds4ng8i314fpr9fdk48dad";
type = "gem";
};
-
version = "0.3.2";
};
net-ssh = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "0axq8hw515b8hbv1jm4lbrqnjm5bvjjnj7xbx9pvp17zlklvsfzb";
type = "gem";
};
-
version = "2.3.23";
};
redcarpet = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "0x7ppwzvwz8fag1n2j231wxvb0vl4qbbsqw7v8y0hx8vrfs3k5km";
type = "gem";
};
-
version = "0.2.45";
};
rex-zip = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "1w2qlazh0r23bz9qf2d4smvlv4a1yin8kprkqqxwkiwfs5v1n55s";
type = "gem";
};
-
version = "1.2022.5";
};
unf = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
-
sha256 = "18hihq3hxs2ywxh3ixm366cawwy4k733mh680ldaa1vxjiraxj58";
type = "gem";
};
-
version = "2.6.1";
};
}
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "1l4n8wrjhm4n9hn8c1dm92vwqlcf5wryw4dqmmp5whm6k2k9slkh";
type = "gem";
};
+
version = "1.656.0";
};
aws-sdk-core = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "1lqx1iadp1vdm3rgb79a219a7xkss409fadqnd5k7vl0cncxkg2s";
type = "gem";
};
+
version = "1.345.0";
};
aws-sdk-iam = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "0mz9hz5clknznw8i5f3l2zb9103mlgh96djdhlvlfpf2chkr0s1z";
type = "gem";
};
+
version = "2.4.14";
};
bson = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "0fcrgzjvqc9fxhnn7mzvzxd41m63cil7n19mjxnisx836p0k93hl";
type = "gem";
};
+
version = "3.0.0";
};
faraday = {
groups = ["default"];
···
platforms = [];
source = {
fetchSubmodules = false;
+
rev = "2ab12336a4a6197c88ca4777c016311fa4fb7a3d";
+
sha256 = "17alf2ky9pd0ywx56xhnrrssk67kny8xyrkk3dhbmfwjr482ifln";
type = "git";
url = "https://github.com/rapid7/metasploit-framework";
};
+
version = "6.2.25";
};
metasploit-model = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "1dli79r6rh77mwh6xqjzvz5kld70j93myg0gd5q0jxjhimwcrgya";
type = "gem";
};
+
version = "5.0.6";
};
metasploit_payloads-mettle = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
type = "gem";
};
+
version = "0.3.3";
};
net-ssh = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "1apkzqm07bccnfqf0fgpkcyshkqxb43fj7mkd78za4niimm3lk6w";
type = "gem";
};
+
version = "3.0.3";
};
redcarpet = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "0arm3yakxs541qbm52rxjjd9b3p70sqim7syd83m3vqh366gr67d";
type = "gem";
};
+
version = "0.2.46";
};
rex-zip = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "0dpwi70x9jrpvc7p103ci0kppam79wqqrskq9n39r3jrp4b4j27w";
type = "gem";
};
+
version = "1.2022.6";
};
unf = {
groups = ["default"];
···
platforms = [];
source = {
remotes = ["https://rubygems.org"];
+
sha256 = "10ipi1b3rh2vgwskfzcrgagc6hw5ppsz7jamsimglvww8bvya3zy";
type = "gem";
};
+
version = "2.6.5";
};
}
+4
pkgs/top-level/all-packages.nix
···
lightdm-mini-greeter = callPackage ../applications/display-managers/lightdm-mini-greeter { };
lightdm-tiny-greeter = callPackage ../applications/display-managers/lightdm-tiny-greeter {
conf = config.lightdm-tiny-greeter.conf or "";
};
···
withGui = false;
inherit (darwin) autoSignDarwinBinariesHook;
};
cgminer = callPackage ../applications/blockchains/cgminer { };
···
lightdm-mini-greeter = callPackage ../applications/display-managers/lightdm-mini-greeter { };
+
lightdm-mobile-greeter = callPackage ../applications/display-managers/lightdm-mobile-greeter { };
+
lightdm-tiny-greeter = callPackage ../applications/display-managers/lightdm-tiny-greeter {
conf = config.lightdm-tiny-greeter.conf or "";
};
···
withGui = false;
inherit (darwin) autoSignDarwinBinariesHook;
};
+
+
btcd = callPackage ../applications/blockchains/btcd { };
cgminer = callPackage ../applications/blockchains/cgminer { };
+2
pkgs/top-level/ocaml-packages.nix
···
ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
ppx_yojson_conv_lib = callPackage ../development/ocaml-modules/ppx_yojson_conv_lib {};
prettym = callPackage ../development/ocaml-modules/prettym { };
···
ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
+
ppx_yojson_conv = callPackage ../development/ocaml-modules/ppx_yojson_conv {};
+
ppx_yojson_conv_lib = callPackage ../development/ocaml-modules/ppx_yojson_conv_lib {};
prettym = callPackage ../development/ocaml-modules/prettym { };
+1
pkgs/top-level/php-packages.nix
···
# with how buildPecl does it and make the file easier to overview.
mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // {
pname = "php-${pname}";
});
# Function to build an extension which is shipped as part of the php
···
# with how buildPecl does it and make the file easier to overview.
mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // {
pname = "php-${pname}";
+
meta.mainProgram = args.meta.mainProgram or pname;
});
# Function to build an extension which is shipped as part of the php
+2
pkgs/top-level/python-packages.nix
···
construct = callPackage ../development/python-modules/construct { };
consul = callPackage ../development/python-modules/consul { };
container-inspector = callPackage ../development/python-modules/container-inspector { };
···
construct = callPackage ../development/python-modules/construct { };
+
construct-classes = callPackage ../development/python-modules/construct-classes { };
+
consul = callPackage ../development/python-modules/consul { };
container-inspector = callPackage ../development/python-modules/container-inspector { };