lol

Merge master into staging-next

authored by

github-actions[bot] and committed by
GitHub
9b3e698b 43d3569e

+1505 -459
+29
.github/workflows/direct-push.yml
··· 1 + name: "Direct Push Warning" 2 + on: 3 + push: 4 + branches: 5 + - master 6 + - release-** 7 + jobs: 8 + build: 9 + runs-on: ubuntu-latest 10 + if: github.repository_owner == 'NixOS' 11 + env: 12 + GITHUB_SHA: ${{ github.sha }} 13 + GITHUB_REPOSITORY: ${{ github.repository }} 14 + steps: 15 + - name: Check if commit is a merge commit 16 + id: ismerge 17 + run: | 18 + ISMERGE=$(curl -H 'Accept: application/vnd.github.groot-preview+json' -H "authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ env.GITHUB_REPOSITORY }}/commits/${{ env.GITHUB_SHA }}/pulls | jq -r '.[] | select(.merge_commit_sha == "${{ env.GITHUB_SHA }}") | any') 19 + echo "::set-output name=ismerge::$ISMERGE" 20 + - name: Warn if the commit was a direct push 21 + if: steps.ismerge.outputs.ismerge != 'true' 22 + uses: peter-evans/commit-comment@v1 23 + with: 24 + body: | 25 + @${{ github.actor }}, you pushed a commit directly to master/release branch 26 + instead of going through a Pull Request. 27 + 28 + That's highly discouraged beyond the few exceptions listed 29 + on https://github.com/NixOS/nixpkgs/issues/118661
+22
maintainers/maintainer-list.nix
··· 374 374 githubId = 786394; 375 375 name = "Alexander Krupenkin "; 376 376 }; 377 + akshgpt7 = { 378 + email = "akshgpt7@gmail.com"; 379 + github = "akshgpt7"; 380 + githubId = 20405311; 381 + name = "Aksh Gupta"; 382 + }; 377 383 albakham = { 378 384 email = "dev@geber.ga"; 379 385 github = "albakham"; ··· 4412 4418 github = "jansol"; 4413 4419 githubId = 2588851; 4414 4420 name = "Jan Solanti"; 4421 + }; 4422 + jappie = { 4423 + email = "jappieklooster@hotmail.com"; 4424 + github = "jappeace"; 4425 + githubId = 3874017; 4426 + name = "Jappie Klooster"; 4415 4427 }; 4416 4428 javaguirre = { 4417 4429 email = "contacto@javaguirre.net"; ··· 11291 11303 email = "1838397+pulsation@users.noreply.github.com"; 11292 11304 github = "pulsation"; 11293 11305 githubId = 1838397; 11306 + }; 11307 + zane = { 11308 + name = "Zane van Iperen"; 11309 + email = "zane@zanevaniperen.com"; 11310 + github = "vs49688"; 11311 + githubId = 4423262; 11312 + keys = [{ 11313 + longkeyid = "rsa4096/0x68616B2D8AC4DCC5"; 11314 + fingerprint = "61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5"; 11315 + }]; 11294 11316 }; 11295 11317 zseri = { 11296 11318 name = "zseri";
+1
nixos/modules/module-list.nix
··· 734 734 ./services/networking/nar-serve.nix 735 735 ./services/networking/nat.nix 736 736 ./services/networking/ndppd.nix 737 + ./services/networking/nebula.nix 737 738 ./services/networking/networkmanager.nix 738 739 ./services/networking/nextdns.nix 739 740 ./services/networking/nftables.nix
+219
nixos/modules/services/networking/nebula.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + 7 + cfg = config.services.nebula; 8 + enabledNetworks = filterAttrs (n: v: v.enable) cfg.networks; 9 + 10 + format = pkgs.formats.yaml {}; 11 + 12 + nameToId = netName: "nebula-${netName}"; 13 + in 14 + { 15 + # Interface 16 + 17 + options = { 18 + services.nebula = { 19 + networks = mkOption { 20 + description = "Nebula network definitions."; 21 + default = {}; 22 + type = types.attrsOf (types.submodule { 23 + options = { 24 + enable = mkOption { 25 + type = types.bool; 26 + default = true; 27 + description = "Enable or disable this network."; 28 + }; 29 + 30 + package = mkOption { 31 + type = types.package; 32 + default = pkgs.nebula; 33 + defaultText = "pkgs.nebula"; 34 + description = "Nebula derivation to use."; 35 + }; 36 + 37 + ca = mkOption { 38 + type = types.path; 39 + description = "Path to the certificate authority certificate."; 40 + example = "/etc/nebula/ca.crt"; 41 + }; 42 + 43 + cert = mkOption { 44 + type = types.path; 45 + description = "Path to the host certificate."; 46 + example = "/etc/nebula/host.crt"; 47 + }; 48 + 49 + key = mkOption { 50 + type = types.path; 51 + description = "Path to the host key."; 52 + example = "/etc/nebula/host.key"; 53 + }; 54 + 55 + staticHostMap = mkOption { 56 + type = types.attrsOf (types.listOf (types.str)); 57 + default = {}; 58 + description = '' 59 + The static host map defines a set of hosts with fixed IP addresses on the internet (or any network). 60 + A host can have multiple fixed IP addresses defined here, and nebula will try each when establishing a tunnel. 61 + ''; 62 + example = literalExample '' 63 + { "192.168.100.1" = [ "100.64.22.11:4242" ]; } 64 + ''; 65 + }; 66 + 67 + isLighthouse = mkOption { 68 + type = types.bool; 69 + default = false; 70 + description = "Whether this node is a lighthouse."; 71 + }; 72 + 73 + lighthouses = mkOption { 74 + type = types.listOf types.str; 75 + default = []; 76 + description = '' 77 + List of IPs of lighthouse hosts this node should report to and query from. This should be empty on lighthouse 78 + nodes. The IPs should be the lighthouse's Nebula IPs, not their external IPs. 79 + ''; 80 + example = ''[ "192.168.100.1" ]''; 81 + }; 82 + 83 + listen.host = mkOption { 84 + type = types.str; 85 + default = "0.0.0.0"; 86 + description = "IP address to listen on."; 87 + }; 88 + 89 + listen.port = mkOption { 90 + type = types.port; 91 + default = 4242; 92 + description = "Port number to listen on."; 93 + }; 94 + 95 + tun.disable = mkOption { 96 + type = types.bool; 97 + default = false; 98 + description = '' 99 + When tun is disabled, a lighthouse can be started without a local tun interface (and therefore without root). 100 + ''; 101 + }; 102 + 103 + tun.device = mkOption { 104 + type = types.nullOr types.str; 105 + default = null; 106 + description = "Name of the tun device. Defaults to nebula.\${networkName}."; 107 + }; 108 + 109 + firewall.outbound = mkOption { 110 + type = types.listOf types.attrs; 111 + default = []; 112 + description = "Firewall rules for outbound traffic."; 113 + example = ''[ { port = "any"; proto = "any"; host = "any"; } ]''; 114 + }; 115 + 116 + firewall.inbound = mkOption { 117 + type = types.listOf types.attrs; 118 + default = []; 119 + description = "Firewall rules for inbound traffic."; 120 + example = ''[ { port = "any"; proto = "any"; host = "any"; } ]''; 121 + }; 122 + 123 + settings = mkOption { 124 + type = format.type; 125 + default = {}; 126 + description = '' 127 + Nebula configuration. Refer to 128 + <link xlink:href="https://github.com/slackhq/nebula/blob/master/examples/config.yml"/> 129 + for details on supported values. 130 + ''; 131 + example = literalExample '' 132 + { 133 + lighthouse.dns = { 134 + host = "0.0.0.0"; 135 + port = 53; 136 + }; 137 + } 138 + ''; 139 + }; 140 + }; 141 + }); 142 + }; 143 + }; 144 + }; 145 + 146 + # Implementation 147 + config = mkIf (enabledNetworks != {}) { 148 + systemd.services = mkMerge (mapAttrsToList (netName: netCfg: 149 + let 150 + networkId = nameToId netName; 151 + settings = recursiveUpdate { 152 + pki = { 153 + ca = netCfg.ca; 154 + cert = netCfg.cert; 155 + key = netCfg.key; 156 + }; 157 + static_host_map = netCfg.staticHostMap; 158 + lighthouse = { 159 + am_lighthouse = netCfg.isLighthouse; 160 + hosts = netCfg.lighthouses; 161 + }; 162 + listen = { 163 + host = netCfg.listen.host; 164 + port = netCfg.listen.port; 165 + }; 166 + tun = { 167 + disabled = netCfg.tun.disable; 168 + dev = if (netCfg.tun.device != null) then netCfg.tun.device else "nebula.${netName}"; 169 + }; 170 + firewall = { 171 + inbound = netCfg.firewall.inbound; 172 + outbound = netCfg.firewall.outbound; 173 + }; 174 + } netCfg.settings; 175 + configFile = format.generate "nebula-config-${netName}.yml" settings; 176 + in 177 + { 178 + # Create systemd service for Nebula. 179 + "nebula@${netName}" = { 180 + description = "Nebula VPN service for ${netName}"; 181 + wants = [ "basic.target" ]; 182 + after = [ "basic.target" "network.target" ]; 183 + before = [ "sshd.service" ]; 184 + wantedBy = [ "multi-user.target" ]; 185 + serviceConfig = mkMerge [ 186 + { 187 + Type = "simple"; 188 + Restart = "always"; 189 + ExecStart = "${netCfg.package}/bin/nebula -config ${configFile}"; 190 + } 191 + # The service needs to launch as root to access the tun device, if it's enabled. 192 + (mkIf netCfg.tun.disable { 193 + User = networkId; 194 + Group = networkId; 195 + }) 196 + ]; 197 + }; 198 + }) enabledNetworks); 199 + 200 + # Open the chosen ports for UDP. 201 + networking.firewall.allowedUDPPorts = 202 + unique (mapAttrsToList (netName: netCfg: netCfg.listen.port) enabledNetworks); 203 + 204 + # Create the service users and groups. 205 + users.users = mkMerge (mapAttrsToList (netName: netCfg: 206 + mkIf netCfg.tun.disable { 207 + ${nameToId netName} = { 208 + group = nameToId netName; 209 + description = "Nebula service user for network ${netName}"; 210 + isSystemUser = true; 211 + }; 212 + }) enabledNetworks); 213 + 214 + users.groups = mkMerge (mapAttrsToList (netName: netCfg: 215 + mkIf netCfg.tun.disable { 216 + ${nameToId netName} = {}; 217 + }) enabledNetworks); 218 + }; 219 + }
+1
nixos/tests/all-tests.nix
··· 263 263 nat.standalone = handleTest ./nat.nix { withFirewall = false; }; 264 264 ncdns = handleTest ./ncdns.nix {}; 265 265 ndppd = handleTest ./ndppd.nix {}; 266 + nebula = handleTest ./nebula.nix {}; 266 267 neo4j = handleTest ./neo4j.nix {}; 267 268 netdata = handleTest ./netdata.nix {}; 268 269 networking.networkd = handleTest ./networking.nix { networkd = true; };
+223
nixos/tests/nebula.nix
··· 1 + import ./make-test-python.nix ({ pkgs, lib, ... }: let 2 + 3 + # We'll need to be able to trade cert files between nodes via scp. 4 + inherit (import ./ssh-keys.nix pkgs) 5 + snakeOilPrivateKey snakeOilPublicKey; 6 + 7 + makeNebulaNode = { config, ... }: name: extraConfig: lib.mkMerge [ 8 + { 9 + # Expose nebula for doing cert signing. 10 + environment.systemPackages = [ pkgs.nebula ]; 11 + users.users.root.openssh.authorizedKeys.keys = [ snakeOilPublicKey ]; 12 + services.openssh.enable = true; 13 + 14 + services.nebula.networks.smoke = { 15 + # Note that these paths won't exist when the machine is first booted. 16 + ca = "/etc/nebula/ca.crt"; 17 + cert = "/etc/nebula/${name}.crt"; 18 + key = "/etc/nebula/${name}.key"; 19 + listen = { host = "0.0.0.0"; port = 4242; }; 20 + }; 21 + } 22 + extraConfig 23 + ]; 24 + 25 + in 26 + { 27 + name = "nebula"; 28 + 29 + nodes = { 30 + 31 + lighthouse = { ... } @ args: 32 + makeNebulaNode args "lighthouse" { 33 + networking.interfaces.eth1.ipv4.addresses = [{ 34 + address = "192.168.1.1"; 35 + prefixLength = 24; 36 + }]; 37 + 38 + services.nebula.networks.smoke = { 39 + isLighthouse = true; 40 + firewall = { 41 + outbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 42 + inbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 43 + }; 44 + }; 45 + }; 46 + 47 + node2 = { ... } @ args: 48 + makeNebulaNode args "node2" { 49 + networking.interfaces.eth1.ipv4.addresses = [{ 50 + address = "192.168.1.2"; 51 + prefixLength = 24; 52 + }]; 53 + 54 + services.nebula.networks.smoke = { 55 + staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; }; 56 + isLighthouse = false; 57 + lighthouses = [ "10.0.100.1" ]; 58 + firewall = { 59 + outbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 60 + inbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 61 + }; 62 + }; 63 + }; 64 + 65 + node3 = { ... } @ args: 66 + makeNebulaNode args "node3" { 67 + networking.interfaces.eth1.ipv4.addresses = [{ 68 + address = "192.168.1.3"; 69 + prefixLength = 24; 70 + }]; 71 + 72 + services.nebula.networks.smoke = { 73 + staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; }; 74 + isLighthouse = false; 75 + lighthouses = [ "10.0.100.1" ]; 76 + firewall = { 77 + outbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 78 + inbound = [ { port = "any"; proto = "any"; host = "lighthouse"; } ]; 79 + }; 80 + }; 81 + }; 82 + 83 + node4 = { ... } @ args: 84 + makeNebulaNode args "node4" { 85 + networking.interfaces.eth1.ipv4.addresses = [{ 86 + address = "192.168.1.4"; 87 + prefixLength = 24; 88 + }]; 89 + 90 + services.nebula.networks.smoke = { 91 + enable = true; 92 + staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; }; 93 + isLighthouse = false; 94 + lighthouses = [ "10.0.100.1" ]; 95 + firewall = { 96 + outbound = [ { port = "any"; proto = "any"; host = "lighthouse"; } ]; 97 + inbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 98 + }; 99 + }; 100 + }; 101 + 102 + node5 = { ... } @ args: 103 + makeNebulaNode args "node5" { 104 + networking.interfaces.eth1.ipv4.addresses = [{ 105 + address = "192.168.1.5"; 106 + prefixLength = 24; 107 + }]; 108 + 109 + services.nebula.networks.smoke = { 110 + enable = false; 111 + staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; }; 112 + isLighthouse = false; 113 + lighthouses = [ "10.0.100.1" ]; 114 + firewall = { 115 + outbound = [ { port = "any"; proto = "any"; host = "lighthouse"; } ]; 116 + inbound = [ { port = "any"; proto = "any"; host = "any"; } ]; 117 + }; 118 + }; 119 + }; 120 + 121 + }; 122 + 123 + testScript = let 124 + 125 + setUpPrivateKey = name: '' 126 + ${name}.succeed( 127 + "mkdir -p /root/.ssh", 128 + "chown 700 /root/.ssh", 129 + "cat '${snakeOilPrivateKey}' > /root/.ssh/id_snakeoil", 130 + "chown 600 /root/.ssh/id_snakeoil", 131 + ) 132 + ''; 133 + 134 + # From what I can tell, StrictHostKeyChecking=no is necessary for ssh to work between machines. 135 + sshOpts = "-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentityFile=/root/.ssh/id_snakeoil"; 136 + 137 + restartAndCheckNebula = name: ip: '' 138 + ${name}.systemctl("restart nebula@smoke.service") 139 + ${name}.succeed("ping -c5 ${ip}") 140 + ''; 141 + 142 + # Create a keypair on the client node, then use the public key to sign a cert on the lighthouse. 143 + signKeysFor = name: ip: '' 144 + lighthouse.wait_for_unit("sshd.service") 145 + ${name}.wait_for_unit("sshd.service") 146 + ${name}.succeed( 147 + "mkdir -p /etc/nebula", 148 + "nebula-cert keygen -out-key /etc/nebula/${name}.key -out-pub /etc/nebula/${name}.pub", 149 + "scp ${sshOpts} /etc/nebula/${name}.pub 192.168.1.1:/tmp/${name}.pub", 150 + ) 151 + lighthouse.succeed( 152 + 'nebula-cert sign -ca-crt /etc/nebula/ca.crt -ca-key /etc/nebula/ca.key -name "${name}" -groups "${name}" -ip "${ip}" -in-pub /tmp/${name}.pub -out-crt /tmp/${name}.crt', 153 + ) 154 + ${name}.succeed( 155 + "scp ${sshOpts} 192.168.1.1:/tmp/${name}.crt /etc/nebula/${name}.crt", 156 + "scp ${sshOpts} 192.168.1.1:/etc/nebula/ca.crt /etc/nebula/ca.crt", 157 + ) 158 + ''; 159 + 160 + in '' 161 + start_all() 162 + 163 + # Create the certificate and sign the lighthouse's keys. 164 + ${setUpPrivateKey "lighthouse"} 165 + lighthouse.succeed( 166 + "mkdir -p /etc/nebula", 167 + 'nebula-cert ca -name "Smoke Test" -out-crt /etc/nebula/ca.crt -out-key /etc/nebula/ca.key', 168 + 'nebula-cert sign -ca-crt /etc/nebula/ca.crt -ca-key /etc/nebula/ca.key -name "lighthouse" -groups "lighthouse" -ip "10.0.100.1/24" -out-crt /etc/nebula/lighthouse.crt -out-key /etc/nebula/lighthouse.key', 169 + ) 170 + 171 + # Reboot the lighthouse and verify that the nebula service comes up on boot. 172 + # Since rebooting takes a while, we'll just restart the service on the other nodes. 173 + lighthouse.shutdown() 174 + lighthouse.start() 175 + lighthouse.wait_for_unit("nebula@smoke.service") 176 + lighthouse.succeed("ping -c5 10.0.100.1") 177 + 178 + # Create keys for node2's nebula service and test that it comes up. 179 + ${setUpPrivateKey "node2"} 180 + ${signKeysFor "node2" "10.0.100.2/24"} 181 + ${restartAndCheckNebula "node2" "10.0.100.2"} 182 + 183 + # Create keys for node3's nebula service and test that it comes up. 184 + ${setUpPrivateKey "node3"} 185 + ${signKeysFor "node3" "10.0.100.3/24"} 186 + ${restartAndCheckNebula "node3" "10.0.100.3"} 187 + 188 + # Create keys for node4's nebula service and test that it comes up. 189 + ${setUpPrivateKey "node4"} 190 + ${signKeysFor "node4" "10.0.100.4/24"} 191 + ${restartAndCheckNebula "node4" "10.0.100.4"} 192 + 193 + # Create keys for node4's nebula service and test that it does not come up. 194 + ${setUpPrivateKey "node5"} 195 + ${signKeysFor "node5" "10.0.100.5/24"} 196 + node5.fail("systemctl status nebula@smoke.service") 197 + node5.fail("ping -c5 10.0.100.5") 198 + 199 + # The lighthouse can ping node2 and node3 but not node5 200 + lighthouse.succeed("ping -c3 10.0.100.2") 201 + lighthouse.succeed("ping -c3 10.0.100.3") 202 + lighthouse.fail("ping -c3 10.0.100.5") 203 + 204 + # node2 can ping the lighthouse, but not node3 because of its inbound firewall 205 + node2.succeed("ping -c3 10.0.100.1") 206 + node2.fail("ping -c3 10.0.100.3") 207 + 208 + # node3 can ping the lighthouse and node2 209 + node3.succeed("ping -c3 10.0.100.1") 210 + node3.succeed("ping -c3 10.0.100.2") 211 + 212 + # node4 can ping the lighthouse but not node2 or node3 213 + node4.succeed("ping -c3 10.0.100.1") 214 + node4.fail("ping -c3 10.0.100.2") 215 + node4.fail("ping -c3 10.0.100.3") 216 + 217 + # node2 can ping node3 now that node3 pinged it first 218 + node2.succeed("ping -c3 10.0.100.3") 219 + # node4 can ping node2 if node2 pings it first 220 + node2.succeed("ping -c3 10.0.100.4") 221 + node4.succeed("ping -c3 10.0.100.2") 222 + ''; 223 + })
-1
pkgs/applications/editors/neovim/wrapper.nix
··· 1 1 { stdenv, symlinkJoin, lib, makeWrapper 2 - , vimUtils 3 2 , writeText 4 3 , bundlerEnv, ruby 5 4 , nodejs
+2 -2
pkgs/applications/networking/cluster/k3s/default.nix
··· 44 44 # Those pieces of software we entirely ignore upstream's handling of, and just 45 45 # make sure they're in the path if desired. 46 46 let 47 - k3sVersion = "1.20.5+k3s1"; # k3s git tag 47 + k3sVersion = "1.20.6+k3s1"; # k3s git tag 48 48 traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag 49 49 k3sRootVersion = "0.8.1"; # taken from ./scripts/download at the above k3s tag 50 50 k3sCNIVersion = "0.8.6-k3s1"; # taken from ./scripts/version.sh at the above k3s tag ··· 96 96 url = "https://github.com/k3s-io/k3s"; 97 97 rev = "v${k3sVersion}"; 98 98 leaveDotGit = true; # ./scripts/version.sh depends on git 99 - sha256 = "sha256-7RAZkSTh15BEZ3p6u2xE9vd5fpy4KBYrl2TjtpIiStM="; 99 + sha256 = "sha256-IIZotJKQ/+WNmfcEJU5wFtZBufWjUp4MeVCRk4tSjyQ="; 100 100 }; 101 101 # Stage 1 of the k3s build: 102 102 # Let's talk about how k3s is structured.
+12 -7
pkgs/applications/networking/instant-messengers/zoom-us/default.nix
··· 7 7 , atk 8 8 , cairo 9 9 , dbus 10 + , dpkg 10 11 , libGL 11 12 , fontconfig 12 13 , freetype ··· 29 30 assert pulseaudioSupport -> libpulseaudio != null; 30 31 31 32 let 32 - version = "5.6.13632.0328"; 33 + version = "5.6.16775.0418"; 33 34 srcs = { 34 35 x86_64-linux = fetchurl { 35 - url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; 36 - sha256 = "0nskpg3rbv40jcbih95sfdr0kfv5hjv50z9jdz1cddl8v7hbqg71"; 36 + url = "https://zoom.us/client/${version}/zoom_amd64.deb"; 37 + sha256 = "1fmzwxq8jv5k1b2kvg1ij9g6cdp1hladd8vm3cxzd8fywdjcndim"; 37 38 }; 38 39 }; 39 40 ··· 70 71 inherit version; 71 72 src = srcs.${stdenv.hostPlatform.system}; 72 73 73 - dontUnpack = true; 74 - 75 74 nativeBuildInputs = [ 75 + dpkg 76 76 makeWrapper 77 77 ]; 78 78 79 + unpackCmd = '' 80 + mkdir out 81 + dpkg -x $curSrc out 82 + ''; 83 + 79 84 installPhase = '' 80 85 runHook preInstall 81 86 mkdir $out 82 - tar -C $out -xf ${src} 83 - mv $out/usr/* $out/ 87 + mv usr/* $out/ 88 + mv opt $out/ 84 89 runHook postInstall 85 90 ''; 86 91
+54
pkgs/applications/networking/mailreaders/himalaya/default.nix
··· 1 + { lib 2 + , stdenv 3 + , rustPlatform 4 + , fetchFromGitHub 5 + , openssl 6 + , pkg-config 7 + , installShellFiles 8 + , enableCompletions ? stdenv.hostPlatform == stdenv.buildPlatform 9 + , Security 10 + , libiconv 11 + }: 12 + rustPlatform.buildRustPackage rec { 13 + pname = "himalaya"; 14 + version = "0.2.6"; 15 + 16 + src = fetchFromGitHub { 17 + owner = "soywod"; 18 + repo = pname; 19 + rev = "v${version}"; 20 + sha256 = "1fl3lingb4wdh6bz4calzbibixg44wnnwi1qh0js1ijp8b6ll560"; 21 + }; 22 + 23 + cargoSha256 = "10p8di71w7hn36b1994wgk33fnj641lsp80zmccinlg5fiwyzncx"; 24 + 25 + nativeBuildInputs = [ ] 26 + ++ lib.optionals (enableCompletions) [ installShellFiles ] 27 + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ]; 28 + 29 + buildInputs = 30 + if stdenv.hostPlatform.isDarwin then [ 31 + Security 32 + libiconv 33 + ] else [ 34 + openssl 35 + ]; 36 + 37 + # The completions are correctly installed, and there is issue that himalaya 38 + # generate empty completion files without mail configure. 39 + # This supposed to be fixed in 0.2.7 40 + postInstall = lib.optionalString enableCompletions '' 41 + # Install shell function 42 + installShellCompletion --cmd himalaya \ 43 + --bash <($out/bin/himalaya completion bash) \ 44 + --fish <($out/bin/himalaya completion fish) \ 45 + --zsh <($out/bin/himalaya completion zsh) 46 + ''; 47 + 48 + meta = with lib; { 49 + description = "CLI email client written in Rust"; 50 + homepage = "https://github.com/soywod/himalaya"; 51 + license = licenses.bsd3; 52 + maintainers = with maintainers; [ yanganto ]; 53 + }; 54 + }
+12 -1
pkgs/applications/science/electronics/kicad/default.nix
··· 216 216 in 217 217 (concatStringsSep "\n" 218 218 (flatten [ 219 + "runHook preInstall" 220 + 219 221 (optionalString (withScripting) "buildPythonPath \"${base} $pythonPath\" \n") 220 222 221 223 # wrap each of the directly usable tools ··· 227 229 228 230 # link in the CLI utils 229 231 (map (util: "ln -s ${base}/bin/${util} $out/bin/${util}") utils) 232 + 233 + "runHook postInstall" 230 234 ]) 231 235 ) 232 236 ; 233 237 238 + postInstall = '' 239 + mkdir -p $out/share 240 + ln -s ${base}/share/applications $out/share/applications 241 + ln -s ${base}/share/icons $out/share/icons 242 + ln -s ${base}/share/mime $out/share/mime 243 + ''; 244 + 234 245 # can't run this for each pname 235 246 # stable and unstable are in the same versions.nix 236 247 # and kicad-small reuses stable ··· 248 259 KiCad is an open source software suite for Electronic Design Automation. 249 260 The Programs handle Schematic Capture, and PCB Layout with Gerber output. 250 261 ''; 251 - license = lib.licenses.agpl3; 262 + license = lib.licenses.gpl3Plus; 252 263 # berce seems inactive... 253 264 maintainers = with lib.maintainers; [ evils kiwi berce ]; 254 265 # kicad is cross platform
+4 -4
pkgs/applications/science/logic/beluga/default.nix
··· 1 1 { lib, fetchFromGitHub, ocamlPackages, rsync }: 2 2 3 - ocamlPackages.buildDunePackage { 3 + ocamlPackages.buildDunePackage rec { 4 4 pname = "beluga"; 5 - version = "unstable-2020-03-11"; 5 + version = "1.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "Beluga-lang"; 9 9 repo = "Beluga"; 10 - rev = "6133b2f572219333f304bb4f77c177592324c55b"; 11 - sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q"; 10 + rev = "v${version}"; 11 + sha256 = "1ziqjfv8jwidl8lj2mid2shhgqhv31dfh5wad2zxjpvf6038ahsw"; 12 12 }; 13 13 14 14 useDune2 = true;
+12 -5
pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "git-interactive-rebase-tool"; 5 - version = "2.0.0"; 5 + version = "2.1.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "MitMaro"; 9 9 repo = pname; 10 10 rev = version; 11 - sha256 = "117zwxyq2vc33nbnfpjbdr5vc2l5ymf6ln1dm5551ha3y3gdq3bf"; 11 + sha256 = "sha256-DYl/GUbeNtKmXoR3gq8mK8EfsZNVNlrdngAwfzG+epw="; 12 12 }; 13 13 14 - cargoSha256 = "051llwk9swq03xdqwyj0hlyv2ywq2f1cnks95nygyy393q7v930x"; 14 + cargoSha256 = "sha256-1joMWPfn0s+pLsO6NHMT6AoXZ33R8MY2AWSrROY2mw8="; 15 15 16 16 buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; 17 17 18 - # external_editor::tests::* tests fail 19 - doCheck = false; 18 + checkFlags = [ 19 + "--skip=external_editor::tests::edit_success" 20 + "--skip=external_editor::tests::editor_non_zero_exit" 21 + "--skip=external_editor::tests::empty_edit_abort_rebase" 22 + "--skip=external_editor::tests::empty_edit_error" 23 + "--skip=external_editor::tests::empty_edit_noop" 24 + "--skip=external_editor::tests::empty_edit_re_edit_rebase_file" 25 + "--skip=external_editor::tests::empty_edit_undo_and_edit" 26 + ]; 20 27 21 28 meta = with lib; { 22 29 homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
+1 -1
pkgs/applications/video/jellyfin-media-player/default.nix
··· 103 103 meta = with lib; { 104 104 homepage = "https://github.com/jellyfin/jellyfin-media-player"; 105 105 description = "Jellyfin Desktop Client based on Plex Media Player"; 106 - license = with licenses; [ gpl2Plus mit ]; 106 + license = with licenses; [ gpl2Only mit ]; 107 107 platforms = [ "x86_64-linux" "x86_64-darwin" ]; 108 108 maintainers = with maintainers; [ jojosch ]; 109 109 };
+2 -2
pkgs/applications/video/mpv/scripts/autoload.nix
··· 1 - { stdenv, fetchurl, mpv-unwrapped, lib }: 1 + { stdenvNoCC, mpv-unwrapped, lib }: 2 2 3 - stdenv.mkDerivation rec { 3 + stdenvNoCC.mkDerivation rec { 4 4 pname = "mpv-autoload"; 5 5 version = mpv-unwrapped.version; 6 6 src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autoload.lua";
+7 -4
pkgs/applications/video/mpv/scripts/convert.nix
··· 1 - { stdenv, fetchgit, lib 1 + { stdenvNoCC, fetchgit, lib 2 2 , yad, mkvtoolnix-cli, libnotify }: 3 3 4 - stdenv.mkDerivation { 4 + stdenvNoCC.mkDerivation { 5 5 pname = "mpv-convert-script"; 6 6 version = "2016-03-18"; 7 7 src = fetchgit { ··· 30 30 ''; 31 31 passthru.scriptName = "convert_script.lua"; 32 32 33 - meta = { 33 + meta = with lib; { 34 34 description = "Convert parts of a video while you are watching it in mpv"; 35 35 homepage = "https://gist.github.com/Zehkul/25ea7ae77b30af959be0"; 36 - maintainers = [ lib.maintainers.Profpatsch ]; 36 + maintainers = [ maintainers.Profpatsch ]; 37 37 longDescription = '' 38 38 When this script is loaded into mpv, you can hit Alt+W to mark the beginning 39 39 and Alt+W again to mark the end of the clip. Then a settings window opens. 40 40 ''; 41 + license = licenses.unfree; 42 + # script crashes mpv. See https://github.com/NixOS/nixpkgs/issues/113202 43 + broken = true; 41 44 }; 42 45 } 43 46
+2 -2
pkgs/applications/video/mpv/scripts/mpvacious.nix
··· 1 - { lib, stdenv, fetchFromGitHub, curl, xclip }: 1 + { lib, stdenvNoCC, fetchFromGitHub, curl, xclip }: 2 2 3 - stdenv.mkDerivation rec { 3 + stdenvNoCC.mkDerivation rec { 4 4 pname = "mpvacious"; 5 5 version = "0.14"; 6 6
+2 -2
pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
··· 1 - { lib, stdenv 1 + { lib, stdenvNoCC 2 2 , fetchFromGitHub }: 3 - stdenv.mkDerivation rec { 3 + stdenvNoCC.mkDerivation rec { 4 4 pname = "simple-mpv-ui"; 5 5 version = "1.0.0"; 6 6
+2 -2
pkgs/applications/video/mpv/scripts/sponsorblock.nix
··· 1 - { lib, stdenv, fetchFromGitHub, fetchpatch, python3 }: 1 + { lib, stdenvNoCC, fetchFromGitHub, fetchpatch, python3 }: 2 2 3 3 # Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }` 4 - stdenv.mkDerivation { 4 + stdenvNoCC.mkDerivation { 5 5 pname = "mpv_sponsorblock"; 6 6 version = "unstable-2020-07-05"; 7 7
+2 -2
pkgs/applications/video/mpv/scripts/thumbnail.nix
··· 1 - { fetchFromGitHub, lib, python3, stdenv }: 1 + { fetchFromGitHub, lib, python3, stdenvNoCC }: 2 2 3 - stdenv.mkDerivation rec { 3 + stdenvNoCC.mkDerivation rec { 4 4 pname = "mpv_thumbnail_script"; 5 5 version = "unstable-2020-01-16"; 6 6
+2 -1
pkgs/development/libraries/SDL2/default.nix
··· 2 2 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms 3 3 , openglSupport ? libGLSupported, libGL 4 4 , alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib 5 - , x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid 5 + , x11Support ? !stdenv.targetPlatform.isWindows && !stdenv.hostPlatform.isAndroid 6 6 , libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor 7 7 , libXinerama, libXext, libXxf86vm, libXrandr 8 8 , waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid ··· 79 79 "--disable-oss" 80 80 ] ++ optional (!x11Support) "--without-x" 81 81 ++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib" 82 + ++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles" 82 83 ++ optional stdenv.isDarwin "--disable-sdltest"; 83 84 84 85 # We remove libtool .la files when static libs are requested,
+3 -3
pkgs/development/libraries/cxxopts/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "cxxopts"; 5 - version = "2.2.1"; 5 + version = "unstable-2020-12-14"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "jarro2783"; 9 9 repo = name; 10 - rev = "v${version}"; 11 - sha256 = "0d3y747lsh1wkalc39nxd088rbypxigm991lk3j91zpn56whrpha"; 10 + rev = "2d8e17c4f88efce80e274cb03eeb902e055a91d3"; 11 + sha256 = "0pwrac81zfqjs17g3hx8r3ds2xf04npb6mz111qjy4bx17314ib7"; 12 12 }; 13 13 14 14 buildInputs = lib.optional enableUnicodeHelp [ icu.dev ];
+44
pkgs/development/libraries/iodash/0001-Add-cmake-install-directives.patch
··· 1 + From 89c7c160f897f64e17fb74efffccfd1fc16f8b7d Mon Sep 17 00:00:00 2001 2 + From: Jappie Klooster <jappieklooster@hotmail.com> 3 + Date: Fri, 2 Apr 2021 14:22:02 -0400 4 + Subject: [PATCH] Add cmake install directives. 5 + 6 + To make nix builds work, it expect a `make install` command to 7 + be available. 8 + Adding these directives seems to fix the build. 9 + 10 + If it's no trouble to you, please add them. 11 + 12 + Maybe don't need endian 13 + --- 14 + CMakeLists.txt | 10 ++++++++++ 15 + 1 file changed, 10 insertions(+) 16 + 17 + diff --git a/CMakeLists.txt b/CMakeLists.txt 18 + index 06e416f..8d6f489 100644 19 + --- a/CMakeLists.txt 20 + +++ b/CMakeLists.txt 21 + @@ -6,6 +6,8 @@ set(CMAKE_CXX_STANDARD 17) 22 + add_library(IODash INTERFACE) 23 + target_include_directories(IODash INTERFACE .) 24 + 25 + +include(GNUInstallDirs) 26 + + 27 + add_executable(IODash_Test test.cpp) 28 + target_link_libraries(IODash_Test IODash) 29 + 30 + @@ -20,3 +22,11 @@ if (DEFINED BUILD_BENCHMARKS AND (${BUILD_BENCHMARKS})) 31 + target_link_libraries(boost_Benchmark_HTTP boost_system pthread) 32 + endif() 33 + 34 + +install(TARGETS IODash 35 + + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 36 + +install(FILES IODash.hpp 37 + + DESTINATION include/) 38 + + 39 + +install(FILES 40 + + IODash/Buffer.hpp IODash/SocketAddress.hpp IODash/File.hpp IODash/Socket.hpp IODash/EventLoop.hpp IODash/Serial.hpp IODash/Timer.hpp 41 + + DESTINATION include/IODash) 42 + -- 43 + 2.29.2 44 +
+27
pkgs/development/libraries/iodash/default.nix
··· 1 + { lib, stdenv, fetchFromGitHub, cmake, pkg-config }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "iodash"; 5 + version = "0.1.7"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "YukiWorkshop"; 9 + repo = "IODash"; 10 + rev = "9dcb26621a9c17dbab704b5bab0c3a5fc72624cb"; 11 + sha256 = "0db5y2206fwh3h1pzjm9hy3m76inm0xpm1c5gvrladz6hiqfp7bx"; 12 + fetchSubmodules = true; 13 + }; 14 + # adds missing cmake install directives 15 + # https://github.com/YukiWorkshop/IODash/pull/2 16 + patches = [ ./0001-Add-cmake-install-directives.patch]; 17 + 18 + nativeBuildInputs = [ cmake pkg-config ]; 19 + 20 + meta = with lib; { 21 + homepage = "https://github.com/YukiWorkshop/IODash"; 22 + description = "Lightweight C++ I/O library for POSIX operation systems"; 23 + license = licenses.mit; 24 + maintainers = with maintainers; [ jappie ]; 25 + platforms = with platforms; linux; 26 + }; 27 + }
+3 -1
pkgs/development/libraries/libconfig/default.nix
··· 11 11 12 12 doCheck = true; 13 13 14 + configureFlags = lib.optional stdenv.targetPlatform.isWindows "--disable-examples"; 15 + 14 16 meta = with lib; { 15 17 homepage = "http://www.hyperrealm.com/libconfig"; 16 18 description = "A simple library for processing structured configuration files"; 17 19 license = licenses.lgpl3; 18 20 maintainers = [ maintainers.goibhniu ]; 19 - platforms = platforms.linux ++ platforms.darwin; 21 + platforms = with platforms; linux ++ darwin ++ windows; 20 22 }; 21 23 }
+41
pkgs/development/libraries/libevdevplus/0001-Add-cmake-install-directives.patch
··· 1 + From 7f208aaf21aa468013fc41e67c32f6a6c8c08249 Mon Sep 17 00:00:00 2001 2 + From: Jappie Klooster <jappieklooster@hotmail.com> 3 + Date: Fri, 2 Apr 2021 16:01:05 -0400 4 + Subject: [PATCH] Add cmake install directives 5 + 6 + To make nix builds work, it expect a make install command to 7 + be available. 8 + Adding these directives seems to fix the build. 9 + 10 + If it's no trouble to you, please add them. 11 + --- 12 + CMakeLists.txt | 9 ++++++++- 13 + 1 file changed, 8 insertions(+), 1 deletion(-) 14 + 15 + diff --git a/CMakeLists.txt b/CMakeLists.txt 16 + index f9db618..425d391 100644 17 + --- a/CMakeLists.txt 18 + +++ b/CMakeLists.txt 19 + @@ -4,10 +4,17 @@ project(libevdevPlus) 20 + set(SOURCE_FILES 21 + evdevPlus.cpp evdevPlus.hpp CommonIncludes.hpp InputEvent.hpp Resource.cpp) 22 + 23 + +include(GNUInstallDirs) 24 + + 25 + add_library(evdevPlus ${SOURCE_FILES}) 26 + target_include_directories(evdevPlus PUBLIC .) 27 + 28 + add_executable(evdevPlus_test test.cpp) 29 + target_link_libraries(evdevPlus_test evdevPlus) 30 + 31 + -configure_file(evdevPlus.pc.in evdevPlus.pc @ONLY) 32 + \ No newline at end of file 33 + +configure_file(evdevPlus.pc.in evdevPlus.pc @ONLY) 34 + + 35 + +install(TARGETS evdevPlus 36 + + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 37 + +install(FILES evdevPlus.hpp CommonIncludes.hpp InputEvent.hpp 38 + + DESTINATION include/) 39 + -- 40 + 2.29.2 41 +
+7 -3
pkgs/development/libraries/libevdevplus/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "libevdevplus"; 5 - version = "unstable-2019-10-01"; 5 + version = "unstable-2021-04-02"; 6 + 7 + # adds missing cmake install directives 8 + # https://github.com/YukiWorkshop/libevdevPlus/pull/10 9 + patches = [ ./0001-Add-cmake-install-directives.patch]; 6 10 7 11 src = fetchFromGitHub { 8 12 owner = "YukiWorkshop"; 9 13 repo = "libevdevPlus"; 10 - rev = "e863df2ade43e2c7d7748cc33ca27fb3eed325ca"; 11 - sha256 = "18z6pn4j7fhmwwh0q22ip5nn7sc1hfgwvkdzqhkja60i8cw2cvvj"; 14 + rev = "b4d4b3143056424a3da9f0516ca02a47209ef757"; 15 + sha256 = "09y65s16gch0w7fy1s9yjk9gz3bjzxix36h5wmwww6lkj2i1z3rj"; 12 16 }; 13 17 14 18 nativeBuildInputs = [ cmake pkg-config ];
+40
pkgs/development/libraries/libuinputplus/0001-Add-cmake-install-directives.patch
··· 1 + From 265e406e254c8d84016b12b344d8df71d1765dd1 Mon Sep 17 00:00:00 2001 2 + From: Jappie Klooster <jappieklooster@hotmail.com> 3 + Date: Fri, 2 Apr 2021 16:33:18 -0400 4 + Subject: [PATCH] Add cmake install directives 5 + 6 + To make nix builds work, it expect a make install command to 7 + be available. 8 + Adding these directives seems to fix the build. 9 + 10 + If it's no trouble to you, please consider adding them. 11 + --- 12 + CMakeLists.txt | 8 ++++++++ 13 + 1 file changed, 8 insertions(+) 14 + 15 + diff --git a/CMakeLists.txt b/CMakeLists.txt 16 + index cbfc9c1..948c432 100644 17 + --- a/CMakeLists.txt 18 + +++ b/CMakeLists.txt 19 + @@ -7,6 +7,8 @@ set(SOURCE_FILES 20 + uInput.cpp uInputSetup.cpp uInputResource.cpp 21 + uInput.hpp CommonIncludes.hpp uInputSetup.hpp) 22 + 23 + +include(GNUInstallDirs) 24 + + 25 + add_library(uInputPlus ${SOURCE_FILES}) 26 + target_include_directories(uInputPlus PUBLIC .) 27 + 28 + @@ -15,3 +17,9 @@ target_link_libraries(uInputPlus_test uInputPlus) 29 + 30 + configure_file(uInputPlus.pc.in uInputPlus.pc @ONLY) 31 + 32 + + 33 + +install(TARGETS uInputPlus 34 + + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 35 + +install(FILES uInput.hpp CommonIncludes.hpp uInputSetup.hpp 36 + + DESTINATION include/) 37 + + 38 + -- 39 + 2.29.2 40 +
+7 -4
pkgs/development/libraries/libuinputplus/default.nix
··· 1 1 { lib, stdenv, fetchFromGitHub, cmake, pkg-config }: 2 - 3 2 stdenv.mkDerivation rec { 4 3 pname = "libuinputplus"; 5 - version = "2019-10-01"; 4 + version = "2021-04-02"; 5 + 6 + # adds missing cmake install directives 7 + # https://github.com/YukiWorkshop/libuInputPlus/pull/7 8 + patches = [ ./0001-Add-cmake-install-directives.patch]; 6 9 7 10 src = fetchFromGitHub { 8 11 owner = "YukiWorkshop"; 9 12 repo = "libuInputPlus"; 10 - rev = "962f180b4cc670e1f5cc73c2e4d5d196ae52d630"; 11 - sha256 = "0jy5i7bmjad7hw1qcyjl4swqribp2027s9g3609zwj7lj8z5x0bg"; 13 + rev = "f7f18eb339bba61a43f2cad481a9b1a453a66957"; 14 + sha256 = "0sind2ghhy4h9kfkr5hsmhcq0di4ifwqyv4gac96rgj5mwvs33lp"; 12 15 }; 13 16 14 17 nativeBuildInputs = [ cmake pkg-config ];
+4 -4
pkgs/development/libraries/simgear/default.nix
··· 1 1 { lib, stdenv, fetchurl, plib, freeglut, xorgproto, libX11, libXext, libXi 2 2 , libICE, libSM, libXt, libXmu, libGLU, libGL, boost, zlib, libjpeg, freealut 3 - , openscenegraph, openal, expat, cmake, apr 3 + , openscenegraph, openal, expat, cmake, apr, xz 4 4 , curl 5 5 }: 6 6 let 7 - version = "2020.3.6"; 7 + version = "2020.3.8"; 8 8 shortVersion = builtins.substring 0 6 version; 9 9 in 10 10 stdenv.mkDerivation rec { ··· 13 13 14 14 src = fetchurl { 15 15 url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2"; 16 - sha256 = "sha256-7D7KRNIffgUr6vwbni1XwW+8GtXwM6vJZ7V6/QLDVmk="; 16 + sha256 = "sha256-UXcWV9MPu7c+QlFjrhxtQ6ruAcxuKtewwphu4tt5dWc="; 17 17 }; 18 18 19 19 nativeBuildInputs = [ cmake ]; 20 20 buildInputs = [ plib freeglut xorgproto libX11 libXext libXi 21 21 libICE libSM libXt libXmu libGLU libGL boost zlib libjpeg freealut 22 - openscenegraph openal expat apr curl ]; 22 + openscenegraph openal expat apr curl xz ]; 23 23 24 24 meta = with lib; { 25 25 description = "Simulation construction toolkit";
+19 -35
pkgs/development/ocaml-modules/labltk/default.nix
··· 1 - { stdenv, lib, fetchurl, fetchzip, ocaml, findlib, tcl, tk }: 2 - 3 - let OCamlVersionAtLeast = lib.versionAtLeast ocaml.version; in 4 - 5 - if !OCamlVersionAtLeast "4.04" 6 - then throw "labltk is not available for OCaml ${ocaml.version}" 7 - else 1 + { stdenv, lib, makeWrapper, fetchzip, ocaml, findlib, tcl, tk }: 8 2 9 - let param = 10 - let mkNewParam = { version, sha256 }: { 3 + let 4 + params = 5 + let mkNewParam = { version, sha256, rev ? version }: { 11 6 inherit version; 12 7 src = fetchzip { 13 - url = "https://github.com/garrigue/labltk/archive/${version}.tar.gz"; 8 + url = "https://github.com/garrigue/labltk/archive/${rev}.tar.gz"; 14 9 inherit sha256; 15 10 }; 16 11 }; in 17 - let mkOldParam = { version, key, sha256 }: { 18 - src = fetchurl { 19 - url = "https://forge.ocamlcore.org/frs/download.php/${key}/labltk-${version}.tar.gz"; 20 - inherit sha256; 21 - }; 22 - inherit version; 23 - }; in 24 12 rec { 25 - "4.04" = mkOldParam { 26 - version = "8.06.2"; 27 - key = "1628"; 28 - sha256 = "1p97j9s33axkb4yyl0byhmhlyczqarb886ajpyggizy2br3a0bmk"; 29 - }; 30 - "4.05" = mkOldParam { 31 - version = "8.06.3"; 32 - key = "1701"; 33 - sha256 = "1rka9jpg3kxqn7dmgfsa7pmsdwm16x7cn4sh15ijyyrad9phgdxn"; 34 - }; 35 - "4.06" = mkOldParam { 13 + "4.06" = mkNewParam { 36 14 version = "8.06.4"; 37 - key = "1727"; 38 - sha256 = "0j3rz0zz4r993wa3ssnk5s416b1jhj58l6z2jk8238a86y7xqcii"; 15 + rev = "labltk-8.06.4"; 16 + sha256 = "03xwnnnahb2rf4siymzqyqy8zgrx3h26qxjgbp5dh1wdl7n02c7g"; 39 17 }; 40 - "4.07" = mkOldParam { 18 + "4.07" = mkNewParam { 41 19 version = "8.06.5"; 42 - key = "1764"; 43 - sha256 = "0wgx65y1wkgf22ihpqmspqfp95fqbj3pldhp1p3b1mi8rmc37zwj"; 20 + rev = "1b71e2c6f3ae6847d3d5e79bf099deb7330fb419"; 21 + sha256 = "02vchmrm3izrk7daldd22harhgrjhmbw6i1pqw6hmfmrmrypypg2"; 44 22 }; 45 23 _8_06_7 = mkNewParam { 46 24 version = "8.06.7"; ··· 60 38 version = "8.06.10"; 61 39 sha256 = "06cck7wijq4zdshzhxm6jyl8k3j0zglj2axsyfk6q1sq754zyf4a"; 62 40 }; 63 - }.${builtins.substring 0 4 ocaml.version}; 41 + }; 42 + param = params . ${lib.versions.majorMinor ocaml.version} 43 + or (throw "labltk is not available for OCaml ${ocaml.version}"); 64 44 in 65 45 66 46 stdenv.mkDerivation rec { 67 47 inherit (param) version src; 68 48 name = "ocaml${ocaml.version}-labltk-${version}"; 69 49 70 - buildInputs = [ ocaml findlib tcl tk ]; 50 + buildInputs = [ ocaml findlib tcl tk makeWrapper ]; 71 51 72 52 configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ]; 73 53 dontAddPrefix = true; ··· 79 59 postInstall = '' 80 60 mkdir -p $OCAMLFIND_DESTDIR/stublibs 81 61 mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/ 62 + for p in $out/bin/* 63 + do 64 + wrapProgram $p --set CAML_LD_LIBRARY_PATH $OCAMLFIND_DESTDIR/stublibs 65 + done 82 66 ''; 83 67 84 68 meta = {
+35
pkgs/development/python-modules/hachoir/default.nix
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchFromGitHub 4 + , pytestCheckHook 5 + , urwid 6 + }: 7 + 8 + buildPythonPackage rec { 9 + pname = "hachoir"; 10 + version = "3.1.2"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "vstinner"; 14 + repo = pname; 15 + rev = version; 16 + sha256 = "06544qmmimvaznwcjs8wwfih1frdd7anwcw5z07cf69l8p146p0y"; 17 + }; 18 + 19 + propagatedBuildInputs = [ 20 + urwid 21 + ]; 22 + 23 + checkInputs = [ 24 + pytestCheckHook 25 + ]; 26 + 27 + pythonImportsCheck = [ "hachoir" ]; 28 + 29 + meta = with lib; { 30 + description = "Python library to view and edit a binary stream"; 31 + homepage = "https://hachoir.readthedocs.io/"; 32 + license = with licenses; [ gpl2Only ]; 33 + maintainers = with maintainers; [ fab ]; 34 + }; 35 + }
+1 -1
pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
··· 19 19 meta = with lib; { 20 20 homepage = "https://github.com/jellyfin/jellyfin-apiclient-python"; 21 21 description = "Python API client for Jellyfin"; 22 - license = licenses.gpl3; 22 + license = licenses.gpl3Only; 23 23 maintainers = with maintainers; [ jojosch ]; 24 24 }; 25 25 }
+1 -1
pkgs/development/python-modules/pystray/default.nix
··· 25 25 meta = with lib; { 26 26 homepage = "https://github.com/moses-palmer/pystray"; 27 27 description = "This library allows you to create a system tray icon"; 28 - license = with licenses; [ gpl3Only lgpl3Only ]; 28 + license = with licenses; [ gpl3Plus lgpl3Plus ]; 29 29 platforms = platforms.linux; 30 30 maintainers = with maintainers; [ jojosch ]; 31 31 };
+2 -2
pkgs/development/python-modules/pytube/default.nix
··· 7 7 8 8 buildPythonPackage rec { 9 9 pname = "pytube"; 10 - version = "10.7.1"; 10 + version = "10.7.2"; 11 11 12 12 disabled = pythonOlder "3.6"; 13 13 ··· 15 15 owner = "pytube"; 16 16 repo = "pytube"; 17 17 rev = "v${version}"; 18 - sha256 = "sha256-a9MYEQFJXfPXYkWiuZkjt/PGs73Dm5614/Xvv6Nn8RA="; 18 + sha256 = "sha256-85pHzfQYyqwX8mQ5msIojM/0FSfeaC12KJw4mXmji3g="; 19 19 }; 20 20 21 21 checkInputs = [
+26 -25
pkgs/development/tools/analysis/radare2/default.nix
··· 1 1 { lib 2 + , fetchpatch 2 3 , stdenv 3 4 , fetchFromGitHub 4 5 , buildPackages ··· 19 20 , python3 20 21 , ruby 21 22 , lua 23 + , capstone 22 24 , useX11 ? false 23 25 , rubyBindings ? false 24 26 , pythonBindings ? false ··· 30 32 31 33 #<generated> 32 34 # DO NOT EDIT! Automatically generated by ./update.py 33 - gittap = "5.1.1"; 34 - gittip = "a86f8077fc148abd6443384362a3717cd4310e64"; 35 - rev = "5.1.1"; 36 - version = "5.1.1"; 37 - sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3"; 38 - cs_ver = "4.0.2"; 39 - cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w"; 35 + gittap = "5.2.0"; 36 + gittip = "cf3db945083fb4dab951874e5ec1283128deab11"; 37 + rev = "5.2.0"; 38 + version = "5.2.0"; 39 + sha256 = "08azxfk6mw2vr0x4zbz0612rk7pj4mfz8shrzc9ima77wb52b8sm"; 40 40 #</generated> 41 41 in 42 42 stdenv.mkDerivation { ··· 49 49 inherit rev sha256; 50 50 }; 51 51 52 - postPatch = 53 - let 54 - capstone = fetchFromGitHub { 55 - owner = "aquynh"; 56 - repo = "capstone"; 57 - # version from $sourceRoot/shlr/Makefile 58 - rev = cs_ver; 59 - sha256 = cs_sha256; 60 - }; 61 - in 62 - '' 63 - mkdir -p build/shlr 64 - cp -r ${capstone} capstone-${cs_ver} 65 - chmod -R +w capstone-${cs_ver} 66 - tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver} 67 - ''; 52 + patches = [ 53 + # fix build against openssl, included in next release 54 + (fetchpatch { 55 + url = "https://github.com/radareorg/radare2/commit/e5e7469b6450c374e0884d35d44824e1a4eb46b4.patch"; 56 + sha256 = "sha256-xTmMHvUdW7d2QG7d4hlvMgEcegND7pGU745TWGqzY44="; 57 + }) 58 + ]; 68 59 69 60 postInstall = '' 70 61 install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm ··· 80 71 "--with-sysmagic" 81 72 "--with-syszip" 82 73 "--with-sysxxhash" 74 + "--with-syscapstone" 83 75 "--with-openssl" 84 76 ]; 85 77 ··· 87 79 depsBuildBuild = [ buildPackages.stdenv.cc ]; 88 80 89 81 nativeBuildInputs = [ pkg-config ]; 90 - buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ] 91 - ++ optional useX11 [ gtkdialog vte gtk2 ] 82 + buildInputs = [ 83 + capstone 84 + file 85 + readline 86 + libusb-compat-0_1 87 + libewf 88 + perl 89 + zlib 90 + openssl 91 + libuv 92 + ] ++ optional useX11 [ gtkdialog vte gtk2 ] 92 93 ++ optional rubyBindings [ ruby ] 93 94 ++ optional pythonBindings [ python3 ] 94 95 ++ optional luaBindings [ lua ];
-14
pkgs/development/tools/analysis/radare2/update.py
··· 55 55 def get_repo_info(dirname: str, rev: str) -> Dict[str, str]: 56 56 sha256 = prefetch_github("radare", "radare2", rev) 57 57 58 - cs_ver = None 59 - with open(Path(dirname).joinpath("shlr", "Makefile")) as makefile: 60 - for l in makefile: 61 - match = re.match("CS_VER=(\S+)", l) 62 - if match: 63 - cs_ver = match.group(1) 64 - assert cs_ver is not None 65 - 66 - cs_sha256 = prefetch_github("aquynh", "capstone", cs_ver) 67 - 68 58 return dict( 69 59 rev=rev, 70 60 sha256=sha256, 71 61 version_commit=git(dirname, "rev-list", "--all", "--count"), 72 62 gittap=git(dirname, "describe", "--tags", "--match", "[0-9]*"), 73 63 gittip=git(dirname, "rev-parse", "HEAD"), 74 - cs_ver=cs_ver, 75 - cs_sha256=cs_sha256, 76 64 ) 77 65 78 66 ··· 107 95 rev = "{info["rev"]}"; 108 96 version = "{version}"; 109 97 sha256 = "{info["sha256"]}"; 110 - cs_ver = "{info["cs_ver"]}"; 111 - cs_sha256 = "{info["cs_sha256"]}"; 112 98 #</generated>""" 113 99 ) 114 100 elif "#</generated>" in l:
+3 -3
pkgs/development/tools/analysis/tflint/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "tflint"; 5 - version = "0.26.0"; 5 + version = "0.27.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "terraform-linters"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "054g0lr0r1xzbss4b4j9ixkls9p1llmw61afib1381z4k0lvzgwn"; 11 + sha256 = "1s49a3yihfkd8ib336a29ch53mpcyxzicglss7bqmqapv6zi37dg"; 12 12 }; 13 13 14 - vendorSha256 = "0j2avkhyq6vz6113lkf004d4hysygc6iw78v70z98s6m15mg9imn"; 14 + vendorSha256 = "1w72n1sprwylaj96aj03h4qq43525q15iwb6vf23gf6913zhvqy3"; 15 15 16 16 doCheck = false; 17 17
+21 -8
pkgs/development/tools/build-managers/remake/default.nix
··· 1 - { lib, stdenv, fetchurl, readline }: 1 + { lib 2 + , stdenv 3 + , fetchurl 4 + , pkg-config 5 + , readline 6 + , guileSupport ? false 7 + , guile 8 + }: 2 9 3 10 stdenv.mkDerivation rec { 4 11 pname = "remake"; 5 - remakeVersion = "4.1"; 6 - dbgVersion = "1.1"; 12 + remakeVersion = "4.3"; 13 + dbgVersion = "1.5"; 7 14 version = "${remakeVersion}+dbg-${dbgVersion}"; 8 15 9 16 src = fetchurl { 10 - url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg${dbgVersion}.tar.bz2"; 11 - sha256 = "1zi16pl7sqn1aa8b7zqm9qnd9vjqyfywqm8s6iap4clf86l7kss2"; 17 + url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg-${dbgVersion}.tar.gz"; 18 + sha256 = "0xlx2485y0israv2pfghmv74lxcv9i5y65agy69mif76yc4vfvif"; 12 19 }; 13 20 14 21 patches = [ 15 22 ./glibc-2.27-glob.patch 16 23 ]; 17 24 18 - buildInputs = [ readline ]; 25 + nativeBuildInputs = [ 26 + pkg-config 27 + ]; 28 + buildInputs = [ readline ] 29 + ++ lib.optionals guileSupport [ guile ]; 30 + 31 + # make check fails, see https://github.com/rocky/remake/issues/117 19 32 20 33 meta = { 21 34 homepage = "http://bashdb.sourceforge.net/remake/"; 22 - license = lib.licenses.gpl3; 35 + license = lib.licenses.gpl3Plus; 23 36 description = "GNU Make with comprehensible tracing and a debugger"; 24 37 platforms = with lib.platforms; linux ++ darwin; 25 - maintainers = with lib.maintainers; [ bjornfor ]; 38 + maintainers = with lib.maintainers; [ bjornfor shamilton ]; 26 39 }; 27 40 }
+4 -4
pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
··· 1 1 { lib, buildGoPackage, fetchFromGitLab, fetchurl }: 2 2 3 3 let 4 - version = "13.10.0"; 4 + version = "13.11.0"; 5 5 # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64 6 6 docker_x86_64 = fetchurl { 7 7 url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz"; 8 - sha256 = "0lw087xcbzf4d68mq0h0s31na7lww2d9nv43icw9qx05aknlcddv"; 8 + sha256 = "1vmj7vxz1a4js9kqz7mm6xgnkmb37c1jbx2lwsq2qkrybkxfcw8k"; 9 9 }; 10 10 11 11 docker_arm = fetchurl { 12 12 url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz"; 13 - sha256 = "1mf3w85ivc8r2rmb78r4b87rrxmbb1zda9pp8n4nvd0igg23xqk8"; 13 + sha256 = "1c1pywz7ylaysplvq1m15v7rf1sgdkh9scbqklzcm55fjk128lif"; 14 14 }; 15 15 in 16 16 buildGoPackage rec { ··· 30 30 owner = "gitlab-org"; 31 31 repo = "gitlab-runner"; 32 32 rev = "v${version}"; 33 - sha256 = "0xy5mpcpxcmwfdrspd29z8nyn1m9i4ma7d5kbihwa2yxznylydpx"; 33 + sha256 = "07jqsxac50xwmhlv0nbnn098290nkpsmrxw872yh67n1s9gqfd27"; 34 34 }; 35 35 36 36 patches = [ ./fix-shell-path.patch ];
+1 -1
pkgs/development/tools/continuous-integration/laminar/default.nix
··· 58 58 meta = with lib; { 59 59 description = "Lightweight and modular continuous integration service"; 60 60 homepage = "https://laminar.ohwg.net"; 61 - license = licenses.gpl3; 61 + license = licenses.gpl3Plus; 62 62 platforms = platforms.linux; 63 63 maintainers = with maintainers; [ kaction maralorn ]; 64 64 };
+22
pkgs/development/tools/jql/default.nix
··· 1 + { lib, fetchFromGitHub, rustPlatform }: 2 + 3 + rustPlatform.buildRustPackage rec { 4 + pname = "jql"; 5 + version = "2.9.4"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "yamafaktory"; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "1rwnmp2rnzwc7anmk7nr8l4ncza8s1f8sn0r2la4ai2sx1iqn06h"; 12 + }; 13 + 14 + cargoSha256 = "1c83mmdxci7l3c6ja5fhk4cak1gcbg0r0nlpbpims5gi16nf99r3"; 15 + 16 + meta = with lib; { 17 + description = "A JSON Query Language CLI tool built with Rust"; 18 + homepage = "https://github.com/yamafaktory/jql"; 19 + license = with licenses; [ mit ]; 20 + maintainers = with maintainers; [ akshgpt7 ]; 21 + }; 22 + }
+5 -1
pkgs/development/tools/ocaml/ocamlformat/default.nix
··· 52 52 version = "0.17.0"; 53 53 }; 54 54 55 - ocamlformat = ocamlformat_0_17_0; 55 + ocamlformat_0_18_0 = mkOCamlformat { 56 + version = "0.18.0"; 57 + }; 58 + 59 + ocamlformat = ocamlformat_0_18_0; 56 60 }
+22 -6
pkgs/development/tools/ocaml/ocamlformat/generic.nix
··· 21 21 "0.15.1" = "1x6fha495sgk4z05g0p0q3zfqm5l6xzmf6vjm9g9g7c820ym2q9a"; 22 22 "0.16.0" = "1vwjvvwha0ljc014v8jp8snki5zsqxlwd7x0dl0rg2i9kcmwc4mr"; 23 23 "0.17.0" = "0f1lxp697yq61z8gqxjjaqd2ns8fd1vjfggn55x0gh9dx098p138"; 24 + "0.18.0" = "0571kzmb1h03qj74090n3mg8wfbh29qqrkdjkai6rnl5chll86lq"; 24 25 }."${version}"; 25 - } 26 - ; in 27 - 28 - let ocamlPackages = 26 + }; 27 + ocamlPackages = 29 28 if lib.versionAtLeast version "0.14.3" 30 29 then ocaml-ng.ocamlPackages 31 30 else ocaml-ng.ocamlPackages_4_07 ··· 33 32 34 33 with ocamlPackages; 35 34 36 - buildDunePackage rec { 35 + buildDunePackage { 37 36 pname = "ocamlformat"; 38 37 inherit src version; 39 38 ··· 45 44 useDune2 = true; 46 45 47 46 buildInputs = 48 - if lib.versionAtLeast version "0.17.0" 47 + if lib.versionAtLeast version "0.18.0" 48 + then [ 49 + base 50 + cmdliner 51 + fpath 52 + odoc 53 + re 54 + stdio 55 + uuseg 56 + uutf 57 + fix 58 + menhir 59 + dune-build-info 60 + ocaml-version 61 + # Changed since 0.16.0: 62 + (ppxlib.override { version = "0.22.0"; }) 63 + ] 64 + else if lib.versionAtLeast version "0.17.0" 49 65 then [ 50 66 base 51 67 cmdliner
+3 -3
pkgs/development/web/deno/default.nix
··· 15 15 16 16 rustPlatform.buildRustPackage rec { 17 17 pname = "deno"; 18 - version = "1.9.0"; 18 + version = "1.9.1"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "denoland"; 22 22 repo = pname; 23 23 rev = "v${version}"; 24 - sha256 = "sha256-LrJGwsP+P8zXYwboF5791YuWGVdhcQJLOoBv+VzrYzs="; 24 + sha256 = "sha256-h8dXGSu7DebzwZdc92A2d9xlYy6wD34phBUj5v5KuIc="; 25 25 }; 26 - cargoSha256 = "sha256-JDapls3nRNETri6nZPRjZFlAFVN1Owhp965zf0Rn3ug="; 26 + cargoSha256 = "sha256-htxpaALOXFQpQ68YE4b0T0jhcCIONgUZwpMPCcSdcgs="; 27 27 28 28 # Install completions post-install 29 29 nativeBuildInputs = [ installShellFiles ];
+13
pkgs/development/web/nodejs/v16.nix
··· 1 + { callPackage, openssl, python3, enableNpm ? true }: 2 + 3 + let 4 + buildNodejs = callPackage ./nodejs.nix { 5 + inherit openssl; 6 + python = python3; 7 + }; 8 + in 9 + buildNodejs { 10 + inherit enableNpm; 11 + version = "16.0.0"; 12 + sha256 = "00mada0vvybizygwhzsq6gcz0m2k864lfiiqqlnw8gcc3q8r1js7"; 13 + }
+4 -4
pkgs/games/flightgear/default.nix
··· 6 6 }: 7 7 8 8 let 9 - version = "2020.3.4"; 9 + version = "2020.3.8"; 10 10 shortVersion = builtins.substring 0 6 version; 11 11 data = stdenv.mkDerivation rec { 12 12 pname = "flightgear-data"; 13 13 inherit version; 14 14 15 15 src = fetchurl { 16 - url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2"; 17 - sha256 = "1cqikbqvidfaynml9bhqfr9yw5ga35gpqrbz62z94a1skdijkpkg"; 16 + url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.txz"; 17 + sha256 = "sha256-/KFumHRkmRvsU/L1i11jG/KbqobnOEP7l4lyPMKHycA="; 18 18 }; 19 19 20 20 phases = [ "installPhase" ]; ··· 32 32 33 33 src = fetchurl { 34 34 url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2"; 35 - sha256 = "02d9h10p8hyn0a25csragj6pbwmrir1z8zb92023s9vi21j7bwy8"; 35 + sha256 = "XXDqhZ9nR+FwQ3LauZe8iGxOjlyDXDrEtj61BQGVDYc="; 36 36 }; 37 37 38 38 # Of all the files in the source and data archives, there doesn't seem to be
+61
pkgs/misc/openrussian-cli/default.nix
··· 1 + { stdenv, lib, fetchFromGitHub, gnumake, pkg-config, wget, unzip, gawk 2 + , sqlite, which, luaPackages, installShellFiles, makeWrapper 3 + }: 4 + stdenv.mkDerivation rec { 5 + pname = "openrussian-cli"; 6 + version = "1.0.0"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "rhaberkorn"; 10 + repo = "openrussian-cli"; 11 + rev = version; 12 + sha256 = "1ria7s7dpqip2wdwn35wmkry84g8ghdqnxc9cbxzzq63vl6pgvcn"; 13 + }; 14 + 15 + nativeBuildInputs = [ 16 + gnumake pkg-config wget unzip gawk sqlite which installShellFiles makeWrapper 17 + ]; 18 + 19 + buildInputs = with luaPackages; [ lua luasql-sqlite3 luautf8 ]; 20 + 21 + makeFlags = [ 22 + "LUA=${luaPackages.lua}/bin/lua" 23 + "LUAC=${luaPackages.lua}/bin/luac" 24 + ]; 25 + 26 + dontConfigure = true; 27 + 28 + # Disable check as it's too slow. 29 + # doCheck = true; 30 + 31 + #This is needed even though it's the default for some reason. 32 + checkTarget = "check"; 33 + 34 + # Can't use "make install" here 35 + installPhase = '' 36 + runHook preInstall 37 + 38 + mkdir -p $out/bin $out/share/openrussian 39 + cp openrussian-sqlite3.db $out/share/openrussian 40 + cp openrussian $out/bin 41 + 42 + wrapProgram $out/bin/openrussian \ 43 + --prefix LUA_PATH ';' "$LUA_PATH" \ 44 + --prefix LUA_CPATH ';' "$LUA_CPATH" 45 + 46 + runHook postInstall 47 + ''; 48 + 49 + postInstall = '' 50 + installShellCompletion --cmd openrussian --bash ./openrussian-completion.bash 51 + installManPage ./openrussian.1 52 + ''; 53 + 54 + meta = with lib; { 55 + homepage = "https://github.com/rhaberkorn/openrussian-cli"; 56 + description = "Offline Console Russian Dictionary (based on openrussian.org)"; 57 + license = with licenses; [ gpl3Only mit cc-by-sa-40 ]; 58 + maintainers = with maintainers; [ zane ]; 59 + platforms = platforms.unix; 60 + }; 61 + }
+48 -111
pkgs/misc/vim-plugins/vim-utils.nix
··· 1 - { lib, stdenv, vim, vimPlugins, vim_configurable, neovim, buildEnv, writeText, writeScriptBin 1 + # tests available at pkgs/test/vim 2 + { lib, stdenv, vim, vimPlugins, vim_configurable, buildEnv, writeText, writeScriptBin 2 3 , nix-prefetch-hg, nix-prefetch-git 3 4 , fetchFromGitHub, runtimeShell 4 5 }: ··· 183 184 184 185 rtpPath = "share/vim-plugins"; 185 186 187 + nativeImpl = packages: lib.optionalString (packages != null) 188 + (let 189 + link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}"); 190 + packageLinks = (packageName: {start ? [], opt ? []}: 191 + let 192 + # `nativeImpl` expects packages to be derivations, not strings (as 193 + # opposed to older implementations that have to maintain backwards 194 + # compatibility). Therefore we don't need to deal with "knownPlugins" 195 + # and can simply pass `null`. 196 + depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt); 197 + startWithDeps = findDependenciesRecursively start; 198 + in 199 + [ "mkdir -p $out/pack/${packageName}/start" ] 200 + # To avoid confusion, even dependencies of optional plugins are added 201 + # to `start` (except if they are explicitly listed as optional plugins). 202 + ++ (builtins.map (link packageName "start") (lib.unique (startWithDeps ++ depsOfOptionalPlugins))) 203 + ++ ["mkdir -p $out/pack/${packageName}/opt"] 204 + ++ (builtins.map (link packageName "opt") opt) 205 + ); 206 + packDir = (packages: 207 + stdenv.mkDerivation { 208 + name = "vim-pack-dir"; 209 + src = ./.; 210 + installPhase = lib.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList packageLinks packages)); 211 + preferLocalBuild = true; 212 + } 213 + ); 214 + in 215 + '' 216 + set packpath^=${packDir packages} 217 + set runtimepath^=${packDir packages} 218 + ''); 219 + 186 220 vimrcContent = { 187 221 packages ? null, 188 222 vam ? null, 189 223 pathogen ? null, 190 224 plug ? null, 191 - beforePlugins ? "", 192 - customRC ? "" 225 + beforePlugins ? '' 226 + " configuration generated by NIX 227 + set nocompatible 228 + '', 229 + customRC ? null 193 230 }: 194 231 195 232 let ··· 301 338 call vam#Scripts(l, {}) 302 339 ''); 303 340 304 - nativeImpl = lib.optionalString (packages != null) 305 - (let 306 - link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}"); 307 - packageLinks = (packageName: {start ? [], opt ? []}: 308 - let 309 - # `nativeImpl` expects packages to be derivations, not strings (as 310 - # opposed to older implementations that have to maintain backwards 311 - # compatibility). Therefore we don't need to deal with "knownPlugins" 312 - # and can simply pass `null`. 313 - depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt); 314 - startWithDeps = findDependenciesRecursively start; 315 - in 316 - ["mkdir -p $out/pack/${packageName}/start"] 317 - # To avoid confusion, even dependencies of optional plugins are added 318 - # to `start` (except if they are explicitly listed as optional plugins). 319 - ++ (builtins.map (link packageName "start") (lib.unique (startWithDeps ++ depsOfOptionalPlugins))) 320 - ++ ["mkdir -p $out/pack/${packageName}/opt"] 321 - ++ (builtins.map (link packageName "opt") opt) 322 - ); 323 - packDir = (packages: 324 - stdenv.mkDerivation { 325 - name = "vim-pack-dir"; 326 - src = ./.; 327 - installPhase = lib.concatStringsSep 328 - "\n" 329 - (lib.flatten (lib.mapAttrsToList packageLinks packages)); 330 - preferLocalBuild = true; 331 - } 332 - ); 333 - in 334 - '' 335 - set packpath^=${packDir packages} 336 - set runtimepath^=${packDir packages} 337 - 338 - filetype indent plugin on | syn on 339 - ''); 341 + entries = [ 342 + beforePlugins 343 + vamImpl pathogenImpl plugImpl 344 + (nativeImpl packages) 345 + customRC 346 + ]; 340 347 341 - in '' 342 - " configuration generated by NIX 343 - set nocompatible 348 + in 349 + lib.concatStringsSep "\n" (lib.filter (x: x != null && x != "") entries); 344 350 345 - ${beforePlugins} 346 - 347 - ${vamImpl} 348 - ${pathogenImpl} 349 - ${plugImpl} 350 - ${nativeImpl} 351 - 352 - ${customRC} 353 - ''; 354 351 vimrcFile = settings: writeText "vimrc" (vimrcContent settings); 355 352 356 353 in ··· 448 445 ''; 449 446 }; 450 447 451 - vim_with_vim2nix = vim_configurable.customize { name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ]; }; 452 - 453 448 inherit (import ./build-vim-plugin.nix { inherit lib stdenv rtpPath vim; }) buildVimPlugin buildVimPluginFrom2Nix; 454 449 455 450 # used to figure out which python dependencies etc. neovim needs ··· 475 470 nativePlugins = lib.concatMap ({start?[], opt?[], knownPlugins?vimPlugins}: start++opt) nativePluginsConfigs; 476 471 in 477 472 nativePlugins ++ nonNativePlugins; 478 - 479 - 480 - # test cases: 481 - test_vim_with_vim_nix_using_vam = vim_configurable.customize { 482 - name = "vim-with-vim-addon-nix-using-vam"; 483 - vimrcConfig.vam.pluginDictionaries = [{name = "vim-nix"; }]; 484 - }; 485 - 486 - test_vim_with_vim_nix_using_pathogen = vim_configurable.customize { 487 - name = "vim-with-vim-addon-nix-using-pathogen"; 488 - vimrcConfig.pathogen.pluginNames = [ "vim-nix" ]; 489 - }; 490 - 491 - test_vim_with_vim_nix_using_plug = vim_configurable.customize { 492 - name = "vim-with-vim-addon-nix-using-plug"; 493 - vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ]; 494 - }; 495 - 496 - test_vim_with_vim_nix = vim_configurable.customize { 497 - name = "vim-with-vim-addon-nix"; 498 - vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ]; 499 - }; 500 - 501 - # only neovim makes use of `requiredPlugins`, test this here 502 - test_nvim_with_vim_nix_using_pathogen = neovim.override { 503 - configure.pathogen.pluginNames = [ "vim-nix" ]; 504 - }; 505 - 506 - # regression test for https://github.com/NixOS/nixpkgs/issues/53112 507 - # The user may have specified their own plugins which may not be formatted 508 - # exactly as the generated ones. In particular, they may not have the `pname` 509 - # attribute. 510 - test_vim_with_custom_plugin = vim_configurable.customize { 511 - name = "vim_with_custom_plugin"; 512 - vimrcConfig.vam.knownPlugins = 513 - vimPlugins // ({ 514 - vim-trailing-whitespace = buildVimPluginFrom2Nix { 515 - name = "vim-trailing-whitespace"; 516 - src = fetchFromGitHub { 517 - owner = "bronson"; 518 - repo = "vim-trailing-whitespace"; 519 - rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6"; 520 - sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9"; 521 - }; 522 - # make sure string dependencies are handled 523 - dependencies = [ "vim-nix" ]; 524 - }; 525 - }); 526 - vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ]; 527 - }; 528 - 529 - # system remote plugin manifest should be generated, deoplete should be usable 530 - # without the user having to do `UpdateRemotePlugins`. To test, launch neovim 531 - # and do `:call deoplete#enable()`. It will print an error if the remote 532 - # plugin is not registered. 533 - test_nvim_with_remote_plugin = neovim.override { 534 - configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ]; 535 - }; 536 473 }
+28 -11
pkgs/os-specific/linux/dropwatch/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config 2 - , libnl, readline, libbfd, ncurses, zlib }: 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , autoreconfHook 5 + , pkg-config 6 + , libbfd 7 + , libnl 8 + , libpcap 9 + , ncurses 10 + , readline 11 + , zlib 12 + }: 3 13 4 14 stdenv.mkDerivation rec { 5 15 pname = "dropwatch"; 6 - version = "1.5.1"; 16 + version = "1.5.3"; 7 17 8 18 src = fetchFromGitHub { 9 19 owner = "nhorman"; 10 20 repo = pname; 11 21 rev = "v${version}"; 12 - sha256 = "1qmax0l7z1qik42c949fnvjh5r6awk4gpgzdsny8iwnmwzjyp8b8"; 22 + sha256 = "0axx0zzrs7apqnl0r70jyvmgk7cs5wk185id479mapgngibwkyxy"; 13 23 }; 14 24 15 - nativeBuildInputs = [ autoreconfHook pkg-config ]; 16 - buildInputs = [ libbfd libnl ncurses readline zlib ]; 17 - 18 - # To avoid running into https://sourceware.org/bugzilla/show_bug.cgi?id=14243 we need to define: 19 - NIX_CFLAGS_COMPILE = "-DPACKAGE=${pname} -DPACKAGE_VERSION=${version}"; 25 + nativeBuildInputs = [ 26 + autoreconfHook 27 + pkg-config 28 + ]; 29 + buildInputs = [ 30 + libbfd 31 + libnl 32 + libpcap 33 + ncurses 34 + readline 35 + zlib 36 + ]; 20 37 21 38 enableParallelBuilding = true; 22 39 23 40 meta = with lib; { 24 41 description = "Linux kernel dropped packet monitor"; 25 42 homepage = "https://github.com/nhorman/dropwatch"; 26 - license = licenses.gpl2; 43 + license = licenses.gpl2Plus; 27 44 platforms = platforms.linux; 28 - maintainers = [ maintainers.c0bw3b ]; 45 + maintainers = with maintainers; [ c0bw3b ]; 29 46 }; 30 47 }
+3 -3
pkgs/os-specific/linux/rtw88/default.nix
··· 5 5 in 6 6 stdenv.mkDerivation { 7 7 pname = "rtw88"; 8 - version = "unstable-2021-04-01"; 8 + version = "unstable-2021-04-19"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "lwfinger"; 12 12 repo = "rtw88"; 13 - rev = "689ce370b0c2da207bb092065697f6cb455a00dc"; 14 - hash = "sha256-gdfQxpzYJ9bEObc2iEapA0TPMZuXndBvEu6qwKqdhyo="; 13 + rev = "0f3cc6a5973bc386d9cb542fc85a6ba027edff5d"; 14 + hash = "sha256-PRzWXC1lre8gt1GfVdnaG836f5YK57P9a8tG20yef0w="; 15 15 }; 16 16 17 17 makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
+2
pkgs/test/default.nix
··· 41 41 rustCustomSysroot = callPackage ./rust-sysroot {}; 42 42 buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { }; 43 43 44 + vim = callPackage ./vim {}; 45 + 44 46 nixos-functions = callPackage ./nixos-functions {}; 45 47 46 48 patch-shebangs = callPackage ./patch-shebangs {};
+72
pkgs/test/vim/default.nix
··· 1 + { vimUtils, vim_configurable, neovim, vimPlugins 2 + , lib, fetchFromGitHub, 3 + }: 4 + let 5 + inherit (vimUtils) buildVimPluginFrom2Nix; 6 + 7 + packages.myVimPackage.start = with vimPlugins; [ vim-nix ]; 8 + in 9 + { 10 + vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; }; 11 + 12 + vim_with_vim2nix = vim_configurable.customize { 13 + name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ]; 14 + }; 15 + 16 + # test cases: 17 + test_vim_with_vim_nix_using_vam = vim_configurable.customize { 18 + name = "vim-with-vim-addon-nix-using-vam"; 19 + vimrcConfig.vam.pluginDictionaries = [{name = "vim-nix"; }]; 20 + }; 21 + 22 + test_vim_with_vim_nix_using_pathogen = vim_configurable.customize { 23 + name = "vim-with-vim-addon-nix-using-pathogen"; 24 + vimrcConfig.pathogen.pluginNames = [ "vim-nix" ]; 25 + }; 26 + 27 + test_vim_with_vim_nix_using_plug = vim_configurable.customize { 28 + name = "vim-with-vim-addon-nix-using-plug"; 29 + vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ]; 30 + }; 31 + 32 + test_vim_with_vim_nix = vim_configurable.customize { 33 + name = "vim-with-vim-addon-nix"; 34 + vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ]; 35 + }; 36 + 37 + # only neovim makes use of `requiredPlugins`, test this here 38 + test_nvim_with_vim_nix_using_pathogen = neovim.override { 39 + configure.pathogen.pluginNames = [ "vim-nix" ]; 40 + }; 41 + 42 + # regression test for https://github.com/NixOS/nixpkgs/issues/53112 43 + # The user may have specified their own plugins which may not be formatted 44 + # exactly as the generated ones. In particular, they may not have the `pname` 45 + # attribute. 46 + test_vim_with_custom_plugin = vim_configurable.customize { 47 + name = "vim_with_custom_plugin"; 48 + vimrcConfig.vam.knownPlugins = 49 + vimPlugins // ({ 50 + vim-trailing-whitespace = buildVimPluginFrom2Nix { 51 + name = "vim-trailing-whitespace"; 52 + src = fetchFromGitHub { 53 + owner = "bronson"; 54 + repo = "vim-trailing-whitespace"; 55 + rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6"; 56 + sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9"; 57 + }; 58 + # make sure string dependencies are handled 59 + dependencies = [ "vim-nix" ]; 60 + }; 61 + }); 62 + vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ]; 63 + }; 64 + 65 + # system remote plugin manifest should be generated, deoplete should be usable 66 + # without the user having to do `UpdateRemotePlugins`. To test, launch neovim 67 + # and do `:call deoplete#enable()`. It will print an error if the remote 68 + # plugin is not registered. 69 + test_nvim_with_remote_plugin = neovim.override { 70 + configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ]; 71 + }; 72 + }
+9 -5
pkgs/tools/misc/websocat/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "websocat"; 5 - version = "1.6.0"; 5 + version = "1.8.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "vi"; 9 - repo = "websocat"; 9 + repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "0iilq96bxcb2fsljvlgy47pg514w0jf72ckz39yy3k0gwc1yfcja"; 11 + sha256 = "sha256-jwoWxK4phBqhIeo3+oRnpGsfvtn9gTR1ryd4N+0Lmbw="; 12 12 }; 13 13 14 14 cargoBuildFlags = [ "--features=ssl" ]; 15 - cargoSha256 = "1hsms8rlnds8npr8m0dm21h04ci5ljda09pqb598v7ny3j2dldiq"; 15 + cargoSha256 = "sha256-+3SG1maarY4DJ4+QiYGwltGLksOoOhKtcqstRwgzi2k="; 16 16 17 17 nativeBuildInputs = [ pkg-config makeWrapper ]; 18 18 buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security; 19 + 20 + # Needed to get openssl-sys to use pkg-config. 21 + OPENSSL_NO_VENDOR=1; 19 22 20 23 # The wrapping is required so that the "sh-c" option of websocat works even 21 24 # if sh is not in the PATH (as can happen, for instance, when websocat is ··· 26 29 ''; 27 30 28 31 meta = with lib; { 32 + homepage = "https://github.com/vi/websocat"; 29 33 description = "Command-line client for WebSockets (like netcat/socat)"; 30 - homepage = "https://github.com/vi/websocat"; 34 + changelog = "https://github.com/vi/websocat/releases/tag/v${version}"; 31 35 license = licenses.mit; 32 36 maintainers = with maintainers; [ thoughtpolice Br1ght0ne ]; 33 37 };
+25
pkgs/tools/networking/sish/default.nix
··· 1 + { lib 2 + , buildGoModule 3 + , fetchFromGitHub 4 + }: 5 + 6 + buildGoModule rec { 7 + pname = "sish"; 8 + version = "1.1.5"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "antoniomika"; 12 + repo = pname; 13 + rev = "v${version}"; 14 + sha256 = "06ckgxhnijs7yrj0hhwh1vk2fvapwn6wb44w3g6qs6n6fmqh92mb"; 15 + }; 16 + 17 + vendorSha256 = "0vfazbaiaqka5nd7imh5ls7k3asf1c17y081nzkban98svg3l3sj"; 18 + 19 + meta = with lib; { 20 + description = "HTTP(S)/WS(S)/TCP Tunnels to localhost"; 21 + homepage = "https://github.com/antoniomika/sish"; 22 + license = with licenses; [ mit ]; 23 + maintainers = with maintainers; [ fab ]; 24 + }; 25 + }
+5 -5
pkgs/tools/nix/manix/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, rustPlatform, darwin }: 1 + { lib, stdenv, fetchFromGitHub, rustPlatform, darwin, Security }: 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "manix"; 5 - version = "0.6.2"; 5 + version = "0.6.3"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "mlvzk"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "0fv3sgzwjsgq2h1177r8r1cl5zrfja4ll801sd0bzj3nzmkyww7p"; 11 + sha256 = "1b7xi8c2drbwzfz70czddc4j33s7g1alirv12dwl91hbqxifx8qs"; 12 12 }; 13 13 14 - buildInputs = lib.optional stdenv.isDarwin [ darwin.Security ]; 14 + buildInputs = lib.optionals stdenv.isDarwin [ Security ]; 15 15 16 - cargoSha256 = "0f2q3bj1cmpbma0fjhc2lc92j4al78fhrx3yc37kmbgzaza0yan5"; 16 + cargoSha256 = "1yivx9vzk2fvncvlkwq5v11hb9llr1zlcmy69y12q6xnd9rd8x1b"; 17 17 18 18 meta = with lib; { 19 19 description = "A Fast Documentation Searcher for Nix";
+15 -5
pkgs/tools/security/cosign/default.nix
··· 1 - { lib, buildGoModule, fetchFromGitHub }: 1 + { stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, PCSC }: 2 2 3 3 buildGoModule rec { 4 4 pname = "cosign"; 5 - version = "0.2.0"; 5 + version = "0.3.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "sigstore"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "1zwb2q62ngb2zh1hasvq7r7pmrjlpgfhs5raibbhkxbk5kayvmii"; 11 + sha256 = "1gfzard6bh78xxgjk14c9zmdplppkcjqxhvfazcbv8qppjl2pbbd"; 12 12 }; 13 13 14 - vendorSha256 = "0nwbjaps4z5fhiknbj9pybxb6kgwb1vf2qhy0mzpycprf04q6g0v"; 14 + buildInputs = 15 + lib.optional stdenv.isLinux (lib.getDev pcsclite) 16 + ++ lib.optionals stdenv.isDarwin [ PCSC ]; 17 + 18 + nativeBuildInputs = [ pkg-config ]; 19 + 20 + vendorSha256 = "15163v484rv08rn439y38r9spyqn3lf4q4ly8xr18nnf4bs3h6y2"; 15 21 16 22 subPackages = [ "cmd/cosign" ]; 17 23 24 + preBuild = '' 25 + buildFlagsArray+=("-ldflags" "-s -w -X github.com/sigstore/cosign/cmd/cosign/cli.gitVersion=v${version}") 26 + ''; 27 + 18 28 meta = with lib; { 19 29 homepage = "https://github.com/sigstore/cosign"; 20 30 changelog = "https://github.com/sigstore/cosign/releases/tag/v${version}"; 21 31 description = "Container Signing CLI with support for ephemeral keys and Sigstore signing"; 22 32 license = licenses.asl20; 23 - maintainers = with maintainers; [ lesuisse ]; 33 + maintainers = with maintainers; [ lesuisse jk ]; 24 34 }; 25 35 }
+2 -2
pkgs/tools/security/hfinger/default.nix
··· 6 6 7 7 python3.pkgs.buildPythonApplication rec { 8 8 pname = "hfinger"; 9 - version = "0.2.0"; 9 + version = "0.2.1"; 10 10 disabled = python3.pythonOlder "3.3"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "CERT-Polska"; 14 14 repo = pname; 15 15 rev = "v${version}"; 16 - sha256 = "1vz8mf572qyng684fvb9gdwaaiybk7mjmikbymvjvy24d10raak1"; 16 + sha256 = "sha256-QKnrprDDBq+D8N1brkqgcfK4E+6ssvgPtRaSxkF0C84="; 17 17 }; 18 18 19 19 propagatedBuildInputs = with python3.pkgs; [
+2 -2
pkgs/tools/security/ldeep/default.nix
··· 10 10 11 11 buildPythonApplication rec { 12 12 pname = "ldeep"; 13 - version = "1.0.10"; 13 + version = "1.0.11"; 14 14 15 15 src = fetchPypi { 16 16 inherit pname version; 17 - sha256 = "sha256-/7mcmAj69NmuiK+xlQijAk39sMLDX8kHatmSI6XYbwE="; 17 + sha256 = "sha256-MYVC8fxLW85n8uZVMhb2Zml1lQ8vW9gw/eRLcmemQx4="; 18 18 }; 19 19 20 20 propagatedBuildInputs = [
+16 -8
pkgs/tools/wayland/ydotool/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus }: 1 + { lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus, iodash, cxxopts}: 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "ydotool"; 5 - version = "0.1.8"; 5 + version = "unstable-2021-01-20"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "ReimuNotMoe"; 9 9 repo = "ydotool"; 10 - rev = "v${version}"; 11 - sha256 = "0mx3636p0f8pznmwm4rlbwq7wrmjb2ygkf8b3a6ps96a7j1fw39l"; 10 + rev = "b1d041f52f7bac364d6539b1251d29c3b77c0f37"; 11 + sha256 = "1gzdbx6fv0dbcyia3yyzhv93az2gf90aszb9kcj5cnxywfpv9w9g"; 12 12 }; 13 13 14 - # disable static linking 14 + # upstream decided to use a cpp package manager called cpm. 15 + # we need to disable that because it wants networking, furthermore, 16 + # it does some system folder creating which also needs to be disabled. 17 + # Both changes are to respect the sandbox. 18 + patches = [ ./fixup-cmakelists.patch ]; 19 + 20 + 21 + # cxxopts is a header only library. 22 + # See pull request: https://github.com/ReimuNotMoe/ydotool/pull/105 15 23 postPatch = '' 16 24 substituteInPlace CMakeLists.txt --replace \ 17 - "-static" \ 18 - "" 25 + "PUBLIC cxxopts" \ 26 + "PUBLIC" 19 27 ''; 20 28 21 29 nativeBuildInputs = [ cmake pkg-config ]; 22 30 buildInputs = [ 23 - boost libevdevplus libuinputplus 31 + boost libevdevplus libuinputplus iodash cxxopts 24 32 ]; 25 33 26 34 meta = with lib; {
+58
pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
··· 1 + From bb8bc44d22060cd1215712117cf30eae09f4f6ba Mon Sep 17 00:00:00 2001 2 + From: Jappie Klooster <jappieklooster@hotmail.com> 3 + Date: Fri, 2 Apr 2021 14:04:14 -0400 4 + Subject: [PATCH] Fixup cmaklists 5 + 6 + We remove cpm, which is a package manager for c++, 7 + which requires networking, so it's better just deleted. 8 + 9 + Furthermore we delete the adddirectory statements. 10 + These want to modify directories outside of the sandbox. 11 + --- 12 + CMakeLists.txt | 26 -------------------------- 13 + 1 file changed, 26 deletions(-) 14 + 15 + diff --git a/CMakeLists.txt b/CMakeLists.txt 16 + index b5e8789..b797538 100644 17 + --- a/CMakeLists.txt 18 + +++ b/CMakeLists.txt 19 + @@ -13,30 +13,6 @@ endif() 20 + 21 + include(${CPM_DOWNLOAD_LOCATION}) 22 + 23 + -CPMAddPackage( 24 + - NAME IODash 25 + - GITHUB_REPOSITORY YukiWorkshop/IODash 26 + - VERSION 0.1.0 27 + -) 28 + - 29 + -CPMAddPackage( 30 + - NAME libevdevPlus 31 + - GITHUB_REPOSITORY YukiWorkshop/libevdevPlus 32 + - VERSION 0.2.1 33 + -) 34 + - 35 + -CPMAddPackage( 36 + - NAME libuInputPlus 37 + - GITHUB_REPOSITORY YukiWorkshop/libuInputPlus 38 + - VERSION 0.2.1 39 + -) 40 + - 41 + -CPMAddPackage( 42 + - NAME cxxopts 43 + - GITHUB_REPOSITORY jarro2783/cxxopts 44 + - VERSION 3.0.0 45 + - GIT_TAG 2d8e17c4f88efce80e274cb03eeb902e055a91d3 46 + -) 47 + 48 + set(SOURCE_FILES_LIBRARY 49 + CommonIncludes.hpp 50 + @@ -74,5 +50,3 @@ add_executable(ydotool ${SOURCE_FILES_CLIENT}) 51 + target_link_libraries(ydotool ydotool_library dl pthread uInputPlus evdevPlus) 52 + install(TARGETS ydotool DESTINATION ${CMAKE_INSTALL_BINDIR}) 53 + 54 + -add_subdirectory(Daemon) 55 + -add_subdirectory(manpage) 56 + -- 57 + 2.29.2 58 +
+25 -4
pkgs/top-level/all-packages.nix
··· 1276 1276 1277 1277 corsmisc = callPackage ../tools/security/corsmisc { }; 1278 1278 1279 - cosign = callPackage ../tools/security/cosign { }; 1279 + cosign = callPackage ../tools/security/cosign { 1280 + inherit (darwin.apple_sdk.frameworks) PCSC; 1281 + }; 1280 1282 1281 1283 cozy = callPackage ../applications/audio/cozy-audiobooks { }; 1282 1284 ··· 5756 5758 5757 5759 jq = callPackage ../development/tools/jq { }; 5758 5760 5761 + jql = callPackage ../development/tools/jql { }; 5762 + 5759 5763 jo = callPackage ../development/tools/jo { }; 5760 5764 5761 5765 jrnl = python3Packages.callPackage ../applications/misc/jrnl { }; ··· 6185 6189 nodejs-slim-15_x = callPackage ../development/web/nodejs/v15.nix { 6186 6190 enableNpm = false; 6187 6191 }; 6192 + nodejs-16_x = callPackage ../development/web/nodejs/v16.nix { }; 6193 + nodejs-slim-16_x = callPackage ../development/web/nodejs/v16.nix { 6194 + enableNpm = false; 6195 + }; 6188 6196 # Update this when adding the newest nodejs major version! 6189 - nodejs_latest = nodejs-15_x; 6190 - nodejs-slim_latest = nodejs-slim-15_x; 6197 + nodejs_latest = nodejs-16_x; 6198 + nodejs-slim_latest = nodejs-slim-16_x; 6191 6199 6192 6200 nodePackages_latest = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix { 6193 6201 nodejs = pkgs.nodejs_latest; ··· 6213 6221 6214 6222 ispell = callPackage ../tools/text/ispell {}; 6215 6223 6224 + iodash = callPackage ../development/libraries/iodash { }; 6216 6225 jumanpp = callPackage ../tools/text/jumanpp {}; 6217 6226 6218 6227 jump = callPackage ../tools/system/jump {}; ··· 6497 6506 6498 6507 mandoc = callPackage ../tools/misc/mandoc { }; 6499 6508 6500 - manix = callPackage ../tools/nix/manix {}; 6509 + manix = callPackage ../tools/nix/manix { 6510 + inherit (darwin.apple_sdk.frameworks) Security; 6511 + }; 6501 6512 6502 6513 marktext = callPackage ../applications/misc/marktext { }; 6503 6514 ··· 7159 7170 openresolv = callPackage ../tools/networking/openresolv { }; 7160 7171 7161 7172 openrgb = libsForQt5.callPackage ../applications/misc/openrgb { }; 7173 + 7174 + openrussian-cli = callPackage ../misc/openrussian-cli { }; 7162 7175 7163 7176 opensc = callPackage ../tools/security/opensc { 7164 7177 inherit (darwin.apple_sdk.frameworks) Carbon PCSC; ··· 23481 23494 23482 23495 gxplugins-lv2 = callPackage ../applications/audio/gxplugins-lv2 { }; 23483 23496 23497 + hachoir = with python3Packages; toPythonApplication hachoir; 23498 + 23484 23499 hackrf = callPackage ../applications/radio/hackrf { }; 23485 23500 23486 23501 hacksaw = callPackage ../tools/misc/hacksaw {}; ··· 23526 23541 hexdino = callPackage ../applications/editors/hexdino { }; 23527 23542 23528 23543 hexedit = callPackage ../applications/editors/hexedit { }; 23544 + 23545 + himalaya = callPackage ../applications/networking/mailreaders/himalaya { 23546 + inherit (darwin.apple_sdk.frameworks) Security; 23547 + }; 23529 23548 23530 23549 hipchat = callPackage ../applications/networking/instant-messengers/hipchat { }; 23531 23550 ··· 25738 25757 simple-scan = gnome3.simple-scan; 25739 25758 25740 25759 siproxd = callPackage ../applications/networking/siproxd { }; 25760 + 25761 + sish = callPackage ../tools/networking/sish { }; 25741 25762 25742 25763 skypeforlinux = callPackage ../applications/networking/instant-messengers/skypeforlinux { }; 25743 25764
+2
pkgs/top-level/python-packages.nix
··· 2921 2921 2922 2922 habanero = callPackage ../development/python-modules/habanero { }; 2923 2923 2924 + hachoir = callPackage ../development/python-modules/hachoir { }; 2925 + 2924 2926 ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { }; 2925 2927 2926 2928 halo = callPackage ../development/python-modules/halo { };
+163 -144
pkgs/top-level/ruby-packages.nix
··· 5 5 platforms = []; 6 6 source = { 7 7 remotes = ["https://rubygems.org"]; 8 - sha256 = "0clfsmkdqviwrjdc0fjqx3qs7xkq06bdl24f2qdyk4p2f0aszdw9"; 8 + sha256 = "0dr6w3h7i7xyqd04aw66x2ddm7xinvlw02pkk1sxczi8x21z16hf"; 9 9 type = "gem"; 10 10 }; 11 - version = "6.1.0"; 11 + version = "6.1.3.1"; 12 12 }; 13 13 actionmailbox = { 14 14 dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"]; ··· 16 16 platforms = []; 17 17 source = { 18 18 remotes = ["https://rubygems.org"]; 19 - sha256 = "14qcia1l2yjga3azgc381mk75xrddspkpxxvswrr6rg9453i70wf"; 19 + sha256 = "0w3cq2m1qbmxp7yv3qs82ffn9y46vq5q04vqwxak6ln0ki0v4hn4"; 20 20 type = "gem"; 21 21 }; 22 - version = "6.1.0"; 22 + version = "6.1.3.1"; 23 23 }; 24 24 actionmailer = { 25 25 dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"]; ··· 27 27 platforms = []; 28 28 source = { 29 29 remotes = ["https://rubygems.org"]; 30 - sha256 = "17cnw2pi5gbll6wqqmp40wdxbg3v0kz1jmfdbg7kwdk8b4mkfqmw"; 30 + sha256 = "1wsa6kcgjx5am9hn44q2afg174m2gda4n8bfk5na17nj48s9g1ii"; 31 31 type = "gem"; 32 32 }; 33 - version = "6.1.0"; 33 + version = "6.1.3.1"; 34 34 }; 35 35 actionpack = { 36 36 dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; ··· 38 38 platforms = []; 39 39 source = { 40 40 remotes = ["https://rubygems.org"]; 41 - sha256 = "1mbmizxyl2k6z386zqvvzg3i8b91g7ag4hfjmm7fpbc8p6j4kjmb"; 41 + sha256 = "0brr9kbmmc4fr2x8a7kj88yv8whfjfvalik3h82ypxlbg5b1c9iz"; 42 42 type = "gem"; 43 43 }; 44 - version = "6.1.0"; 44 + version = "6.1.3.1"; 45 45 }; 46 46 actiontext = { 47 47 dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"]; ··· 49 49 platforms = []; 50 50 source = { 51 51 remotes = ["https://rubygems.org"]; 52 - sha256 = "19dgv0zcq7k0wps7gbaiprrardqm74ija9zjydkv93anqqfw3rwd"; 52 + sha256 = "04f7x7ycg73zc2v3lhvrnl072f7nl0nhp0sspfa2sqq14v4akmmb"; 53 53 type = "gem"; 54 54 }; 55 - version = "6.1.0"; 55 + version = "6.1.3.1"; 56 56 }; 57 57 actionview = { 58 58 dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; ··· 60 60 platforms = []; 61 61 source = { 62 62 remotes = ["https://rubygems.org"]; 63 - sha256 = "1d68p974w96b3mg8q45cmwy2629dl615fm9in56fgb0k7vcrpazk"; 63 + sha256 = "0m009iki20hhwwj713bqdw57hmz650l7drfbajw32xn2qnawf294"; 64 64 type = "gem"; 65 65 }; 66 - version = "6.1.0"; 66 + version = "6.1.3.1"; 67 67 }; 68 68 activejob = { 69 69 dependencies = ["activesupport" "globalid"]; ··· 71 71 platforms = []; 72 72 source = { 73 73 remotes = ["https://rubygems.org"]; 74 - sha256 = "0pkiy5jy5xjgh4diw5wyc72w1r9s07p1qp1kpwv50a5q1ca12aw0"; 74 + sha256 = "0zjwcfr4qyff9ln4hhjb1csbjpvr3z4pdgvg8axvhcs86h4xpy2n"; 75 75 type = "gem"; 76 76 }; 77 - version = "6.1.0"; 77 + version = "6.1.3.1"; 78 78 }; 79 79 activemodel = { 80 80 dependencies = ["activesupport"]; ··· 82 82 platforms = []; 83 83 source = { 84 84 remotes = ["https://rubygems.org"]; 85 - sha256 = "019gwxrbki4fr3n2c6g7qyyjw94z5qxjwalh2n69hh1anpcbrd98"; 85 + sha256 = "118slj94hif5g1maaijlxsywrq75h7qdz20bq62303pkrzabjaxm"; 86 86 type = "gem"; 87 87 }; 88 - version = "6.1.0"; 88 + version = "6.1.3.1"; 89 89 }; 90 90 activerecord = { 91 91 dependencies = ["activemodel" "activesupport"]; ··· 93 93 platforms = []; 94 94 source = { 95 95 remotes = ["https://rubygems.org"]; 96 - sha256 = "1ag8wpfayzbv8n9gf9ca2k8rm9yndsxybvf7jv451j9r822mxzm8"; 96 + sha256 = "1jva5iqnjmj76mhhxcvx6xzda071cy80bhxn3r79f76pvgwwyymg"; 97 97 type = "gem"; 98 98 }; 99 - version = "6.1.0"; 99 + version = "6.1.3.1"; 100 100 }; 101 101 activestorage = { 102 - dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mimemagic"]; 102 + dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"]; 103 103 groups = ["default"]; 104 104 platforms = []; 105 105 source = { 106 106 remotes = ["https://rubygems.org"]; 107 - sha256 = "0kzslp0990fjyxvlsxb7kdysx28mc3zvay4q3zp2wbfnpl1ik41j"; 107 + sha256 = "1800ski0619mzyk2p2xcmy4xlym18g3lbqw8wb3ss06jhvn5dl5p"; 108 108 type = "gem"; 109 109 }; 110 - version = "6.1.0"; 110 + version = "6.1.3.1"; 111 111 }; 112 112 activesupport = { 113 113 dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; ··· 115 115 platforms = []; 116 116 source = { 117 117 remotes = ["https://rubygems.org"]; 118 - sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v"; 118 + sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc"; 119 119 type = "gem"; 120 120 }; 121 - version = "6.1.0"; 121 + version = "6.1.3.1"; 122 122 }; 123 123 addressable = { 124 124 dependencies = ["public_suffix"]; ··· 136 136 platforms = []; 137 137 source = { 138 138 remotes = ["https://rubygems.org"]; 139 - sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a"; 139 + sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; 140 140 type = "gem"; 141 141 }; 142 - version = "2.4.1"; 142 + version = "2.4.2"; 143 143 }; 144 144 atk = { 145 145 dependencies = ["glib2"]; ··· 167 167 platforms = []; 168 168 source = { 169 169 remotes = ["https://rubygems.org"]; 170 - sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h"; 170 + sha256 = "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9"; 171 171 type = "gem"; 172 172 }; 173 - version = "1.8.0"; 173 + version = "1.9.2"; 174 174 }; 175 175 bacon = { 176 176 groups = ["default"]; ··· 203 203 version = "11.1.3"; 204 204 }; 205 205 cairo = { 206 - dependencies = ["native-package-installer" "pkg-config"]; 206 + dependencies = ["native-package-installer" "pkg-config" "red-colors"]; 207 207 groups = ["default"]; 208 208 platforms = []; 209 209 source = { 210 210 remotes = ["https://rubygems.org"]; 211 - sha256 = "00hiy6anibkjq9w77hg0lpgnkkbcxrfbz8wxv44jfzqbab8910wb"; 211 + sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s"; 212 212 type = "gem"; 213 213 }; 214 - version = "1.16.6"; 214 + version = "1.17.5"; 215 215 }; 216 216 cairo-gobject = { 217 217 dependencies = ["cairo" "glib2"]; ··· 291 291 platforms = []; 292 292 source = { 293 293 remotes = ["https://rubygems.org"]; 294 - sha256 = "1jvpxf32l5y2ayj0jp9mv9n7vn61zingzd0s5f7490n584lwmvmg"; 294 + sha256 = "1y04ig8p9rparhff5dh3781pwf1xlirgq8p0fzvggjjpx761bvra"; 295 295 type = "gem"; 296 296 }; 297 - version = "3.4.1"; 297 + version = "3.4.2"; 298 298 }; 299 299 cocoapods = { 300 300 dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored" "escape" "fourflusher" "molinillo" "nap" "xcodeproj"]; ··· 354 354 platforms = []; 355 355 source = { 356 356 remotes = ["https://rubygems.org"]; 357 - sha256 = "1b91sfsriizsr08m1vn9j4sf9sb8vgsyr6xjnw18bpy66bpwsqca"; 357 + sha256 = "0syya8l1kz36069y7cx4f37aihpmbm4yd5wvifs3j8qzz8bpxpfi"; 358 358 type = "gem"; 359 359 }; 360 - version = "0.0.2"; 360 + version = "0.0.3"; 361 361 }; 362 362 cocoapods-core = { 363 363 dependencies = ["activesupport" "fuzzy_match" "nap"]; ··· 458 458 platforms = []; 459 459 source = { 460 460 remotes = ["https://rubygems.org"]; 461 - sha256 = "1pwzrwp3sys5ad23lc49r3ja2ijzhzjfrq4bbrpbz1x5z7jsa77v"; 461 + sha256 = "0vpn0y2r91cv9kr2kh6rwh51ipi90iyjfya8ir9grxh1ngv179ck"; 462 462 type = "gem"; 463 463 }; 464 - version = "2.2.0"; 464 + version = "2.2.2"; 465 465 }; 466 466 cocoapods-git_url_rewriter = { 467 467 groups = ["default"]; ··· 583 583 platforms = []; 584 584 source = { 585 585 remotes = ["https://rubygems.org"]; 586 - sha256 = "1ln4kywj4bx32qyqvr0byi3g4fk8yj026n00xch782x0147f8lka"; 586 + sha256 = "1z50v9y66kl0s9s84syd8vai77hhysdaymmgbdmpaq54bra6xk72"; 587 587 type = "gem"; 588 588 }; 589 - version = "0.0.11"; 589 + version = "0.2.0"; 590 590 }; 591 591 cocoapods-wholemodule = { 592 592 groups = ["default"]; ··· 643 643 platforms = []; 644 644 source = { 645 645 remotes = ["https://rubygems.org"]; 646 - sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz"; 646 + sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3"; 647 647 type = "gem"; 648 648 }; 649 - version = "1.1.7"; 649 + version = "1.1.8"; 650 650 }; 651 651 crass = { 652 652 groups = ["default"]; ··· 745 745 platforms = []; 746 746 source = { 747 747 remotes = ["https://rubygems.org"]; 748 - sha256 = "0wi81lynfdvbwhrc4ws746g3j8761vian4m9gxamdj9rjwj9jhls"; 748 + sha256 = "1bpdrsdqwv80qqc3f4xxzpii13lx9mlx3zay4bnmmscrx8c0p63z"; 749 749 type = "gem"; 750 750 }; 751 - version = "1.3.4"; 751 + version = "1.3.5"; 752 752 }; 753 753 domain_name = { 754 754 dependencies = ["unf"]; ··· 808 808 platforms = []; 809 809 source = { 810 810 remotes = ["https://rubygems.org"]; 811 - sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9"; 811 + sha256 = "1cql2cxl9bg8gbmmlzl4kvpq7y0gjldgarsnxq35vpd7ga3h54w2"; 812 812 type = "gem"; 813 813 }; 814 - version = "0.12.0"; 814 + version = "0.13.0"; 815 815 }; 816 816 eventmachine = { 817 817 groups = ["default"]; ··· 828 828 platforms = []; 829 829 source = { 830 830 remotes = ["https://rubygems.org"]; 831 - sha256 = "16ij8617v3js03yj1zd32mmrf7kpi9l96bid5mpqk30c4mzai55r"; 831 + sha256 = "0jn8s74nxsh0vmxv2fjrrrc3b2cgp8d267dyn206hbw5ki4pkd85"; 832 832 type = "gem"; 833 833 }; 834 - version = "0.78.1"; 834 + version = "0.80.1"; 835 835 }; 836 836 faraday = { 837 - dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"]; 837 + dependencies = ["faraday-excon" "faraday-net_http" "faraday-net_http_persistent" "multipart-post" "ruby2_keywords"]; 838 + groups = ["default"]; 839 + platforms = []; 840 + source = { 841 + remotes = ["https://rubygems.org"]; 842 + sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi"; 843 + type = "gem"; 844 + }; 845 + version = "1.4.1"; 846 + }; 847 + faraday-excon = { 838 848 groups = ["default"]; 839 849 platforms = []; 840 850 source = { 841 851 remotes = ["https://rubygems.org"]; 842 - sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz"; 852 + sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"; 843 853 type = "gem"; 844 854 }; 845 - version = "1.3.0"; 855 + version = "1.1.0"; 846 856 }; 847 857 faraday-net_http = { 848 858 groups = ["default"]; 849 859 platforms = []; 850 860 source = { 851 861 remotes = ["https://rubygems.org"]; 852 - sha256 = "1kk5d1c5nxbmwawl5gcznwiscjz24nz3vdhxrlzvj7748c1qqr6d"; 862 + sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; 863 + type = "gem"; 864 + }; 865 + version = "1.0.1"; 866 + }; 867 + faraday-net_http_persistent = { 868 + groups = ["default"]; 869 + platforms = []; 870 + source = { 871 + remotes = ["https://rubygems.org"]; 872 + sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka"; 853 873 type = "gem"; 854 874 }; 855 - version = "1.0.0"; 875 + version = "1.1.0"; 856 876 }; 857 877 ffi = { 858 878 groups = ["default"]; 859 879 platforms = []; 860 880 source = { 861 881 remotes = ["https://rubygems.org"]; 862 - sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx"; 882 + sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432"; 863 883 type = "gem"; 864 884 }; 865 - version = "1.14.2"; 885 + version = "1.15.0"; 866 886 }; 867 887 ffi-compiler = { 868 888 dependencies = ["ffi" "rake"]; ··· 1143 1163 platforms = []; 1144 1164 source = { 1145 1165 remotes = ["https://rubygems.org"]; 1146 - sha256 = "1kr0bx9323fv5ys6nlhsy05kmwcbs94h6ac7ka9qqywy0vbdvrrv"; 1166 + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; 1147 1167 type = "gem"; 1148 1168 }; 1149 - version = "1.8.7"; 1169 + version = "1.8.10"; 1150 1170 }; 1151 1171 iconv = { 1152 1172 groups = ["default"]; ··· 1174 1194 platforms = []; 1175 1195 source = { 1176 1196 remotes = ["https://rubygems.org"]; 1177 - sha256 = "02llgsg30jz9kpxs8jzv6rvzaylw7948xj2grp4vsfg54z20cwbm"; 1197 + sha256 = "1vz0vp5lbp1bz2samyn8nk49vyh6zhvcqz35faq4i3kgsd4xlnhp"; 1178 1198 type = "gem"; 1179 1199 }; 1180 - version = "2.10.1"; 1200 + version = "2.11.2"; 1181 1201 }; 1182 1202 jekyll = { 1183 1203 dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"]; ··· 1247 1267 platforms = []; 1248 1268 source = { 1249 1269 remotes = ["https://rubygems.org"]; 1250 - sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n"; 1270 + sha256 = "036i5fc09275ms49mw43mh4i9pwaap778ra2pmx06ipzyyjl6bfs"; 1251 1271 type = "gem"; 1252 1272 }; 1253 - version = "2.2.2"; 1273 + version = "2.2.3"; 1254 1274 }; 1255 1275 kramdown = { 1256 1276 dependencies = ["rexml"]; ··· 1280 1300 platforms = []; 1281 1301 source = { 1282 1302 remotes = ["https://rubygems.org"]; 1283 - sha256 = "1nw1gscax8zsv1m682h9f8vys26385nrwpkbigiifs5bsz6272rk"; 1303 + sha256 = "0h2sc2la6dd808pfnd7vh66fqwc7xg3nd2jqr4pdqymxspk9zcsq"; 1284 1304 type = "gem"; 1285 1305 }; 1286 - version = "1.4.2"; 1306 + version = "1.4.3"; 1287 1307 }; 1288 1308 libv8 = { 1289 1309 groups = ["default"]; ··· 1321 1341 platforms = []; 1322 1342 source = { 1323 1343 remotes = ["https://rubygems.org"]; 1324 - sha256 = "06hkw6mssx39fg3jqyq57czr5acd11nqs5631k0xs50lr2y2pv8p"; 1344 + sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj"; 1325 1345 type = "gem"; 1326 1346 }; 1327 - version = "3.4.0"; 1347 + version = "3.5.1"; 1328 1348 }; 1329 1349 loofah = { 1330 1350 dependencies = ["crass" "nokogiri"]; ··· 1332 1352 platforms = []; 1333 1353 source = { 1334 1354 remotes = ["https://rubygems.org"]; 1335 - sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh"; 1355 + sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7"; 1336 1356 type = "gem"; 1337 1357 }; 1338 - version = "2.8.0"; 1358 + version = "2.9.1"; 1339 1359 }; 1340 1360 mab = { 1341 1361 groups = ["default"]; ··· 1370 1390 version = "2.7.1"; 1371 1391 }; 1372 1392 marcel = { 1373 - dependencies = ["mimemagic"]; 1374 1393 groups = ["default"]; 1375 1394 platforms = []; 1376 1395 source = { 1377 1396 remotes = ["https://rubygems.org"]; 1378 - sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"; 1397 + sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3"; 1379 1398 type = "gem"; 1380 1399 }; 1381 - version = "0.3.3"; 1400 + version = "1.0.1"; 1382 1401 }; 1383 1402 markaby = { 1384 1403 dependencies = ["builder"]; ··· 1427 1446 platforms = []; 1428 1447 source = { 1429 1448 remotes = ["https://rubygems.org"]; 1430 - sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag"; 1431 - type = "gem"; 1432 - }; 1433 - version = "3.2020.1104"; 1434 - }; 1435 - mimemagic = { 1436 - groups = ["default"]; 1437 - platforms = []; 1438 - source = { 1439 - remotes = ["https://rubygems.org"]; 1440 - sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf"; 1449 + sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi"; 1441 1450 type = "gem"; 1442 1451 }; 1443 - version = "0.3.5"; 1452 + version = "3.2021.0225"; 1444 1453 }; 1445 1454 mini_magick = { 1446 1455 groups = ["default"]; ··· 1457 1466 platforms = []; 1458 1467 source = { 1459 1468 remotes = ["https://rubygems.org"]; 1460 - sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha"; 1469 + sha256 = "1np6srnyagghhh2w4nyv09sz47v0i6ri3q6blicj94vgxqp12c94"; 1461 1470 type = "gem"; 1462 1471 }; 1463 - version = "1.0.2"; 1472 + version = "1.0.3"; 1464 1473 }; 1465 1474 mini_portile2 = { 1466 1475 groups = ["default"]; ··· 1477 1486 platforms = []; 1478 1487 source = { 1479 1488 remotes = ["https://rubygems.org"]; 1480 - sha256 = "0ipjhdw8ds6q9h7bs3iw28bjrwkwp215hr4l3xf6215fsl80ky5j"; 1489 + sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"; 1481 1490 type = "gem"; 1482 1491 }; 1483 - version = "5.14.3"; 1492 + version = "5.14.4"; 1484 1493 }; 1485 1494 molinillo = { 1486 1495 groups = ["default"]; ··· 1497 1506 platforms = []; 1498 1507 source = { 1499 1508 remotes = ["https://rubygems.org"]; 1500 - sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih"; 1509 + sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6"; 1501 1510 type = "gem"; 1502 1511 }; 1503 - version = "1.3.3"; 1512 + version = "1.4.2"; 1504 1513 }; 1505 1514 multi_json = { 1506 1515 groups = ["default"]; ··· 1568 1577 platforms = []; 1569 1578 source = { 1570 1579 remotes = ["https://rubygems.org"]; 1571 - sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0"; 1580 + sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8"; 1572 1581 type = "gem"; 1573 1582 }; 1574 - version = "1.0.9"; 1583 + version = "1.1.1"; 1575 1584 }; 1576 1585 ncursesw = { 1577 1586 groups = ["default"]; ··· 1619 1628 platforms = []; 1620 1629 source = { 1621 1630 remotes = ["https://rubygems.org"]; 1622 - sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk"; 1631 + sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5"; 1623 1632 type = "gem"; 1624 1633 }; 1625 - version = "2.5.4"; 1634 + version = "2.5.7"; 1626 1635 }; 1627 1636 nokogiri = { 1628 1637 dependencies = ["mini_portile2" "racc"]; ··· 1630 1639 platforms = []; 1631 1640 source = { 1632 1641 remotes = ["https://rubygems.org"]; 1633 - sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2"; 1642 + sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0"; 1634 1643 type = "gem"; 1635 1644 }; 1636 - version = "1.11.1"; 1645 + version = "1.11.3"; 1637 1646 }; 1638 1647 opus-ruby = { 1639 1648 dependencies = ["ffi"]; ··· 1663 1672 platforms = []; 1664 1673 source = { 1665 1674 remotes = ["https://rubygems.org"]; 1666 - sha256 = "1zlk3bksiwrdvb7j0r5av7w280kigl7947wa7w4kbwqz3snaxl3m"; 1675 + sha256 = "0m2acfd6l6k9xvqxvwivcnwji9974ac7498znydxh69z1x3rr8nm"; 1667 1676 type = "gem"; 1668 1677 }; 1669 - version = "4.4.0"; 1678 + version = "4.4.1"; 1670 1679 }; 1671 1680 pango = { 1672 1681 dependencies = ["cairo-gobject" "gobject-introspection"]; ··· 1695 1704 platforms = []; 1696 1705 source = { 1697 1706 remotes = ["https://rubygems.org"]; 1698 - sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml"; 1707 + sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8"; 1699 1708 type = "gem"; 1700 1709 }; 1701 - version = "3.0.0.0"; 1710 + version = "3.0.1.0"; 1702 1711 }; 1703 1712 pathutil = { 1704 1713 dependencies = ["forwardable-extended"]; ··· 1746 1755 platforms = []; 1747 1756 source = { 1748 1757 remotes = ["https://rubygems.org"]; 1749 - sha256 = "068sf963n2zk47kqcckj624g5pxmk68mm76h02piphfyh9x4zmi3"; 1758 + sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl"; 1750 1759 type = "gem"; 1751 1760 }; 1752 - version = "1.4.4"; 1761 + version = "1.4.6"; 1753 1762 }; 1754 1763 polyglot = { 1755 1764 groups = ["default"]; ··· 1767 1776 platforms = []; 1768 1777 source = { 1769 1778 remotes = ["https://rubygems.org"]; 1770 - sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk"; 1779 + sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr"; 1771 1780 type = "gem"; 1772 1781 }; 1773 - version = "0.13.1"; 1782 + version = "0.14.1"; 1774 1783 }; 1775 1784 pry-byebug = { 1776 1785 dependencies = ["byebug" "pry"]; ··· 1778 1787 platforms = []; 1779 1788 source = { 1780 1789 remotes = ["https://rubygems.org"]; 1781 - sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv"; 1790 + sha256 = "07cv2hddswb334777pjgc9avxn0x9qhrdr191g7windvnjk3scvg"; 1782 1791 type = "gem"; 1783 1792 }; 1784 - version = "3.9.0"; 1793 + version = "3.8.0"; 1785 1794 }; 1786 1795 pry-doc = { 1787 1796 dependencies = ["pry" "yard"]; ··· 1810 1819 platforms = []; 1811 1820 source = { 1812 1821 remotes = ["https://rubygems.org"]; 1813 - sha256 = "13640p5fk19705ygp8j6p07lccag3d80bx8bmjgpd5zsxxsdc50b"; 1822 + sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k"; 1814 1823 type = "gem"; 1815 1824 }; 1816 - version = "5.1.1"; 1825 + version = "5.2.2"; 1817 1826 }; 1818 1827 racc = { 1819 1828 groups = ["default"]; ··· 1896 1905 platforms = []; 1897 1906 source = { 1898 1907 remotes = ["https://rubygems.org"]; 1899 - sha256 = "179r2qymrh16ih5x563wqv3zpka9fvby5czqf47d24zm7zw1bwla"; 1908 + sha256 = "1m3ckisji9n3li2700jpkyncsrh5b2z20zb0b4jl5x16cwsymr7b"; 1900 1909 type = "gem"; 1901 1910 }; 1902 - version = "6.1.0"; 1911 + version = "6.1.3.1"; 1903 1912 }; 1904 1913 rainbow = { 1905 1914 groups = ["default"]; ··· 1968 1977 platforms = []; 1969 1978 source = { 1970 1979 remotes = ["https://rubygems.org"]; 1971 - sha256 = "16q71cc9wx342c697q18pkz19ym4ncjd97hcw4v6f1mgflkdv400"; 1980 + sha256 = "13za43xb5xfg1xb1vwlvwx14jlmnk7jal5dqw8q9a5g13csx41sw"; 1981 + type = "gem"; 1982 + }; 1983 + version = "1.4.0"; 1984 + }; 1985 + red-colors = { 1986 + groups = ["default"]; 1987 + platforms = []; 1988 + source = { 1989 + remotes = ["https://rubygems.org"]; 1990 + sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca"; 1972 1991 type = "gem"; 1973 1992 }; 1974 - version = "1.2.0"; 1993 + version = "0.1.1"; 1975 1994 }; 1976 1995 redcarpet = { 1977 1996 groups = ["default"]; ··· 2020 2039 platforms = []; 2021 2040 source = { 2022 2041 remotes = ["https://rubygems.org"]; 2023 - sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip"; 2042 + sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr"; 2024 2043 type = "gem"; 2025 2044 }; 2026 - version = "2.0.3"; 2045 + version = "2.1.1"; 2027 2046 }; 2028 2047 rest-client = { 2029 2048 dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"]; ··· 2041 2060 platforms = []; 2042 2061 source = { 2043 2062 remotes = ["https://rubygems.org"]; 2044 - sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; 2063 + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; 2045 2064 type = "gem"; 2046 2065 }; 2047 - version = "3.2.4"; 2066 + version = "3.2.5"; 2048 2067 }; 2049 2068 rmagick = { 2050 2069 groups = ["default"]; 2051 2070 platforms = []; 2052 2071 source = { 2053 2072 remotes = ["https://rubygems.org"]; 2054 - sha256 = "0ajn6aisf9hh3x5zrs7n02pg5xy3m8x38gh9cn7b3klzgp3djla5"; 2073 + sha256 = "04ahv5gwfwdmwx6b7c0z91rrsfklvnqichgnqk1f9b9n6md3b8yw"; 2055 2074 type = "gem"; 2056 2075 }; 2057 - version = "4.1.2"; 2076 + version = "4.2.2"; 2058 2077 }; 2059 2078 rouge = { 2060 2079 groups = ["default"]; ··· 2115 2134 platforms = []; 2116 2135 source = { 2117 2136 remotes = ["https://rubygems.org"]; 2118 - sha256 = "1x4aks5qq489iikb4ir11ppy1dg83l4dw3s34jlwvc90mj2fjrql"; 2137 + sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k"; 2119 2138 type = "gem"; 2120 2139 }; 2121 - version = "3.10.1"; 2140 + version = "3.10.2"; 2122 2141 }; 2123 2142 rspec-support = { 2124 2143 groups = ["default"]; 2125 2144 platforms = []; 2126 2145 source = { 2127 2146 remotes = ["https://rubygems.org"]; 2128 - sha256 = "1lw9qdrff4dfdz62ww8cmv33rddmadr92k2lrvc042aajvk6x886"; 2147 + sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl"; 2129 2148 type = "gem"; 2130 2149 }; 2131 - version = "3.10.1"; 2150 + version = "3.10.2"; 2132 2151 }; 2133 2152 rubocop = { 2134 2153 dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; ··· 2136 2155 platforms = []; 2137 2156 source = { 2138 2157 remotes = ["https://rubygems.org"]; 2139 - sha256 = "12kkyzyzh30mi9xs52lc1pjki1al4x9acdaikj40wslhpwp1ng1l"; 2158 + sha256 = "0cgrj670wrdw202pddiawcx2jbkcp7ja8zbc646by7nrg9ax492d"; 2140 2159 type = "gem"; 2141 2160 }; 2142 - version = "1.7.0"; 2161 + version = "1.13.0"; 2143 2162 }; 2144 2163 rubocop-ast = { 2145 2164 dependencies = ["parser"]; ··· 2147 2166 platforms = []; 2148 2167 source = { 2149 2168 remotes = ["https://rubygems.org"]; 2150 - sha256 = "1qvfp567aprjgcwj757p55ynj0dx2b3c3hd76za9z3c43sphprcj"; 2169 + sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78"; 2151 2170 type = "gem"; 2152 2171 }; 2153 - version = "1.4.0"; 2172 + version = "1.4.1"; 2154 2173 }; 2155 2174 rubocop-performance = { 2156 2175 dependencies = ["rubocop" "rubocop-ast"]; ··· 2158 2177 platforms = []; 2159 2178 source = { 2160 2179 remotes = ["https://rubygems.org"]; 2161 - sha256 = "01aahh54r9mwhdj7v2s6kmkdm1k1n1z27dlknlbgm281ny1aswrk"; 2180 + sha256 = "07c3kymvsid9aajwmmwr3n6apxgyjcbzbl2n6r5lpzkyz28jqn15"; 2162 2181 type = "gem"; 2163 2182 }; 2164 - version = "1.9.2"; 2183 + version = "1.10.2"; 2165 2184 }; 2166 2185 ruby-graphviz = { 2167 2186 dependencies = ["rexml"]; ··· 2220 2239 platforms = []; 2221 2240 source = { 2222 2241 remotes = ["https://rubygems.org"]; 2223 - sha256 = "0lk124dixshf8mmrjpsy9avnaygni3cwki25g8nm5py4d2f5fwwa"; 2242 + sha256 = "1wy58f9qijwvkmw1j40ak2v5nsr3wcwsa1nilfw047liwyi06yad"; 2224 2243 type = "gem"; 2225 2244 }; 2226 - version = "2.0.17"; 2245 + version = "2.1.0"; 2227 2246 }; 2228 2247 ruby2_keywords = { 2229 2248 groups = ["default"]; 2230 2249 platforms = []; 2231 2250 source = { 2232 2251 remotes = ["https://rubygems.org"]; 2233 - sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l"; 2252 + sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs"; 2234 2253 type = "gem"; 2235 2254 }; 2236 - version = "0.0.2"; 2255 + version = "0.0.4"; 2237 2256 }; 2238 2257 RubyInline = { 2239 2258 dependencies = ["ZenTest"]; ··· 2303 2322 platforms = []; 2304 2323 source = { 2305 2324 remotes = ["https://rubygems.org"]; 2306 - sha256 = "1lanqba97ncv88m9r5a3i12n938j5hnpn06q55fxhayfls4fsgdn"; 2325 + sha256 = "13mlccf70slrjpxvpvmnk2cls39nkpgksa7sd90jlnm0s0z7lhdd"; 2307 2326 type = "gem"; 2308 2327 }; 2309 - version = "0.11.1"; 2328 + version = "0.11.4"; 2310 2329 }; 2311 2330 sequel = { 2312 2331 groups = ["default"]; 2313 2332 platforms = []; 2314 2333 source = { 2315 2334 remotes = ["https://rubygems.org"]; 2316 - sha256 = "0ym43w8alp65fl8j7792i1l44laq9pm91zj97x0r340xkmaii9hp"; 2335 + sha256 = "0i2zbx3zkrppvf7zmk5hpiji9kj18c0yavcr2c3i0gaqskhzvaj9"; 2317 2336 type = "gem"; 2318 2337 }; 2319 - version = "5.40.0"; 2338 + version = "5.43.0"; 2320 2339 }; 2321 2340 sequel_pg = { 2322 2341 dependencies = ["pg" "sequel"]; ··· 2335 2354 platforms = []; 2336 2355 source = { 2337 2356 remotes = ["https://rubygems.org"]; 2338 - sha256 = "0vv68r61crcnyr5i2qi3h220xbwndsfzwcfzzdr6cmhcdczyr9n2"; 2357 + sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr"; 2339 2358 type = "gem"; 2340 2359 }; 2341 - version = "0.21.1"; 2360 + version = "0.21.2"; 2342 2361 }; 2343 2362 simplecov-html = { 2344 2363 groups = ["default"]; ··· 2377 2396 platforms = []; 2378 2397 source = { 2379 2398 remotes = ["https://rubygems.org"]; 2380 - sha256 = "0nqyam74izmbczwb406bsmgdzjz5r91d4lywlvdbxx5sl4g4256a"; 2399 + sha256 = "0516kmcypysgf2lw8zm8n9yghv6igqgphhfgmgyzgiin388xw4gj"; 2381 2400 type = "gem"; 2382 2401 }; 2383 - version = "2.6.0"; 2402 + version = "2.7.0"; 2384 2403 }; 2385 2404 slop = { 2386 2405 groups = ["default"]; ··· 2439 2458 platforms = []; 2440 2459 source = { 2441 2460 remotes = ["https://rubygems.org"]; 2442 - sha256 = "1g7398sn8syybz3nbf3dqwa8q8v3s3s444i24xl5q9pzx4g4nkf1"; 2461 + sha256 = "1nkwmlx0ja35gs4lkh7hmshlwsqk5wm1wqrc2p45icnjmrh0x5cw"; 2443 2462 type = "gem"; 2444 2463 }; 2445 - version = "1.0.1"; 2464 + version = "1.1.0"; 2446 2465 }; 2447 2466 terminal-table = { 2448 2467 dependencies = ["unicode-display_width"]; ··· 2460 2479 platforms = []; 2461 2480 source = { 2462 2481 remotes = ["https://rubygems.org"]; 2463 - sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm"; 2482 + sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna"; 2464 2483 type = "gem"; 2465 2484 }; 2466 - version = "1.0.1"; 2485 + version = "1.1.0"; 2467 2486 }; 2468 2487 thrift = { 2469 2488 groups = ["default"]; 2470 2489 platforms = []; 2471 2490 source = { 2472 2491 remotes = ["https://rubygems.org"]; 2473 - sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q"; 2492 + sha256 = "1sfa4120a7yl3gxjcx990gyawsshfr22gfv5rvgpk72l2p9j2420"; 2474 2493 type = "gem"; 2475 2494 }; 2476 - version = "0.13.0"; 2495 + version = "0.14.1"; 2477 2496 }; 2478 2497 tilt = { 2479 2498 groups = ["default"]; ··· 2595 2614 platforms = []; 2596 2615 source = { 2597 2616 remotes = ["https://rubygems.org"]; 2598 - sha256 = "0ch19amq0spj5dc240mv6s8hh245w7nis2h070qr3jm15r4jb21m"; 2617 + sha256 = "092y84kak86ds2as9kwn5a9m2yzqwqcz4wx31jk3kin32c3hwcrn"; 2599 2618 type = "gem"; 2600 2619 }; 2601 - version = "5.0.1"; 2620 + version = "5.0.2"; 2602 2621 }; 2603 2622 xcodeproj = { 2604 2623 dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];