Merge staging-next into staging

authored by github-actions[bot] and committed by GitHub d2bf5aea b97fca28

+951 -121
+6
maintainers/maintainer-list.nix
··· 868 githubId = 706854; 869 name = "Etienne Laurin"; 870 }; 871 auntie = { 872 email = "auntieNeo@gmail.com"; 873 github = "auntieNeo";
··· 868 githubId = 706854; 869 name = "Etienne Laurin"; 870 }; 871 + attila-lendvai = { 872 + name = "Attila Lendvai"; 873 + email = "attila@lendvai.name"; 874 + github = "attila-lendvai"; 875 + githubId = 840345; 876 + }; 877 auntie = { 878 email = "auntieNeo@gmail.com"; 879 github = "auntieNeo";
+2
nixos/modules/module-list.nix
··· 609 ./services/networking/atftpd.nix 610 ./services/networking/avahi-daemon.nix 611 ./services/networking/babeld.nix 612 ./services/networking/biboumi.nix 613 ./services/networking/bind.nix 614 ./services/networking/bitcoind.nix
··· 609 ./services/networking/atftpd.nix 610 ./services/networking/avahi-daemon.nix 611 ./services/networking/babeld.nix 612 + ./services/networking/bee.nix 613 + ./services/networking/bee-clef.nix 614 ./services/networking/biboumi.nix 615 ./services/networking/bind.nix 616 ./services/networking/bitcoind.nix
+4
nixos/modules/services/backup/mysql-backup.nix
··· 48 }; 49 50 user = mkOption { 51 default = defaultUser; 52 description = '' 53 User to be used to perform backup. ··· 56 57 databases = mkOption { 58 default = []; 59 description = '' 60 List of database names to dump. 61 ''; 62 }; 63 64 location = mkOption { 65 default = "/var/backup/mysql"; 66 description = '' 67 Location to put the gzipped MySQL database dumps. ··· 70 71 singleTransaction = mkOption { 72 default = false; 73 description = '' 74 Whether to create database dump in a single transaction 75 '';
··· 48 }; 49 50 user = mkOption { 51 + type = types.str; 52 default = defaultUser; 53 description = '' 54 User to be used to perform backup. ··· 57 58 databases = mkOption { 59 default = []; 60 + type = types.listOf types.str; 61 description = '' 62 List of database names to dump. 63 ''; 64 }; 65 66 location = mkOption { 67 + type = types.path; 68 default = "/var/backup/mysql"; 69 description = '' 70 Location to put the gzipped MySQL database dumps. ··· 73 74 singleTransaction = mkOption { 75 default = false; 76 + type = types.bool; 77 description = '' 78 Whether to create database dump in a single transaction 79 '';
+3
nixos/modules/services/backup/postgresql-backup.nix
··· 48 49 startAt = mkOption { 50 default = "*-*-* 01:15:00"; 51 description = '' 52 This option defines (see <literal>systemd.time</literal> for format) when the 53 databases should be dumped. ··· 70 71 databases = mkOption { 72 default = []; 73 description = '' 74 List of database names to dump. 75 ''; ··· 77 78 location = mkOption { 79 default = "/var/backup/postgresql"; 80 description = '' 81 Location to put the gzipped PostgreSQL database dumps. 82 '';
··· 48 49 startAt = mkOption { 50 default = "*-*-* 01:15:00"; 51 + type = types.str; 52 description = '' 53 This option defines (see <literal>systemd.time</literal> for format) when the 54 databases should be dumped. ··· 71 72 databases = mkOption { 73 default = []; 74 + type = types.listOf types.str; 75 description = '' 76 List of database names to dump. 77 ''; ··· 79 80 location = mkOption { 81 default = "/var/backup/postgresql"; 82 + type = types.path; 83 description = '' 84 Location to put the gzipped PostgreSQL database dumps. 85 '';
+107
nixos/modules/services/networking/bee-clef.nix
···
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + # NOTE for now nothing is installed into /etc/bee-clef/. the config files are used as read-only from the nix store. 4 + 5 + with lib; 6 + let 7 + cfg = config.services.bee-clef; 8 + in { 9 + meta = { 10 + maintainers = with maintainers; [ attila-lendvai ]; 11 + }; 12 + 13 + ### interface 14 + 15 + options = { 16 + services.bee-clef = { 17 + enable = mkEnableOption "clef external signer instance for Ethereum Swarm Bee"; 18 + 19 + dataDir = mkOption { 20 + type = types.nullOr types.str; 21 + default = "/var/lib/bee-clef"; 22 + description = '' 23 + Data dir for bee-clef. Beware that some helper scripts may not work when changed! 24 + The service itself should work fine, though. 25 + ''; 26 + }; 27 + 28 + passwordFile = mkOption { 29 + type = types.nullOr types.str; 30 + default = "/var/lib/bee-clef/password"; 31 + description = "Password file for bee-clef."; 32 + }; 33 + 34 + user = mkOption { 35 + type = types.str; 36 + default = "bee-clef"; 37 + description = '' 38 + User the bee-clef daemon should execute under. 39 + ''; 40 + }; 41 + 42 + group = mkOption { 43 + type = types.str; 44 + default = "bee-clef"; 45 + description = '' 46 + Group the bee-clef daemon should execute under. 47 + ''; 48 + }; 49 + }; 50 + }; 51 + 52 + ### implementation 53 + 54 + config = mkIf cfg.enable { 55 + # if we ever want to have rules.js under /etc/bee-clef/ 56 + # environment.etc."bee-clef/rules.js".source = ${pkgs.bee-clef}/rules.js 57 + 58 + systemd.packages = [ pkgs.bee-clef ]; # include the upstream bee-clef.service file 59 + 60 + systemd.tmpfiles.rules = [ 61 + "d '${cfg.dataDir}/' 0750 ${cfg.user} ${cfg.group}" 62 + "d '${cfg.dataDir}/keystore' 0700 ${cfg.user} ${cfg.group}" 63 + ]; 64 + 65 + systemd.services.bee-clef = { 66 + path = [ 67 + # these are needed for the ensure-clef-account script 68 + pkgs.coreutils 69 + pkgs.gnused 70 + pkgs.gawk 71 + ]; 72 + 73 + wantedBy = [ "bee.service" "multi-user.target" ]; 74 + 75 + serviceConfig = { 76 + User = cfg.user; 77 + Group = cfg.group; 78 + ExecStartPre = ''${pkgs.bee-clef}/share/bee-clef/ensure-clef-account "${cfg.dataDir}" "${pkgs.bee-clef}/share/bee-clef/"''; 79 + ExecStart = [ 80 + "" # this hides/overrides what's in the original entry 81 + "${pkgs.bee-clef}/share/bee-clef/bee-clef-service start" 82 + ]; 83 + ExecStop = [ 84 + "" # this hides/overrides what's in the original entry 85 + "${pkgs.bee-clef}/share/bee-clef/bee-clef-service stop" 86 + ]; 87 + Environment = [ 88 + "CONFIGDIR=${cfg.dataDir}" 89 + "PASSWORD_FILE=${cfg.passwordFile}" 90 + ]; 91 + }; 92 + }; 93 + 94 + users.users = optionalAttrs (cfg.user == "bee-clef") { 95 + bee-clef = { 96 + group = cfg.group; 97 + home = cfg.dataDir; 98 + isSystemUser = true; 99 + description = "Daemon user for the bee-clef service"; 100 + }; 101 + }; 102 + 103 + users.groups = optionalAttrs (cfg.group == "bee-clef") { 104 + bee-clef = {}; 105 + }; 106 + }; 107 + }
+149
nixos/modules/services/networking/bee.nix
···
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + let 5 + cfg = config.services.bee; 6 + format = pkgs.formats.yaml {}; 7 + configFile = format.generate "bee.yaml" cfg.settings; 8 + in { 9 + meta = { 10 + # doc = ./bee.xml; 11 + maintainers = with maintainers; [ attila-lendvai ]; 12 + }; 13 + 14 + ### interface 15 + 16 + options = { 17 + services.bee = { 18 + enable = mkEnableOption "Ethereum Swarm Bee"; 19 + 20 + package = mkOption { 21 + type = types.package; 22 + default = pkgs.bee; 23 + defaultText = "pkgs.bee"; 24 + example = "pkgs.bee-unstable"; 25 + description = "The package providing the bee binary for the service."; 26 + }; 27 + 28 + settings = mkOption { 29 + type = format.type; 30 + description = '' 31 + Ethereum Swarm Bee configuration. Refer to 32 + <link xlink:href="https://gateway.ethswarm.org/bzz/docs.swarm.eth/docs/installation/configuration/"/> 33 + for details on supported values. 34 + ''; 35 + }; 36 + 37 + daemonNiceLevel = mkOption { 38 + type = types.int; 39 + default = 0; 40 + description = '' 41 + Daemon process priority for bee. 42 + 0 is the default Unix process priority, 19 is the lowest. 43 + ''; 44 + }; 45 + 46 + user = mkOption { 47 + type = types.str; 48 + default = "bee"; 49 + description = '' 50 + User the bee binary should execute under. 51 + ''; 52 + }; 53 + 54 + group = mkOption { 55 + type = types.str; 56 + default = "bee"; 57 + description = '' 58 + Group the bee binary should execute under. 59 + ''; 60 + }; 61 + }; 62 + }; 63 + 64 + ### implementation 65 + 66 + config = mkIf cfg.enable { 67 + assertions = [ 68 + { assertion = (hasAttr "password" cfg.settings) != true; 69 + message = '' 70 + `services.bee.settings.password` is insecure. Use `services.bee.settings.password-file` or `systemd.services.bee.serviceConfig.EnvironmentFile` instead. 71 + ''; 72 + } 73 + { assertion = (hasAttr "swap-endpoint" cfg.settings) || (cfg.settings.swap-enable or true == false); 74 + message = '' 75 + In a swap-enabled network a working Ethereum blockchain node is required. You must specify one using `services.bee.settings.swap-endpoint`, or disable `services.bee.settings.swap-enable` = false. 76 + ''; 77 + } 78 + ]; 79 + 80 + warnings = optional (! config.services.bee-clef.enable) "The bee service requires an external signer. Consider setting `config.services.bee-clef.enable` = true"; 81 + 82 + services.bee.settings = { 83 + data-dir = lib.mkDefault "/var/lib/bee"; 84 + password-file = lib.mkDefault "/var/lib/bee/password"; 85 + clef-signer-enable = lib.mkDefault true; 86 + clef-signer-endpoint = lib.mkDefault "/var/lib/bee-clef/clef.ipc"; 87 + swap-endpoint = lib.mkDefault "https://rpc.slock.it/goerli"; 88 + }; 89 + 90 + systemd.packages = [ cfg.package ]; # include the upstream bee.service file 91 + 92 + systemd.tmpfiles.rules = [ 93 + "d '${cfg.settings.data-dir}' 0750 ${cfg.user} ${cfg.group}" 94 + ]; 95 + 96 + systemd.services.bee = { 97 + requires = optional config.services.bee-clef.enable 98 + "bee-clef.service"; 99 + 100 + wantedBy = [ "multi-user.target" ]; 101 + 102 + serviceConfig = { 103 + Nice = cfg.daemonNiceLevel; 104 + User = cfg.user; 105 + Group = cfg.group; 106 + ExecStart = [ 107 + "" # this hides/overrides what's in the original entry 108 + "${cfg.package}/bin/bee --config=${configFile} start" 109 + ]; 110 + }; 111 + 112 + preStart = with cfg.settings; '' 113 + if ! test -f ${password-file}; then 114 + < /dev/urandom tr -dc _A-Z-a-z-0-9 2> /dev/null | head -c32 > ${password-file} 115 + chmod 0600 ${password-file} 116 + echo "Initialized ${password-file} from /dev/urandom" 117 + fi 118 + if [ ! -f ${data-dir}/keys/libp2p.key ]; then 119 + ${cfg.package}/bin/bee init --config=${configFile} >/dev/null 120 + echo " 121 + Logs: journalctl -f -u bee.service 122 + 123 + Bee has SWAP enabled by default and it needs ethereum endpoint to operate. 124 + It is recommended to use external signer with bee. 125 + Check documentation for more info: 126 + - SWAP https://docs.ethswarm.org/docs/installation/manual#swap-bandwidth-incentives 127 + - External signer https://docs.ethswarm.org/docs/installation/bee-clef 128 + 129 + After you finish configuration run 'sudo bee-get-addr'." 130 + fi 131 + ''; 132 + }; 133 + 134 + users.users = optionalAttrs (cfg.user == "bee") { 135 + bee = { 136 + group = cfg.group; 137 + home = cfg.settings.data-dir; 138 + isSystemUser = true; 139 + description = "Daemon user for Ethereum Swarm Bee"; 140 + extraGroups = optional config.services.bee-clef.enable 141 + config.services.bee-clef.group; 142 + }; 143 + }; 144 + 145 + users.groups = optionalAttrs (cfg.group == "bee") { 146 + bee = {}; 147 + }; 148 + }; 149 + }
+2 -2
pkgs/applications/audio/plexamp/default.nix
··· 2 3 let 4 pname = "plexamp"; 5 - version = "3.3.1"; 6 name = "${pname}-${version}"; 7 8 src = fetchurl { 9 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage"; 10 name="${pname}-${version}.AppImage"; 11 - sha256 = "6/asP8VR+rJ52lKKds46gSw1or9suUEmyR75pjdWHIQ="; 12 }; 13 14 appimageContents = appimageTools.extractType2 {
··· 2 3 let 4 pname = "plexamp"; 5 + version = "3.4.1"; 6 name = "${pname}-${version}"; 7 8 src = fetchurl { 9 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage"; 10 name="${pname}-${version}.AppImage"; 11 + sha256 = "Vv+e1q5ThuXDPX8baSU+7/U63p6/dvh0ZvScO1Loj+U="; 12 }; 13 14 appimageContents = appimageTools.extractType2 {
+2 -3
pkgs/applications/editors/vscode/update-vscode.sh
··· 1 #!/usr/bin/env nix-shell 2 - #!nix-shell -i bash -p curl gnugrep gnused gawk 3 4 # Update script for the vscode versions and hashes. 5 # Usually doesn't need to be called by hand, ··· 16 17 # VSCode 18 19 - VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/Download" | grep "is now available" | awk -F'</span>' '{print $1}' | awk -F'>' '{print $NF}') 20 - VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/updates/v${VSCODE_VER/./_}" | grep "Downloads:" | awk -F'code.visualstudio.com/' '{print $2}' | awk -F'/' '{print $1}') 21 sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix" 22 23 VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
··· 1 #!/usr/bin/env nix-shell 2 + #!nix-shell -i bash -p curl jq gnused 3 4 # Update script for the vscode versions and hashes. 5 # Usually doesn't need to be called by hand, ··· 16 17 # VSCode 18 19 + VSCODE_VER=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/releases/latest | jq --raw-output .tag_name) 20 sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix" 21 22 VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
+7 -3
pkgs/applications/misc/octoprint/default.nix
··· 3 , lib 4 , fetchFromGitHub 5 , python3 6 # To include additional plugins, pass them here as an overlay. 7 , packageOverrides ? self: super: {} 8 }: ··· 89 self: super: { 90 octoprint = self.buildPythonPackage rec { 91 pname = "OctoPrint"; 92 - version = "1.5.1"; 93 94 src = fetchFromGitHub { 95 owner = "OctoPrint"; 96 repo = "OctoPrint"; 97 rev = version; 98 - sha256 = "04x58cjivslsrld341ip11c50d50p2q01090nsyji0j255v986j9"; 99 }; 100 101 propagatedBuildInputs = with super; [ ··· 170 "test_set_external_modification" 171 ]; 172 173 - passthru.python = self.python; 174 175 meta = with lib; { 176 homepage = "https://octoprint.org/";
··· 3 , lib 4 , fetchFromGitHub 5 , python3 6 + , nix-update-script 7 # To include additional plugins, pass them here as an overlay. 8 , packageOverrides ? self: super: {} 9 }: ··· 90 self: super: { 91 octoprint = self.buildPythonPackage rec { 92 pname = "OctoPrint"; 93 + version = "1.5.3"; 94 95 src = fetchFromGitHub { 96 owner = "OctoPrint"; 97 repo = "OctoPrint"; 98 rev = version; 99 + sha256 = "sha256-ZL/P/YIHynPmP8ssZZUKZDJscBsSsCq3UtOHrTVLpec="; 100 }; 101 102 propagatedBuildInputs = with super; [ ··· 171 "test_set_external_modification" 172 ]; 173 174 + passthru = { 175 + python = self.python; 176 + updateScript = nix-update-script { attrPath = "octoprint"; }; 177 + }; 178 179 meta = with lib; { 180 homepage = "https://octoprint.org/";
+44
pkgs/applications/networking/bee/0001-clef-service-accept-default-CONFIGDIR-from-the-envir.patch
···
··· 1 + From 04933c578f51aa1f536991318dc5aede57f81c0d Mon Sep 17 00:00:00 2001 2 + From: Attila Lendvai <attila@lendvai.name> 3 + Date: Sat, 30 Jan 2021 14:02:02 +0100 4 + Subject: [PATCH 1/2] clef-service: accept default CONFIGDIR from the 5 + environment 6 + 7 + --- 8 + packaging/bee-clef-service | 15 ++++++++++----- 9 + 1 file changed, 10 insertions(+), 5 deletions(-) 10 + 11 + diff --git a/packaging/bee-clef-service b/packaging/bee-clef-service 12 + index 10bcd92..34c7edd 100755 13 + --- a/packaging/bee-clef-service 14 + +++ b/packaging/bee-clef-service 15 + @@ -1,16 +1,21 @@ 16 + #!/usr/bin/env sh 17 + 18 + start() { 19 + - KEYSTORE=/var/lib/bee-clef/keystore 20 + - CONFIGDIR=/var/lib/bee-clef 21 + + if [ -z "$CONFIGDIR" ]; then 22 + + CONFIGDIR=/var/lib/bee-clef 23 + + fi 24 + + if [ -z "$PASSWORD_FILE" ]; then 25 + + PASSWORD_FILE=${CONFIGDIR}/password 26 + + fi 27 + + KEYSTORE=${CONFIGDIR}/keystore 28 + + SECRET=$(cat ${PASSWORD_FILE}) 29 + CHAINID=5 30 + - SECRET=$(cat /var/lib/bee-clef/password) 31 + # clef with every start sets permissions back to 600 32 + - (sleep 4; chmod 660 /var/lib/bee-clef/clef.ipc) & 33 + + (sleep 4; chmod 660 ${CONFIGDIR}/clef.ipc) & 34 + ( sleep 2; cat << EOF 35 + { "jsonrpc": "2.0", "id":1, "result": { "text":"$SECRET" } } 36 + EOF 37 + -) | clef --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules /etc/bee-clef/rules.js --nousb --4bytedb-custom /etc/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath /var/lib/bee-clef 38 + +) | clef --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules /etc/bee-clef/rules.js --nousb --4bytedb-custom /etc/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath ${CONFIGDIR} 39 + } 40 + 41 + stop() { 42 + -- 43 + 2.29.2 44 +
+25
pkgs/applications/networking/bee/0002-nix-diff-for-substituteAll.patch
···
··· 1 + From 1a1ab986245e8b74648a1a0adb5d1c7019561d18 Mon Sep 17 00:00:00 2001 2 + From: Attila Lendvai <attila@lendvai.name> 3 + Date: Sat, 30 Jan 2021 15:24:57 +0100 4 + Subject: [PATCH 2/2] nix diff for substituteAll 5 + 6 + --- 7 + packaging/bee-clef-service | 2 +- 8 + 1 file changed, 1 insertion(+), 1 deletion(-) 9 + 10 + diff --git a/packaging/bee-clef-service b/packaging/bee-clef-service 11 + index 34c7edd..31e9d95 100755 12 + --- a/packaging/bee-clef-service 13 + +++ b/packaging/bee-clef-service 14 + @@ -15,7 +15,7 @@ start() { 15 + ( sleep 2; cat << EOF 16 + { "jsonrpc": "2.0", "id":1, "result": { "text":"$SECRET" } } 17 + EOF 18 + -) | clef --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules /etc/bee-clef/rules.js --nousb --4bytedb-custom /etc/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath ${CONFIGDIR} 19 + +) | @clefBinary@ --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules @out@/share/bee-clef/rules.js --nousb --4bytedb-custom @out@/share/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath ${CONFIGDIR} 20 + } 21 + 22 + stop() { 23 + -- 24 + 2.29.2 25 +
+57
pkgs/applications/networking/bee/bee-clef.nix
···
··· 1 + { version ? "release", stdenv, lib, substituteAll, fetchFromGitHub, go-ethereum }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "bee-clef"; 5 + version = "0.4.7"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "ethersphere"; 9 + repo = "bee-clef"; 10 + rev = "refs/tags/v${version}"; 11 + sha256 = "1sfwql0kvnir8b9ggpqcyc0ar995gxgfbhqb1xpfzp6wl0g3g4zz"; 12 + }; 13 + 14 + buildInputs = [ go-ethereum ]; 15 + 16 + clefBinary = "${go-ethereum}/bin/clef"; 17 + 18 + patches = [ 19 + ./0001-clef-service-accept-default-CONFIGDIR-from-the-envir.patch 20 + ./0002-nix-diff-for-substituteAll.patch 21 + ]; 22 + 23 + dontBuild = true; 24 + 25 + installPhase = '' 26 + mkdir -p $out/bin/ 27 + mkdir -p $out/share/bee-clef/ 28 + mkdir -p $out/lib/systemd/system/ 29 + cp packaging/bee-clef.service $out/lib/systemd/system/ 30 + substituteAll packaging/bee-clef-service $out/share/bee-clef/bee-clef-service 31 + substituteAll ${./ensure-clef-account} $out/share/bee-clef/ensure-clef-account 32 + substituteAll packaging/bee-clef-keys $out/bin/bee-clef-keys 33 + cp packaging/rules.js packaging/4byte.json $out/share/bee-clef/ 34 + chmod +x $out/bin/bee-clef-keys 35 + chmod +x $out/share/bee-clef/bee-clef-service 36 + chmod +x $out/share/bee-clef/ensure-clef-account 37 + patchShebangs $out/ 38 + ''; 39 + 40 + meta = with lib; { 41 + # homepage = "https://gateway.ethswarm.org/bzz/docs.swarm.eth/docs/installation/bee-clef/"; 42 + homepage = "https://docs.ethswarm.org/docs/installation/bee-clef"; 43 + description = "External signer for Ethereum Swarm Bee"; 44 + longDescription = '' 45 + clef is go-ethereum's external signer. 46 + 47 + bee-clef is a package that starts up a vanilla clef instance as a systemd service, 48 + but configured in such a way that is suitable for bee (relaxed security for 49 + automated operation). 50 + 51 + This package contains the files necessary to run the bee-clef service. 52 + ''; 53 + license = with licenses; [ bsd3 ]; 54 + maintainers = with maintainers; [ attila-lendvai ]; 55 + platforms = go-ethereum.meta.platforms; 56 + }; 57 + }
+77
pkgs/applications/networking/bee/bee.nix
···
··· 1 + { version ? "release", stdenv, lib, fetchFromGitHub, buildGoModule, coreutils }: 2 + 3 + let 4 + 5 + versionSpec = rec { 6 + unstable = rec { 7 + pname = "bee-unstable"; 8 + version = "2021-01-30"; 9 + rev = "824636a2c2629c329ab10275cef6a0b7395343ad"; 10 + goVersionString = "g" + builtins.substring 0 7 rev; # this seems to be some kind of standard of git describe... 11 + sha256 = "0ly1yqjq29arbak8lchdradf39l5bmxpbfir6ljjc7nyqdxz0sxg"; 12 + vendorSha256 = "0w1db7xpissdpf8i5bb96z92zbasj5x9kk3kcisxn0dwla6n55n3"; 13 + }; 14 + release = rec { 15 + pname = "bee"; 16 + version = "0.4.2"; 17 + rev = "refs/tags/v${version}"; 18 + sha256 = "1jg7aivsgdb9bm87dlmwpf1g6gla8j6v55xmzs8h5xmwqcybbmag"; 19 + vendorSha256 = "0w1db7xpissdpf8i5bb96z92zbasj5x9kk3kcisxn0dwla6n55n3"; 20 + }; 21 + "0.4.2" = release; 22 + "0.4.1" = rec { 23 + pname = "bee"; 24 + version = "0.4.1"; 25 + rev = "refs/tags/v${version}"; 26 + sha256 = "1bmgbav52pcb5p7cgq9756512fzfqhjybyr0dv538plkqx47mpv7"; 27 + vendorSha256 = "0j393va4jrg9q3wlc9mgkbpgnn2w2s3k2hcn8phzj8d5fl4n4v2h"; 28 + }; 29 + }.${version}; 30 + 31 + in 32 + 33 + buildGoModule { 34 + inherit (versionSpec) pname version vendorSha256; 35 + 36 + src = fetchFromGitHub { 37 + owner = "ethersphere"; 38 + repo = "bee"; 39 + inherit (versionSpec) rev sha256; 40 + }; 41 + 42 + nativeBuildInputs = [ coreutils ]; 43 + 44 + subPackages = [ "cmd/bee" ]; 45 + 46 + # no symbol table, no debug info, and pass the commit for the version string 47 + buildFlags = lib.optionalString ( lib.hasAttr "goVersionString" versionSpec) 48 + "-ldflags -s -ldflags -w -ldflags -X=github.com/ethersphere/bee.commit=${versionSpec.goVersionString}"; 49 + 50 + # Mimic the bee Makefile: without disabling CGO, two (transitive and 51 + # unused) dependencies would fail to compile. 52 + preBuild = '' 53 + export CGO_ENABLED=0 54 + ''; 55 + 56 + postInstall = '' 57 + mkdir -p $out/lib/systemd/system 58 + cp packaging/bee.service $out/lib/systemd/system/ 59 + cp packaging/bee-get-addr $out/bin/ 60 + chmod +x $out/bin/bee-get-addr 61 + patchShebangs $out/bin/ 62 + ''; 63 + 64 + meta = with lib; { 65 + homepage = "https://swarm.ethereum.org/"; 66 + description = "Ethereum Swarm Bee"; 67 + longDescription = '' 68 + A decentralised storage and communication system for a sovereign digital society. 69 + 70 + Swarm is a system of peer-to-peer networked nodes that create a decentralised storage and communication service. The system is economically self-sustaining due to a built-in incentive system enforced through smart contracts on the Ethereum blockchain. 71 + 72 + Bee is a Swarm node implementation, written in Go. 73 + ''; 74 + license = with licenses; [ bsd3 ]; 75 + maintainers = with maintainers; [ attila-lendvai ]; 76 + }; 77 + }
+47
pkgs/applications/networking/bee/ensure-clef-account
···
··· 1 + #!/usr/bin/env sh 2 + 3 + set -e 4 + 5 + # NOTE This file is called by the systemd service in its preStart 6 + # hook, but it's not Nix specific in any way. Ideally, the same file 7 + # should be called from the postinst scripts of the other packages, 8 + # but... the world is not ideal. 9 + 10 + # What follows was extracted from, and should be in sync with 11 + # https://github.com/ethersphere/bee-clef/tree/master/packaging 12 + 13 + DATA_DIR="$1" 14 + CONFIG_DIR="$2" 15 + PASSWORD_FILE=${DATA_DIR}/password 16 + MASTERSEED=${DATA_DIR}/masterseed.json 17 + KEYSTORE=${DATA_DIR}/keystore 18 + 19 + echo "ensure-clef-account $DATA_DIR $CONFIG_DIR" 20 + 21 + if ! test -f ${PASSWORD_FILE}; then 22 + < /dev/urandom tr -dc _A-Z-a-z-0-9 2> /dev/null | head -c32 > ${PASSWORD_FILE} 23 + chmod 0400 ${PASSWORD_FILE} 24 + echo "Initialized ${PASSWORD_FILE} from /dev/urandom" 25 + fi 26 + 27 + if ! test -f ${MASTERSEED}; then 28 + parse_json() { echo $1|sed -e 's/[{}]/''/g'|sed -e 's/", "/'\",\"'/g'|sed -e 's/" ,"/'\",\"'/g'|sed -e 's/" , "/'\",\"'/g'|sed -e 's/","/'\"---SEPERATOR---\"'/g'|awk -F=':' -v RS='---SEPERATOR---' "\$1~/\"$2\"/ {print}"|sed -e "s/\"$2\"://"|tr -d "\n\t"|sed -e 's/\\"/"/g'|sed -e 's/\\\\/\\/g'|sed -e 's/^[ \t]*//g'|sed -e 's/^"//' -e 's/"$//' ; } 29 + SECRET=$(cat ${PASSWORD_FILE}) 30 + CLEF="@clefBinary@ --configdir ${DATA_DIR} --keystore ${KEYSTORE} --stdio-ui" 31 + $CLEF init >/dev/null << EOF 32 + $SECRET 33 + $SECRET 34 + EOF 35 + $CLEF newaccount >/dev/null << EOF 36 + $SECRET 37 + EOF 38 + $CLEF setpw 0x$(parse_json $(cat ${KEYSTORE}/*) address) >/dev/null << EOF 39 + $SECRET 40 + $SECRET 41 + $SECRET 42 + EOF 43 + $CLEF attest $(sha256sum ${CONFIG_DIR}/rules.js | cut -d' ' -f1 | tr -d '\n') >/dev/null << EOF 44 + $SECRET 45 + EOF 46 + echo "Clef data dir initialized" 47 + fi
+2 -2
pkgs/applications/networking/instant-messengers/rambox/pro.nix
··· 4 mkRambox = opts: callPackage (import ./rambox.nix opts) { }; 5 in mkRambox rec { 6 pname = "rambox-pro"; 7 - version = "1.4.1"; 8 9 desktopName = "Rambox Pro"; 10 11 src = { 12 x86_64-linux = fetchurl { 13 url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.AppImage"; 14 - sha256 = "18383v3g26hd1czvw06gmjn8bdw2w9c7zb04zkfl6szgakrv26x4"; 15 }; 16 }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); 17
··· 4 mkRambox = opts: callPackage (import ./rambox.nix opts) { }; 5 in mkRambox rec { 6 pname = "rambox-pro"; 7 + version = "1.5.0"; 8 9 desktopName = "Rambox Pro"; 10 11 src = { 12 x86_64-linux = fetchurl { 13 url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.AppImage"; 14 + sha256 = "1g7lrjm8yxklqpc2mp8gy0g61wfilr15dl80r3sh6pa5b4k5spir"; 15 }; 16 }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); 17
+2 -2
pkgs/development/compilers/llvm/rocm/default.nix
··· 1 { lib, stdenv, fetchFromGitHub, callPackage, wrapCCWith }: 2 3 let 4 - version = "4.0.0"; 5 src = fetchFromGitHub { 6 owner = "RadeonOpenCompute"; 7 repo = "llvm-project"; 8 rev = "rocm-${version}"; 9 - hash = "sha256-nIvqEk18NLtY8Hec2Iq6ufWMblzYJ8SOIXgqomtqa0s="; 10 }; 11 in rec { 12 clang = wrapCCWith rec {
··· 1 { lib, stdenv, fetchFromGitHub, callPackage, wrapCCWith }: 2 3 let 4 + version = "4.0.1"; 5 src = fetchFromGitHub { 6 owner = "RadeonOpenCompute"; 7 repo = "llvm-project"; 8 rev = "rocm-${version}"; 9 + hash = "sha256-5mQ8tN7A045JCF7tHKgAZAbyVmXOd6Wf0CVUiPA80YM="; 10 }; 11 in rec { 12 clang = wrapCCWith rec {
+2 -2
pkgs/development/libraries/amdvlk/default.nix
··· 21 22 in stdenv.mkDerivation rec { 23 pname = "amdvlk"; 24 - version = "2020.Q4.6"; 25 26 src = fetchRepoProject { 27 name = "${pname}-src"; 28 manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git"; 29 rev = "refs/tags/v-${version}"; 30 - sha256 = "wminJxfku8Myag+SI7iLSvS+VzHlUd4c86BbpF/cr1w="; 31 }; 32 33 buildInputs = [
··· 21 22 in stdenv.mkDerivation rec { 23 pname = "amdvlk"; 24 + version = "2021.Q1.2"; 25 26 src = fetchRepoProject { 27 name = "${pname}-src"; 28 manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git"; 29 rev = "refs/tags/v-${version}"; 30 + sha256 = "+oAetAHJ530e3IFPJDQiQn5vbUKeI1z0oF3Gy6mRVGM="; 31 }; 32 33 buildInputs = [
+46
pkgs/development/python-modules/gradient-utils/default.nix
···
··· 1 + { buildPythonPackage 2 + , fetchFromGitHub 3 + , hyperopt 4 + , lib 5 + , mock 6 + , numpy 7 + , poetry 8 + , prometheus_client 9 + , pytestCheckHook 10 + }: 11 + 12 + buildPythonPackage rec { 13 + pname = "gradient-utils"; 14 + version = "0.3.2"; 15 + format = "pyproject"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "Paperspace"; 19 + repo = pname; 20 + rev = "v${version}"; 21 + sha256 = "083hnkv19mhvdc8nx28f1nph50c903gxh9g9q8531abv0w8m0744"; 22 + }; 23 + 24 + postPatch = '' 25 + substituteInPlace pyproject.toml \ 26 + --replace 'numpy = "1.18.5"' 'numpy = "^1.18.5"' \ 27 + --replace 'hyperopt = "0.1.2"' 'hyperopt = ">=0.1.2"' 28 + ''; 29 + 30 + nativeBuildInputs = [ poetry ]; 31 + checkInputs = [ mock pytestCheckHook ]; 32 + propagatedBuildInputs = [ hyperopt prometheus_client numpy ]; 33 + 34 + preCheck = "export HOSTNAME=myhost-experimentId"; 35 + disabledTests = [ 36 + "test_add_metrics_pushes_metrics" # requires a working prometheus push gateway 37 + ]; 38 + 39 + meta = with lib; { 40 + description = "Gradient ML SDK"; 41 + homepage = "https://github.com/Paperspace/gradient-utils"; 42 + license = licenses.mit; 43 + platforms = platforms.unix; 44 + maintainers = with maintainers; [ freezeboy ]; 45 + }; 46 + }
+40
pkgs/development/python-modules/gradient/default.nix
···
··· 1 + { lib, fetchPypi, buildPythonPackage 2 + , attrs, boto3, requests, gradient_statsd, terminaltables 3 + , click-completion , click-didyoumean, click-help-colors 4 + , colorama, requests_toolbelt, gradient-utils, halo, progressbar2 5 + , marshmallow, pyyaml, websocket_client 6 + }: 7 + 8 + buildPythonPackage rec { 9 + pname = "gradient"; 10 + version = "1.4.0"; 11 + 12 + src = fetchPypi { 13 + inherit pname version; 14 + sha256 = "15s21945hg342195ig7nchap5mdnsw931iis92pr7hy8ff0rks3n"; 15 + }; 16 + 17 + postPatch = '' 18 + substituteInPlace setup.py \ 19 + --replace 'attrs<=' 'attrs>=' \ 20 + --replace 'colorama==' 'colorama>=' \ 21 + --replace 'PyYAML==' 'PyYAML>=' \ 22 + --replace 'marshmallow<' 'marshmallow>=' 23 + ''; 24 + 25 + propagatedBuildInputs = [ attrs boto3 requests gradient_statsd terminaltables 26 + click-completion click-didyoumean click-help-colors requests_toolbelt 27 + colorama gradient-utils halo marshmallow progressbar2 pyyaml websocket_client 28 + ]; 29 + 30 + # tries to use /homeless-shelter to mimic container usage, etc 31 + doCheck = false; 32 + 33 + meta = with lib; { 34 + description = "The command line interface for Gradient"; 35 + homepage = "https://github.com/Paperspace/gradient-cli"; 36 + license = licenses.isc; 37 + platforms = platforms.unix; 38 + maintainers = with maintainers; [ thoughtpolice ]; 39 + }; 40 + }
-25
pkgs/development/python-modules/gradient_sdk/default.nix
··· 1 - { lib, fetchPypi, buildPythonPackage 2 - , hyperopt 3 - }: 4 - 5 - buildPythonPackage rec { 6 - pname = "gradient_sdk"; 7 - version = "0.0.4"; 8 - 9 - src = fetchPypi { 10 - inherit pname version; 11 - sha256 = "Q9oeYjjgJf2lhxW1ypsweQAPpMglmW9PxgzMsgTqJkY="; 12 - }; 13 - 14 - propagatedBuildInputs = [ hyperopt ]; 15 - 16 - pythonImportsCheck = [ "gradient_sdk" ]; 17 - 18 - meta = with lib; { 19 - description = "Gradient ML SDK"; 20 - homepage = "https://github.com/Paperspace/gradient-sdk"; 21 - license = licenses.mit; 22 - platforms = platforms.unix; 23 - maintainers = with maintainers; [ freezeboy ]; 24 - }; 25 - }
···
+34
pkgs/development/python-modules/halo/default.nix
···
··· 1 + { buildPythonPackage 2 + , colorama 3 + , fetchPypi 4 + , isPy27 5 + , lib 6 + , log-symbols 7 + , pytestCheckHook 8 + , six 9 + , spinners 10 + , termcolor }: 11 + 12 + buildPythonPackage rec { 13 + pname = "halo"; 14 + version = "0.0.31"; 15 + disabled = isPy27; 16 + 17 + src = fetchPypi { 18 + inherit pname version; 19 + sha256 = "1mn97h370ggbc9vi6x8r6akd5q8i512y6kid2nvm67g93r9a6rvv"; 20 + }; 21 + 22 + propagatedBuildInputs = [ colorama log-symbols termcolor six spinners ]; 23 + 24 + # Tests are not included in the PyPI distribution and the git repo does not have tagged releases 25 + doCheck = false; 26 + pythonImportsCheck = [ "halo" ]; 27 + 28 + meta = with lib; { 29 + description = "Beautiful Spinners for Terminal, IPython and Jupyter."; 30 + homepage = "https://github.com/manrajgrover/halo"; 31 + license = licenses.mit; 32 + maintainers = with maintainers; [ urbas ]; 33 + }; 34 + }
+30
pkgs/development/python-modules/log-symbols/default.nix
···
··· 1 + { buildPythonPackage 2 + , colorama 3 + , fetchPypi 4 + , isPy27 5 + , pytestCheckHook 6 + , lib }: 7 + 8 + buildPythonPackage rec { 9 + pname = "log_symbols"; 10 + version = "0.0.14"; 11 + disabled = isPy27; 12 + 13 + src = fetchPypi { 14 + inherit pname version; 15 + sha256 = "0mh5d0igw33libfmbsr1ri1p1y644p36nwaa2w6kzrd8w5pvq2yg"; 16 + }; 17 + 18 + propagatedBuildInputs = [ colorama ]; 19 + 20 + # Tests are not included in the PyPI distribution and the git repo does not have tagged releases 21 + doCheck = false; 22 + pythonImportsCheck = [ "log_symbols" ]; 23 + 24 + meta = with lib; { 25 + description = "Colored Symbols for Various Log Levels."; 26 + homepage = "https://github.com/manrajgrover/py-log-symbols"; 27 + license = licenses.mit; 28 + maintainers = with maintainers; [ urbas ]; 29 + }; 30 + }
-31
pkgs/development/python-modules/paperspace/default.nix
··· 1 - { lib, fetchPypi, buildPythonPackage 2 - , boto3, requests, gradient_statsd, terminaltables 3 - , click-completion , click-didyoumean, click-help-colors 4 - , colorama, requests_toolbelt, gradient_sdk, progressbar2 5 - }: 6 - 7 - buildPythonPackage rec { 8 - pname = "paperspace"; 9 - version = "0.2.0"; 10 - 11 - src = fetchPypi { 12 - inherit pname version; 13 - sha256 = "7959305128fea6da8ca0cdc528783a89859dacb9b54bf8eb89fd04a518872191"; 14 - }; 15 - 16 - propagatedBuildInputs = [ boto3 requests gradient_statsd terminaltables 17 - click-completion click-didyoumean click-help-colors requests_toolbelt 18 - colorama gradient_sdk progressbar2 19 - ]; 20 - 21 - # tries to use /homeless-shelter to mimic container usage, etc 22 - doCheck = false; 23 - 24 - meta = with lib; { 25 - description = "Python API for Paperspace Cloud"; 26 - homepage = "https://paperspace.com"; 27 - license = licenses.isc; 28 - platforms = platforms.unix; 29 - maintainers = with maintainers; [ thoughtpolice ]; 30 - }; 31 - }
···
+26
pkgs/development/python-modules/spinners/default.nix
···
··· 1 + { buildPythonPackage 2 + , fetchPypi 3 + , isPy27 4 + , lib }: 5 + 6 + buildPythonPackage rec { 7 + pname = "spinners"; 8 + version = "0.0.24"; 9 + disabled = isPy27; 10 + 11 + src = fetchPypi { 12 + inherit pname version; 13 + sha256 = "0zz2z6dpdjdq5z8m8w8dfi8by0ih1zrdq0caxm1anwhxg2saxdhy"; 14 + }; 15 + 16 + # Tests are not included in the PyPI distribution and the git repo does not have tagged releases 17 + doCheck = false; 18 + pythonImportsCheck = [ "spinners" ]; 19 + 20 + meta = with lib; { 21 + description = "Spinners for the Terminal."; 22 + homepage = "https://github.com/manrajgrover/py-spinners"; 23 + license = licenses.mit; 24 + maintainers = with maintainers; [ urbas ]; 25 + }; 26 + }
+10 -10
pkgs/development/tools/scry/default.nix
··· 1 - { lib, fetchFromGitHub, crystal_0_31, coreutils, shards, makeWrapper, which }: 2 - 3 - let crystal = crystal_0_31; 4 5 - in crystal.buildCrystalPackage rec { 6 pname = "scry"; 7 - version = "0.8.1"; 8 9 src = fetchFromGitHub { 10 owner = "crystal-lang-tools"; 11 repo = pname; 12 - rev = "v${version}"; 13 - sha256 = "0ii4k9l3dgm1c9lllc8ni9dar59lrxik0v9iz7gk3d6v62wwnq79"; 14 }; 15 16 # we are already testing for this, so we can ignore the failures ··· 18 rm spec/scry/executable_spec.cr 19 ''; 20 21 - format = "crystal"; 22 23 nativeBuildInputs = [ makeWrapper ]; 24 25 shardsFile = ./shards.nix; 26 - 27 - crystalBinaries.scry.src = "src/scry.cr"; 28 29 postFixup = '' 30 wrapProgram $out/bin/scry \
··· 1 + { lib, fetchFromGitHub, crystal_0_35, coreutils, makeWrapper }: 2 + let 3 + crystal = crystal_0_35; 4 5 + in 6 + crystal.buildCrystalPackage rec { 7 pname = "scry"; 8 + version = "unstable-2020-09-02"; # to make it work with crystal 0.35 9 10 src = fetchFromGitHub { 11 owner = "crystal-lang-tools"; 12 repo = pname; 13 + # rev = "v${version}"; 14 + rev = "580a1879810a9f5d63d8a0d90fbdaa99d86b58da"; 15 + sha256 = "sha256-WjpkkHfy38wDj/ejXyyMtd5rLfTRoj/7D+SAhRROnbU="; 16 }; 17 18 # we are already testing for this, so we can ignore the failures ··· 20 rm spec/scry/executable_spec.cr 21 ''; 22 23 + format = "shards"; 24 25 nativeBuildInputs = [ makeWrapper ]; 26 27 shardsFile = ./shards.nix; 28 29 postFixup = '' 30 wrapProgram $out/bin/scry \
-20
pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch
··· 1 - diff --git a/src/scry/completion_provider.cr b/src/scry/completion_provider.cr 2 - index 29e0d36..f67438c 100644 3 - --- a/src/scry/completion_provider.cr 4 - +++ b/src/scry/completion_provider.cr 5 - @@ -1,4 +1,5 @@ 6 - require "./log" 7 - +require "compiler/crystal/codegen/target" 8 - require "compiler/crystal/crystal_path" 9 - require "./completion/*" 10 - 11 - diff --git a/src/scry/parse_analyzer.cr b/src/scry/parse_analyzer.cr 12 - index d87eca4..bbe9ed5 100644 13 - --- a/src/scry/parse_analyzer.cr 14 - +++ b/src/scry/parse_analyzer.cr 15 - @@ -1,4 +1,5 @@ 16 - require "compiler/crystal/syntax" 17 - +require "compiler/crystal/codegen/target" 18 - require "compiler/crystal/crystal_path" 19 - require "./workspace" 20 - require "./text_document"
···
+72
pkgs/games/gimx/default.nix
···
··· 1 + { stdenv, lib, fetchFromGitHub, makeWrapper, curl, libusb1, xorg, libxml2 2 + , ncurses5, bluez, libmhash, gimxAuth ? "" }: 3 + 4 + let 5 + gimx-config = fetchFromGitHub { 6 + owner = "matlo"; 7 + repo = "GIMX-configurations"; 8 + rev = "f31bba7d3be57519540be290cd69ba6a8dc4e4d4"; 9 + sha256 = "0wpxx2qxyiiblz2qrl5swg00ls1aq7i5vzlk0qlnqdq8ss8jssax"; 10 + }; 11 + 12 + in stdenv.mkDerivation rec { 13 + pname = "gimx"; 14 + version = "8.0"; 15 + 16 + src = fetchFromGitHub { 17 + owner = "matlo"; 18 + repo = "GIMX"; 19 + rev = "v${version}"; 20 + fetchSubmodules = true; 21 + sha256 = "0265gg6q7ymg76fb4pjrfdwjd280b3zzry96qy92w0h411slph85"; 22 + }; 23 + 24 + nativeBuildInputs = [ makeWrapper ]; 25 + buildInputs = [ 26 + curl libusb1 bluez libxml2 ncurses5 libmhash 27 + xorg.libX11 xorg.libXi xorg.libXext 28 + ]; 29 + 30 + patches = [ ./env.patch ]; 31 + prePatch = (if gimxAuth == "afterglow" then (import ./variant.nix).afterglow 32 + else ""); 33 + 34 + makeFlags = "build-core"; 35 + installPhase = '' 36 + runHook preInstall 37 + 38 + mkdir -p $out 39 + substituteInPlace ./core/Makefile --replace "chmod ug+s" "echo" 40 + 41 + export DESTDIR="$out" 42 + make install-shared install-core 43 + mv $out/usr/lib $out/lib 44 + mv $out/usr/bin $out/bin 45 + rmdir $out/usr 46 + 47 + runHook postInstall 48 + ''; 49 + 50 + postInstall = '' 51 + mkdir -p $out/share 52 + cp -r ./loader/firmware $out/share/firmware 53 + cp -r ${gimx-config}/Linux $out/share/config 54 + patch ${gimx-config}/Linux/Dualshock4.xml ${./ds4.patch} -o $out/share/DS4_noff.xml 55 + 56 + makeWrapper $out/bin/gimx $out/bin/gimx-with-confs \ 57 + --set GIMXCONF $out/share 58 + 59 + makeWrapper $out/bin/gimx $out/bin/gimx-test-ds4 \ 60 + --set GIMXCONF $out/share \ 61 + --add-flags "--nograb" --add-flags "--curses" \ 62 + --add-flags "-p /dev/ttyUSB0" --add-flags "-c DS4_noff.xml" 63 + ''; 64 + 65 + meta = with lib; { 66 + homepage = "https://github.com/matlo/GIMX"; 67 + description = "Game Input Multiplexer"; 68 + license = licenses.gpl3Only; 69 + platforms = platforms.linux; 70 + maintainers = with maintainers; [ bb2020 ]; 71 + }; 72 + }
+16
pkgs/games/gimx/ds4.patch
···
··· 1 + diff --git a/Linux/Dualshock4.xml b/Linux/Dualshock4.xml 2 + index 5e53ed3..45ee5ed 100644 3 + --- a/Linux/Dualshock4.xml 4 + +++ b/Linux/Dualshock4.xml 5 + @@ -94,6 +94,11 @@ 6 + </axis> 7 + </axis_map> 8 + <joystick_corrections_list/> 9 + + <force_feedback> 10 + + <device type="joystick" id="0" name="Sony Computer Entertainment Wireless Controller"/> 11 + + <inversion enable="no"/> 12 + + <gain rumble="0" constant="0" spring="0" damper="0"/> 13 + + </force_feedback> 14 + </configuration> 15 + </controller> 16 + </root>
+30
pkgs/games/gimx/env.patch
···
··· 1 + --- a/core/config_reader.c 2 + +++ b/core/config_reader.c 3 + @@ -1353,8 +1353,10 @@ static int read_file(char* file_path) 4 + int read_config_file(const char* file) 5 + { 6 + char file_path[PATH_MAX]; 7 + - 8 + - snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, file); 9 + + char* e = getenv("GIMXCONF"); if (e) { snprintf(file_path, sizeof(file_path), "%s/%s", e, file); } 10 + + else { 11 + + snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, file); 12 + + } 13 + 14 + if(read_file(file_path) == -1) 15 + { 16 + --- a/core/gimx.c 17 + +++ b/core/gimx.c 18 + @@ -190,8 +190,10 @@ void show_config() 19 + } 20 + 21 + char file_path[PATH_MAX]; 22 + - 23 + - snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, gimx_params.config_file); 24 + + char* e = getenv("GIMXCONF"); if (e) { snprintf(file_path, sizeof(file_path), "%s/%s", e, gimx_params.config_file); } 25 + + else { 26 + + snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, gimx_params.config_file); 27 + + } 28 + 29 + FILE * fp = gfile_fopen(file_path, "r"); 30 + if (fp == NULL)
+14
pkgs/games/gimx/variant.nix
···
··· 1 + { 2 + afterglow = '' 3 + substituteInPlace ./shared/gimxcontroller/include/x360.h \ 4 + --replace "0x045e" "0x0e6f" --replace "0x028e" "0x0213" 5 + 6 + HEX="./loader/firmware/EMU360.hex" 7 + sed -i '34s|1B2100|1B2110|' "$HEX" 8 + sed -i '38s|092100|092110|' "$HEX" 9 + sed -i '40s|5E048E021001|6F0E13020001|' "$HEX" 10 + sed -i '34s|1C\r|0C\r|' "$HEX" 11 + sed -i '38s|FE\r|EE\r|' "$HEX" 12 + sed -i '40s|6D\r|DD\r|' "$HEX" 13 + ''; 14 + }
+9 -2
pkgs/misc/vim-plugins/overrides.nix
··· 297 }); 298 299 sql-nvim = super.sql-nvim.overrideAttrs(old: { 300 - buildInputs = [ sqlite ]; 301 - }); 302 303 sved = let 304 # we put the script in its own derivation to benefit the magic of wrapGAppsHook ··· 685 mkdir $target/binaries 686 ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s) 687 ''; 688 }); 689 690 telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
··· 297 }); 298 299 sql-nvim = super.sql-nvim.overrideAttrs(old: { 300 + postPatch = '' 301 + substituteInPlace lua/sql/defs.lua \ 302 + --replace "vim.g.sql_clib_path or" "vim.g.sql_clib_path or '${sqlite.out}/lib/libsqlite3.so' or" 303 + ''; 304 + }); 305 306 sved = let 307 # we put the script in its own derivation to benefit the magic of wrapGAppsHook ··· 688 mkdir $target/binaries 689 ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s) 690 ''; 691 + }); 692 + 693 + telescope-frecency-nvim = super.telescope-frecency-nvim.overrideAttrs(old: { 694 + dependencies = [ self.sql-nvim ]; 695 }); 696 697 telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
+8 -1
pkgs/os-specific/linux/wpa_supplicant/default.nix
··· 1 - { lib, stdenv, fetchurl, openssl, pkg-config, libnl 2 , dbus, readline ? null, pcsclite ? null 3 }: 4 ··· 19 url = "https://w1.fi/security/2019-7/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch"; 20 sha256 = "15xjyy7crb557wxpx898b5lnyblxghlij0xby5lmj9hpwwss34dz"; 21 }) 22 ]; 23 24 # TODO: Patch epoll so that the dbus actually responds ··· 32 CONFIG_EAP_SAKE=y 33 CONFIG_EAP_GPSK=y 34 CONFIG_EAP_GPSK_SHA256=y 35 CONFIG_WPS=y 36 CONFIG_WPS_ER=y 37 CONFIG_WPS_NFS=y
··· 1 + { lib, stdenv, fetchurl, fetchpatch, openssl, pkg-config, libnl 2 , dbus, readline ? null, pcsclite ? null 3 }: 4 ··· 19 url = "https://w1.fi/security/2019-7/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch"; 20 sha256 = "15xjyy7crb557wxpx898b5lnyblxghlij0xby5lmj9hpwwss34dz"; 21 }) 22 + (fetchpatch { 23 + # Expose OWE key management capability over DBus, remove >= 2.10 24 + name = "dbus-Export-OWE-capability-and-OWE-BSS-key_mgmt.patch"; 25 + url = "https://w1.fi/cgit/hostap/patch/?id=7800725afb27397f7d6033d4969e2aeb61af4737"; 26 + sha256 = "0c1la7inf4m5y9gzdjjdnhpkx32pm8vi6m5knih8p77q4mbrdgg8"; 27 + }) 28 ]; 29 30 # TODO: Patch epoll so that the dbus actually responds ··· 38 CONFIG_EAP_SAKE=y 39 CONFIG_EAP_GPSK=y 40 CONFIG_EAP_GPSK_SHA256=y 41 + CONFIG_OWE=y 42 CONFIG_WPS=y 43 CONFIG_WPS_ER=y 44 CONFIG_WPS_NFS=y
+8 -2
pkgs/os-specific/linux/zfs/default.nix
··· 21 buildKernel = any (n: n == configFile) [ "kernel" "all" ]; 22 buildUser = any (n: n == configFile) [ "user" "all" ]; 23 24 common = { version 25 , sha256 26 , extraPatches ? [] ··· 190 191 sha256 = "0wmw823ildwm9rcfyk22pvzg100yhps3y9hfjlrpspfd1hhkbp0d"; 192 193 - extraPatches = [ ]; 194 }; 195 196 zfsUnstable = common { ··· 202 203 sha256 = "0wmw823ildwm9rcfyk22pvzg100yhps3y9hfjlrpspfd1hhkbp0d"; 204 205 - extraPatches = [ ]; 206 }; 207 }
··· 21 buildKernel = any (n: n == configFile) [ "kernel" "all" ]; 22 buildUser = any (n: n == configFile) [ "user" "all" ]; 23 24 + # remove this patch at the next ZFS release (> 2.0.1) 25 + reapplyPathSanitizerPatch = fetchpatch { 26 + url = "https://github.com/openzfs/zfs/commit/03f036cbccdd8699f5fe8540ef317595a35bceb8.patch"; 27 + sha256 = "c157bbb6551a4e720c3faba005e1b72e4692d304c6ff5e0e685691bd47197dca"; 28 + }; 29 + 30 common = { version 31 , sha256 32 , extraPatches ? [] ··· 196 197 sha256 = "0wmw823ildwm9rcfyk22pvzg100yhps3y9hfjlrpspfd1hhkbp0d"; 198 199 + extraPatches = [ reapplyPathSanitizerPatch ]; 200 }; 201 202 zfsUnstable = common { ··· 208 209 sha256 = "0wmw823ildwm9rcfyk22pvzg100yhps3y9hfjlrpspfd1hhkbp0d"; 210 211 + extraPatches = [ reapplyPathSanitizerPatch ]; 212 }; 213 }
+3 -4
pkgs/servers/http/jetty/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "jetty"; 5 - version = "9.4.35.v20201120"; 6 src = fetchurl { 7 url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz"; 8 - name = "jetty-distribution-${version}.tar.gz"; 9 - sha256 = "1cpdrqz6wi7fd228lh4ijs82jq51qr5aym6vff464w3y2sd0jbav"; 10 }; 11 12 - phases = [ "unpackPhase" "installPhase" ]; 13 14 installPhase = '' 15 mkdir -p $out
··· 2 3 stdenv.mkDerivation rec { 4 pname = "jetty"; 5 + version = "9.4.36.v20210114"; 6 src = fetchurl { 7 url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz"; 8 + sha256 = "1bsqxzjcdgdg2qdgc64pvrimkn9j2di2s3prlgdpbwi566744q54"; 9 }; 10 11 + dontBuild = true; 12 13 installPhase = '' 14 mkdir -p $out
+6 -3
pkgs/servers/klipper/default.nix
··· 2 , lib 3 , fetchFromGitHub 4 , python2 5 }: 6 stdenv.mkDerivation rec { 7 name = "klipper"; 8 - version = "0.9.1"; 9 10 src = fetchFromGitHub { 11 owner = "KevinOConnor"; 12 repo = "klipper"; 13 - rev = "v${version}"; 14 - sha256 = "1wgklngsz6xxl25qxi9fkqhbyhwy61iyyk76ycq68b3miayrkgpj"; 15 }; 16 17 sourceRoot = "source/klippy"; ··· 38 chmod 755 $out/lib/klipper/klippy.py 39 runHook postInstall 40 ''; 41 42 meta = with lib; { 43 description = "The Klipper 3D printer firmware";
··· 2 , lib 3 , fetchFromGitHub 4 , python2 5 + , unstableGitUpdater 6 }: 7 stdenv.mkDerivation rec { 8 name = "klipper"; 9 + version = "unstable-2021-01-31"; 10 11 src = fetchFromGitHub { 12 owner = "KevinOConnor"; 13 repo = "klipper"; 14 + rev = "ef4d9c3abd30ae8a485020fd9ff2fb4529a143b3"; 15 + sha256 = "puAkSGL0DD0JUWejPdzr7zKIW2UP2soBBtgm2msUKzA="; 16 }; 17 18 sourceRoot = "source/klippy"; ··· 39 chmod 755 $out/lib/klipper/klippy.py 40 runHook postInstall 41 ''; 42 + 43 + passthru.updateScript = unstableGitUpdater { url = meta.homepage; }; 44 45 meta = with lib; { 46 description = "The Klipper 3D printer firmware";
+2 -2
pkgs/servers/nextcloud/default.nix
··· 58 }; 59 60 nextcloud20 = generic { 61 - version = "20.0.5"; 62 - sha256 = "5c70dd33024012a1651fd099133d052d129a4dadc6935f44bb9c3e2b360befe3"; 63 }; 64 }
··· 58 }; 59 60 nextcloud20 = generic { 61 + version = "20.0.6"; 62 + sha256 = "859167170402b876b6ef1a37fa4aaa5617b6bf847bb5d50a94f636bae65a34b9"; 63 }; 64 }
+5 -3
pkgs/tools/audio/beets/default.nix
··· 2 , pythonPackages, imagemagick, gobject-introspection, gst_all_1 3 , runtimeShell 4 , fetchpatch 5 6 # Attributes needed for tests of the external plugins 7 , callPackage, beets ··· 132 # unstable does not require bs1770gain[2]. 133 # [1]: https://discourse.beets.io/t/forming-a-beets-core-team/639 134 # [2]: https://github.com/NixOS/nixpkgs/pull/90504 135 - version = "unstable-2020-12-22"; 136 137 src = fetchFromGitHub { 138 owner = "beetbox"; 139 repo = "beets"; 140 - rev = "53dcb24d10788897f20c341774b474808ec2c0b6"; 141 - sha256 = "sha256-P++NA13T2TRHW3Se10np8BSe/WRBYAKRte5xKoHKW50="; 142 }; 143 144 propagatedBuildInputs = [ ··· 290 291 passthru = { 292 externalPlugins = plugins; 293 }; 294 295 meta = {
··· 2 , pythonPackages, imagemagick, gobject-introspection, gst_all_1 3 , runtimeShell 4 , fetchpatch 5 + , unstableGitUpdater 6 7 # Attributes needed for tests of the external plugins 8 , callPackage, beets ··· 133 # unstable does not require bs1770gain[2]. 134 # [1]: https://discourse.beets.io/t/forming-a-beets-core-team/639 135 # [2]: https://github.com/NixOS/nixpkgs/pull/90504 136 + version = "unstable-2021-01-29"; 137 138 src = fetchFromGitHub { 139 owner = "beetbox"; 140 repo = "beets"; 141 + rev = "04ea754d00e2873ae9aa2d9e07c5cefd790eaee2"; 142 + sha256 = "sha256-BIa3hnOsBxThbA2WCE4q9eaFNtObr3erZBBqobVOSiQ="; 143 }; 144 145 propagatedBuildInputs = [ ··· 291 292 passthru = { 293 externalPlugins = plugins; 294 + updateScript = unstableGitUpdater { url = "https://github.com/beetbox/beets"; }; 295 }; 296 297 meta = {
+29
pkgs/tools/security/ssh-to-pgp/default.nix
···
··· 1 + { lib, fetchFromGitHub, buildGoModule, gnupg }: 2 + 3 + buildGoModule rec { 4 + pname = "ssh-to-pgp"; 5 + version = "1.0.0"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "Mic92"; 9 + repo = "ssh-to-pgp"; 10 + rev = version; 11 + sha256 = "sha256-TDrpnWAez8muysMdmKFBDZfK8CyhGn1VqHB8+zD6jSk="; 12 + }; 13 + 14 + vendorSha256 = "sha256-ZF/WsmqmGHZIAGTPKJ70UhtmssNhiInEZfzrKxQLw9I="; 15 + 16 + checkInputs = [ gnupg ]; 17 + checkPhase = '' 18 + HOME=$TMPDIR go test . 19 + ''; 20 + 21 + doCheck = true; 22 + 23 + meta = with lib; { 24 + description = "Convert ssh private keys to PGP"; 25 + homepage = "https://github.com/Mic92/ssh-to-pgp"; 26 + license = licenses.mit; 27 + maintainers = with maintainers; [ mic92 ]; 28 + }; 29 + }
+16 -1
pkgs/top-level/all-packages.nix
··· 2908 2909 beanstalkd = callPackage ../servers/beanstalkd { }; 2910 2911 beets = callPackage ../tools/audio/beets { 2912 pythonPackages = python3Packages; 2913 }; ··· 7900 7901 ssh-chat = callPackage ../applications/networking/instant-messengers/ssh-chat { }; 7902 7903 suricata = callPackage ../applications/networking/ids/suricata { 7904 python = python3; 7905 }; ··· 9570 9571 icr = callPackage ../development/tools/icr { }; 9572 9573 - scry = callPackage ../development/tools/scry {}; 9574 9575 dasm = callPackage ../development/compilers/dasm/default.nix { }; 9576 ··· 26546 gcompris = libsForQt5.callPackage ../games/gcompris { }; 26547 26548 gemrb = callPackage ../games/gemrb { }; 26549 26550 gl117 = callPackage ../games/gl-117 {}; 26551
··· 2908 2909 beanstalkd = callPackage ../servers/beanstalkd { }; 2910 2911 + bee = callPackage ../applications/networking/bee/bee.nix { 2912 + version = "release"; 2913 + }; 2914 + 2915 + bee-unstable = bee.override { 2916 + version = "unstable"; 2917 + }; 2918 + 2919 + bee-clef = callPackage ../applications/networking/bee/bee-clef.nix { }; 2920 + 2921 beets = callPackage ../tools/audio/beets { 2922 pythonPackages = python3Packages; 2923 }; ··· 7910 7911 ssh-chat = callPackage ../applications/networking/instant-messengers/ssh-chat { }; 7912 7913 + ssh-to-pgp = callPackage ../tools/security/ssh-to-pgp { }; 7914 + 7915 suricata = callPackage ../applications/networking/ids/suricata { 7916 python = python3; 7917 }; ··· 9582 9583 icr = callPackage ../development/tools/icr { }; 9584 9585 + scry = callPackage ../development/tools/scry { }; 9586 9587 dasm = callPackage ../development/compilers/dasm/default.nix { }; 9588 ··· 26558 gcompris = libsForQt5.callPackage ../games/gcompris { }; 26559 26560 gemrb = callPackage ../games/gemrb { }; 26561 + 26562 + gimx = callPackage ../games/gimx {}; 26563 + gimx-afterglow = lowPrio (gimx.override { gimxAuth = "afterglow"; }); 26564 26565 gl117 = callPackage ../games/gl-117 {}; 26566
+9 -3
pkgs/top-level/python-packages.nix
··· 2755 2756 gpyopt = callPackage ../development/python-modules/gpyopt { }; 2757 2758 - gradient_sdk = callPackage ../development/python-modules/gradient_sdk { }; 2759 2760 gradient_statsd = callPackage ../development/python-modules/gradient_statsd { }; 2761 ··· 2879 2880 ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { }; 2881 2882 handout = callPackage ../development/python-modules/handout { }; 2883 2884 HAP-python = callPackage ../development/python-modules/HAP-python { }; ··· 3782 3783 lockfile = callPackage ../development/python-modules/lockfile { }; 3784 3785 Logbook = callPackage ../development/python-modules/Logbook { }; 3786 3787 logfury = callPackage ../development/python-modules/logfury { }; ··· 4647 panel = callPackage ../development/python-modules/panel { }; 4648 4649 papermill = callPackage ../development/python-modules/papermill { }; 4650 - 4651 - paperspace = callPackage ../development/python-modules/paperspace { }; 4652 4653 openpaperwork-core = callPackage ../applications/office/paperwork/openpaperwork-core.nix { }; 4654 openpaperwork-gtk = callPackage ../applications/office/paperwork/openpaperwork-gtk.nix { }; ··· 7304 spglib = callPackage ../development/python-modules/spglib { }; 7305 7306 sphfile = callPackage ../development/python-modules/sphfile { }; 7307 7308 sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { }; 7309
··· 2755 2756 gpyopt = callPackage ../development/python-modules/gpyopt { }; 2757 2758 + gradient = callPackage ../development/python-modules/gradient { }; 2759 + 2760 + gradient-utils = callPackage ../development/python-modules/gradient-utils { }; 2761 2762 gradient_statsd = callPackage ../development/python-modules/gradient_statsd { }; 2763 ··· 2881 2882 ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { }; 2883 2884 + halo = callPackage ../development/python-modules/halo { }; 2885 + 2886 handout = callPackage ../development/python-modules/handout { }; 2887 2888 HAP-python = callPackage ../development/python-modules/HAP-python { }; ··· 3786 3787 lockfile = callPackage ../development/python-modules/lockfile { }; 3788 3789 + log-symbols = callPackage ../development/python-modules/log-symbols { }; 3790 + 3791 Logbook = callPackage ../development/python-modules/Logbook { }; 3792 3793 logfury = callPackage ../development/python-modules/logfury { }; ··· 4653 panel = callPackage ../development/python-modules/panel { }; 4654 4655 papermill = callPackage ../development/python-modules/papermill { }; 4656 4657 openpaperwork-core = callPackage ../applications/office/paperwork/openpaperwork-core.nix { }; 4658 openpaperwork-gtk = callPackage ../applications/office/paperwork/openpaperwork-gtk.nix { }; ··· 7308 spglib = callPackage ../development/python-modules/spglib { }; 7309 7310 sphfile = callPackage ../development/python-modules/sphfile { }; 7311 + 7312 + spinners = callPackage ../development/python-modules/spinners { }; 7313 7314 sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { }; 7315