Merge master into staging-next
This commit is contained in:
commit
9b3e698b14
29
.github/workflows/direct-push.yml
vendored
Normal file
29
.github/workflows/direct-push.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
name: "Direct Push Warning"
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- release-**
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository_owner == 'NixOS'
|
||||
env:
|
||||
GITHUB_SHA: ${{ github.sha }}
|
||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||
steps:
|
||||
- name: Check if commit is a merge commit
|
||||
id: ismerge
|
||||
run: |
|
||||
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')
|
||||
echo "::set-output name=ismerge::$ISMERGE"
|
||||
- name: Warn if the commit was a direct push
|
||||
if: steps.ismerge.outputs.ismerge != 'true'
|
||||
uses: peter-evans/commit-comment@v1
|
||||
with:
|
||||
body: |
|
||||
@${{ github.actor }}, you pushed a commit directly to master/release branch
|
||||
instead of going through a Pull Request.
|
||||
|
||||
That's highly discouraged beyond the few exceptions listed
|
||||
on https://github.com/NixOS/nixpkgs/issues/118661
|
@ -374,6 +374,12 @@
|
||||
githubId = 786394;
|
||||
name = "Alexander Krupenkin ";
|
||||
};
|
||||
akshgpt7 = {
|
||||
email = "akshgpt7@gmail.com";
|
||||
github = "akshgpt7";
|
||||
githubId = 20405311;
|
||||
name = "Aksh Gupta";
|
||||
};
|
||||
albakham = {
|
||||
email = "dev@geber.ga";
|
||||
github = "albakham";
|
||||
@ -4413,6 +4419,12 @@
|
||||
githubId = 2588851;
|
||||
name = "Jan Solanti";
|
||||
};
|
||||
jappie = {
|
||||
email = "jappieklooster@hotmail.com";
|
||||
github = "jappeace";
|
||||
githubId = 3874017;
|
||||
name = "Jappie Klooster";
|
||||
};
|
||||
javaguirre = {
|
||||
email = "contacto@javaguirre.net";
|
||||
github = "javaguirre";
|
||||
@ -11292,6 +11304,16 @@
|
||||
github = "pulsation";
|
||||
githubId = 1838397;
|
||||
};
|
||||
zane = {
|
||||
name = "Zane van Iperen";
|
||||
email = "zane@zanevaniperen.com";
|
||||
github = "vs49688";
|
||||
githubId = 4423262;
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x68616B2D8AC4DCC5";
|
||||
fingerprint = "61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5";
|
||||
}];
|
||||
};
|
||||
zseri = {
|
||||
name = "zseri";
|
||||
email = "zseri.devel@ytrizja.de";
|
||||
|
@ -734,6 +734,7 @@
|
||||
./services/networking/nar-serve.nix
|
||||
./services/networking/nat.nix
|
||||
./services/networking/ndppd.nix
|
||||
./services/networking/nebula.nix
|
||||
./services/networking/networkmanager.nix
|
||||
./services/networking/nextdns.nix
|
||||
./services/networking/nftables.nix
|
||||
|
219
nixos/modules/services/networking/nebula.nix
Normal file
219
nixos/modules/services/networking/nebula.nix
Normal file
@ -0,0 +1,219 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.nebula;
|
||||
enabledNetworks = filterAttrs (n: v: v.enable) cfg.networks;
|
||||
|
||||
format = pkgs.formats.yaml {};
|
||||
|
||||
nameToId = netName: "nebula-${netName}";
|
||||
in
|
||||
{
|
||||
# Interface
|
||||
|
||||
options = {
|
||||
services.nebula = {
|
||||
networks = mkOption {
|
||||
description = "Nebula network definitions.";
|
||||
default = {};
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable or disable this network.";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.nebula;
|
||||
defaultText = "pkgs.nebula";
|
||||
description = "Nebula derivation to use.";
|
||||
};
|
||||
|
||||
ca = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to the certificate authority certificate.";
|
||||
example = "/etc/nebula/ca.crt";
|
||||
};
|
||||
|
||||
cert = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to the host certificate.";
|
||||
example = "/etc/nebula/host.crt";
|
||||
};
|
||||
|
||||
key = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to the host key.";
|
||||
example = "/etc/nebula/host.key";
|
||||
};
|
||||
|
||||
staticHostMap = mkOption {
|
||||
type = types.attrsOf (types.listOf (types.str));
|
||||
default = {};
|
||||
description = ''
|
||||
The static host map defines a set of hosts with fixed IP addresses on the internet (or any network).
|
||||
A host can have multiple fixed IP addresses defined here, and nebula will try each when establishing a tunnel.
|
||||
'';
|
||||
example = literalExample ''
|
||||
{ "192.168.100.1" = [ "100.64.22.11:4242" ]; }
|
||||
'';
|
||||
};
|
||||
|
||||
isLighthouse = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether this node is a lighthouse.";
|
||||
};
|
||||
|
||||
lighthouses = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
List of IPs of lighthouse hosts this node should report to and query from. This should be empty on lighthouse
|
||||
nodes. The IPs should be the lighthouse's Nebula IPs, not their external IPs.
|
||||
'';
|
||||
example = ''[ "192.168.100.1" ]'';
|
||||
};
|
||||
|
||||
listen.host = mkOption {
|
||||
type = types.str;
|
||||
default = "0.0.0.0";
|
||||
description = "IP address to listen on.";
|
||||
};
|
||||
|
||||
listen.port = mkOption {
|
||||
type = types.port;
|
||||
default = 4242;
|
||||
description = "Port number to listen on.";
|
||||
};
|
||||
|
||||
tun.disable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
When tun is disabled, a lighthouse can be started without a local tun interface (and therefore without root).
|
||||
'';
|
||||
};
|
||||
|
||||
tun.device = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Name of the tun device. Defaults to nebula.\${networkName}.";
|
||||
};
|
||||
|
||||
firewall.outbound = mkOption {
|
||||
type = types.listOf types.attrs;
|
||||
default = [];
|
||||
description = "Firewall rules for outbound traffic.";
|
||||
example = ''[ { port = "any"; proto = "any"; host = "any"; } ]'';
|
||||
};
|
||||
|
||||
firewall.inbound = mkOption {
|
||||
type = types.listOf types.attrs;
|
||||
default = [];
|
||||
description = "Firewall rules for inbound traffic.";
|
||||
example = ''[ { port = "any"; proto = "any"; host = "any"; } ]'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = format.type;
|
||||
default = {};
|
||||
description = ''
|
||||
Nebula configuration. Refer to
|
||||
<link xlink:href="https://github.com/slackhq/nebula/blob/master/examples/config.yml"/>
|
||||
for details on supported values.
|
||||
'';
|
||||
example = literalExample ''
|
||||
{
|
||||
lighthouse.dns = {
|
||||
host = "0.0.0.0";
|
||||
port = 53;
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Implementation
|
||||
config = mkIf (enabledNetworks != {}) {
|
||||
systemd.services = mkMerge (mapAttrsToList (netName: netCfg:
|
||||
let
|
||||
networkId = nameToId netName;
|
||||
settings = recursiveUpdate {
|
||||
pki = {
|
||||
ca = netCfg.ca;
|
||||
cert = netCfg.cert;
|
||||
key = netCfg.key;
|
||||
};
|
||||
static_host_map = netCfg.staticHostMap;
|
||||
lighthouse = {
|
||||
am_lighthouse = netCfg.isLighthouse;
|
||||
hosts = netCfg.lighthouses;
|
||||
};
|
||||
listen = {
|
||||
host = netCfg.listen.host;
|
||||
port = netCfg.listen.port;
|
||||
};
|
||||
tun = {
|
||||
disabled = netCfg.tun.disable;
|
||||
dev = if (netCfg.tun.device != null) then netCfg.tun.device else "nebula.${netName}";
|
||||
};
|
||||
firewall = {
|
||||
inbound = netCfg.firewall.inbound;
|
||||
outbound = netCfg.firewall.outbound;
|
||||
};
|
||||
} netCfg.settings;
|
||||
configFile = format.generate "nebula-config-${netName}.yml" settings;
|
||||
in
|
||||
{
|
||||
# Create systemd service for Nebula.
|
||||
"nebula@${netName}" = {
|
||||
description = "Nebula VPN service for ${netName}";
|
||||
wants = [ "basic.target" ];
|
||||
after = [ "basic.target" "network.target" ];
|
||||
before = [ "sshd.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = mkMerge [
|
||||
{
|
||||
Type = "simple";
|
||||
Restart = "always";
|
||||
ExecStart = "${netCfg.package}/bin/nebula -config ${configFile}";
|
||||
}
|
||||
# The service needs to launch as root to access the tun device, if it's enabled.
|
||||
(mkIf netCfg.tun.disable {
|
||||
User = networkId;
|
||||
Group = networkId;
|
||||
})
|
||||
];
|
||||
};
|
||||
}) enabledNetworks);
|
||||
|
||||
# Open the chosen ports for UDP.
|
||||
networking.firewall.allowedUDPPorts =
|
||||
unique (mapAttrsToList (netName: netCfg: netCfg.listen.port) enabledNetworks);
|
||||
|
||||
# Create the service users and groups.
|
||||
users.users = mkMerge (mapAttrsToList (netName: netCfg:
|
||||
mkIf netCfg.tun.disable {
|
||||
${nameToId netName} = {
|
||||
group = nameToId netName;
|
||||
description = "Nebula service user for network ${netName}";
|
||||
isSystemUser = true;
|
||||
};
|
||||
}) enabledNetworks);
|
||||
|
||||
users.groups = mkMerge (mapAttrsToList (netName: netCfg:
|
||||
mkIf netCfg.tun.disable {
|
||||
${nameToId netName} = {};
|
||||
}) enabledNetworks);
|
||||
};
|
||||
}
|
@ -263,6 +263,7 @@ in
|
||||
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
|
||||
ncdns = handleTest ./ncdns.nix {};
|
||||
ndppd = handleTest ./ndppd.nix {};
|
||||
nebula = handleTest ./nebula.nix {};
|
||||
neo4j = handleTest ./neo4j.nix {};
|
||||
netdata = handleTest ./netdata.nix {};
|
||||
networking.networkd = handleTest ./networking.nix { networkd = true; };
|
||||
|
223
nixos/tests/nebula.nix
Normal file
223
nixos/tests/nebula.nix
Normal file
@ -0,0 +1,223 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: let
|
||||
|
||||
# We'll need to be able to trade cert files between nodes via scp.
|
||||
inherit (import ./ssh-keys.nix pkgs)
|
||||
snakeOilPrivateKey snakeOilPublicKey;
|
||||
|
||||
makeNebulaNode = { config, ... }: name: extraConfig: lib.mkMerge [
|
||||
{
|
||||
# Expose nebula for doing cert signing.
|
||||
environment.systemPackages = [ pkgs.nebula ];
|
||||
users.users.root.openssh.authorizedKeys.keys = [ snakeOilPublicKey ];
|
||||
services.openssh.enable = true;
|
||||
|
||||
services.nebula.networks.smoke = {
|
||||
# Note that these paths won't exist when the machine is first booted.
|
||||
ca = "/etc/nebula/ca.crt";
|
||||
cert = "/etc/nebula/${name}.crt";
|
||||
key = "/etc/nebula/${name}.key";
|
||||
listen = { host = "0.0.0.0"; port = 4242; };
|
||||
};
|
||||
}
|
||||
extraConfig
|
||||
];
|
||||
|
||||
in
|
||||
{
|
||||
name = "nebula";
|
||||
|
||||
nodes = {
|
||||
|
||||
lighthouse = { ... } @ args:
|
||||
makeNebulaNode args "lighthouse" {
|
||||
networking.interfaces.eth1.ipv4.addresses = [{
|
||||
address = "192.168.1.1";
|
||||
prefixLength = 24;
|
||||
}];
|
||||
|
||||
services.nebula.networks.smoke = {
|
||||
isLighthouse = true;
|
||||
firewall = {
|
||||
outbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
inbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
node2 = { ... } @ args:
|
||||
makeNebulaNode args "node2" {
|
||||
networking.interfaces.eth1.ipv4.addresses = [{
|
||||
address = "192.168.1.2";
|
||||
prefixLength = 24;
|
||||
}];
|
||||
|
||||
services.nebula.networks.smoke = {
|
||||
staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; };
|
||||
isLighthouse = false;
|
||||
lighthouses = [ "10.0.100.1" ];
|
||||
firewall = {
|
||||
outbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
inbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
node3 = { ... } @ args:
|
||||
makeNebulaNode args "node3" {
|
||||
networking.interfaces.eth1.ipv4.addresses = [{
|
||||
address = "192.168.1.3";
|
||||
prefixLength = 24;
|
||||
}];
|
||||
|
||||
services.nebula.networks.smoke = {
|
||||
staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; };
|
||||
isLighthouse = false;
|
||||
lighthouses = [ "10.0.100.1" ];
|
||||
firewall = {
|
||||
outbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
inbound = [ { port = "any"; proto = "any"; host = "lighthouse"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
node4 = { ... } @ args:
|
||||
makeNebulaNode args "node4" {
|
||||
networking.interfaces.eth1.ipv4.addresses = [{
|
||||
address = "192.168.1.4";
|
||||
prefixLength = 24;
|
||||
}];
|
||||
|
||||
services.nebula.networks.smoke = {
|
||||
enable = true;
|
||||
staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; };
|
||||
isLighthouse = false;
|
||||
lighthouses = [ "10.0.100.1" ];
|
||||
firewall = {
|
||||
outbound = [ { port = "any"; proto = "any"; host = "lighthouse"; } ];
|
||||
inbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
node5 = { ... } @ args:
|
||||
makeNebulaNode args "node5" {
|
||||
networking.interfaces.eth1.ipv4.addresses = [{
|
||||
address = "192.168.1.5";
|
||||
prefixLength = 24;
|
||||
}];
|
||||
|
||||
services.nebula.networks.smoke = {
|
||||
enable = false;
|
||||
staticHostMap = { "10.0.100.1" = [ "192.168.1.1:4242" ]; };
|
||||
isLighthouse = false;
|
||||
lighthouses = [ "10.0.100.1" ];
|
||||
firewall = {
|
||||
outbound = [ { port = "any"; proto = "any"; host = "lighthouse"; } ];
|
||||
inbound = [ { port = "any"; proto = "any"; host = "any"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
testScript = let
|
||||
|
||||
setUpPrivateKey = name: ''
|
||||
${name}.succeed(
|
||||
"mkdir -p /root/.ssh",
|
||||
"chown 700 /root/.ssh",
|
||||
"cat '${snakeOilPrivateKey}' > /root/.ssh/id_snakeoil",
|
||||
"chown 600 /root/.ssh/id_snakeoil",
|
||||
)
|
||||
'';
|
||||
|
||||
# From what I can tell, StrictHostKeyChecking=no is necessary for ssh to work between machines.
|
||||
sshOpts = "-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentityFile=/root/.ssh/id_snakeoil";
|
||||
|
||||
restartAndCheckNebula = name: ip: ''
|
||||
${name}.systemctl("restart nebula@smoke.service")
|
||||
${name}.succeed("ping -c5 ${ip}")
|
||||
'';
|
||||
|
||||
# Create a keypair on the client node, then use the public key to sign a cert on the lighthouse.
|
||||
signKeysFor = name: ip: ''
|
||||
lighthouse.wait_for_unit("sshd.service")
|
||||
${name}.wait_for_unit("sshd.service")
|
||||
${name}.succeed(
|
||||
"mkdir -p /etc/nebula",
|
||||
"nebula-cert keygen -out-key /etc/nebula/${name}.key -out-pub /etc/nebula/${name}.pub",
|
||||
"scp ${sshOpts} /etc/nebula/${name}.pub 192.168.1.1:/tmp/${name}.pub",
|
||||
)
|
||||
lighthouse.succeed(
|
||||
'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',
|
||||
)
|
||||
${name}.succeed(
|
||||
"scp ${sshOpts} 192.168.1.1:/tmp/${name}.crt /etc/nebula/${name}.crt",
|
||||
"scp ${sshOpts} 192.168.1.1:/etc/nebula/ca.crt /etc/nebula/ca.crt",
|
||||
)
|
||||
'';
|
||||
|
||||
in ''
|
||||
start_all()
|
||||
|
||||
# Create the certificate and sign the lighthouse's keys.
|
||||
${setUpPrivateKey "lighthouse"}
|
||||
lighthouse.succeed(
|
||||
"mkdir -p /etc/nebula",
|
||||
'nebula-cert ca -name "Smoke Test" -out-crt /etc/nebula/ca.crt -out-key /etc/nebula/ca.key',
|
||||
'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',
|
||||
)
|
||||
|
||||
# Reboot the lighthouse and verify that the nebula service comes up on boot.
|
||||
# Since rebooting takes a while, we'll just restart the service on the other nodes.
|
||||
lighthouse.shutdown()
|
||||
lighthouse.start()
|
||||
lighthouse.wait_for_unit("nebula@smoke.service")
|
||||
lighthouse.succeed("ping -c5 10.0.100.1")
|
||||
|
||||
# Create keys for node2's nebula service and test that it comes up.
|
||||
${setUpPrivateKey "node2"}
|
||||
${signKeysFor "node2" "10.0.100.2/24"}
|
||||
${restartAndCheckNebula "node2" "10.0.100.2"}
|
||||
|
||||
# Create keys for node3's nebula service and test that it comes up.
|
||||
${setUpPrivateKey "node3"}
|
||||
${signKeysFor "node3" "10.0.100.3/24"}
|
||||
${restartAndCheckNebula "node3" "10.0.100.3"}
|
||||
|
||||
# Create keys for node4's nebula service and test that it comes up.
|
||||
${setUpPrivateKey "node4"}
|
||||
${signKeysFor "node4" "10.0.100.4/24"}
|
||||
${restartAndCheckNebula "node4" "10.0.100.4"}
|
||||
|
||||
# Create keys for node4's nebula service and test that it does not come up.
|
||||
${setUpPrivateKey "node5"}
|
||||
${signKeysFor "node5" "10.0.100.5/24"}
|
||||
node5.fail("systemctl status nebula@smoke.service")
|
||||
node5.fail("ping -c5 10.0.100.5")
|
||||
|
||||
# The lighthouse can ping node2 and node3 but not node5
|
||||
lighthouse.succeed("ping -c3 10.0.100.2")
|
||||
lighthouse.succeed("ping -c3 10.0.100.3")
|
||||
lighthouse.fail("ping -c3 10.0.100.5")
|
||||
|
||||
# node2 can ping the lighthouse, but not node3 because of its inbound firewall
|
||||
node2.succeed("ping -c3 10.0.100.1")
|
||||
node2.fail("ping -c3 10.0.100.3")
|
||||
|
||||
# node3 can ping the lighthouse and node2
|
||||
node3.succeed("ping -c3 10.0.100.1")
|
||||
node3.succeed("ping -c3 10.0.100.2")
|
||||
|
||||
# node4 can ping the lighthouse but not node2 or node3
|
||||
node4.succeed("ping -c3 10.0.100.1")
|
||||
node4.fail("ping -c3 10.0.100.2")
|
||||
node4.fail("ping -c3 10.0.100.3")
|
||||
|
||||
# node2 can ping node3 now that node3 pinged it first
|
||||
node2.succeed("ping -c3 10.0.100.3")
|
||||
# node4 can ping node2 if node2 pings it first
|
||||
node2.succeed("ping -c3 10.0.100.4")
|
||||
node4.succeed("ping -c3 10.0.100.2")
|
||||
'';
|
||||
})
|
@ -1,5 +1,4 @@
|
||||
{ stdenv, symlinkJoin, lib, makeWrapper
|
||||
, vimUtils
|
||||
, writeText
|
||||
, bundlerEnv, ruby
|
||||
, nodejs
|
||||
|
@ -44,7 +44,7 @@ with lib;
|
||||
# Those pieces of software we entirely ignore upstream's handling of, and just
|
||||
# make sure they're in the path if desired.
|
||||
let
|
||||
k3sVersion = "1.20.5+k3s1"; # k3s git tag
|
||||
k3sVersion = "1.20.6+k3s1"; # k3s git tag
|
||||
traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
|
||||
k3sRootVersion = "0.8.1"; # taken from ./scripts/download at the above k3s tag
|
||||
k3sCNIVersion = "0.8.6-k3s1"; # taken from ./scripts/version.sh at the above k3s tag
|
||||
@ -96,7 +96,7 @@ let
|
||||
url = "https://github.com/k3s-io/k3s";
|
||||
rev = "v${k3sVersion}";
|
||||
leaveDotGit = true; # ./scripts/version.sh depends on git
|
||||
sha256 = "sha256-7RAZkSTh15BEZ3p6u2xE9vd5fpy4KBYrl2TjtpIiStM=";
|
||||
sha256 = "sha256-IIZotJKQ/+WNmfcEJU5wFtZBufWjUp4MeVCRk4tSjyQ=";
|
||||
};
|
||||
# Stage 1 of the k3s build:
|
||||
# Let's talk about how k3s is structured.
|
||||
|
@ -7,6 +7,7 @@
|
||||
, atk
|
||||
, cairo
|
||||
, dbus
|
||||
, dpkg
|
||||
, libGL
|
||||
, fontconfig
|
||||
, freetype
|
||||
@ -29,11 +30,11 @@
|
||||
assert pulseaudioSupport -> libpulseaudio != null;
|
||||
|
||||
let
|
||||
version = "5.6.13632.0328";
|
||||
version = "5.6.16775.0418";
|
||||
srcs = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
|
||||
sha256 = "0nskpg3rbv40jcbih95sfdr0kfv5hjv50z9jdz1cddl8v7hbqg71";
|
||||
url = "https://zoom.us/client/${version}/zoom_amd64.deb";
|
||||
sha256 = "1fmzwxq8jv5k1b2kvg1ij9g6cdp1hladd8vm3cxzd8fywdjcndim";
|
||||
};
|
||||
};
|
||||
|
||||
@ -70,17 +71,21 @@ in stdenv.mkDerivation rec {
|
||||
inherit version;
|
||||
src = srcs.${stdenv.hostPlatform.system};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
unpackCmd = ''
|
||||
mkdir out
|
||||
dpkg -x $curSrc out
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir $out
|
||||
tar -C $out -xf ${src}
|
||||
mv $out/usr/* $out/
|
||||
mv usr/* $out/
|
||||
mv opt $out/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
@ -0,0 +1,54 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, openssl
|
||||
, pkg-config
|
||||
, installShellFiles
|
||||
, enableCompletions ? stdenv.hostPlatform == stdenv.buildPlatform
|
||||
, Security
|
||||
, libiconv
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "himalaya";
|
||||
version = "0.2.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "soywod";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1fl3lingb4wdh6bz4calzbibixg44wnnwi1qh0js1ijp8b6ll560";
|
||||
};
|
||||
|
||||
cargoSha256 = "10p8di71w7hn36b1994wgk33fnj641lsp80zmccinlg5fiwyzncx";
|
||||
|
||||
nativeBuildInputs = [ ]
|
||||
++ lib.optionals (enableCompletions) [ installShellFiles ]
|
||||
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ];
|
||||
|
||||
buildInputs =
|
||||
if stdenv.hostPlatform.isDarwin then [
|
||||
Security
|
||||
libiconv
|
||||
] else [
|
||||
openssl
|
||||
];
|
||||
|
||||
# The completions are correctly installed, and there is issue that himalaya
|
||||
# generate empty completion files without mail configure.
|
||||
# This supposed to be fixed in 0.2.7
|
||||
postInstall = lib.optionalString enableCompletions ''
|
||||
# Install shell function
|
||||
installShellCompletion --cmd himalaya \
|
||||
--bash <($out/bin/himalaya completion bash) \
|
||||
--fish <($out/bin/himalaya completion fish) \
|
||||
--zsh <($out/bin/himalaya completion zsh)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "CLI email client written in Rust";
|
||||
homepage = "https://github.com/soywod/himalaya";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ yanganto ];
|
||||
};
|
||||
}
|
@ -216,6 +216,8 @@ stdenv.mkDerivation rec {
|
||||
in
|
||||
(concatStringsSep "\n"
|
||||
(flatten [
|
||||
"runHook preInstall"
|
||||
|
||||
(optionalString (withScripting) "buildPythonPath \"${base} $pythonPath\" \n")
|
||||
|
||||
# wrap each of the directly usable tools
|
||||
@ -227,10 +229,19 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# link in the CLI utils
|
||||
(map (util: "ln -s ${base}/bin/${util} $out/bin/${util}") utils)
|
||||
|
||||
"runHook postInstall"
|
||||
])
|
||||
)
|
||||
;
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
ln -s ${base}/share/applications $out/share/applications
|
||||
ln -s ${base}/share/icons $out/share/icons
|
||||
ln -s ${base}/share/mime $out/share/mime
|
||||
'';
|
||||
|
||||
# can't run this for each pname
|
||||
# stable and unstable are in the same versions.nix
|
||||
# and kicad-small reuses stable
|
||||
@ -248,7 +259,7 @@ stdenv.mkDerivation rec {
|
||||
KiCad is an open source software suite for Electronic Design Automation.
|
||||
The Programs handle Schematic Capture, and PCB Layout with Gerber output.
|
||||
'';
|
||||
license = lib.licenses.agpl3;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
# berce seems inactive...
|
||||
maintainers = with lib.maintainers; [ evils kiwi berce ];
|
||||
# kicad is cross platform
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ lib, fetchFromGitHub, ocamlPackages, rsync }:
|
||||
|
||||
ocamlPackages.buildDunePackage {
|
||||
ocamlPackages.buildDunePackage rec {
|
||||
pname = "beluga";
|
||||
version = "unstable-2020-03-11";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Beluga-lang";
|
||||
repo = "Beluga";
|
||||
rev = "6133b2f572219333f304bb4f77c177592324c55b";
|
||||
sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q";
|
||||
rev = "v${version}";
|
||||
sha256 = "1ziqjfv8jwidl8lj2mid2shhgqhv31dfh5wad2zxjpvf6038ahsw";
|
||||
};
|
||||
|
||||
useDune2 = true;
|
||||
|
@ -2,21 +2,28 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-interactive-rebase-tool";
|
||||
version = "2.0.0";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MitMaro";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "117zwxyq2vc33nbnfpjbdr5vc2l5ymf6ln1dm5551ha3y3gdq3bf";
|
||||
sha256 = "sha256-DYl/GUbeNtKmXoR3gq8mK8EfsZNVNlrdngAwfzG+epw=";
|
||||
};
|
||||
|
||||
cargoSha256 = "051llwk9swq03xdqwyj0hlyv2ywq2f1cnks95nygyy393q7v930x";
|
||||
cargoSha256 = "sha256-1joMWPfn0s+pLsO6NHMT6AoXZ33R8MY2AWSrROY2mw8=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
# external_editor::tests::* tests fail
|
||||
doCheck = false;
|
||||
checkFlags = [
|
||||
"--skip=external_editor::tests::edit_success"
|
||||
"--skip=external_editor::tests::editor_non_zero_exit"
|
||||
"--skip=external_editor::tests::empty_edit_abort_rebase"
|
||||
"--skip=external_editor::tests::empty_edit_error"
|
||||
"--skip=external_editor::tests::empty_edit_noop"
|
||||
"--skip=external_editor::tests::empty_edit_re_edit_rebase_file"
|
||||
"--skip=external_editor::tests::empty_edit_undo_and_edit"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
|
||||
|
@ -103,7 +103,7 @@ mkDerivation rec {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/jellyfin/jellyfin-media-player";
|
||||
description = "Jellyfin Desktop Client based on Plex Media Player";
|
||||
license = with licenses; [ gpl2Plus mit ];
|
||||
license = with licenses; [ gpl2Only mit ];
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||
maintainers = with maintainers; [ jojosch ];
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchurl, mpv-unwrapped, lib }:
|
||||
{ stdenvNoCC, mpv-unwrapped, lib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "mpv-autoload";
|
||||
version = mpv-unwrapped.version;
|
||||
src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autoload.lua";
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchgit, lib
|
||||
{ stdenvNoCC, fetchgit, lib
|
||||
, yad, mkvtoolnix-cli, libnotify }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "mpv-convert-script";
|
||||
version = "2016-03-18";
|
||||
src = fetchgit {
|
||||
@ -30,14 +30,17 @@ stdenv.mkDerivation {
|
||||
'';
|
||||
passthru.scriptName = "convert_script.lua";
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "Convert parts of a video while you are watching it in mpv";
|
||||
homepage = "https://gist.github.com/Zehkul/25ea7ae77b30af959be0";
|
||||
maintainers = [ lib.maintainers.Profpatsch ];
|
||||
maintainers = [ maintainers.Profpatsch ];
|
||||
longDescription = ''
|
||||
When this script is loaded into mpv, you can hit Alt+W to mark the beginning
|
||||
and Alt+W again to mark the end of the clip. Then a settings window opens.
|
||||
'';
|
||||
license = licenses.unfree;
|
||||
# script crashes mpv. See https://github.com/NixOS/nixpkgs/issues/113202
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitHub, curl, xclip }:
|
||||
{ lib, stdenvNoCC, fetchFromGitHub, curl, xclip }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "mpvacious";
|
||||
version = "0.14";
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib, stdenv
|
||||
{ lib, stdenvNoCC
|
||||
, fetchFromGitHub }:
|
||||
stdenv.mkDerivation rec {
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "simple-mpv-ui";
|
||||
version = "1.0.0";
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, python3 }:
|
||||
{ lib, stdenvNoCC, fetchFromGitHub, fetchpatch, python3 }:
|
||||
|
||||
# Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
|
||||
stdenv.mkDerivation {
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "mpv_sponsorblock";
|
||||
version = "unstable-2020-07-05";
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ fetchFromGitHub, lib, python3, stdenv }:
|
||||
{ fetchFromGitHub, lib, python3, stdenvNoCC }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "mpv_thumbnail_script";
|
||||
version = "unstable-2020-01-16";
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
|
||||
, openglSupport ? libGLSupported, libGL
|
||||
, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
|
||||
, x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
|
||||
, x11Support ? !stdenv.targetPlatform.isWindows && !stdenv.hostPlatform.isAndroid
|
||||
, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor
|
||||
, libXinerama, libXext, libXxf86vm, libXrandr
|
||||
, waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
|
||||
"--disable-oss"
|
||||
] ++ optional (!x11Support) "--without-x"
|
||||
++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib"
|
||||
++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles"
|
||||
++ optional stdenv.isDarwin "--disable-sdltest";
|
||||
|
||||
# We remove libtool .la files when static libs are requested,
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cxxopts";
|
||||
version = "2.2.1";
|
||||
version = "unstable-2020-12-14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jarro2783";
|
||||
repo = name;
|
||||
rev = "v${version}";
|
||||
sha256 = "0d3y747lsh1wkalc39nxd088rbypxigm991lk3j91zpn56whrpha";
|
||||
rev = "2d8e17c4f88efce80e274cb03eeb902e055a91d3";
|
||||
sha256 = "0pwrac81zfqjs17g3hx8r3ds2xf04npb6mz111qjy4bx17314ib7";
|
||||
};
|
||||
|
||||
buildInputs = lib.optional enableUnicodeHelp [ icu.dev ];
|
||||
|
@ -0,0 +1,44 @@
|
||||
From 89c7c160f897f64e17fb74efffccfd1fc16f8b7d Mon Sep 17 00:00:00 2001
|
||||
From: Jappie Klooster <jappieklooster@hotmail.com>
|
||||
Date: Fri, 2 Apr 2021 14:22:02 -0400
|
||||
Subject: [PATCH] Add cmake install directives.
|
||||
|
||||
To make nix builds work, it expect a `make install` command to
|
||||
be available.
|
||||
Adding these directives seems to fix the build.
|
||||
|
||||
If it's no trouble to you, please add them.
|
||||
|
||||
Maybe don't need endian
|
||||
---
|
||||
CMakeLists.txt | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 06e416f..8d6f489 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -6,6 +6,8 @@ set(CMAKE_CXX_STANDARD 17)
|
||||
add_library(IODash INTERFACE)
|
||||
target_include_directories(IODash INTERFACE .)
|
||||
|
||||
+include(GNUInstallDirs)
|
||||
+
|
||||
add_executable(IODash_Test test.cpp)
|
||||
target_link_libraries(IODash_Test IODash)
|
||||
|
||||
@@ -20,3 +22,11 @@ if (DEFINED BUILD_BENCHMARKS AND (${BUILD_BENCHMARKS}))
|
||||
target_link_libraries(boost_Benchmark_HTTP boost_system pthread)
|
||||
endif()
|
||||
|
||||
+install(TARGETS IODash
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
+install(FILES IODash.hpp
|
||||
+ DESTINATION include/)
|
||||
+
|
||||
+install(FILES
|
||||
+ IODash/Buffer.hpp IODash/SocketAddress.hpp IODash/File.hpp IODash/Socket.hpp IODash/EventLoop.hpp IODash/Serial.hpp IODash/Timer.hpp
|
||||
+ DESTINATION include/IODash)
|
||||
--
|
||||
2.29.2
|
||||
|
27
pkgs/development/libraries/iodash/default.nix
Normal file
27
pkgs/development/libraries/iodash/default.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "iodash";
|
||||
version = "0.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YukiWorkshop";
|
||||
repo = "IODash";
|
||||
rev = "9dcb26621a9c17dbab704b5bab0c3a5fc72624cb";
|
||||
sha256 = "0db5y2206fwh3h1pzjm9hy3m76inm0xpm1c5gvrladz6hiqfp7bx";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
# adds missing cmake install directives
|
||||
# https://github.com/YukiWorkshop/IODash/pull/2
|
||||
patches = [ ./0001-Add-cmake-install-directives.patch];
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/YukiWorkshop/IODash";
|
||||
description = "Lightweight C++ I/O library for POSIX operation systems";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jappie ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
@ -11,11 +11,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
configureFlags = lib.optional stdenv.targetPlatform.isWindows "--disable-examples";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.hyperrealm.com/libconfig";
|
||||
description = "A simple library for processing structured configuration files";
|
||||
license = licenses.lgpl3;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
platforms = with platforms; linux ++ darwin ++ windows;
|
||||
};
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 7f208aaf21aa468013fc41e67c32f6a6c8c08249 Mon Sep 17 00:00:00 2001
|
||||
From: Jappie Klooster <jappieklooster@hotmail.com>
|
||||
Date: Fri, 2 Apr 2021 16:01:05 -0400
|
||||
Subject: [PATCH] Add cmake install directives
|
||||
|
||||
To make nix builds work, it expect a make install command to
|
||||
be available.
|
||||
Adding these directives seems to fix the build.
|
||||
|
||||
If it's no trouble to you, please add them.
|
||||
---
|
||||
CMakeLists.txt | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index f9db618..425d391 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -4,10 +4,17 @@ project(libevdevPlus)
|
||||
set(SOURCE_FILES
|
||||
evdevPlus.cpp evdevPlus.hpp CommonIncludes.hpp InputEvent.hpp Resource.cpp)
|
||||
|
||||
+include(GNUInstallDirs)
|
||||
+
|
||||
add_library(evdevPlus ${SOURCE_FILES})
|
||||
target_include_directories(evdevPlus PUBLIC .)
|
||||
|
||||
add_executable(evdevPlus_test test.cpp)
|
||||
target_link_libraries(evdevPlus_test evdevPlus)
|
||||
|
||||
-configure_file(evdevPlus.pc.in evdevPlus.pc @ONLY)
|
||||
\ No newline at end of file
|
||||
+configure_file(evdevPlus.pc.in evdevPlus.pc @ONLY)
|
||||
+
|
||||
+install(TARGETS evdevPlus
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
+install(FILES evdevPlus.hpp CommonIncludes.hpp InputEvent.hpp
|
||||
+ DESTINATION include/)
|
||||
--
|
||||
2.29.2
|
||||
|
@ -2,13 +2,17 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libevdevplus";
|
||||
version = "unstable-2019-10-01";
|
||||
version = "unstable-2021-04-02";
|
||||
|
||||
# adds missing cmake install directives
|
||||
# https://github.com/YukiWorkshop/libevdevPlus/pull/10
|
||||
patches = [ ./0001-Add-cmake-install-directives.patch];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YukiWorkshop";
|
||||
repo = "libevdevPlus";
|
||||
rev = "e863df2ade43e2c7d7748cc33ca27fb3eed325ca";
|
||||
sha256 = "18z6pn4j7fhmwwh0q22ip5nn7sc1hfgwvkdzqhkja60i8cw2cvvj";
|
||||
rev = "b4d4b3143056424a3da9f0516ca02a47209ef757";
|
||||
sha256 = "09y65s16gch0w7fy1s9yjk9gz3bjzxix36h5wmwww6lkj2i1z3rj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 265e406e254c8d84016b12b344d8df71d1765dd1 Mon Sep 17 00:00:00 2001
|
||||
From: Jappie Klooster <jappieklooster@hotmail.com>
|
||||
Date: Fri, 2 Apr 2021 16:33:18 -0400
|
||||
Subject: [PATCH] Add cmake install directives
|
||||
|
||||
To make nix builds work, it expect a make install command to
|
||||
be available.
|
||||
Adding these directives seems to fix the build.
|
||||
|
||||
If it's no trouble to you, please consider adding them.
|
||||
---
|
||||
CMakeLists.txt | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index cbfc9c1..948c432 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -7,6 +7,8 @@ set(SOURCE_FILES
|
||||
uInput.cpp uInputSetup.cpp uInputResource.cpp
|
||||
uInput.hpp CommonIncludes.hpp uInputSetup.hpp)
|
||||
|
||||
+include(GNUInstallDirs)
|
||||
+
|
||||
add_library(uInputPlus ${SOURCE_FILES})
|
||||
target_include_directories(uInputPlus PUBLIC .)
|
||||
|
||||
@@ -15,3 +17,9 @@ target_link_libraries(uInputPlus_test uInputPlus)
|
||||
|
||||
configure_file(uInputPlus.pc.in uInputPlus.pc @ONLY)
|
||||
|
||||
+
|
||||
+install(TARGETS uInputPlus
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
+install(FILES uInput.hpp CommonIncludes.hpp uInputSetup.hpp
|
||||
+ DESTINATION include/)
|
||||
+
|
||||
--
|
||||
2.29.2
|
||||
|
@ -1,14 +1,17 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libuinputplus";
|
||||
version = "2019-10-01";
|
||||
version = "2021-04-02";
|
||||
|
||||
# adds missing cmake install directives
|
||||
# https://github.com/YukiWorkshop/libuInputPlus/pull/7
|
||||
patches = [ ./0001-Add-cmake-install-directives.patch];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YukiWorkshop";
|
||||
repo = "libuInputPlus";
|
||||
rev = "962f180b4cc670e1f5cc73c2e4d5d196ae52d630";
|
||||
sha256 = "0jy5i7bmjad7hw1qcyjl4swqribp2027s9g3609zwj7lj8z5x0bg";
|
||||
rev = "f7f18eb339bba61a43f2cad481a9b1a453a66957";
|
||||
sha256 = "0sind2ghhy4h9kfkr5hsmhcq0di4ifwqyv4gac96rgj5mwvs33lp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ lib, stdenv, fetchurl, plib, freeglut, xorgproto, libX11, libXext, libXi
|
||||
, libICE, libSM, libXt, libXmu, libGLU, libGL, boost, zlib, libjpeg, freealut
|
||||
, openscenegraph, openal, expat, cmake, apr
|
||||
, openscenegraph, openal, expat, cmake, apr, xz
|
||||
, curl
|
||||
}:
|
||||
let
|
||||
version = "2020.3.6";
|
||||
version = "2020.3.8";
|
||||
shortVersion = builtins.substring 0 6 version;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
@ -13,13 +13,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-7D7KRNIffgUr6vwbni1XwW+8GtXwM6vJZ7V6/QLDVmk=";
|
||||
sha256 = "sha256-UXcWV9MPu7c+QlFjrhxtQ6ruAcxuKtewwphu4tt5dWc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ plib freeglut xorgproto libX11 libXext libXi
|
||||
libICE libSM libXt libXmu libGLU libGL boost zlib libjpeg freealut
|
||||
openscenegraph openal expat apr curl ];
|
||||
openscenegraph openal expat apr curl xz ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simulation construction toolkit";
|
||||
|
@ -1,46 +1,24 @@
|
||||
{ stdenv, lib, fetchurl, fetchzip, ocaml, findlib, tcl, tk }:
|
||||
{ stdenv, lib, makeWrapper, fetchzip, ocaml, findlib, tcl, tk }:
|
||||
|
||||
let OCamlVersionAtLeast = lib.versionAtLeast ocaml.version; in
|
||||
|
||||
if !OCamlVersionAtLeast "4.04"
|
||||
then throw "labltk is not available for OCaml ${ocaml.version}"
|
||||
else
|
||||
|
||||
let param =
|
||||
let mkNewParam = { version, sha256 }: {
|
||||
let
|
||||
params =
|
||||
let mkNewParam = { version, sha256, rev ? version }: {
|
||||
inherit version;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/garrigue/labltk/archive/${version}.tar.gz";
|
||||
url = "https://github.com/garrigue/labltk/archive/${rev}.tar.gz";
|
||||
inherit sha256;
|
||||
};
|
||||
}; in
|
||||
let mkOldParam = { version, key, sha256 }: {
|
||||
src = fetchurl {
|
||||
url = "https://forge.ocamlcore.org/frs/download.php/${key}/labltk-${version}.tar.gz";
|
||||
inherit sha256;
|
||||
};
|
||||
inherit version;
|
||||
}; in
|
||||
rec {
|
||||
"4.04" = mkOldParam {
|
||||
version = "8.06.2";
|
||||
key = "1628";
|
||||
sha256 = "1p97j9s33axkb4yyl0byhmhlyczqarb886ajpyggizy2br3a0bmk";
|
||||
};
|
||||
"4.05" = mkOldParam {
|
||||
version = "8.06.3";
|
||||
key = "1701";
|
||||
sha256 = "1rka9jpg3kxqn7dmgfsa7pmsdwm16x7cn4sh15ijyyrad9phgdxn";
|
||||
};
|
||||
"4.06" = mkOldParam {
|
||||
"4.06" = mkNewParam {
|
||||
version = "8.06.4";
|
||||
key = "1727";
|
||||
sha256 = "0j3rz0zz4r993wa3ssnk5s416b1jhj58l6z2jk8238a86y7xqcii";
|
||||
rev = "labltk-8.06.4";
|
||||
sha256 = "03xwnnnahb2rf4siymzqyqy8zgrx3h26qxjgbp5dh1wdl7n02c7g";
|
||||
};
|
||||
"4.07" = mkOldParam {
|
||||
"4.07" = mkNewParam {
|
||||
version = "8.06.5";
|
||||
key = "1764";
|
||||
sha256 = "0wgx65y1wkgf22ihpqmspqfp95fqbj3pldhp1p3b1mi8rmc37zwj";
|
||||
rev = "1b71e2c6f3ae6847d3d5e79bf099deb7330fb419";
|
||||
sha256 = "02vchmrm3izrk7daldd22harhgrjhmbw6i1pqw6hmfmrmrypypg2";
|
||||
};
|
||||
_8_06_7 = mkNewParam {
|
||||
version = "8.06.7";
|
||||
@ -60,14 +38,16 @@ let param =
|
||||
version = "8.06.10";
|
||||
sha256 = "06cck7wijq4zdshzhxm6jyl8k3j0zglj2axsyfk6q1sq754zyf4a";
|
||||
};
|
||||
}.${builtins.substring 0 4 ocaml.version};
|
||||
};
|
||||
param = params . ${lib.versions.majorMinor ocaml.version}
|
||||
or (throw "labltk is not available for OCaml ${ocaml.version}");
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit (param) version src;
|
||||
name = "ocaml${ocaml.version}-labltk-${version}";
|
||||
|
||||
buildInputs = [ ocaml findlib tcl tk ];
|
||||
buildInputs = [ ocaml findlib tcl tk makeWrapper ];
|
||||
|
||||
configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ];
|
||||
dontAddPrefix = true;
|
||||
@ -79,6 +59,10 @@ stdenv.mkDerivation rec {
|
||||
postInstall = ''
|
||||
mkdir -p $OCAMLFIND_DESTDIR/stublibs
|
||||
mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/
|
||||
for p in $out/bin/*
|
||||
do
|
||||
wrapProgram $p --set CAML_LD_LIBRARY_PATH $OCAMLFIND_DESTDIR/stublibs
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
35
pkgs/development/python-modules/hachoir/default.nix
Normal file
35
pkgs/development/python-modules/hachoir/default.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
, urwid
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hachoir";
|
||||
version = "3.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vstinner";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "06544qmmimvaznwcjs8wwfih1frdd7anwcw5z07cf69l8p146p0y";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
urwid
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "hachoir" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python library to view and edit a binary stream";
|
||||
homepage = "https://hachoir.readthedocs.io/";
|
||||
license = with licenses; [ gpl2Only ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/jellyfin/jellyfin-apiclient-python";
|
||||
description = "Python API client for Jellyfin";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ jojosch ];
|
||||
};
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/moses-palmer/pystray";
|
||||
description = "This library allows you to create a system tray icon";
|
||||
license = with licenses; [ gpl3Only lgpl3Only ];
|
||||
license = with licenses; [ gpl3Plus lgpl3Plus ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ jojosch ];
|
||||
};
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pytube";
|
||||
version = "10.7.1";
|
||||
version = "10.7.2";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
owner = "pytube";
|
||||
repo = "pytube";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-a9MYEQFJXfPXYkWiuZkjt/PGs73Dm5614/Xvv6Nn8RA=";
|
||||
sha256 = "sha256-85pHzfQYyqwX8mQ5msIojM/0FSfeaC12KJw4mXmji3g=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
@ -1,4 +1,5 @@
|
||||
{ lib
|
||||
, fetchpatch
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, buildPackages
|
||||
@ -19,6 +20,7 @@
|
||||
, python3
|
||||
, ruby
|
||||
, lua
|
||||
, capstone
|
||||
, useX11 ? false
|
||||
, rubyBindings ? false
|
||||
, pythonBindings ? false
|
||||
@ -30,13 +32,11 @@ let
|
||||
|
||||
#<generated>
|
||||
# DO NOT EDIT! Automatically generated by ./update.py
|
||||
gittap = "5.1.1";
|
||||
gittip = "a86f8077fc148abd6443384362a3717cd4310e64";
|
||||
rev = "5.1.1";
|
||||
version = "5.1.1";
|
||||
sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3";
|
||||
cs_ver = "4.0.2";
|
||||
cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
|
||||
gittap = "5.2.0";
|
||||
gittip = "cf3db945083fb4dab951874e5ec1283128deab11";
|
||||
rev = "5.2.0";
|
||||
version = "5.2.0";
|
||||
sha256 = "08azxfk6mw2vr0x4zbz0612rk7pj4mfz8shrzc9ima77wb52b8sm";
|
||||
#</generated>
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
@ -49,22 +49,13 @@ stdenv.mkDerivation {
|
||||
inherit rev sha256;
|
||||
};
|
||||
|
||||
postPatch =
|
||||
let
|
||||
capstone = fetchFromGitHub {
|
||||
owner = "aquynh";
|
||||
repo = "capstone";
|
||||
# version from $sourceRoot/shlr/Makefile
|
||||
rev = cs_ver;
|
||||
sha256 = cs_sha256;
|
||||
};
|
||||
in
|
||||
''
|
||||
mkdir -p build/shlr
|
||||
cp -r ${capstone} capstone-${cs_ver}
|
||||
chmod -R +w capstone-${cs_ver}
|
||||
tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
|
||||
'';
|
||||
patches = [
|
||||
# fix build against openssl, included in next release
|
||||
(fetchpatch {
|
||||
url = "https://github.com/radareorg/radare2/commit/e5e7469b6450c374e0884d35d44824e1a4eb46b4.patch";
|
||||
sha256 = "sha256-xTmMHvUdW7d2QG7d4hlvMgEcegND7pGU745TWGqzY44=";
|
||||
})
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
|
||||
@ -80,6 +71,7 @@ stdenv.mkDerivation {
|
||||
"--with-sysmagic"
|
||||
"--with-syszip"
|
||||
"--with-sysxxhash"
|
||||
"--with-syscapstone"
|
||||
"--with-openssl"
|
||||
];
|
||||
|
||||
@ -87,8 +79,17 @@ stdenv.mkDerivation {
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
|
||||
++ optional useX11 [ gtkdialog vte gtk2 ]
|
||||
buildInputs = [
|
||||
capstone
|
||||
file
|
||||
readline
|
||||
libusb-compat-0_1
|
||||
libewf
|
||||
perl
|
||||
zlib
|
||||
openssl
|
||||
libuv
|
||||
] ++ optional useX11 [ gtkdialog vte gtk2 ]
|
||||
++ optional rubyBindings [ ruby ]
|
||||
++ optional pythonBindings [ python3 ]
|
||||
++ optional luaBindings [ lua ];
|
||||
|
@ -55,24 +55,12 @@ def git(dirname: str, *args: str) -> str:
|
||||
def get_repo_info(dirname: str, rev: str) -> Dict[str, str]:
|
||||
sha256 = prefetch_github("radare", "radare2", rev)
|
||||
|
||||
cs_ver = None
|
||||
with open(Path(dirname).joinpath("shlr", "Makefile")) as makefile:
|
||||
for l in makefile:
|
||||
match = re.match("CS_VER=(\S+)", l)
|
||||
if match:
|
||||
cs_ver = match.group(1)
|
||||
assert cs_ver is not None
|
||||
|
||||
cs_sha256 = prefetch_github("aquynh", "capstone", cs_ver)
|
||||
|
||||
return dict(
|
||||
rev=rev,
|
||||
sha256=sha256,
|
||||
version_commit=git(dirname, "rev-list", "--all", "--count"),
|
||||
gittap=git(dirname, "describe", "--tags", "--match", "[0-9]*"),
|
||||
gittip=git(dirname, "rev-parse", "HEAD"),
|
||||
cs_ver=cs_ver,
|
||||
cs_sha256=cs_sha256,
|
||||
)
|
||||
|
||||
|
||||
@ -107,8 +95,6 @@ def main() -> None:
|
||||
rev = "{info["rev"]}";
|
||||
version = "{version}";
|
||||
sha256 = "{info["sha256"]}";
|
||||
cs_ver = "{info["cs_ver"]}";
|
||||
cs_sha256 = "{info["cs_sha256"]}";
|
||||
#</generated>"""
|
||||
)
|
||||
elif "#</generated>" in l:
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "tflint";
|
||||
version = "0.26.0";
|
||||
version = "0.27.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "terraform-linters";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "054g0lr0r1xzbss4b4j9ixkls9p1llmw61afib1381z4k0lvzgwn";
|
||||
sha256 = "1s49a3yihfkd8ib336a29ch53mpcyxzicglss7bqmqapv6zi37dg";
|
||||
};
|
||||
|
||||
vendorSha256 = "0j2avkhyq6vz6113lkf004d4hysygc6iw78v70z98s6m15mg9imn";
|
||||
vendorSha256 = "1w72n1sprwylaj96aj03h4qq43525q15iwb6vf23gf6913zhvqy3";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -1,27 +1,40 @@
|
||||
{ lib, stdenv, fetchurl, readline }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, readline
|
||||
, guileSupport ? false
|
||||
, guile
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "remake";
|
||||
remakeVersion = "4.1";
|
||||
dbgVersion = "1.1";
|
||||
remakeVersion = "4.3";
|
||||
dbgVersion = "1.5";
|
||||
version = "${remakeVersion}+dbg-${dbgVersion}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg${dbgVersion}.tar.bz2";
|
||||
sha256 = "1zi16pl7sqn1aa8b7zqm9qnd9vjqyfywqm8s6iap4clf86l7kss2";
|
||||
url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg-${dbgVersion}.tar.gz";
|
||||
sha256 = "0xlx2485y0israv2pfghmv74lxcv9i5y65agy69mif76yc4vfvif";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./glibc-2.27-glob.patch
|
||||
];
|
||||
|
||||
buildInputs = [ readline ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [ readline ]
|
||||
++ lib.optionals guileSupport [ guile ];
|
||||
|
||||
# make check fails, see https://github.com/rocky/remake/issues/117
|
||||
|
||||
meta = {
|
||||
homepage = "http://bashdb.sourceforge.net/remake/";
|
||||
license = lib.licenses.gpl3;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
description = "GNU Make with comprehensible tracing and a debugger";
|
||||
platforms = with lib.platforms; linux ++ darwin;
|
||||
maintainers = with lib.maintainers; [ bjornfor ];
|
||||
maintainers = with lib.maintainers; [ bjornfor shamilton ];
|
||||
};
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
|
||||
|
||||
let
|
||||
version = "13.10.0";
|
||||
version = "13.11.0";
|
||||
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
|
||||
docker_x86_64 = fetchurl {
|
||||
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
|
||||
sha256 = "0lw087xcbzf4d68mq0h0s31na7lww2d9nv43icw9qx05aknlcddv";
|
||||
sha256 = "1vmj7vxz1a4js9kqz7mm6xgnkmb37c1jbx2lwsq2qkrybkxfcw8k";
|
||||
};
|
||||
|
||||
docker_arm = fetchurl {
|
||||
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
|
||||
sha256 = "1mf3w85ivc8r2rmb78r4b87rrxmbb1zda9pp8n4nvd0igg23xqk8";
|
||||
sha256 = "1c1pywz7ylaysplvq1m15v7rf1sgdkh9scbqklzcm55fjk128lif";
|
||||
};
|
||||
in
|
||||
buildGoPackage rec {
|
||||
@ -30,7 +30,7 @@ buildGoPackage rec {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-runner";
|
||||
rev = "v${version}";
|
||||
sha256 = "0xy5mpcpxcmwfdrspd29z8nyn1m9i4ma7d5kbihwa2yxznylydpx";
|
||||
sha256 = "07jqsxac50xwmhlv0nbnn098290nkpsmrxw872yh67n1s9gqfd27";
|
||||
};
|
||||
|
||||
patches = [ ./fix-shell-path.patch ];
|
||||
|
@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
|
||||
meta = with lib; {
|
||||
description = "Lightweight and modular continuous integration service";
|
||||
homepage = "https://laminar.ohwg.net";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ kaction maralorn ];
|
||||
};
|
||||
|
22
pkgs/development/tools/jql/default.nix
Normal file
22
pkgs/development/tools/jql/default.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ lib, fetchFromGitHub, rustPlatform }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "jql";
|
||||
version = "2.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yamafaktory";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1rwnmp2rnzwc7anmk7nr8l4ncza8s1f8sn0r2la4ai2sx1iqn06h";
|
||||
};
|
||||
|
||||
cargoSha256 = "1c83mmdxci7l3c6ja5fhk4cak1gcbg0r0nlpbpims5gi16nf99r3";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A JSON Query Language CLI tool built with Rust";
|
||||
homepage = "https://github.com/yamafaktory/jql";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ akshgpt7 ];
|
||||
};
|
||||
}
|
@ -52,5 +52,9 @@ rec {
|
||||
version = "0.17.0";
|
||||
};
|
||||
|
||||
ocamlformat = ocamlformat_0_17_0;
|
||||
ocamlformat_0_18_0 = mkOCamlformat {
|
||||
version = "0.18.0";
|
||||
};
|
||||
|
||||
ocamlformat = ocamlformat_0_18_0;
|
||||
}
|
||||
|
@ -21,11 +21,10 @@ let src =
|
||||
"0.15.1" = "1x6fha495sgk4z05g0p0q3zfqm5l6xzmf6vjm9g9g7c820ym2q9a";
|
||||
"0.16.0" = "1vwjvvwha0ljc014v8jp8snki5zsqxlwd7x0dl0rg2i9kcmwc4mr";
|
||||
"0.17.0" = "0f1lxp697yq61z8gqxjjaqd2ns8fd1vjfggn55x0gh9dx098p138";
|
||||
"0.18.0" = "0571kzmb1h03qj74090n3mg8wfbh29qqrkdjkai6rnl5chll86lq";
|
||||
}."${version}";
|
||||
}
|
||||
; in
|
||||
|
||||
let ocamlPackages =
|
||||
};
|
||||
ocamlPackages =
|
||||
if lib.versionAtLeast version "0.14.3"
|
||||
then ocaml-ng.ocamlPackages
|
||||
else ocaml-ng.ocamlPackages_4_07
|
||||
@ -33,7 +32,7 @@ let ocamlPackages =
|
||||
|
||||
with ocamlPackages;
|
||||
|
||||
buildDunePackage rec {
|
||||
buildDunePackage {
|
||||
pname = "ocamlformat";
|
||||
inherit src version;
|
||||
|
||||
@ -45,7 +44,24 @@ buildDunePackage rec {
|
||||
useDune2 = true;
|
||||
|
||||
buildInputs =
|
||||
if lib.versionAtLeast version "0.17.0"
|
||||
if lib.versionAtLeast version "0.18.0"
|
||||
then [
|
||||
base
|
||||
cmdliner
|
||||
fpath
|
||||
odoc
|
||||
re
|
||||
stdio
|
||||
uuseg
|
||||
uutf
|
||||
fix
|
||||
menhir
|
||||
dune-build-info
|
||||
ocaml-version
|
||||
# Changed since 0.16.0:
|
||||
(ppxlib.override { version = "0.22.0"; })
|
||||
]
|
||||
else if lib.versionAtLeast version "0.17.0"
|
||||
then [
|
||||
base
|
||||
cmdliner
|
||||
|
@ -15,15 +15,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "deno";
|
||||
version = "1.9.0";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "denoland";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LrJGwsP+P8zXYwboF5791YuWGVdhcQJLOoBv+VzrYzs=";
|
||||
sha256 = "sha256-h8dXGSu7DebzwZdc92A2d9xlYy6wD34phBUj5v5KuIc=";
|
||||
};
|
||||
cargoSha256 = "sha256-JDapls3nRNETri6nZPRjZFlAFVN1Owhp965zf0Rn3ug=";
|
||||
cargoSha256 = "sha256-htxpaALOXFQpQ68YE4b0T0jhcCIONgUZwpMPCcSdcgs=";
|
||||
|
||||
# Install completions post-install
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
13
pkgs/development/web/nodejs/v16.nix
Normal file
13
pkgs/development/web/nodejs/v16.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ callPackage, openssl, python3, enableNpm ? true }:
|
||||
|
||||
let
|
||||
buildNodejs = callPackage ./nodejs.nix {
|
||||
inherit openssl;
|
||||
python = python3;
|
||||
};
|
||||
in
|
||||
buildNodejs {
|
||||
inherit enableNpm;
|
||||
version = "16.0.0";
|
||||
sha256 = "00mada0vvybizygwhzsq6gcz0m2k864lfiiqqlnw8gcc3q8r1js7";
|
||||
}
|
@ -6,15 +6,15 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2020.3.4";
|
||||
version = "2020.3.8";
|
||||
shortVersion = builtins.substring 0 6 version;
|
||||
data = stdenv.mkDerivation rec {
|
||||
pname = "flightgear-data";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
|
||||
sha256 = "1cqikbqvidfaynml9bhqfr9yw5ga35gpqrbz62z94a1skdijkpkg";
|
||||
url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.txz";
|
||||
sha256 = "sha256-/KFumHRkmRvsU/L1i11jG/KbqobnOEP7l4lyPMKHycA=";
|
||||
};
|
||||
|
||||
phases = [ "installPhase" ];
|
||||
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "02d9h10p8hyn0a25csragj6pbwmrir1z8zb92023s9vi21j7bwy8";
|
||||
sha256 = "XXDqhZ9nR+FwQ3LauZe8iGxOjlyDXDrEtj61BQGVDYc=";
|
||||
};
|
||||
|
||||
# Of all the files in the source and data archives, there doesn't seem to be
|
||||
|
61
pkgs/misc/openrussian-cli/default.nix
Normal file
61
pkgs/misc/openrussian-cli/default.nix
Normal file
@ -0,0 +1,61 @@
|
||||
{ stdenv, lib, fetchFromGitHub, gnumake, pkg-config, wget, unzip, gawk
|
||||
, sqlite, which, luaPackages, installShellFiles, makeWrapper
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openrussian-cli";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rhaberkorn";
|
||||
repo = "openrussian-cli";
|
||||
rev = version;
|
||||
sha256 = "1ria7s7dpqip2wdwn35wmkry84g8ghdqnxc9cbxzzq63vl6pgvcn";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gnumake pkg-config wget unzip gawk sqlite which installShellFiles makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = with luaPackages; [ lua luasql-sqlite3 luautf8 ];
|
||||
|
||||
makeFlags = [
|
||||
"LUA=${luaPackages.lua}/bin/lua"
|
||||
"LUAC=${luaPackages.lua}/bin/luac"
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
# Disable check as it's too slow.
|
||||
# doCheck = true;
|
||||
|
||||
#This is needed even though it's the default for some reason.
|
||||
checkTarget = "check";
|
||||
|
||||
# Can't use "make install" here
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin $out/share/openrussian
|
||||
cp openrussian-sqlite3.db $out/share/openrussian
|
||||
cp openrussian $out/bin
|
||||
|
||||
wrapProgram $out/bin/openrussian \
|
||||
--prefix LUA_PATH ';' "$LUA_PATH" \
|
||||
--prefix LUA_CPATH ';' "$LUA_CPATH"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd openrussian --bash ./openrussian-completion.bash
|
||||
installManPage ./openrussian.1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/rhaberkorn/openrussian-cli";
|
||||
description = "Offline Console Russian Dictionary (based on openrussian.org)";
|
||||
license = with licenses; [ gpl3Only mit cc-by-sa-40 ];
|
||||
maintainers = with maintainers; [ zane ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
{ lib, stdenv, vim, vimPlugins, vim_configurable, neovim, buildEnv, writeText, writeScriptBin
|
||||
# tests available at pkgs/test/vim
|
||||
{ lib, stdenv, vim, vimPlugins, vim_configurable, buildEnv, writeText, writeScriptBin
|
||||
, nix-prefetch-hg, nix-prefetch-git
|
||||
, fetchFromGitHub, runtimeShell
|
||||
}:
|
||||
@ -183,13 +184,49 @@ let
|
||||
|
||||
rtpPath = "share/vim-plugins";
|
||||
|
||||
nativeImpl = packages: lib.optionalString (packages != null)
|
||||
(let
|
||||
link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}");
|
||||
packageLinks = (packageName: {start ? [], opt ? []}:
|
||||
let
|
||||
# `nativeImpl` expects packages to be derivations, not strings (as
|
||||
# opposed to older implementations that have to maintain backwards
|
||||
# compatibility). Therefore we don't need to deal with "knownPlugins"
|
||||
# and can simply pass `null`.
|
||||
depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt);
|
||||
startWithDeps = findDependenciesRecursively start;
|
||||
in
|
||||
[ "mkdir -p $out/pack/${packageName}/start" ]
|
||||
# To avoid confusion, even dependencies of optional plugins are added
|
||||
# to `start` (except if they are explicitly listed as optional plugins).
|
||||
++ (builtins.map (link packageName "start") (lib.unique (startWithDeps ++ depsOfOptionalPlugins)))
|
||||
++ ["mkdir -p $out/pack/${packageName}/opt"]
|
||||
++ (builtins.map (link packageName "opt") opt)
|
||||
);
|
||||
packDir = (packages:
|
||||
stdenv.mkDerivation {
|
||||
name = "vim-pack-dir";
|
||||
src = ./.;
|
||||
installPhase = lib.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList packageLinks packages));
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
);
|
||||
in
|
||||
''
|
||||
set packpath^=${packDir packages}
|
||||
set runtimepath^=${packDir packages}
|
||||
'');
|
||||
|
||||
vimrcContent = {
|
||||
packages ? null,
|
||||
vam ? null,
|
||||
pathogen ? null,
|
||||
plug ? null,
|
||||
beforePlugins ? "",
|
||||
customRC ? ""
|
||||
beforePlugins ? ''
|
||||
" configuration generated by NIX
|
||||
set nocompatible
|
||||
'',
|
||||
customRC ? null
|
||||
}:
|
||||
|
||||
let
|
||||
@ -301,56 +338,16 @@ let
|
||||
call vam#Scripts(l, {})
|
||||
'');
|
||||
|
||||
nativeImpl = lib.optionalString (packages != null)
|
||||
(let
|
||||
link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}");
|
||||
packageLinks = (packageName: {start ? [], opt ? []}:
|
||||
let
|
||||
# `nativeImpl` expects packages to be derivations, not strings (as
|
||||
# opposed to older implementations that have to maintain backwards
|
||||
# compatibility). Therefore we don't need to deal with "knownPlugins"
|
||||
# and can simply pass `null`.
|
||||
depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt);
|
||||
startWithDeps = findDependenciesRecursively start;
|
||||
in
|
||||
["mkdir -p $out/pack/${packageName}/start"]
|
||||
# To avoid confusion, even dependencies of optional plugins are added
|
||||
# to `start` (except if they are explicitly listed as optional plugins).
|
||||
++ (builtins.map (link packageName "start") (lib.unique (startWithDeps ++ depsOfOptionalPlugins)))
|
||||
++ ["mkdir -p $out/pack/${packageName}/opt"]
|
||||
++ (builtins.map (link packageName "opt") opt)
|
||||
);
|
||||
packDir = (packages:
|
||||
stdenv.mkDerivation {
|
||||
name = "vim-pack-dir";
|
||||
src = ./.;
|
||||
installPhase = lib.concatStringsSep
|
||||
"\n"
|
||||
(lib.flatten (lib.mapAttrsToList packageLinks packages));
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
);
|
||||
in
|
||||
''
|
||||
set packpath^=${packDir packages}
|
||||
set runtimepath^=${packDir packages}
|
||||
entries = [
|
||||
beforePlugins
|
||||
vamImpl pathogenImpl plugImpl
|
||||
(nativeImpl packages)
|
||||
customRC
|
||||
];
|
||||
|
||||
filetype indent plugin on | syn on
|
||||
'');
|
||||
in
|
||||
lib.concatStringsSep "\n" (lib.filter (x: x != null && x != "") entries);
|
||||
|
||||
in ''
|
||||
" configuration generated by NIX
|
||||
set nocompatible
|
||||
|
||||
${beforePlugins}
|
||||
|
||||
${vamImpl}
|
||||
${pathogenImpl}
|
||||
${plugImpl}
|
||||
${nativeImpl}
|
||||
|
||||
${customRC}
|
||||
'';
|
||||
vimrcFile = settings: writeText "vimrc" (vimrcContent settings);
|
||||
|
||||
in
|
||||
@ -448,8 +445,6 @@ rec {
|
||||
'';
|
||||
};
|
||||
|
||||
vim_with_vim2nix = vim_configurable.customize { name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ]; };
|
||||
|
||||
inherit (import ./build-vim-plugin.nix { inherit lib stdenv rtpPath vim; }) buildVimPlugin buildVimPluginFrom2Nix;
|
||||
|
||||
# used to figure out which python dependencies etc. neovim needs
|
||||
@ -475,62 +470,4 @@ rec {
|
||||
nativePlugins = lib.concatMap ({start?[], opt?[], knownPlugins?vimPlugins}: start++opt) nativePluginsConfigs;
|
||||
in
|
||||
nativePlugins ++ nonNativePlugins;
|
||||
|
||||
|
||||
# test cases:
|
||||
test_vim_with_vim_nix_using_vam = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-vam";
|
||||
vimrcConfig.vam.pluginDictionaries = [{name = "vim-nix"; }];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix_using_pathogen = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-pathogen";
|
||||
vimrcConfig.pathogen.pluginNames = [ "vim-nix" ];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix_using_plug = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-plug";
|
||||
vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix";
|
||||
vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
|
||||
};
|
||||
|
||||
# only neovim makes use of `requiredPlugins`, test this here
|
||||
test_nvim_with_vim_nix_using_pathogen = neovim.override {
|
||||
configure.pathogen.pluginNames = [ "vim-nix" ];
|
||||
};
|
||||
|
||||
# regression test for https://github.com/NixOS/nixpkgs/issues/53112
|
||||
# The user may have specified their own plugins which may not be formatted
|
||||
# exactly as the generated ones. In particular, they may not have the `pname`
|
||||
# attribute.
|
||||
test_vim_with_custom_plugin = vim_configurable.customize {
|
||||
name = "vim_with_custom_plugin";
|
||||
vimrcConfig.vam.knownPlugins =
|
||||
vimPlugins // ({
|
||||
vim-trailing-whitespace = buildVimPluginFrom2Nix {
|
||||
name = "vim-trailing-whitespace";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bronson";
|
||||
repo = "vim-trailing-whitespace";
|
||||
rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6";
|
||||
sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9";
|
||||
};
|
||||
# make sure string dependencies are handled
|
||||
dependencies = [ "vim-nix" ];
|
||||
};
|
||||
});
|
||||
vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ];
|
||||
};
|
||||
|
||||
# system remote plugin manifest should be generated, deoplete should be usable
|
||||
# without the user having to do `UpdateRemotePlugins`. To test, launch neovim
|
||||
# and do `:call deoplete#enable()`. It will print an error if the remote
|
||||
# plugin is not registered.
|
||||
test_nvim_with_remote_plugin = neovim.override {
|
||||
configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ];
|
||||
};
|
||||
}
|
||||
|
@ -1,30 +1,47 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
|
||||
, libnl, readline, libbfd, ncurses, zlib }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, libbfd
|
||||
, libnl
|
||||
, libpcap
|
||||
, ncurses
|
||||
, readline
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dropwatch";
|
||||
version = "1.5.1";
|
||||
version = "1.5.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nhorman";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1qmax0l7z1qik42c949fnvjh5r6awk4gpgzdsny8iwnmwzjyp8b8";
|
||||
sha256 = "0axx0zzrs7apqnl0r70jyvmgk7cs5wk185id479mapgngibwkyxy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ libbfd libnl ncurses readline zlib ];
|
||||
|
||||
# To avoid running into https://sourceware.org/bugzilla/show_bug.cgi?id=14243 we need to define:
|
||||
NIX_CFLAGS_COMPILE = "-DPACKAGE=${pname} -DPACKAGE_VERSION=${version}";
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
libbfd
|
||||
libnl
|
||||
libpcap
|
||||
ncurses
|
||||
readline
|
||||
zlib
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Linux kernel dropped packet monitor";
|
||||
homepage = "https://github.com/nhorman/dropwatch";
|
||||
license = licenses.gpl2;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.c0bw3b ];
|
||||
maintainers = with maintainers; [ c0bw3b ];
|
||||
};
|
||||
}
|
||||
|
@ -5,13 +5,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "rtw88";
|
||||
version = "unstable-2021-04-01";
|
||||
version = "unstable-2021-04-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lwfinger";
|
||||
repo = "rtw88";
|
||||
rev = "689ce370b0c2da207bb092065697f6cb455a00dc";
|
||||
hash = "sha256-gdfQxpzYJ9bEObc2iEapA0TPMZuXndBvEu6qwKqdhyo=";
|
||||
rev = "0f3cc6a5973bc386d9cb542fc85a6ba027edff5d";
|
||||
hash = "sha256-PRzWXC1lre8gt1GfVdnaG836f5YK57P9a8tG20yef0w=";
|
||||
};
|
||||
|
||||
makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
|
||||
|
@ -41,6 +41,8 @@ with pkgs;
|
||||
rustCustomSysroot = callPackage ./rust-sysroot {};
|
||||
buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { };
|
||||
|
||||
vim = callPackage ./vim {};
|
||||
|
||||
nixos-functions = callPackage ./nixos-functions {};
|
||||
|
||||
patch-shebangs = callPackage ./patch-shebangs {};
|
||||
|
72
pkgs/test/vim/default.nix
Normal file
72
pkgs/test/vim/default.nix
Normal file
@ -0,0 +1,72 @@
|
||||
{ vimUtils, vim_configurable, neovim, vimPlugins
|
||||
, lib, fetchFromGitHub,
|
||||
}:
|
||||
let
|
||||
inherit (vimUtils) buildVimPluginFrom2Nix;
|
||||
|
||||
packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
|
||||
in
|
||||
{
|
||||
vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; };
|
||||
|
||||
vim_with_vim2nix = vim_configurable.customize {
|
||||
name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ];
|
||||
};
|
||||
|
||||
# test cases:
|
||||
test_vim_with_vim_nix_using_vam = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-vam";
|
||||
vimrcConfig.vam.pluginDictionaries = [{name = "vim-nix"; }];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix_using_pathogen = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-pathogen";
|
||||
vimrcConfig.pathogen.pluginNames = [ "vim-nix" ];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix_using_plug = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-plug";
|
||||
vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix";
|
||||
vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
|
||||
};
|
||||
|
||||
# only neovim makes use of `requiredPlugins`, test this here
|
||||
test_nvim_with_vim_nix_using_pathogen = neovim.override {
|
||||
configure.pathogen.pluginNames = [ "vim-nix" ];
|
||||
};
|
||||
|
||||
# regression test for https://github.com/NixOS/nixpkgs/issues/53112
|
||||
# The user may have specified their own plugins which may not be formatted
|
||||
# exactly as the generated ones. In particular, they may not have the `pname`
|
||||
# attribute.
|
||||
test_vim_with_custom_plugin = vim_configurable.customize {
|
||||
name = "vim_with_custom_plugin";
|
||||
vimrcConfig.vam.knownPlugins =
|
||||
vimPlugins // ({
|
||||
vim-trailing-whitespace = buildVimPluginFrom2Nix {
|
||||
name = "vim-trailing-whitespace";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bronson";
|
||||
repo = "vim-trailing-whitespace";
|
||||
rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6";
|
||||
sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9";
|
||||
};
|
||||
# make sure string dependencies are handled
|
||||
dependencies = [ "vim-nix" ];
|
||||
};
|
||||
});
|
||||
vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ];
|
||||
};
|
||||
|
||||
# system remote plugin manifest should be generated, deoplete should be usable
|
||||
# without the user having to do `UpdateRemotePlugins`. To test, launch neovim
|
||||
# and do `:call deoplete#enable()`. It will print an error if the remote
|
||||
# plugin is not registered.
|
||||
test_nvim_with_remote_plugin = neovim.override {
|
||||
configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ];
|
||||
};
|
||||
}
|
@ -2,21 +2,24 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "websocat";
|
||||
version = "1.6.0";
|
||||
version = "1.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vi";
|
||||
repo = "websocat";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0iilq96bxcb2fsljvlgy47pg514w0jf72ckz39yy3k0gwc1yfcja";
|
||||
sha256 = "sha256-jwoWxK4phBqhIeo3+oRnpGsfvtn9gTR1ryd4N+0Lmbw=";
|
||||
};
|
||||
|
||||
cargoBuildFlags = [ "--features=ssl" ];
|
||||
cargoSha256 = "1hsms8rlnds8npr8m0dm21h04ci5ljda09pqb598v7ny3j2dldiq";
|
||||
cargoSha256 = "sha256-+3SG1maarY4DJ4+QiYGwltGLksOoOhKtcqstRwgzi2k=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
|
||||
|
||||
# Needed to get openssl-sys to use pkg-config.
|
||||
OPENSSL_NO_VENDOR=1;
|
||||
|
||||
# The wrapping is required so that the "sh-c" option of websocat works even
|
||||
# if sh is not in the PATH (as can happen, for instance, when websocat is
|
||||
# started as a systemd service).
|
||||
@ -26,8 +29,9 @@ rustPlatform.buildRustPackage rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command-line client for WebSockets (like netcat/socat)";
|
||||
homepage = "https://github.com/vi/websocat";
|
||||
description = "Command-line client for WebSockets (like netcat/socat)";
|
||||
changelog = "https://github.com/vi/websocat/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ thoughtpolice Br1ght0ne ];
|
||||
};
|
||||
|
25
pkgs/tools/networking/sish/default.nix
Normal file
25
pkgs/tools/networking/sish/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "sish";
|
||||
version = "1.1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antoniomika";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "06ckgxhnijs7yrj0hhwh1vk2fvapwn6wb44w3g6qs6n6fmqh92mb";
|
||||
};
|
||||
|
||||
vendorSha256 = "0vfazbaiaqka5nd7imh5ls7k3asf1c17y081nzkban98svg3l3sj";
|
||||
|
||||
meta = with lib; {
|
||||
description = "HTTP(S)/WS(S)/TCP Tunnels to localhost";
|
||||
homepage = "https://github.com/antoniomika/sish";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -1,19 +1,19 @@
|
||||
{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin }:
|
||||
{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "manix";
|
||||
version = "0.6.2";
|
||||
version = "0.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mlvzk";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0fv3sgzwjsgq2h1177r8r1cl5zrfja4ll801sd0bzj3nzmkyww7p";
|
||||
sha256 = "1b7xi8c2drbwzfz70czddc4j33s7g1alirv12dwl91hbqxifx8qs";
|
||||
};
|
||||
|
||||
buildInputs = lib.optional stdenv.isDarwin [ darwin.Security ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
cargoSha256 = "0f2q3bj1cmpbma0fjhc2lc92j4al78fhrx3yc37kmbgzaza0yan5";
|
||||
cargoSha256 = "1yivx9vzk2fvncvlkwq5v11hb9llr1zlcmy69y12q6xnd9rd8x1b";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Fast Documentation Searcher for Nix";
|
||||
|
@ -1,25 +1,35 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
{ stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, PCSC }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cosign";
|
||||
version = "0.2.0";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sigstore";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1zwb2q62ngb2zh1hasvq7r7pmrjlpgfhs5raibbhkxbk5kayvmii";
|
||||
sha256 = "1gfzard6bh78xxgjk14c9zmdplppkcjqxhvfazcbv8qppjl2pbbd";
|
||||
};
|
||||
|
||||
vendorSha256 = "0nwbjaps4z5fhiknbj9pybxb6kgwb1vf2qhy0mzpycprf04q6g0v";
|
||||
buildInputs =
|
||||
lib.optional stdenv.isLinux (lib.getDev pcsclite)
|
||||
++ lib.optionals stdenv.isDarwin [ PCSC ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
vendorSha256 = "15163v484rv08rn439y38r9spyqn3lf4q4ly8xr18nnf4bs3h6y2";
|
||||
|
||||
subPackages = [ "cmd/cosign" ];
|
||||
|
||||
preBuild = ''
|
||||
buildFlagsArray+=("-ldflags" "-s -w -X github.com/sigstore/cosign/cmd/cosign/cli.gitVersion=v${version}")
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/sigstore/cosign";
|
||||
changelog = "https://github.com/sigstore/cosign/releases/tag/v${version}";
|
||||
description = "Container Signing CLI with support for ephemeral keys and Sigstore signing";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lesuisse ];
|
||||
maintainers = with maintainers; [ lesuisse jk ];
|
||||
};
|
||||
}
|
||||
|
@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "hfinger";
|
||||
version = "0.2.0";
|
||||
version = "0.2.1";
|
||||
disabled = python3.pythonOlder "3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CERT-Polska";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1vz8mf572qyng684fvb9gdwaaiybk7mjmikbymvjvy24d10raak1";
|
||||
sha256 = "sha256-QKnrprDDBq+D8N1brkqgcfK4E+6ssvgPtRaSxkF0C84=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
|
@ -10,11 +10,11 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "ldeep";
|
||||
version = "1.0.10";
|
||||
version = "1.0.11";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-/7mcmAj69NmuiK+xlQijAk39sMLDX8kHatmSI6XYbwE=";
|
||||
sha256 = "sha256-MYVC8fxLW85n8uZVMhb2Zml1lQ8vW9gw/eRLcmemQx4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -1,26 +1,34 @@
|
||||
{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus }:
|
||||
{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus, iodash, cxxopts}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ydotool";
|
||||
version = "0.1.8";
|
||||
version = "unstable-2021-01-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ReimuNotMoe";
|
||||
repo = "ydotool";
|
||||
rev = "v${version}";
|
||||
sha256 = "0mx3636p0f8pznmwm4rlbwq7wrmjb2ygkf8b3a6ps96a7j1fw39l";
|
||||
rev = "b1d041f52f7bac364d6539b1251d29c3b77c0f37";
|
||||
sha256 = "1gzdbx6fv0dbcyia3yyzhv93az2gf90aszb9kcj5cnxywfpv9w9g";
|
||||
};
|
||||
|
||||
# disable static linking
|
||||
# upstream decided to use a cpp package manager called cpm.
|
||||
# we need to disable that because it wants networking, furthermore,
|
||||
# it does some system folder creating which also needs to be disabled.
|
||||
# Both changes are to respect the sandbox.
|
||||
patches = [ ./fixup-cmakelists.patch ];
|
||||
|
||||
|
||||
# cxxopts is a header only library.
|
||||
# See pull request: https://github.com/ReimuNotMoe/ydotool/pull/105
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace \
|
||||
"-static" \
|
||||
""
|
||||
"PUBLIC cxxopts" \
|
||||
"PUBLIC"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [
|
||||
boost libevdevplus libuinputplus
|
||||
boost libevdevplus libuinputplus iodash cxxopts
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
58
pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
Normal file
58
pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From bb8bc44d22060cd1215712117cf30eae09f4f6ba Mon Sep 17 00:00:00 2001
|
||||
From: Jappie Klooster <jappieklooster@hotmail.com>
|
||||
Date: Fri, 2 Apr 2021 14:04:14 -0400
|
||||
Subject: [PATCH] Fixup cmaklists
|
||||
|
||||
We remove cpm, which is a package manager for c++,
|
||||
which requires networking, so it's better just deleted.
|
||||
|
||||
Furthermore we delete the adddirectory statements.
|
||||
These want to modify directories outside of the sandbox.
|
||||
---
|
||||
CMakeLists.txt | 26 --------------------------
|
||||
1 file changed, 26 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b5e8789..b797538 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -13,30 +13,6 @@ endif()
|
||||
|
||||
include(${CPM_DOWNLOAD_LOCATION})
|
||||
|
||||
-CPMAddPackage(
|
||||
- NAME IODash
|
||||
- GITHUB_REPOSITORY YukiWorkshop/IODash
|
||||
- VERSION 0.1.0
|
||||
-)
|
||||
-
|
||||
-CPMAddPackage(
|
||||
- NAME libevdevPlus
|
||||
- GITHUB_REPOSITORY YukiWorkshop/libevdevPlus
|
||||
- VERSION 0.2.1
|
||||
-)
|
||||
-
|
||||
-CPMAddPackage(
|
||||
- NAME libuInputPlus
|
||||
- GITHUB_REPOSITORY YukiWorkshop/libuInputPlus
|
||||
- VERSION 0.2.1
|
||||
-)
|
||||
-
|
||||
-CPMAddPackage(
|
||||
- NAME cxxopts
|
||||
- GITHUB_REPOSITORY jarro2783/cxxopts
|
||||
- VERSION 3.0.0
|
||||
- GIT_TAG 2d8e17c4f88efce80e274cb03eeb902e055a91d3
|
||||
-)
|
||||
|
||||
set(SOURCE_FILES_LIBRARY
|
||||
CommonIncludes.hpp
|
||||
@@ -74,5 +50,3 @@ add_executable(ydotool ${SOURCE_FILES_CLIENT})
|
||||
target_link_libraries(ydotool ydotool_library dl pthread uInputPlus evdevPlus)
|
||||
install(TARGETS ydotool DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
-add_subdirectory(Daemon)
|
||||
-add_subdirectory(manpage)
|
||||
--
|
||||
2.29.2
|
||||
|
@ -1276,7 +1276,9 @@ in
|
||||
|
||||
corsmisc = callPackage ../tools/security/corsmisc { };
|
||||
|
||||
cosign = callPackage ../tools/security/cosign { };
|
||||
cosign = callPackage ../tools/security/cosign {
|
||||
inherit (darwin.apple_sdk.frameworks) PCSC;
|
||||
};
|
||||
|
||||
cozy = callPackage ../applications/audio/cozy-audiobooks { };
|
||||
|
||||
@ -5756,6 +5758,8 @@ in
|
||||
|
||||
jq = callPackage ../development/tools/jq { };
|
||||
|
||||
jql = callPackage ../development/tools/jql { };
|
||||
|
||||
jo = callPackage ../development/tools/jo { };
|
||||
|
||||
jrnl = python3Packages.callPackage ../applications/misc/jrnl { };
|
||||
@ -6185,9 +6189,13 @@ in
|
||||
nodejs-slim-15_x = callPackage ../development/web/nodejs/v15.nix {
|
||||
enableNpm = false;
|
||||
};
|
||||
nodejs-16_x = callPackage ../development/web/nodejs/v16.nix { };
|
||||
nodejs-slim-16_x = callPackage ../development/web/nodejs/v16.nix {
|
||||
enableNpm = false;
|
||||
};
|
||||
# Update this when adding the newest nodejs major version!
|
||||
nodejs_latest = nodejs-15_x;
|
||||
nodejs-slim_latest = nodejs-slim-15_x;
|
||||
nodejs_latest = nodejs-16_x;
|
||||
nodejs-slim_latest = nodejs-slim-16_x;
|
||||
|
||||
nodePackages_latest = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix {
|
||||
nodejs = pkgs.nodejs_latest;
|
||||
@ -6213,6 +6221,7 @@ in
|
||||
|
||||
ispell = callPackage ../tools/text/ispell {};
|
||||
|
||||
iodash = callPackage ../development/libraries/iodash { };
|
||||
jumanpp = callPackage ../tools/text/jumanpp {};
|
||||
|
||||
jump = callPackage ../tools/system/jump {};
|
||||
@ -6497,7 +6506,9 @@ in
|
||||
|
||||
mandoc = callPackage ../tools/misc/mandoc { };
|
||||
|
||||
manix = callPackage ../tools/nix/manix {};
|
||||
manix = callPackage ../tools/nix/manix {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
marktext = callPackage ../applications/misc/marktext { };
|
||||
|
||||
@ -7160,6 +7171,8 @@ in
|
||||
|
||||
openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
|
||||
|
||||
openrussian-cli = callPackage ../misc/openrussian-cli { };
|
||||
|
||||
opensc = callPackage ../tools/security/opensc {
|
||||
inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
|
||||
};
|
||||
@ -23481,6 +23494,8 @@ in
|
||||
|
||||
gxplugins-lv2 = callPackage ../applications/audio/gxplugins-lv2 { };
|
||||
|
||||
hachoir = with python3Packages; toPythonApplication hachoir;
|
||||
|
||||
hackrf = callPackage ../applications/radio/hackrf { };
|
||||
|
||||
hacksaw = callPackage ../tools/misc/hacksaw {};
|
||||
@ -23527,6 +23542,10 @@ in
|
||||
|
||||
hexedit = callPackage ../applications/editors/hexedit { };
|
||||
|
||||
himalaya = callPackage ../applications/networking/mailreaders/himalaya {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
hipchat = callPackage ../applications/networking/instant-messengers/hipchat { };
|
||||
|
||||
hivelytracker = callPackage ../applications/audio/hivelytracker { };
|
||||
@ -25739,6 +25758,8 @@ in
|
||||
|
||||
siproxd = callPackage ../applications/networking/siproxd { };
|
||||
|
||||
sish = callPackage ../tools/networking/sish { };
|
||||
|
||||
skypeforlinux = callPackage ../applications/networking/instant-messengers/skypeforlinux { };
|
||||
|
||||
skype4pidgin = callPackage ../applications/networking/instant-messengers/pidgin-plugins/skype4pidgin { };
|
||||
|
@ -2921,6 +2921,8 @@ in {
|
||||
|
||||
habanero = callPackage ../development/python-modules/habanero { };
|
||||
|
||||
hachoir = callPackage ../development/python-modules/hachoir { };
|
||||
|
||||
ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
|
||||
|
||||
halo = callPackage ../development/python-modules/halo { };
|
||||
|
@ -5,10 +5,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0clfsmkdqviwrjdc0fjqx3qs7xkq06bdl24f2qdyk4p2f0aszdw9";
|
||||
sha256 = "0dr6w3h7i7xyqd04aw66x2ddm7xinvlw02pkk1sxczi8x21z16hf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
actionmailbox = {
|
||||
dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
|
||||
@ -16,10 +16,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "14qcia1l2yjga3azgc381mk75xrddspkpxxvswrr6rg9453i70wf";
|
||||
sha256 = "0w3cq2m1qbmxp7yv3qs82ffn9y46vq5q04vqwxak6ln0ki0v4hn4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
actionmailer = {
|
||||
dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
|
||||
@ -27,10 +27,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "17cnw2pi5gbll6wqqmp40wdxbg3v0kz1jmfdbg7kwdk8b4mkfqmw";
|
||||
sha256 = "1wsa6kcgjx5am9hn44q2afg174m2gda4n8bfk5na17nj48s9g1ii";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
actionpack = {
|
||||
dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
|
||||
@ -38,10 +38,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1mbmizxyl2k6z386zqvvzg3i8b91g7ag4hfjmm7fpbc8p6j4kjmb";
|
||||
sha256 = "0brr9kbmmc4fr2x8a7kj88yv8whfjfvalik3h82ypxlbg5b1c9iz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
actiontext = {
|
||||
dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
|
||||
@ -49,10 +49,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19dgv0zcq7k0wps7gbaiprrardqm74ija9zjydkv93anqqfw3rwd";
|
||||
sha256 = "04f7x7ycg73zc2v3lhvrnl072f7nl0nhp0sspfa2sqq14v4akmmb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
actionview = {
|
||||
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
|
||||
@ -60,10 +60,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1d68p974w96b3mg8q45cmwy2629dl615fm9in56fgb0k7vcrpazk";
|
||||
sha256 = "0m009iki20hhwwj713bqdw57hmz650l7drfbajw32xn2qnawf294";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
activejob = {
|
||||
dependencies = ["activesupport" "globalid"];
|
||||
@ -71,10 +71,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0pkiy5jy5xjgh4diw5wyc72w1r9s07p1qp1kpwv50a5q1ca12aw0";
|
||||
sha256 = "0zjwcfr4qyff9ln4hhjb1csbjpvr3z4pdgvg8axvhcs86h4xpy2n";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
activemodel = {
|
||||
dependencies = ["activesupport"];
|
||||
@ -82,10 +82,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "019gwxrbki4fr3n2c6g7qyyjw94z5qxjwalh2n69hh1anpcbrd98";
|
||||
sha256 = "118slj94hif5g1maaijlxsywrq75h7qdz20bq62303pkrzabjaxm";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
activerecord = {
|
||||
dependencies = ["activemodel" "activesupport"];
|
||||
@ -93,21 +93,21 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1ag8wpfayzbv8n9gf9ca2k8rm9yndsxybvf7jv451j9r822mxzm8";
|
||||
sha256 = "1jva5iqnjmj76mhhxcvx6xzda071cy80bhxn3r79f76pvgwwyymg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
activestorage = {
|
||||
dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mimemagic"];
|
||||
dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0kzslp0990fjyxvlsxb7kdysx28mc3zvay4q3zp2wbfnpl1ik41j";
|
||||
sha256 = "1800ski0619mzyk2p2xcmy4xlym18g3lbqw8wb3ss06jhvn5dl5p";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
activesupport = {
|
||||
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
|
||||
@ -115,10 +115,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
|
||||
sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
@ -136,10 +136,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
|
||||
sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.1";
|
||||
version = "2.4.2";
|
||||
};
|
||||
atk = {
|
||||
dependencies = ["glib2"];
|
||||
@ -167,10 +167,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
|
||||
sha256 = "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
version = "1.9.2";
|
||||
};
|
||||
bacon = {
|
||||
groups = ["default"];
|
||||
@ -203,15 +203,15 @@
|
||||
version = "11.1.3";
|
||||
};
|
||||
cairo = {
|
||||
dependencies = ["native-package-installer" "pkg-config"];
|
||||
dependencies = ["native-package-installer" "pkg-config" "red-colors"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "00hiy6anibkjq9w77hg0lpgnkkbcxrfbz8wxv44jfzqbab8910wb";
|
||||
sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.16.6";
|
||||
version = "1.17.5";
|
||||
};
|
||||
cairo-gobject = {
|
||||
dependencies = ["cairo" "glib2"];
|
||||
@ -291,10 +291,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1jvpxf32l5y2ayj0jp9mv9n7vn61zingzd0s5f7490n584lwmvmg";
|
||||
sha256 = "1y04ig8p9rparhff5dh3781pwf1xlirgq8p0fzvggjjpx761bvra";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.4.1";
|
||||
version = "3.4.2";
|
||||
};
|
||||
cocoapods = {
|
||||
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,10 +354,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1b91sfsriizsr08m1vn9j4sf9sb8vgsyr6xjnw18bpy66bpwsqca";
|
||||
sha256 = "0syya8l1kz36069y7cx4f37aihpmbm4yd5wvifs3j8qzz8bpxpfi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.2";
|
||||
version = "0.0.3";
|
||||
};
|
||||
cocoapods-core = {
|
||||
dependencies = ["activesupport" "fuzzy_match" "nap"];
|
||||
@ -458,10 +458,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1pwzrwp3sys5ad23lc49r3ja2ijzhzjfrq4bbrpbz1x5z7jsa77v";
|
||||
sha256 = "0vpn0y2r91cv9kr2kh6rwh51ipi90iyjfya8ir9grxh1ngv179ck";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.0";
|
||||
version = "2.2.2";
|
||||
};
|
||||
cocoapods-git_url_rewriter = {
|
||||
groups = ["default"];
|
||||
@ -583,10 +583,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1ln4kywj4bx32qyqvr0byi3g4fk8yj026n00xch782x0147f8lka";
|
||||
sha256 = "1z50v9y66kl0s9s84syd8vai77hhysdaymmgbdmpaq54bra6xk72";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.11";
|
||||
version = "0.2.0";
|
||||
};
|
||||
cocoapods-wholemodule = {
|
||||
groups = ["default"];
|
||||
@ -643,10 +643,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
|
||||
sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.7";
|
||||
version = "1.1.8";
|
||||
};
|
||||
crass = {
|
||||
groups = ["default"];
|
||||
@ -745,10 +745,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0wi81lynfdvbwhrc4ws746g3j8761vian4m9gxamdj9rjwj9jhls";
|
||||
sha256 = "1bpdrsdqwv80qqc3f4xxzpii13lx9mlx3zay4bnmmscrx8c0p63z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.4";
|
||||
version = "1.3.5";
|
||||
};
|
||||
domain_name = {
|
||||
dependencies = ["unf"];
|
||||
@ -808,10 +808,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
|
||||
sha256 = "1cql2cxl9bg8gbmmlzl4kvpq7y0gjldgarsnxq35vpd7ga3h54w2";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.12.0";
|
||||
version = "0.13.0";
|
||||
};
|
||||
eventmachine = {
|
||||
groups = ["default"];
|
||||
@ -828,41 +828,61 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "16ij8617v3js03yj1zd32mmrf7kpi9l96bid5mpqk30c4mzai55r";
|
||||
sha256 = "0jn8s74nxsh0vmxv2fjrrrc3b2cgp8d267dyn206hbw5ki4pkd85";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.78.1";
|
||||
version = "0.80.1";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
|
||||
dependencies = ["faraday-excon" "faraday-net_http" "faraday-net_http_persistent" "multipart-post" "ruby2_keywords"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
|
||||
sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.0";
|
||||
version = "1.4.1";
|
||||
};
|
||||
faraday-excon = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1kk5d1c5nxbmwawl5gcznwiscjz24nz3vdhxrlzvj7748c1qqr6d";
|
||||
sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-net_http_persistent = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
ffi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
|
||||
sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.14.2";
|
||||
version = "1.15.0";
|
||||
};
|
||||
ffi-compiler = {
|
||||
dependencies = ["ffi" "rake"];
|
||||
@ -1143,10 +1163,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1kr0bx9323fv5ys6nlhsy05kmwcbs94h6ac7ka9qqywy0vbdvrrv";
|
||||
sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.7";
|
||||
version = "1.8.10";
|
||||
};
|
||||
iconv = {
|
||||
groups = ["default"];
|
||||
@ -1174,10 +1194,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "02llgsg30jz9kpxs8jzv6rvzaylw7948xj2grp4vsfg54z20cwbm";
|
||||
sha256 = "1vz0vp5lbp1bz2samyn8nk49vyh6zhvcqz35faq4i3kgsd4xlnhp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.10.1";
|
||||
version = "2.11.2";
|
||||
};
|
||||
jekyll = {
|
||||
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
|
||||
@ -1247,10 +1267,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
|
||||
sha256 = "036i5fc09275ms49mw43mh4i9pwaap778ra2pmx06ipzyyjl6bfs";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.2";
|
||||
version = "2.2.3";
|
||||
};
|
||||
kramdown = {
|
||||
dependencies = ["rexml"];
|
||||
@ -1280,10 +1300,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1nw1gscax8zsv1m682h9f8vys26385nrwpkbigiifs5bsz6272rk";
|
||||
sha256 = "0h2sc2la6dd808pfnd7vh66fqwc7xg3nd2jqr4pdqymxspk9zcsq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.2";
|
||||
version = "1.4.3";
|
||||
};
|
||||
libv8 = {
|
||||
groups = ["default"];
|
||||
@ -1321,10 +1341,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06hkw6mssx39fg3jqyq57czr5acd11nqs5631k0xs50lr2y2pv8p";
|
||||
sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.4.0";
|
||||
version = "3.5.1";
|
||||
};
|
||||
loofah = {
|
||||
dependencies = ["crass" "nokogiri"];
|
||||
@ -1332,10 +1352,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
|
||||
sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.0";
|
||||
version = "2.9.1";
|
||||
};
|
||||
mab = {
|
||||
groups = ["default"];
|
||||
@ -1370,15 +1390,14 @@
|
||||
version = "2.7.1";
|
||||
};
|
||||
marcel = {
|
||||
dependencies = ["mimemagic"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
|
||||
sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.3";
|
||||
version = "1.0.1";
|
||||
};
|
||||
markaby = {
|
||||
dependencies = ["builder"];
|
||||
@ -1427,20 +1446,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
|
||||
sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2020.1104";
|
||||
};
|
||||
mimemagic = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.5";
|
||||
version = "3.2021.0225";
|
||||
};
|
||||
mini_magick = {
|
||||
groups = ["default"];
|
||||
@ -1457,10 +1466,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
|
||||
sha256 = "1np6srnyagghhh2w4nyv09sz47v0i6ri3q6blicj94vgxqp12c94";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.2";
|
||||
version = "1.0.3";
|
||||
};
|
||||
mini_portile2 = {
|
||||
groups = ["default"];
|
||||
@ -1477,10 +1486,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ipjhdw8ds6q9h7bs3iw28bjrwkwp215hr4l3xf6215fsl80ky5j";
|
||||
sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.14.3";
|
||||
version = "5.14.4";
|
||||
};
|
||||
molinillo = {
|
||||
groups = ["default"];
|
||||
@ -1497,10 +1506,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
|
||||
sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.3";
|
||||
version = "1.4.2";
|
||||
};
|
||||
multi_json = {
|
||||
groups = ["default"];
|
||||
@ -1568,10 +1577,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0";
|
||||
sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.9";
|
||||
version = "1.1.1";
|
||||
};
|
||||
ncursesw = {
|
||||
groups = ["default"];
|
||||
@ -1619,10 +1628,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
|
||||
sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.4";
|
||||
version = "2.5.7";
|
||||
};
|
||||
nokogiri = {
|
||||
dependencies = ["mini_portile2" "racc"];
|
||||
@ -1630,10 +1639,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
|
||||
sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.11.1";
|
||||
version = "1.11.3";
|
||||
};
|
||||
opus-ruby = {
|
||||
dependencies = ["ffi"];
|
||||
@ -1663,10 +1672,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1zlk3bksiwrdvb7j0r5av7w280kigl7947wa7w4kbwqz3snaxl3m";
|
||||
sha256 = "0m2acfd6l6k9xvqxvwivcnwji9974ac7498znydxh69z1x3rr8nm";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.4.0";
|
||||
version = "4.4.1";
|
||||
};
|
||||
pango = {
|
||||
dependencies = ["cairo-gobject" "gobject-introspection"];
|
||||
@ -1695,10 +1704,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
|
||||
sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.0.0";
|
||||
version = "3.0.1.0";
|
||||
};
|
||||
pathutil = {
|
||||
dependencies = ["forwardable-extended"];
|
||||
@ -1746,10 +1755,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "068sf963n2zk47kqcckj624g5pxmk68mm76h02piphfyh9x4zmi3";
|
||||
sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.4";
|
||||
version = "1.4.6";
|
||||
};
|
||||
polyglot = {
|
||||
groups = ["default"];
|
||||
@ -1767,10 +1776,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk";
|
||||
sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.13.1";
|
||||
version = "0.14.1";
|
||||
};
|
||||
pry-byebug = {
|
||||
dependencies = ["byebug" "pry"];
|
||||
@ -1778,10 +1787,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
|
||||
sha256 = "07cv2hddswb334777pjgc9avxn0x9qhrdr191g7windvnjk3scvg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.9.0";
|
||||
version = "3.8.0";
|
||||
};
|
||||
pry-doc = {
|
||||
dependencies = ["pry" "yard"];
|
||||
@ -1810,10 +1819,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "13640p5fk19705ygp8j6p07lccag3d80bx8bmjgpd5zsxxsdc50b";
|
||||
sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.1.1";
|
||||
version = "5.2.2";
|
||||
};
|
||||
racc = {
|
||||
groups = ["default"];
|
||||
@ -1896,10 +1905,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "179r2qymrh16ih5x563wqv3zpka9fvby5czqf47d24zm7zw1bwla";
|
||||
sha256 = "1m3ckisji9n3li2700jpkyncsrh5b2z20zb0b4jl5x16cwsymr7b";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.0";
|
||||
version = "6.1.3.1";
|
||||
};
|
||||
rainbow = {
|
||||
groups = ["default"];
|
||||
@ -1968,10 +1977,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "16q71cc9wx342c697q18pkz19ym4ncjd97hcw4v6f1mgflkdv400";
|
||||
sha256 = "13za43xb5xfg1xb1vwlvwx14jlmnk7jal5dqw8q9a5g13csx41sw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
version = "1.4.0";
|
||||
};
|
||||
red-colors = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.1";
|
||||
};
|
||||
redcarpet = {
|
||||
groups = ["default"];
|
||||
@ -2020,10 +2039,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip";
|
||||
sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.3";
|
||||
version = "2.1.1";
|
||||
};
|
||||
rest-client = {
|
||||
dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
|
||||
@ -2041,20 +2060,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
|
||||
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.4";
|
||||
version = "3.2.5";
|
||||
};
|
||||
rmagick = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ajn6aisf9hh3x5zrs7n02pg5xy3m8x38gh9cn7b3klzgp3djla5";
|
||||
sha256 = "04ahv5gwfwdmwx6b7c0z91rrsfklvnqichgnqk1f9b9n6md3b8yw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.2";
|
||||
version = "4.2.2";
|
||||
};
|
||||
rouge = {
|
||||
groups = ["default"];
|
||||
@ -2115,20 +2134,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1x4aks5qq489iikb4ir11ppy1dg83l4dw3s34jlwvc90mj2fjrql";
|
||||
sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.10.1";
|
||||
version = "3.10.2";
|
||||
};
|
||||
rspec-support = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1lw9qdrff4dfdz62ww8cmv33rddmadr92k2lrvc042aajvk6x886";
|
||||
sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.10.1";
|
||||
version = "3.10.2";
|
||||
};
|
||||
rubocop = {
|
||||
dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
|
||||
@ -2136,10 +2155,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12kkyzyzh30mi9xs52lc1pjki1al4x9acdaikj40wslhpwp1ng1l";
|
||||
sha256 = "0cgrj670wrdw202pddiawcx2jbkcp7ja8zbc646by7nrg9ax492d";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
version = "1.13.0";
|
||||
};
|
||||
rubocop-ast = {
|
||||
dependencies = ["parser"];
|
||||
@ -2147,10 +2166,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1qvfp567aprjgcwj757p55ynj0dx2b3c3hd76za9z3c43sphprcj";
|
||||
sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
};
|
||||
rubocop-performance = {
|
||||
dependencies = ["rubocop" "rubocop-ast"];
|
||||
@ -2158,10 +2177,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "01aahh54r9mwhdj7v2s6kmkdm1k1n1z27dlknlbgm281ny1aswrk";
|
||||
sha256 = "07c3kymvsid9aajwmmwr3n6apxgyjcbzbl2n6r5lpzkyz28jqn15";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.9.2";
|
||||
version = "1.10.2";
|
||||
};
|
||||
ruby-graphviz = {
|
||||
dependencies = ["rexml"];
|
||||
@ -2220,20 +2239,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0lk124dixshf8mmrjpsy9avnaygni3cwki25g8nm5py4d2f5fwwa";
|
||||
sha256 = "1wy58f9qijwvkmw1j40ak2v5nsr3wcwsa1nilfw047liwyi06yad";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.17";
|
||||
version = "2.1.0";
|
||||
};
|
||||
ruby2_keywords = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
|
||||
sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.2";
|
||||
version = "0.0.4";
|
||||
};
|
||||
RubyInline = {
|
||||
dependencies = ["ZenTest"];
|
||||
@ -2303,20 +2322,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1lanqba97ncv88m9r5a3i12n938j5hnpn06q55fxhayfls4fsgdn";
|
||||
sha256 = "13mlccf70slrjpxvpvmnk2cls39nkpgksa7sd90jlnm0s0z7lhdd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.11.1";
|
||||
version = "0.11.4";
|
||||
};
|
||||
sequel = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ym43w8alp65fl8j7792i1l44laq9pm91zj97x0r340xkmaii9hp";
|
||||
sha256 = "0i2zbx3zkrppvf7zmk5hpiji9kj18c0yavcr2c3i0gaqskhzvaj9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.40.0";
|
||||
version = "5.43.0";
|
||||
};
|
||||
sequel_pg = {
|
||||
dependencies = ["pg" "sequel"];
|
||||
@ -2335,10 +2354,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0vv68r61crcnyr5i2qi3h220xbwndsfzwcfzzdr6cmhcdczyr9n2";
|
||||
sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.21.1";
|
||||
version = "0.21.2";
|
||||
};
|
||||
simplecov-html = {
|
||||
groups = ["default"];
|
||||
@ -2377,10 +2396,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0nqyam74izmbczwb406bsmgdzjz5r91d4lywlvdbxx5sl4g4256a";
|
||||
sha256 = "0516kmcypysgf2lw8zm8n9yghv6igqgphhfgmgyzgiin388xw4gj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.0";
|
||||
version = "2.7.0";
|
||||
};
|
||||
slop = {
|
||||
groups = ["default"];
|
||||
@ -2439,10 +2458,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1g7398sn8syybz3nbf3dqwa8q8v3s3s444i24xl5q9pzx4g4nkf1";
|
||||
sha256 = "1nkwmlx0ja35gs4lkh7hmshlwsqk5wm1wqrc2p45icnjmrh0x5cw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
version = "1.1.0";
|
||||
};
|
||||
terminal-table = {
|
||||
dependencies = ["unicode-display_width"];
|
||||
@ -2460,20 +2479,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
|
||||
sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
version = "1.1.0";
|
||||
};
|
||||
thrift = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
|
||||
sha256 = "1sfa4120a7yl3gxjcx990gyawsshfr22gfv5rvgpk72l2p9j2420";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.13.0";
|
||||
version = "0.14.1";
|
||||
};
|
||||
tilt = {
|
||||
groups = ["default"];
|
||||
@ -2595,10 +2614,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ch19amq0spj5dc240mv6s8hh245w7nis2h070qr3jm15r4jb21m";
|
||||
sha256 = "092y84kak86ds2as9kwn5a9m2yzqwqcz4wx31jk3kin32c3hwcrn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.0.1";
|
||||
version = "5.0.2";
|
||||
};
|
||||
xcodeproj = {
|
||||
dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
|
||||
|
Loading…
Reference in New Issue
Block a user