uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,23 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "6tunnel";
version = "0.13";
src = fetchFromGitHub {
owner = "wojtekka";
repo = pname;
rev = version;
sha256 = "0zsx9d6xz5w8zvrqsm8r625gpbqqhjzvjdzc3z8yix668yg8ff8h";
};
nativeBuildInputs = [ autoreconfHook ];
meta = with lib; {
description = "Tunnelling for application that don't speak IPv6";
homepage = "https://github.com/wojtekka/6tunnel";
license = licenses.gpl2;
maintainers = with maintainers; [ Br1ght0ne ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,26 @@
{ lib
, rustPlatform
, fetchFromGitHub
}:
rustPlatform.buildRustPackage rec {
pname = "aardvark-dns";
version = "1.0.3";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = "v${version}";
sha256 = "sha256-m2uKTVRonnun+/V69RcPWkkRtDcoaiulMCQz0/CAdCw=";
};
cargoHash = "sha256-Z/OZgWlpwcdqns26ojTLPQBVNrwU/i86tZVx19sRUTw=";
meta = with lib; {
description = "Authoritative dns server for A/AAAA container records";
homepage = "https://github.com/containers/aardvark-dns";
license = licenses.asl20;
maintainers = with maintainers; [ ] ++ teams.podman.members;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,39 @@
{ lib
, stdenv
, fetchurl
, libbsd
, libressl
, pkg-config
}:
stdenv.mkDerivation rec {
pname = "acme-client";
version = "1.3.0";
src = fetchurl {
url = "https://data.wolfsden.cz/sources/acme-client-${version}.tar.gz";
hash = "sha256-rIeWZSOT+nPzLf2mDtOkN/wmCGffG4H6PCQb2Vxbxxk=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
libbsd
libressl
];
makeFlags = [
"PREFIX=${placeholder "out"}"
];
meta = with lib; {
description = "Secure ACME/Let's Encrypt client";
homepage = "https://sr.ht/~graywolf/acme-client-portable/";
platforms = platforms.unix;
license = licenses.isc;
maintainers = with maintainers; [ pmahoney ];
};
}

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "ahcpd";
version = "0.53";
src = fetchurl {
url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/ahcpd-${version}.tar.gz";
sha256 = "0lhdmky3zdyk51hclv2lrhw3hzymbdc8bw2khs3rnaibgn0jwqm4";
};
preBuild = ''
makeFlags="PREFIX=$out ETCDIR=$out/etc"
sed -i -e s,etc,$out/etc, Makefile
'';
meta = {
homepage = "http://www.pps.univ-paris-diderot.fr/~jch/software/ahcp/";
description = "Autoconfiguration protocol for IPv6 and dual-stack IPv6/IPv4 networks";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,34 @@
{ lib, stdenv, fetchurl, libpcap, openssl, zlib, wirelesstools
, iw, ethtool, pciutils, libnl, pkg-config, makeWrapper
, autoreconfHook, usbutils }:
stdenv.mkDerivation rec {
pname = "aircrack-ng";
version = "1.7";
src = fetchurl {
url = "https://download.aircrack-ng.org/aircrack-ng-${version}.tar.gz";
sha256 = "1hsq1gwmafka4bahs6rc8p98yi542h9a502h64bjlygpr3ih99q5";
};
nativeBuildInputs = [ pkg-config makeWrapper autoreconfHook ];
buildInputs = [ libpcap openssl zlib libnl iw ethtool pciutils ];
patchPhase = ''
sed -e 's@/usr/local/bin@'${wirelesstools}@ -i lib/osdep/linux.c
'';
postFixup = ''
wrapProgram $out/bin/airmon-ng --prefix PATH : ${lib.makeBinPath [
ethtool iw pciutils usbutils
]}
'';
meta = with lib; {
description = "Wireless encryption cracking tools";
homepage = "http://www.aircrack-ng.org/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,71 @@
{ lib, stdenv, fetchFromGitHub
, pkgs, makeWrapper, buildEnv
, nodejs, runtimeShell
}:
let
nodePackages = import ./node.nix {
inherit pkgs;
system = stdenv.hostPlatform.system;
};
runtimeEnv = buildEnv {
name = "airfield-runtime";
paths = with nodePackages; [
nodePackages."express-3.0.5" nodePackages."swig-0.14.0"
nodePackages."consolidate-0.10.0" redis connect-redis
async request
];
};
name = "airfield-${version}";
version = "2015-01-04";
src = stdenv.mkDerivation {
name = "${name}-src";
inherit version;
src = fetchFromGitHub {
owner = "emblica";
repo = "airfield";
rev = "f021b19a35be3db9be7780318860f3b528c48641";
sha256 = "1xk69x89kgg98hm7c2ysyfmg7pkvgkpg4wym6v5cmdkdid08fsgs";
};
dontBuild = true;
installPhase = ''
mkdir $out
cp -R . $out
'';
};
in stdenv.mkDerivation {
inherit name version src;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ nodejs ];
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
cat >$out/bin/airfield <<EOF
#!${runtimeShell}
${nodejs}/bin/node ${src}/airfield.js
EOF
'';
postFixup = ''
chmod +x $out/bin/airfield
wrapProgram $out/bin/airfield \
--set NODE_PATH "${runtimeEnv}/lib/node_modules"
'';
meta = with lib; {
description = "A web-interface for hipache-proxy";
license = licenses.mit;
homepage = "https://github.com/emblica/airfield";
maintainers = with maintainers; [ offline ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,8 @@
[ { "express": "3.0.5" }
, { "swig": "0.14.0" }
, { "consolidate": "0.10.0" }
, "redis"
, "connect-redis"
, "async"
, "request"
]

View file

@ -0,0 +1,6 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p nodePackages.node2nix
node2nix --nodejs-10 -i deps.json \
--no-copy-node-env \
-e ../../../development/node-packages/node-env.nix -c node.nix

View file

@ -0,0 +1,829 @@
# This file has been generated by node2nix 1.9.0. Do not edit!
{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
let
sources = {
"ajv-6.12.6" = {
name = "ajv";
packageName = "ajv";
version = "6.12.6";
src = fetchurl {
url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
};
};
"asn1-0.2.4" = {
name = "asn1";
packageName = "asn1";
version = "0.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
};
};
"assert-plus-1.0.0" = {
name = "assert-plus";
packageName = "assert-plus";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
};
};
"asynckit-0.4.0" = {
name = "asynckit";
packageName = "asynckit";
version = "0.4.0";
src = fetchurl {
url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
};
};
"aws-sign2-0.7.0" = {
name = "aws-sign2";
packageName = "aws-sign2";
version = "0.7.0";
src = fetchurl {
url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
};
};
"aws4-1.11.0" = {
name = "aws4";
packageName = "aws4";
version = "1.11.0";
src = fetchurl {
url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz";
sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
};
};
"bcrypt-pbkdf-1.0.2" = {
name = "bcrypt-pbkdf";
packageName = "bcrypt-pbkdf";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
};
};
"buffer-crc32-0.1.1" = {
name = "buffer-crc32";
packageName = "buffer-crc32";
version = "0.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.1.1.tgz";
sha1 = "7e110dc9953908ab7c32acdc70c9f945b1cbc526";
};
};
"bytes-0.1.0" = {
name = "bytes";
packageName = "bytes";
version = "0.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz";
sha1 = "c574812228126d6369d1576925a8579db3f8e5a2";
};
};
"caseless-0.12.0" = {
name = "caseless";
packageName = "caseless";
version = "0.12.0";
src = fetchurl {
url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
sha1 = "1b681c21ff84033c826543090689420d187151dc";
};
};
"combined-stream-1.0.8" = {
name = "combined-stream";
packageName = "combined-stream";
version = "1.0.8";
src = fetchurl {
url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
};
};
"commander-0.6.1" = {
name = "commander";
packageName = "commander";
version = "0.6.1";
src = fetchurl {
url = "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz";
sha1 = "fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06";
};
};
"connect-2.7.1" = {
name = "connect";
packageName = "connect";
version = "2.7.1";
src = fetchurl {
url = "https://registry.npmjs.org/connect/-/connect-2.7.1.tgz";
sha1 = "b869df9acf3dd8a0af7523c7c6f1aa8b4b761daa";
};
};
"cookie-0.0.5" = {
name = "cookie";
packageName = "cookie";
version = "0.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz";
sha1 = "f9acf9db57eb7568c9fcc596256b7bb22e307c81";
};
};
"cookie-signature-0.0.1" = {
name = "cookie-signature";
packageName = "cookie-signature";
version = "0.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-0.0.1.tgz";
sha1 = "13d3603b5cf63befbf85a8801e37aa900db46985";
};
};
"core-util-is-1.0.2" = {
name = "core-util-is";
packageName = "core-util-is";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
};
};
"crc-0.2.0" = {
name = "crc";
packageName = "crc";
version = "0.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/crc/-/crc-0.2.0.tgz";
sha1 = "f4486b9bf0a12df83c3fca14e31e030fdabd9454";
};
};
"dashdash-1.14.1" = {
name = "dashdash";
packageName = "dashdash";
version = "1.14.1";
src = fetchurl {
url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
};
};
"debug-4.3.2" = {
name = "debug";
packageName = "debug";
version = "4.3.2";
src = fetchurl {
url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
};
};
"delayed-stream-1.0.0" = {
name = "delayed-stream";
packageName = "delayed-stream";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
};
};
"denque-1.5.0" = {
name = "denque";
packageName = "denque";
version = "1.5.0";
src = fetchurl {
url = "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz";
sha512 = "CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==";
};
};
"ecc-jsbn-0.1.2" = {
name = "ecc-jsbn";
packageName = "ecc-jsbn";
version = "0.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
sha1 = "3a83a904e54353287874c564b7549386849a98c9";
};
};
"extend-3.0.2" = {
name = "extend";
packageName = "extend";
version = "3.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
};
};
"extsprintf-1.3.0" = {
name = "extsprintf";
packageName = "extsprintf";
version = "1.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
};
};
"fast-deep-equal-3.1.3" = {
name = "fast-deep-equal";
packageName = "fast-deep-equal";
version = "3.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
};
};
"fast-json-stable-stringify-2.1.0" = {
name = "fast-json-stable-stringify";
packageName = "fast-json-stable-stringify";
version = "2.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
};
};
"forever-agent-0.6.1" = {
name = "forever-agent";
packageName = "forever-agent";
version = "0.6.1";
src = fetchurl {
url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
};
};
"form-data-2.3.3" = {
name = "form-data";
packageName = "form-data";
version = "2.3.3";
src = fetchurl {
url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
};
};
"formidable-1.0.11" = {
name = "formidable";
packageName = "formidable";
version = "1.0.11";
src = fetchurl {
url = "https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz";
sha1 = "68f63325a035e644b6f7bb3d11243b9761de1b30";
};
};
"fresh-0.1.0" = {
name = "fresh";
packageName = "fresh";
version = "0.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz";
sha1 = "03e4b0178424e4c2d5d19a54d8814cdc97934850";
};
};
"getpass-0.1.7" = {
name = "getpass";
packageName = "getpass";
version = "0.1.7";
src = fetchurl {
url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
};
};
"har-schema-2.0.0" = {
name = "har-schema";
packageName = "har-schema";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
};
};
"har-validator-5.1.5" = {
name = "har-validator";
packageName = "har-validator";
version = "5.1.5";
src = fetchurl {
url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
};
};
"http-signature-1.2.0" = {
name = "http-signature";
packageName = "http-signature";
version = "1.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
};
};
"is-typedarray-1.0.0" = {
name = "is-typedarray";
packageName = "is-typedarray";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
};
};
"isstream-0.1.2" = {
name = "isstream";
packageName = "isstream";
version = "0.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
};
};
"jsbn-0.1.1" = {
name = "jsbn";
packageName = "jsbn";
version = "0.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
};
};
"json-schema-0.2.3" = {
name = "json-schema";
packageName = "json-schema";
version = "0.2.3";
src = fetchurl {
url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
};
};
"json-schema-traverse-0.4.1" = {
name = "json-schema-traverse";
packageName = "json-schema-traverse";
version = "0.4.1";
src = fetchurl {
url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
};
};
"json-stringify-safe-5.0.1" = {
name = "json-stringify-safe";
packageName = "json-stringify-safe";
version = "5.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
};
};
"jsprim-1.4.1" = {
name = "jsprim";
packageName = "jsprim";
version = "1.4.1";
src = fetchurl {
url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
};
};
"methods-0.0.1" = {
name = "methods";
packageName = "methods";
version = "0.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/methods/-/methods-0.0.1.tgz";
sha1 = "277c90f8bef39709645a8371c51c3b6c648e068c";
};
};
"mime-1.2.6" = {
name = "mime";
packageName = "mime";
version = "1.2.6";
src = fetchurl {
url = "https://registry.npmjs.org/mime/-/mime-1.2.6.tgz";
sha1 = "b1f86c768c025fa87b48075f1709f28aeaf20365";
};
};
"mime-db-1.45.0" = {
name = "mime-db";
packageName = "mime-db";
version = "1.45.0";
src = fetchurl {
url = "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz";
sha512 = "CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==";
};
};
"mime-types-2.1.28" = {
name = "mime-types";
packageName = "mime-types";
version = "2.1.28";
src = fetchurl {
url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz";
sha512 = "0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==";
};
};
"mkdirp-0.3.3" = {
name = "mkdirp";
packageName = "mkdirp";
version = "0.3.3";
src = fetchurl {
url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz";
sha1 = "595e251c1370c3a68bab2136d0e348b8105adf13";
};
};
"ms-2.1.2" = {
name = "ms";
packageName = "ms";
version = "2.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
};
};
"oauth-sign-0.9.0" = {
name = "oauth-sign";
packageName = "oauth-sign";
version = "0.9.0";
src = fetchurl {
url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
};
};
"pause-0.0.1" = {
name = "pause";
packageName = "pause";
version = "0.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz";
sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d";
};
};
"performance-now-2.1.0" = {
name = "performance-now";
packageName = "performance-now";
version = "2.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
};
};
"psl-1.8.0" = {
name = "psl";
packageName = "psl";
version = "1.8.0";
src = fetchurl {
url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
};
};
"punycode-2.1.1" = {
name = "punycode";
packageName = "punycode";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
};
};
"qs-0.5.1" = {
name = "qs";
packageName = "qs";
version = "0.5.1";
src = fetchurl {
url = "https://registry.npmjs.org/qs/-/qs-0.5.1.tgz";
sha1 = "9f6bf5d9ac6c76384e95d36d15b48980e5e4add0";
};
};
"qs-6.5.2" = {
name = "qs";
packageName = "qs";
version = "6.5.2";
src = fetchurl {
url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
};
};
"range-parser-0.0.4" = {
name = "range-parser";
packageName = "range-parser";
version = "0.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz";
sha1 = "c0427ffef51c10acba0782a46c9602e744ff620b";
};
};
"redis-commands-1.6.0" = {
name = "redis-commands";
packageName = "redis-commands";
version = "1.6.0";
src = fetchurl {
url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.6.0.tgz";
sha512 = "2jnZ0IkjZxvguITjFTrGiLyzQZcTvaw8DAaCXxZq/dsHXz7KfMQ3OUJy7Tz9vnRtZRVz6VRCPDvruvU8Ts44wQ==";
};
};
"redis-errors-1.2.0" = {
name = "redis-errors";
packageName = "redis-errors";
version = "1.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz";
sha1 = "eb62d2adb15e4eaf4610c04afe1529384250abad";
};
};
"redis-parser-3.0.0" = {
name = "redis-parser";
packageName = "redis-parser";
version = "3.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz";
sha1 = "b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4";
};
};
"safe-buffer-5.2.1" = {
name = "safe-buffer";
packageName = "safe-buffer";
version = "5.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
};
};
"safer-buffer-2.1.2" = {
name = "safer-buffer";
packageName = "safer-buffer";
version = "2.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
};
};
"send-0.1.0" = {
name = "send";
packageName = "send";
version = "0.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/send/-/send-0.1.0.tgz";
sha1 = "cfb08ebd3cec9b7fc1a37d9ff9e875a971cf4640";
};
};
"sshpk-1.16.1" = {
name = "sshpk";
packageName = "sshpk";
version = "1.16.1";
src = fetchurl {
url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
};
};
"tough-cookie-2.5.0" = {
name = "tough-cookie";
packageName = "tough-cookie";
version = "2.5.0";
src = fetchurl {
url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
};
};
"tunnel-agent-0.6.0" = {
name = "tunnel-agent";
packageName = "tunnel-agent";
version = "0.6.0";
src = fetchurl {
url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
};
};
"tweetnacl-0.14.5" = {
name = "tweetnacl";
packageName = "tweetnacl";
version = "0.14.5";
src = fetchurl {
url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
};
};
"underscore-1.12.0" = {
name = "underscore";
packageName = "underscore";
version = "1.12.0";
src = fetchurl {
url = "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz";
sha512 = "21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==";
};
};
"uri-js-4.4.1" = {
name = "uri-js";
packageName = "uri-js";
version = "4.4.1";
src = fetchurl {
url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
};
};
"uuid-3.4.0" = {
name = "uuid";
packageName = "uuid";
version = "3.4.0";
src = fetchurl {
url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
};
};
"verror-1.10.0" = {
name = "verror";
packageName = "verror";
version = "1.10.0";
src = fetchurl {
url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
};
};
};
in
{
"express-3.0.5" = nodeEnv.buildNodePackage {
name = "express";
packageName = "express";
version = "3.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/express/-/express-3.0.5.tgz";
sha1 = "4c6e5850e6b5e8ca2af57f21ed7097de50948b73";
};
dependencies = [
sources."buffer-crc32-0.1.1"
sources."bytes-0.1.0"
sources."commander-0.6.1"
sources."connect-2.7.1"
sources."cookie-0.0.5"
sources."cookie-signature-0.0.1"
sources."crc-0.2.0"
sources."debug-4.3.2"
sources."formidable-1.0.11"
sources."fresh-0.1.0"
sources."methods-0.0.1"
sources."mime-1.2.6"
sources."mkdirp-0.3.3"
sources."ms-2.1.2"
sources."pause-0.0.1"
sources."qs-0.5.1"
sources."range-parser-0.0.4"
sources."send-0.1.0"
];
buildInputs = globalBuildInputs;
meta = {
description = "Sinatra inspired web development framework";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
"swig-0.14.0" = nodeEnv.buildNodePackage {
name = "swig";
packageName = "swig";
version = "0.14.0";
src = fetchurl {
url = "https://registry.npmjs.org/swig/-/swig-0.14.0.tgz";
sha1 = "544bfb3bd837608873eed6a72c672a28cb1f1b3f";
};
dependencies = [
sources."underscore-1.12.0"
];
buildInputs = globalBuildInputs;
meta = {
description = "A fast django-like templating engine for node.js and browsers.";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
"consolidate-0.10.0" = nodeEnv.buildNodePackage {
name = "consolidate";
packageName = "consolidate";
version = "0.10.0";
src = fetchurl {
url = "https://registry.npmjs.org/consolidate/-/consolidate-0.10.0.tgz";
sha1 = "81f1a6ceba1247df9cef7a261ce527c2ce538f7a";
};
buildInputs = globalBuildInputs;
meta = {
description = "Template engine consolidation library";
homepage = "https://github.com/visionmedia/consolidate.js";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
redis = nodeEnv.buildNodePackage {
name = "redis";
packageName = "redis";
version = "3.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/redis/-/redis-3.0.2.tgz";
sha512 = "PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ==";
};
dependencies = [
sources."denque-1.5.0"
sources."redis-commands-1.6.0"
sources."redis-errors-1.2.0"
sources."redis-parser-3.0.0"
];
buildInputs = globalBuildInputs;
meta = {
description = "A high performance Redis client.";
homepage = "https://github.com/NodeRedis/node-redis";
license = "MIT";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
connect-redis = nodeEnv.buildNodePackage {
name = "connect-redis";
packageName = "connect-redis";
version = "5.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/connect-redis/-/connect-redis-5.0.0.tgz";
sha512 = "R4nTW5uXeG5s6zr/q4abmtcdloglZrL/A3cpa0JU0RLFJU4mTR553HUY8OZ0ngeySkGDclwQ5xmCcjjKkxdOSg==";
};
buildInputs = globalBuildInputs;
meta = {
description = "Redis session store for Connect";
homepage = "https://github.com/visionmedia/connect-redis#readme";
license = "MIT";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
async = nodeEnv.buildNodePackage {
name = "async";
packageName = "async";
version = "3.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
};
buildInputs = globalBuildInputs;
meta = {
description = "Higher-order functions and common patterns for asynchronous code";
homepage = "https://caolan.github.io/async/";
license = "MIT";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
request = nodeEnv.buildNodePackage {
name = "request";
packageName = "request";
version = "2.88.2";
src = fetchurl {
url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
};
dependencies = [
sources."ajv-6.12.6"
sources."asn1-0.2.4"
sources."assert-plus-1.0.0"
sources."asynckit-0.4.0"
sources."aws-sign2-0.7.0"
sources."aws4-1.11.0"
sources."bcrypt-pbkdf-1.0.2"
sources."caseless-0.12.0"
sources."combined-stream-1.0.8"
sources."core-util-is-1.0.2"
sources."dashdash-1.14.1"
sources."delayed-stream-1.0.0"
sources."ecc-jsbn-0.1.2"
sources."extend-3.0.2"
sources."extsprintf-1.3.0"
sources."fast-deep-equal-3.1.3"
sources."fast-json-stable-stringify-2.1.0"
sources."forever-agent-0.6.1"
sources."form-data-2.3.3"
sources."getpass-0.1.7"
sources."har-schema-2.0.0"
sources."har-validator-5.1.5"
sources."http-signature-1.2.0"
sources."is-typedarray-1.0.0"
sources."isstream-0.1.2"
sources."jsbn-0.1.1"
sources."json-schema-0.2.3"
sources."json-schema-traverse-0.4.1"
sources."json-stringify-safe-5.0.1"
sources."jsprim-1.4.1"
sources."mime-db-1.45.0"
sources."mime-types-2.1.28"
sources."oauth-sign-0.9.0"
sources."performance-now-2.1.0"
sources."psl-1.8.0"
sources."punycode-2.1.1"
sources."qs-6.5.2"
sources."safe-buffer-5.2.1"
sources."safer-buffer-2.1.2"
sources."sshpk-1.16.1"
sources."tough-cookie-2.5.0"
sources."tunnel-agent-0.6.0"
sources."tweetnacl-0.14.5"
sources."uri-js-4.4.1"
sources."uuid-3.4.0"
sources."verror-1.10.0"
];
buildInputs = globalBuildInputs;
meta = {
description = "Simplified HTTP request client.";
homepage = "https://github.com/request/request#readme";
license = "Apache-2.0";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
}

View file

@ -0,0 +1,17 @@
# This file has been generated by node2nix 1.9.0. Do not edit!
{pkgs ? import <nixpkgs> {
inherit system;
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
let
nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
in
import ./node-packages.nix {
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
inherit nodeEnv;
}

View file

@ -0,0 +1,166 @@
{ lib
, stdenv
, fetchFromGitHub
, makeWrapper
# Required
, aircrack-ng
, bash
, coreutils-full
, gawk
, gnugrep
, gnused
, iproute2
, iw
, pciutils
, procps
, tmux
# X11 Front
, xterm
, xorg
# what the author calls "Internals"
, usbutils
, wget
, ethtool
, util-linux
, ccze
# Optionals
# Missing in nixpkgs: beef, hostapd-wpe, asleap
, bettercap
, bully
, crunch
, dhcp
, dnsmasq
, ettercap
, hashcat
, hcxdumptool
, hcxtools
, hostapd
, john
, lighttpd
, mdk4
, nftables
, openssl
, pixiewps
, reaverwps-t6x # Could be the upstream version too
, wireshark-cli
# Undocumented requirements (there is also ping)
, apparmor-bin-utils
, curl
, glibc
, ncurses
, networkmanager
, systemd
# Support groups
, supportWpaWps ? true # Most common use-case
, supportHashCracking ? false
, supportEvilTwin ? false
, supportX11 ? false # Allow using xterm instead of tmux, hard to test
}:
let
deps = [
aircrack-ng
bash
coreutils-full
curl
gawk
glibc
gnugrep
gnused
iproute2
iw
networkmanager
ncurses
pciutils
procps
tmux
usbutils
wget
ethtool
util-linux
ccze
systemd
] ++ lib.optionals supportWpaWps [
bully
pixiewps
reaverwps-t6x
] ++ lib.optionals supportHashCracking [
crunch
hashcat
hcxdumptool
hcxtools
john
wireshark-cli
] ++ lib.optionals supportEvilTwin [
bettercap
dhcp
dnsmasq
ettercap
hostapd
lighttpd
openssl
mdk4
nftables
apparmor-bin-utils
] ++ lib.optionals supportX11 [
xterm
xorg.xset
xorg.xdpyinfo
];
in
stdenv.mkDerivation rec {
pname = "airgeddon";
version = "11.01";
src = fetchFromGitHub {
owner = "v1s1t0r1sh3r3";
repo = "airgeddon";
rev = "v${version}";
sha256 = "3TjaLEcerRk69Ys4kj7vOMCRUd0ifFJzL4MB5ifoK68=";
};
strictDeps = true;
nativeBuildInputs = [ makeWrapper ];
# What these replacings do?
# - Disable the auto-updates (we'll run from a read-only directory);
# - Silence the checks (NixOS will enforce the PATH, it will only see the tools as we listed);
# - Use "tmux", we're not patching XTerm commands;
# - Remove PWD and $0 references, forcing it to use the paths from store;
# - Force our PATH to all tmux sessions.
postPatch = ''
patchShebangs airgeddon.sh
sed -i '
s|AIRGEDDON_AUTO_UPDATE=true|AIRGEDDON_AUTO_UPDATE=false|
s|AIRGEDDON_SILENT_CHECKS=false|AIRGEDDON_SILENT_CHECKS=true|
s|AIRGEDDON_WINDOWS_HANDLING=xterm|AIRGEDDON_WINDOWS_HANDLING=tmux|
' .airgeddonrc
sed -Ei '
s|\$\(pwd\)|${placeholder "out"}/share/airgeddon;scriptfolder=${placeholder "out"}/share/airgeddon/|
s|\$\{0\}|${placeholder "out"}/bin/airgeddon|
s|tmux send-keys -t "([^"]+)" "|tmux send-keys -t "\1" "export PATH=\\"$PATH\\"; |
' airgeddon.sh
'';
# ATTENTION: No need to chdir around, we're removing the occurrences of "$(pwd)"
postInstall = ''
wrapProgram $out/bin/airgeddon --prefix PATH : ${lib.makeBinPath deps}
'';
# Install only the interesting files
installPhase = ''
runHook preInstall
install -Dm 755 airgeddon.sh "$out/bin/airgeddon"
install -dm 755 "$out/share/airgeddon"
cp -dr .airgeddonrc known_pins.db language_strings.sh plugins/ "$out/share/airgeddon/"
runHook postInstall
'';
meta = with lib; {
description = "Multi-use TUI to audit wireless networks. ";
homepage = "https://github.com/v1s1t0r1sh3r3/airgeddon";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pedrohlc ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,32 @@
{ lib, gccStdenv, fetchurl }:
gccStdenv.mkDerivation rec {
pname = "altermime";
version = "0.3.11";
src = fetchurl {
url = "https://pldaniels.com/${pname}/${pname}-${version}.tar.gz";
sha256 = "15zxg6spcmd35r6xbidq2fgcg2nzyv1sbbqds08lzll70mqx4pj7";
};
NIX_CFLAGS_COMPILE = toString [
"-Wno-error=format"
"-Wno-error=format-truncation"
"-Wno-error=pointer-compare"
"-Wno-error=memset-elt-size"
"-Wno-error=restrict"
];
postPatch = ''
mkdir -p $out/bin
substituteInPlace Makefile --replace "/usr/local" "$out"
'';
meta = with lib; {
description = "MIME alteration tool";
maintainers = [ maintainers.raskin ];
platforms = platforms.all;
license.fullName = "alterMIME LICENSE";
downloadPage = "https://pldaniels.com/altermime/";
};
}

View file

@ -0,0 +1,47 @@
{ buildGoModule
, fetchFromGitHub
, lib
}:
buildGoModule rec {
pname = "amass";
version = "3.19.2";
src = fetchFromGitHub {
owner = "OWASP";
repo = "Amass";
rev = "v${version}";
sha256 = "sha256-EnhTbwOnq1zTYlnSvNiXduZCp4J65Ot5FR17+e16v2s=";
};
vendorSha256 = "sha256-Yh1OAoPPWSG83WdH1caHodRWovdyYcUsEoPdckmVfHQ=";
outputs = [ "out" "wordlists" ];
postInstall = ''
mkdir -p $wordlists
cp -R examples/wordlists/*.txt $wordlists
gzip $wordlists/*.txt
'';
# https://github.com/OWASP/Amass/issues/640
doCheck = false;
meta = with lib; {
description = "In-Depth DNS Enumeration and Network Mapping";
longDescription = ''
The OWASP Amass tool suite obtains subdomain names by scraping data
sources, recursive brute forcing, crawling web archives,
permuting/altering names and reverse DNS sweeping. Additionally, Amass
uses the IP addresses obtained during resolution to discover associated
netblocks and ASNs. All the information is then used to build maps of the
target networks.
Amass ships with a set of wordlist (to be used with the amass -w flag)
that are found under the wordlists output.
'';
homepage = "https://owasp.org/www-project-amass/";
license = licenses.asl20;
maintainers = with maintainers; [ kalbasit fab ];
};
}

View file

@ -0,0 +1,43 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, rustPlatform
, libiconv
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "anevicon";
version = "0.1.0";
src = fetchFromGitHub {
owner = "rozgo";
repo = pname;
rev = "v${version}";
sha256 = "1m3ci7g7nn28p6x5m85av3ljgszwlg55f1hmgjnarc6bas5bapl7";
};
cargoSha256 = "1g15v13ysx09fy0b8qddw5fwql2pvwzc2g2h1ndhzpxvfy7fzpr1";
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
cargoPatches = [
# Add Cargo.lock file, https://github.com/rozgo/anevicon/pull/1
(fetchpatch {
name = "cargo-lock-file.patch";
url = "https://github.com/rozgo/anevicon/commit/205440a0863aaea34394f30f4255fa0bb1704aed.patch";
sha256 = "02syzm7irn4slr3s5dwwhvg1qx8fdplwlhza8gfkc6ajl7vdc7ri";
})
];
# Tries to send large UDP packets that Darwin rejects.
doCheck = !stdenv.isDarwin;
meta = with lib; {
description = "UDP-based load generator";
homepage = "https://github.com/rozgo/anevicon";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers, pkg-config, perl, libtirpc, libnsl }:
stdenv.mkDerivation rec {
pname = "argus-clients";
version = "3.0.8.3";
src = fetchurl {
url = "http://qosient.com/argus/src/${pname}-${version}.tar.gz";
sha256 = "sha256-uNTvi6zbrYHAivQMPkhlNCoqRW9GOkgKvCf3mInds80=";
};
NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
postPatch = ''
for file in ./examples/*/*.pl; do
substituteInPlace $file \
--subst-var-by PERLBIN ${perl}/bin/perl
done
'';
configureFlags = [ "--with-perl=${perl}/bin/perl" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libpcap bison cyrus_sasl tcp_wrappers flex libnsl ];
meta = with lib; {
description = "Clients for ARGUS";
longDescription = ''Clients for Audit Record Generation and
Utilization System (ARGUS). The Argus Project is focused on developing all
aspects of large scale network situtational awareness derived from
network activity audit. Argus, itself, is next-generation network
flow technology, processing packets, either on the wire or in
captures, into advanced network flow data. The data, its models,
formats, and attributes are designed to support Network
Operations, Performance and Security Management. If you need to
know what is going on in your network, right now or historically,
you will find Argus a useful tool. '';
homepage = "http://qosient.com/argus";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ leenaars ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,46 @@
{ lib, stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers,
pkg-config, procps, which, wget, lsof, net-snmp, perl }:
stdenv.mkDerivation rec {
pname = "argus";
version = "3.0.8.2";
src = fetchurl {
url = "http://qosient.com/argus/src/${pname}-${version}.tar.gz";
sha256 = "1zzf688dbbcb5z2r9v1p28rddns6znzx35nc05ygza6lp7aknkna";
};
nativeBuildInputs = [ pkg-config bison flex ];
buildInputs = [ libpcap cyrus_sasl tcp_wrappers ];
propagatedBuildInputs = [ procps which wget lsof net-snmp ];
patchPhase = ''
substituteInPlace events/argus-extip.pl \
--subst-var-by PERLBIN ${perl}/bin/perl
substituteInPlace events/argus-lsof.pl \
--replace "\`which lsof\`" "\"${lsof}/bin/lsof\"" \
--subst-var-by PERLBIN ${perl}/bin/perl
substituteInPlace events/argus-vmstat.sh \
--replace vm_stat ${procps}/bin/vmstat
substituteInPlace events/argus-snmp.sh \
--replace /usr/bin/snmpget ${lib.getBin net-snmp}/bin/snmpget \
--replace /usr/bin/snmpwalk ${lib.getBin net-snmp}/bin/snmpwalk
'';
meta = with lib; {
description = "Audit Record Generation and Utilization System for networks";
longDescription = ''The Argus Project is focused on developing all
aspects of large scale network situtational awareness derived from
network activity audit. Argus, itself, is next-generation network
flow technology, processing packets, either on the wire or in
captures, into advanced network flow data. The data, its models,
formats, and attributes are designed to support Network
Operations, Performance and Security Management. If you need to
know what is going on in your network, right now or historically,
you will find Argus a useful tool. '';
homepage = "http://qosient.com/argus";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ leenaars ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,48 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
, openssl, c-ares, libxml2, sqlite, zlib, libssh2
, cppunit, sphinx
, Security
}:
stdenv.mkDerivation rec {
pname = "aria2";
version = "1.36.0";
src = fetchFromGitHub {
owner = "aria2";
repo = "aria2";
rev = "release-${version}";
sha256 = "sha256-ErjFfSJDIgZq0qy0Zn5uZ9bZS2AtJq4FuBVuUuQgPTI=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config autoreconfHook sphinx ];
buildInputs = [ openssl c-ares libxml2 sqlite zlib libssh2 ] ++
lib.optional stdenv.isDarwin Security;
outputs = [ "bin" "dev" "out" "doc" "man" ];
configureFlags = [
"--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
"--enable-libaria2"
"--with-bashcompletiondir=${placeholder "bin"}/share/bash-completion/completions"
];
prePatch = ''
patchShebangs --build doc/manual-src/en/mkapiref.py
'';
checkInputs = [ cppunit ];
doCheck = false; # needs the net
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://aria2.github.io";
description = "A lightweight, multi-protocol, multi-source, command-line download utility";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ Br1ght0ne koral ];
};
}

View file

@ -0,0 +1,36 @@
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, libnet
, libpcap
}:
stdenv.mkDerivation rec {
pname = "arping";
version = "2.23";
src = fetchFromGitHub {
owner = "ThomasHabets";
repo = pname;
rev = "${pname}-${version}";
hash = "sha256-Yn0EFb23VJvcVluQhwGHg9cdnZ8LKlBEds7cq8Irftc=";
};
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
libnet
libpcap
];
meta = with lib; {
description = "Broadcasts a who-has ARP packet on the network and prints answers";
homepage = "https://github.com/ThomasHabets/arping";
license = with licenses; [ gpl2Plus ];
maintainers = with maintainers; [ michalrus ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchzip, libnet }:
stdenv.mkDerivation rec {
pname = "arpoison";
version = "0.7";
buildInputs = [ libnet ];
src = fetchzip {
url = "http://www.arpoison.net/arpoison-${version}.tar.gz";
sha256 = "0krhszx3s0qwfg4rma5a51ak71nnd9xfs2ibggc3hwiz506s2x37";
};
postPatch = "substituteInPlace Makefile --replace gcc cc";
installPhase = ''
mkdir -p $out/bin $out/share/man/man8
gzip arpoison.8
cp arpoison $out/bin
cp arpoison.8.gz $out/share/man/man8
'';
meta = with lib; {
description = "UNIX arp cache update utility";
homepage = "http://www.arpoison.net/";
license = with licenses; [ gpl2 ];
maintainers = [ maintainers.michalrus ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,49 @@
{ lib
, stdenv
, buildGoModule
, fetchFromGitHub
, openssh
, makeWrapper
, ps
}:
buildGoModule rec {
pname = "assh";
version = "2.12.2";
src = fetchFromGitHub {
repo = "advanced-ssh-config";
owner = "moul";
rev = "v${version}";
sha256 = "sha256-KVxEhA9tXAUhqMZ+MLX7Xk5aoaOcukiVFMLme9eHTUw=";
};
vendorSha256 = "sha256-xLsiYM0gZL5O+Y3IkiMmzJReNW7XFN3Xejz2CkCqp5M=";
ldflags = [
"-s" "-w" "-X moul.io/assh/v2/pkg/version.Version=${version}"
];
nativeBuildInputs = [ makeWrapper ];
checkInputs = lib.optionals stdenv.isDarwin [ ps ];
postInstall = ''
wrapProgram "$out/bin/assh" \
--prefix PATH : ${openssh}/bin
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/assh --help > /dev/null
'';
meta = with lib; {
description = "Advanced SSH config - Regex, aliases, gateways, includes and dynamic hosts";
homepage = "https://github.com/moul/assh";
changelog = "https://github.com/moul/assh/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ zzamboni ];
platforms = with platforms; linux ++ darwin;
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl, readline, tcp_wrappers, pcre, makeWrapper, gcc, ps }:
stdenv.mkDerivation rec {
pname = "atftp";
version = "0.7.5";
src = fetchurl {
url = "mirror://sourceforge/atftp/${pname}-${version}.tar.gz";
sha256 = "12h3sgkd25j4nfagil2jqyj1n8yxvaawj0cf01742642n57pmj4k";
};
# fix test script
postPatch = ''
patchShebangs .
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ readline tcp_wrappers pcre gcc ];
# Expects pre-GCC5 inline semantics
NIX_CFLAGS_COMPILE = "-std=gnu89";
doCheck = true;
checkInputs = [ ps ];
meta = {
description = "Advanced tftp tools";
maintainers = [ lib.maintainers.raskin ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchgit, ronn, mount }:
stdenv.mkDerivation rec {
pname = "atinout";
version = "0.9.2-alpha";
NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.cc.isClang) "-Werror=implicit-fallthrough=0";
LANG = if stdenv.isDarwin then "en_US.UTF-8" else "C.UTF-8";
nativeBuildInputs = [ ronn mount ];
src = fetchgit {
url = "git://git.code.sf.net/p/atinout/code";
rev = "4976a6cb5237373b7e23cd02d7cd5517f306e3f6";
sha256 = "0bninv2bklz7ly140cxx8iyaqjlq809jjx6xqpimn34ghwsaxbpv";
};
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installPhase = ''
make PREFIX=$out install
'';
meta = with lib; {
homepage = "http://atinout.sourceforge.net";
description = "Tool for talking to modems";
platforms = platforms.unix;
license = licenses.gpl3;
maintainers = with maintainers; [ bendlas ];
};
}

View file

@ -0,0 +1,35 @@
{lib, stdenv, fetchurl, openssh}:
stdenv.mkDerivation rec {
pname = "autossh";
version = "1.4g";
src = fetchurl {
url = "http://www.harding.motd.ca/autossh/${pname}-${version}.tgz";
sha256 = "0xqjw8df68f4kzkns5gcah61s5wk0m44qdk2z1d6388w6viwxhsz";
};
preConfigure = ''
export ac_cv_func_malloc_0_nonnull=yes
export ac_cv_func_realloc_0_nonnull=yes
'';
nativeBuildInputs = [ openssh ];
installPhase = ''
install -D -m755 autossh $out/bin/autossh || return 1
install -D -m644 CHANGES $out/share/doc/autossh/CHANGES || return 1
install -D -m644 README $out/share/doc/autossh/README || return 1
install -D -m644 autossh.host $out/share/autossh/examples/autossh.host || return 1
install -D -m644 rscreen $out/share/autossh/examples/rscreen || return 1
install -D -m644 autossh.1 $out/man/man1/autossh.1 || return 1
'';
meta = with lib; {
homepage = "https://www.harding.motd.ca/autossh/";
description = "Automatically restart SSH sessions and tunnels";
license = licenses.bsd1;
platforms = platforms.unix;
maintainers = with maintainers; [ pSub ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive
, pkg-config, gettext, libssl, txt2man }:
stdenv.mkDerivation rec {
pname = "axel";
version = "2.17.11";
src = fetchFromGitHub {
owner = "axel-download-accelerator";
repo = pname;
rev = "v${version}";
sha256 = "sha256-yC4TL8IXWGEwRXAyeon6QnQa+rT1xL/McLsghjZ4ky4=";
};
nativeBuildInputs = [ autoreconfHook pkg-config autoconf-archive txt2man ];
buildInputs = [ gettext libssl ];
installFlags = [ "ETCDIR=${placeholder "out"}/etc" ];
meta = with lib; {
description = "Console downloading program with some features for parallel connections for faster downloading";
homepage = "https://github.com/axel-download-accelerator/axel";
maintainers = with maintainers; [ pSub ];
platforms = with platforms; unix;
license = licenses.gpl2;
};
}

View file

@ -0,0 +1,25 @@
{ lib, stdenv, fetchurl, nixosTests }:
stdenv.mkDerivation rec {
pname = "babeld";
version = "1.12.1";
src = fetchurl {
url = "https://www.irif.fr/~jch/software/files/${pname}-${version}.tar.gz";
sha256 = "sha256-mrWdesdB82MN8j+cO2fGApTYs0q2IjmPm4l3OoeOyx4=";
};
preBuild = ''
makeFlags="PREFIX=$out ETCDIR=$out/etc"
'';
passthru.tests.babeld = nixosTests.babeld;
meta = with lib; {
homepage = "http://www.irif.fr/~jch/software/babel/";
description = "Loop-avoiding distance-vector routing protocol";
license = licenses.mit;
maintainers = with maintainers; [ fpletz hexa ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,31 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "bacnet-stack";
version = "1.0.0";
src = fetchFromGitHub {
owner = "bacnet-stack";
repo = "bacnet-stack";
rev = "bacnet-stack-${version}";
sha256 = "078p7qsy9v6fl7pzwgcr72pgjqxfxmfxyqajih2zqlb5g5sf88vh";
};
hardeningDisable = [ "all" ];
buildPhase = ''
make BUILD=debug BACNET_PORT=linux BACDL_DEFINE=-DBACDL_BIP=1 BACNET_DEFINES=" -DPRINT_ENABLED=1 -DBACFILE -DBACAPP_ALL -DBACNET_PROPERTY_LISTS"
'';
installPhase = ''
mkdir $out
cp -r bin $out/bin
'';
meta = with lib; {
description = "BACnet open source protocol stack for embedded systems, Linux, and Windows";
platforms = platforms.linux;
license = licenses.gpl2;
maintainers = with maintainers; [ WhittlesJr ];
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchFromGitHub, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false }:
stdenv.mkDerivation rec {
pname = "badvpn";
version = "1.999.130";
src = fetchFromGitHub {
owner = "ambrop72";
repo = "badvpn";
rev = version;
sha256 = "sha256-bLTDpq3ohUP+KooPvhv1/AZfdo0HwB3g9QOuE2E/pmY=";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
openssl
nss
nspr
];
preConfigure = ''
find . -name '*.sh' -exec sed -e 's@#!/bin/sh@${stdenv.shell}@' -i '{}' ';'
find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';'
cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=-O3 ${lib.optionalString (!debug) "-DNDEBUG"}");
'';
meta = with lib; {
description = "A set of network-related (mostly VPN-related) tools";
license = licenses.bsd3;
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, Security, fetchpatch }:
rustPlatform.buildRustPackage rec {
pname = "bandwhich";
version = "0.20.0";
src = fetchFromGitHub {
owner = "imsnif";
repo = pname;
rev = version;
sha256 = "014blvrv0kk4gzga86mbk7gd5dl1szajfi972da3lrfznck1w24n";
};
cargoSha256 = "sha256-Vrd5DIfhUSb3BONaUG8RypmVF+HWrlM0TodlWjOLa/c=";
buildInputs = lib.optional stdenv.isDarwin Security;
# 10 passed; 47 failed https://hydra.nixos.org/build/148943783/nixlog/1
doCheck = !stdenv.isDarwin;
# FIXME: remove when the linked-hash-map dependency is bumped upstream
cargoPatches = [
(fetchpatch {
url = "https://github.com/imsnif/bandwhich/pull/222/commits/be06905de2c4fb91afc22d50bf3cfe5a1e8003f5.patch";
sha256 = "sha256-FyZ7jUXK7ebXq7q/lvRSe7YdPnpYWKZE3WrSKLMjJeA=";
})
];
meta = with lib; {
description = "A CLI utility for displaying current network utilization";
longDescription = ''
bandwhich sniffs a given network interface and records IP packet size, cross
referencing it with the /proc filesystem on linux or lsof on MacOS. It is
responsive to the terminal window size, displaying less info if there is
no room for it. It will also attempt to resolve ips to their host name in
the background using reverse DNS on a best effort basis.
'';
homepage = "https://github.com/imsnif/bandwhich";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne ma27 SuperSandro2000 ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,24 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, zlib, bzip2 }:
stdenv.mkDerivation rec {
pname = "bgpdump";
version = "1.6.2";
src = fetchFromGitHub {
owner = "RIPE-NCC";
repo = "bgpdump";
rev = "v${version}";
sha256 = "sha256-1HXMf9mHManR7jhonU2Agon0YFXOlM9APIN1Zm840AM=";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ zlib bzip2 ];
meta = {
homepage = "https://github.com/RIPE-NCC/bgpdump";
description = "Analyze dump files produced by Zebra/Quagga or MRT";
license = lib.licenses.hpnd;
maintainers = with lib.maintainers; [ lewo ];
platforms = with lib.platforms; linux;
};
}

View file

@ -0,0 +1,21 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "bgpq3";
version = "0.1.36.1";
src = fetchFromGitHub {
owner = "snar";
repo = pname;
rev = "v${version}";
hash = "sha256-rOpggVlXKaf3KBhfZ2lVooDaQA0iRjSbsLXF02GEyBw=";
};
meta = with lib; {
description = "bgp filtering automation tool";
homepage = "https://github.com/snar/bgpq3";
license = licenses.bsd2;
maintainers = with maintainers; [ b4dm4n ];
platforms = with platforms; unix;
};
}

View file

@ -0,0 +1,25 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "bgpq4";
version = "1.4";
src = fetchFromGitHub {
owner = "bgp";
repo = pname;
rev = version;
sha256 = "sha256-EFxINRFrcNXGtXpNqvBIN6pE1kG3OdeDIHYOsG2celI=";
};
nativeBuildInputs = [
autoreconfHook
];
meta = with lib; {
description = "BGP filtering automation tool";
homepage = "https://github.com/bgp/bgpq4";
license = licenses.bsd2;
maintainers = with maintainers; [ vincentbernat ];
platforms = with platforms; unix;
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, zlib, pciutils }:
stdenv.mkDerivation rec {
pname = "biosdevname";
version = "0.7.3";
src = fetchFromGitHub {
owner = "dell";
repo = "biosdevname";
rev = "v${version}";
sha256 = "19wbb79x9h79k55sgd4dylvdbhhrvfaiaknbw9s1wvfmirkxa1dz";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ zlib pciutils ];
# Don't install /lib/udev/rules.d/*-biosdevname.rules
patches = [ ./makefile.patch ];
configureFlags = [ "--sbindir=\${out}/bin" ];
meta = with lib; {
description = "Udev helper for naming devices per BIOS names";
license = licenses.gpl2;
platforms = ["x86_64-linux" "i686-linux"];
maintainers = with maintainers; [ cstrahan ];
};
}

View file

@ -0,0 +1,13 @@
diff --git a/Makefile.am b/Makefile.am
index 14d9a92..9e324d2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,8 +8,6 @@ dist_noinst_DATA = biosdevname.rules.in biosdevname.spec.fedora biosdevname.spec
CLEANFILES = version src/bios_dev_name.h
install-data-local:
- mkdir -p $(DESTDIR)@RULEDIR@
- $(INSTALL_DATA) $(top_srcdir)/biosdevname.rules.in $(DESTDIR)@RULEDEST@
uninstall-local:
rm -f $(DESTDIR)@RULEDEST@

View file

@ -0,0 +1,172 @@
{ lib
, stdenv
, fetchFromGitLab
, mkDerivation
, buildGoModule
, wrapQtAppsHook
, python3Packages
, pkg-config
, openvpn
, cmake
, qmake
, which
, iproute2
, iptables
, procps
, qmltermwidget
, qtbase
, qtdeclarative
, qtinstaller
, qtquickcontrols
, qtquickcontrols2
, qttools
, CoreFoundation
, Security
, provider ? "riseup"
}:
let
version = "0.21.6";
src = fetchFromGitLab {
domain = "0xacab.org";
owner = "leap";
repo = "bitmask-vpn";
rev = version;
sha256 = "sha256-LMz+ZgQVFGujoLA8rlyZ3VnW/NSlPipD5KwCe+cFtnY=";
};
# bitmask-root is only used on GNU/Linux
# and may one day be replaced by pkg/helper
bitmask-root = mkDerivation {
inherit src version;
sourceRoot = "source/helpers";
pname = "bitmask-root";
nativeBuildInputs = [ python3Packages.wrapPython ];
postPatch = ''
substituteInPlace bitmask-root \
--replace 'swhich("ip")' '"${iproute2}/bin/ip"' \
--replace 'swhich("iptables")' '"${iptables}/bin/iptables"' \
--replace 'swhich("ip6tables")' '"${iptables}/bin/ip6tables"' \
--replace 'swhich("sysctl")' '"${procps}/bin/sysctl"' \
--replace /usr/sbin/openvpn ${openvpn}/bin/openvpn
substituteInPlace se.leap.bitmask.policy \
--replace /usr/sbin/bitmask-root $out/bin/bitmask-root
'';
installPhase = ''
runHook preInstall
install -m 755 -D -t $out/bin bitmask-root
install -m 444 -D -t $out/share/polkit-1/actions se.leap.bitmask.policy
wrapPythonPrograms
runHook postInstall
'';
};
in
buildGoModule rec {
inherit src version;
pname = "${provider}-vpn";
vendorSha256 = null;
postPatch = ''
substituteInPlace pkg/pickle/helpers.go \
--replace /usr/share $out/share
# Using $PROVIDER is not working,
# thus replacing directly into the vendor.conf
substituteInPlace providers/vendor.conf \
--replace "provider = riseup" "provider = ${provider}"
substituteInPlace branding/templates/debian/app.desktop-template \
--replace "Icon=icon" "Icon=${pname}"
patchShebangs gui/build.sh
wrapPythonProgramsIn branding/scripts
'' + lib.optionalString stdenv.isLinux ''
substituteInPlace pkg/helper/linux.go \
--replace /usr/sbin/openvpn ${openvpn}/bin/openvpn
substituteInPlace pkg/vpn/launcher_linux.go \
--replace /usr/sbin/openvpn ${openvpn}/bin/openvpn \
--replace /usr/sbin/bitmask-root ${bitmask-root}/bin/bitmask-root \
--replace /usr/bin/lxpolkit /run/wrappers/bin/polkit-agent-helper-1 \
--replace '"polkit-gnome-authentication-agent-1",' '"polkit-gnome-authentication-agent-1","polkitd",'
'';
nativeBuildInputs = [
cmake
pkg-config
python3Packages.wrapPython
qmake
qtquickcontrols
qtquickcontrols2
qttools
which
wrapQtAppsHook
] ++ lib.optional (!stdenv.isLinux) qtinstaller;
buildInputs = [
qtbase
qmltermwidget
qtdeclarative
] ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
# FIXME: building on Darwin currently fails
# due to missing debug symbols for Qt,
# this should be fixable once darwin.apple_sdk >= 10.13
# See https://bugreports.qt.io/browse/QTBUG-76777
# Not using buildGoModule's buildPhase:
# gui/build.sh will build Go modules into lib/libgoshim.a
buildPhase = ''
runHook preBuild
make gen_providers_json
make generate
# Remove timestamps in comments
sed -i -e '/^\/\//d' pkg/config/version/version.go
# Not using -j$NIX_BUILD_CORES because the Makefile's rules
# are not thread-safe: lib/libgoshim.h is used before being built.
make build
runHook postBuild
'';
postInstall = ''
install -m 755 -D -t $out/bin build/qt/release/${pname}
VERSION=${version} VENDOR_PATH=providers branding/scripts/generate-debian branding/templates/debian/data.json
(cd branding/templates/debian && ${python3Packages.python}/bin/python3 generate.py)
install -m 444 -D branding/templates/debian/app.desktop $out/share/applications/${pname}.desktop
install -m 444 -D providers/${provider}/assets/icon.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg
'' + lib.optionalString stdenv.isLinux ''
install -m 444 -D -t $out/share/polkit-1/actions ${bitmask-root}/share/polkit-1/actions/se.leap.bitmask.policy
'';
# Some tests need access to the Internet:
# Post "https://api.black.riseup.net/3/cert": dial tcp: lookup api.black.riseup.net on [::1]:53: read udp [::1]:56553->[::1]:53: read: connection refused
doCheck = false;
passthru = { inherit bitmask-root; };
meta = {
description = "Generic VPN client by LEAP";
longDescription = ''
Bitmask, by LEAP (LEAP Encryption Access Project),
is an application to provide easy and secure encrypted communication
with a VPN (Virtual Private Network). It allows you to select from
a variety of trusted service provider all from one app.
Current providers include Riseup Networks
and The Calyx Institute, where the former is default.
The <literal>${pname}</literal> executable should appear
in your desktop manager's XDG menu or could be launch in a terminal
to get an execution log. A new icon should then appear in your systray
to control the VPN and configure some options.
'';
homepage = "https://bitmask.net";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ julm ];
# darwin requires apple_sdk >= 10.13
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,33 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "bore-cli";
version = "0.4.0";
src = fetchFromGitHub {
owner = "ekzhang";
repo = "bore";
rev = "v${version}";
hash = "sha256-ywdJH39OYLaM4st/DIcvvtIUzExpbAucMMpqouJL1yI=";
};
cargoSha256 = "sha256-ZnEVTFiPo3AFyo1BoV88X2nCqYzRK6PkcbawiR+QnV0=";
buildInputs = lib.optional stdenv.isDarwin [
Security
];
# tests do not find grcov path correctly
meta = with lib; {
description = "Rust tool to create TCP tunnels";
homepage = "https://github.com/ekzhang/bore";
license = licenses.mit;
maintainers = with maintainers; [ DieracDelta ];
mainProgram = "bore";
};
}

View file

@ -0,0 +1,48 @@
{ lib, stdenv, rustPlatform, fetchFromBitbucket, llvmPackages, Libsystem, SystemConfiguration, installShellFiles }:
rustPlatform.buildRustPackage rec {
pname = "bore";
version = "0.4.1";
src = fetchFromBitbucket {
owner = "delan";
repo = "nonymous";
rev = "${pname}-${version}";
sha256 = "1fdnnx7d18gj4rkv1dc6q379dqabl66zks9i0rjarjwcci8m30d9";
};
cargoSha256 = "1xlbfzmy0wjyz3jpr17r4ma4i79d9b32yqwwi10vrcjzr7vsyhmx";
cargoBuildFlags = "-p ${pname}";
# FIXME cant test --all-targets and --doc in a single invocation
cargoTestFlags = [ "--all-targets" "--workspace" ];
checkFeatures = [ "std" ];
nativeBuildInputs = [ installShellFiles ]
++ lib.optional stdenv.isDarwin llvmPackages.libclang;
buildInputs = lib.optionals stdenv.isDarwin [
Libsystem
SystemConfiguration
];
LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib";
postInstall = ''
installManPage $src/bore/doc/bore.1
'';
doInstallCheck = true;
installCheckPhase = ''
printf '\0\0\0\0\0\0\0\0\0\0\0\0' \
| $out/bin/bore --decode \
| grep -q ';; NoError #0 Query 0 0 0 0 flags'
'';
meta = with lib; {
description = "DNS query tool";
homepage = "https://crates.io/crates/bore";
license = licenses.isc;
maintainers = [ maintainers.delan ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin }:
rustPlatform.buildRustPackage rec {
pname = "boringtun";
version = "0.4.0";
src = fetchFromGitHub {
owner = "cloudflare";
repo = pname;
rev = "v${version}";
sha256 = "sha256-fZchh02CsVC5sdnR3blojslsKi7OxFcblHMuyuHsH/4=";
};
cargoSha256 = "sha256-iJbzvhRPVDHXqianQ6UbmYEfmZCS/obxFZV/PsJMhD0=";
buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
# Testing this project requires sudo, Docker and network access, etc.
doCheck = false;
meta = with lib; {
description = "Userspace WireGuard® implementation in Rust";
homepage = "https://github.com/cloudflare/boringtun";
license = licenses.bsd3;
maintainers = with maintainers; [ xrelkd marsam ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -0,0 +1,67 @@
{ stdenv, lib, fetchzip }:
stdenv.mkDerivation rec {
pname = "boundary";
version = "0.8.1";
src =
let
inherit (stdenv.hostPlatform) system;
selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
suffix = selectSystem {
x86_64-linux = "linux_amd64";
aarch64-linux = "linux_arm64";
x86_64-darwin = "darwin_amd64";
aarch64-darwin = "darwin_arm64";
};
sha256 = selectSystem {
x86_64-linux = "sha256-JvWzDdslO1S/nVsIwvFAEhLo/kkHIE1AVwoI980LV4Y=";
aarch64-linux = "sha256-IwD7iazbh94c9CZfFsg5t39D8oVWgpfXP1H0/GsTe3Y=";
x86_64-darwin = "sha256-SkNSZVdbR6KW/vChDdvHMP+fGQp+mPVxKpEHb7BR4+4=";
aarch64-darwin = "sha256-Mx9YhMk5eBgtDiYWPq7jfhrM3TjH0VCUE1QXycz5Cfc=";
};
in
fetchzip {
url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
inherit sha256;
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
install -D boundary $out/bin/boundary
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/boundary --help
$out/bin/boundary version
runHook postInstallCheck
'';
dontPatchELF = true;
dontPatchShebangs = true;
passthru.updateScript = ./update.sh;
meta = with lib; {
homepage = "https://boundaryproject.io/";
changelog = "https://github.com/hashicorp/boundary/blob/v${version}/CHANGELOG.md";
description = "Enables identity-based access management for dynamic infrastructure";
longDescription = ''
Boundary provides a secure way to access hosts and critical systems
without having to manage credentials or expose your network, and is
entirely open source.
Boundary is designed to be straightforward to understand, highly scalable,
and resilient. It can run in clouds, on-prem, secure enclaves and more,
and does not require an agent to be installed on every end host.
'';
license = licenses.mpl20;
maintainers = with maintainers; [ jk techknowlogick ];
};
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused gawk nix-prefetch
set -euo pipefail
ROOT="$(dirname "$(readlink -f "$0")")"
NIX_DRV="$ROOT/default.nix"
if [ ! -f "$NIX_DRV" ]; then
echo "ERROR: cannot find default.nix in $ROOT"
exit 1
fi
fetch_arch() {
VER="$1"; ARCH="$2"
URL="https://releases.hashicorp.com/boundary/${VER}/boundary_${VER}_${ARCH}.zip"
nix-prefetch "{ stdenv, fetchzip }:
stdenv.mkDerivation rec {
pname = \"boundary\"; version = \"${VER}\";
src = fetchzip { url = \"$URL\"; };
}
"
}
replace_sha() {
sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV"
}
# https://releases.hashicorp.com/boundary/0.1.4/boundary_0.1.4_linux_amd64.zip
BOUNDARY_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/hashicorp/boundary/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//')
BOUNDARY_LINUX_X64_SHA256=$(fetch_arch "$BOUNDARY_VER" "linux_amd64")
BOUNDARY_DARWIN_X64_SHA256=$(fetch_arch "$BOUNDARY_VER" "darwin_amd64")
BOUNDARY_LINUX_AARCH64_SHA256=$(fetch_arch "$BOUNDARY_VER" "linux_arm64")
BOUNDARY_DARWIN_AARCH64_SHA256=$(fetch_arch "$BOUNDARY_VER" "darwin_arm64")
sed -i "s/version = \".*\"/version = \"$BOUNDARY_VER\"/" "$NIX_DRV"
replace_sha "x86_64-linux" "$BOUNDARY_LINUX_X64_SHA256"
replace_sha "x86_64-darwin" "$BOUNDARY_DARWIN_X64_SHA256"
replace_sha "aarch64-linux" "$BOUNDARY_LINUX_AARCH64_SHA256"
replace_sha "aarch64-darwin" "$BOUNDARY_DARWIN_AARCH64_SHA256"

View file

@ -0,0 +1,23 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "brook";
version = "20220515";
src = fetchFromGitHub {
owner = "txthinking";
repo = pname;
rev = "v${version}";
sha256 = "sha256-olYlAuIcK34nNXbfiPT4+u0L3xcxBMMty72FjSeuNqg=";
};
vendorSha256 = "sha256-ic5QYRVElEuH4D29PXgTzMHU0KjrxDqcdfg7Kd37/YU=";
meta = with lib; {
homepage = "https://github.com/txthinking/brook";
description = "A cross-platform Proxy/VPN software";
license = with licenses; [ gpl3Only ];
platforms = platforms.unix;
maintainers = with maintainers; [ xrelkd ];
};
}

View file

@ -0,0 +1,47 @@
{ lib
, stdenv
, fetchurl
, buildClient ? true
}:
stdenv.mkDerivation rec {
srcName = "bsd-finger";
pname = srcName + lib.optionalString (!buildClient) "d";
version = "0.17";
src = fetchurl {
url = "mirror://ibiblioPubLinux/system/network/finger/${srcName}-${version}.tar.gz";
hash = "sha256-hIhdZo0RfvUOAccDSkXYND10fOxiEuQOjQgVG8GOE/o=";
};
# outputs = [ "out" "man" ];
NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE";
patches = [
./ubuntu-0.17-9.patch
];
preBuild = let
srcdir = if buildClient then "finger" else "fingerd";
in ''
cd ${srcdir}
'';
preInstall = let
bindir = if buildClient then "bin" else "sbin";
mandir = if buildClient then "man/man1" else "man/man8";
in ''
mkdir -p $out/${bindir} $out/${mandir}
'';
meta = with lib; {
description =
if buildClient
then "User information lookup program"
else "Remote user information server";
platforms = platforms.linux;
license = licenses.bsdOriginal;
};
}
# TODO: multiple outputs (manpage)

View file

@ -0,0 +1,261 @@
--- bsd-finger-0.17.orig/finger/finger.1
+++ bsd-finger-0.17/finger/finger.1
@@ -169,16 +169,14 @@
must be able to see the
.Pa .nofinger
file. This generally means that the home directory containing the file
-must have the other-users-execute bit set (o+w). See
+must have the other-users-execute bit set (o+x). See
.Xr chmod 1 .
If you use this feature for privacy, please test it with ``finger
@localhost'' before relying on it, just in case.
.It ~/.plan
.It ~/.project
-.It ~/.pgp
+.It ~/.pgpkey
These files are printed as part of a long-format request. The
-.Pa .project
-file is limited to one line; the
.Pa .plan
file may be arbitrarily long.
.El
--- bsd-finger-0.17.orig/finger/finger.c
+++ bsd-finger-0.17/finger/finger.c
@@ -77,7 +77,7 @@
#include "../version.h"
static void loginlist(void);
-static void userlist(int argc, char *argv[]);
+static int userlist(int argc, char *argv[]);
int lflag, pplan;
static int sflag, mflag;
@@ -92,6 +92,7 @@
int main(int argc, char *argv[]) {
int ch;
+ int err = 0;
struct sockaddr_in sin;
socklen_t slen = sizeof(sin);
@@ -159,7 +160,7 @@
}
}
else {
- userlist(argc, argv);
+ err = userlist(argc, argv);
/*
* Assign explicit "large" format if names given and -s not
* explicitly stated. Force the -l AFTER we get names so any
@@ -172,7 +173,7 @@
if (lflag) lflag_print();
else sflag_print();
}
- return 0;
+ return err;
}
/* Returns 1 if .nofinger is found and enable_nofinger is set. */
@@ -181,10 +182,16 @@
check_nofinger(struct passwd *pw)
{
if (enable_nofinger) {
- char path[PATH_MAX];
struct stat tripe;
- snprintf(path, sizeof(path), "%s/.nofinger", pw->pw_dir);
- if (stat(path, &tripe)==0) {
+ int ret;
+ char *path;
+ if (asprintf(&path, "%s/.nofinger", pw->pw_dir) < 0) {
+ eprintf("finger: Out of space.\n");
+ exit(1);
+ }
+ ret = stat(path, &tripe);
+ free(path);
+ if (!ret) {
return 1;
}
}
@@ -264,10 +271,11 @@
}
-static void
+static int
userlist(int argc, char *argv[])
{
int i;
+ int err = 0;
PERSON *pn;
PERSON *nethead, **nettail;
struct utmp *uptr;
@@ -297,13 +305,13 @@
/* handle network requests */
for (pn = nethead; pn; pn = pn->next) {
- netfinger(pn->name);
+ err |= netfinger(pn->name);
if (pn->next || entries)
xputc('\n');
}
if (entries == 0)
- return;
+ return err;
/*
* Scan thru the list of users currently logged in, saving
@@ -331,4 +339,6 @@
enter_lastlog(pn);
}
endutent();
+
+ return err;
}
--- bsd-finger-0.17.orig/finger/finger.h
+++ bsd-finger-0.17/finger/finger.h
@@ -92,7 +92,7 @@
void enter_where(struct utmp *ut, PERSON *pn);
void enter_lastlog(PERSON *pn);
int match(struct passwd *pw, const char *user);
-void netfinger(const char *name);
+int netfinger(const char *name);
const char *prphone(const char *num);
#ifndef DAYSPERNYEAR
--- bsd-finger-0.17.orig/finger/lprint.c
+++ bsd-finger-0.17/finger/lprint.c
@@ -48,7 +48,7 @@
#include <sys/types.h>
#include <sys/file.h>
#include <sys/stat.h>
-#include <sys/time.h>
+#include <time.h>
#include "finger.h"
static void lprint(PERSON *pn);
@@ -100,7 +100,7 @@
* office, office phone, home phone if available
*/
xprintf("Login: %-15s\t\t\tName: %s\nDirectory: %-25s",
- pn->name, pn->realname, pn->dir);
+ pn->name, pn->realname ? pn->realname : "", pn->dir);
xprintf("\tShell: %-s\n", *pn->shell ? pn->shell : _PATH_BSHELL);
/*
--- bsd-finger-0.17.orig/finger/net.c
+++ bsd-finger-0.17/finger/net.c
@@ -51,7 +51,7 @@
#include <ctype.h>
#include "finger.h"
-void netfinger(const char *name) {
+int netfinger(const char *name) {
register FILE *fp;
struct in_addr defaddr;
register int c, sawret, ateol;
@@ -62,7 +62,7 @@
char *alist[1], *host;
host = strrchr(name, '@');
- if (!host) return;
+ if (!host) return 1;
*host++ = '\0';
memset(&sn, 0, sizeof(sn));
@@ -70,7 +70,7 @@
sp = getservbyname("finger", "tcp");
if (!sp) {
eprintf("finger: tcp/finger: unknown service\n");
- return;
+ return 1;
}
sn.sin_port = sp->s_port;
@@ -78,7 +78,7 @@
if (!hp) {
if (!inet_aton(host, &defaddr)) {
eprintf("finger: unknown host: %s\n", host);
- return;
+ return 1;
}
def.h_name = host;
def.h_addr_list = alist;
@@ -96,7 +96,7 @@
if ((s = socket(hp->h_addrtype, SOCK_STREAM, 0)) < 0) {
eprintf("finger: socket: %s\n", strerror(errno));
- return;
+ return 1;
}
/* print hostname before connecting, in case it takes a while */
@@ -104,7 +104,7 @@
if (connect(s, (struct sockaddr *)&sn, sizeof(sn)) < 0) {
eprintf("finger: connect: %s\n", strerror(errno));
close(s);
- return;
+ return 1;
}
/* -l flag for remote fingerd */
@@ -128,7 +128,7 @@
if (!fp) {
eprintf("finger: fdopen: %s\n", strerror(errno));
close(s);
- return;
+ return 1;
}
sawret = 0;
@@ -152,4 +152,6 @@
}
if (!ateol) xputc('\n');
fclose(fp);
+
+ return 0;
}
--- bsd-finger-0.17.orig/finger/sprint.c
+++ bsd-finger-0.17/finger/sprint.c
@@ -40,7 +40,7 @@
#endif /* not lint */
#include <sys/types.h>
-#include <sys/time.h>
+#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
--- bsd-finger-0.17.orig/finger/util.c
+++ bsd-finger-0.17/finger/util.c
@@ -64,7 +64,7 @@
struct stat sb;
/* No device for X console. Utmp entry by XDM login (":0"). */
- if (w->tty[0] == ':') {
+ if (strchr(w->tty, ':')) {
w->idletime = 0; /* would be nice to have it emit ??? */
w->writable = 0;
return;
@@ -109,9 +109,8 @@
* fields[3] -> homephone
*/
nfields = 0;
- for (p = strtok(bp, ","); p; p = strtok(NULL, ",")) {
- if (*p==0) p = NULL; // skip empties
- if (nfields < 4) fields[nfields++] = p;
+ while ((p = strsep(&bp, ","))) {
+ if (nfields < 4) fields[nfields++] = *p ? p : NULL;
}
while (nfields<4) fields[nfields++] = NULL;
@@ -150,6 +149,9 @@
pn->realname = rname;
}
+ else {
+ pn->realname = NULL;
+ }
pn->office = fields[1] ? strdup(fields[1]) : NULL;
pn->officephone = fields[2] ? strdup(fields[2]) : NULL;

View file

@ -0,0 +1,48 @@
{ lib, rustPlatform, fetchFromGitHub, sqlite }: let
manifest = {
description = "Bukubrow extension host application";
name = "com.samhh.bukubrow";
path = "@out@/bin/bukubrow";
type = "stdio";
};
in rustPlatform.buildRustPackage rec {
pname = "bukubrow-host";
version = "5.0.0";
src = fetchFromGitHub {
owner = "SamHH";
repo = pname;
rev = "v${version}";
sha256 = "1a3gqxj6d1shv3w0v9m8x2xr0bvcynchy778yqalxkc3x4vr0nbn";
};
cargoSha256 = "0z6i9wzz5gy9rs8cxfmwg4mpfajv0xvj4nn6jfl7f1rw6k457jc9";
buildInputs = [ sqlite ];
passAsFile = [ "firefoxManifest" "chromeManifest" ];
firefoxManifest = builtins.toJSON (manifest // {
allowed_extensions = [ "bukubrow@samhh.com" ];
});
chromeManifest = builtins.toJSON (manifest // {
allowed_origins = [ "chrome-extension://ghniladkapjacfajiooekgkfopkjblpn/" ];
});
postBuild = ''
substituteAll $firefoxManifestPath firefox.json
substituteAll $chromeManifestPath chrome.json
'';
postInstall = ''
install -Dm0644 firefox.json $out/lib/mozilla/native-messaging-hosts/com.samhh.bukubrow.json
install -Dm0644 chrome.json $out/etc/chromium/native-messaging-hosts/com.samhh.bukubrow.json
'';
meta = with lib; {
description = "A WebExtension for Buku, a command-line bookmark manager";
homepage = "https://github.com/SamHH/bukubrow-host";
license = licenses.gpl3;
maintainers = with maintainers; [ infinisil ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchFromGitHub, libpcap }:
stdenv.mkDerivation rec {
pname = "bully";
version = "1.4-00";
src = fetchFromGitHub {
owner = "kimocoder";
repo = "bully";
rev = version;
sha256 = "1n2754a5z44g414a0hj3cmi9q5lwnzyvmvzskrj2nci8c8m2kgnf";
};
buildInputs = [ libpcap ];
enableParallelBuilding = true;
sourceRoot = "./source/src";
installPhase = ''
install -Dm555 -t $out/bin bully
install -Dm444 -t $out/share/doc/${pname} ../*.md
'';
meta = with lib; {
description = "Retrieve WPA/WPA2 passphrase from a WPS enabled access point";
homepage = "https://github.com/kimocoder/bully";
license = licenses.gpl3;
maintainers = with maintainers; [ edwtjo ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,50 @@
{ lib, stdenv, fetchurl, jdk11, runtimeShell, unzip, chromium }:
stdenv.mkDerivation rec {
pname = "burpsuite";
version = "2021.12";
src = fetchurl {
name = "burpsuite.jar";
urls = [
"https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
"https://web.archive.org/web/https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
];
sha256 = "sha256-BLX/SgHctXciOZoA6Eh4zuDJoxNSZgvoj2Teg1fV80g=";
};
dontUnpack = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
echo '#!${runtimeShell}
eval "$(${unzip}/bin/unzip -p ${src} chromium.properties)"
mkdir -p "$HOME/.BurpSuite/burpbrowser/$linux64"
ln -sf "${chromium}/bin/chromium" "$HOME/.BurpSuite/burpbrowser/$linux64/chrome"
exec ${jdk11}/bin/java -jar ${src} "$@"' > $out/bin/burpsuite
chmod +x $out/bin/burpsuite
runHook postInstall
'';
preferLocalBuild = true;
meta = with lib; {
description = "An integrated platform for performing security testing of web applications";
longDescription = ''
Burp Suite is an integrated platform for performing security testing of web applications.
Its various tools work seamlessly together to support the entire testing process, from
initial mapping and analysis of an application's attack surface, through to finding and
exploiting security vulnerabilities.
'';
homepage = "https://portswigger.net/burp/";
downloadPage = "https://portswigger.net/burp/freedownload";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.unfree;
platforms = jdk11.meta.platforms;
hydraPlatforms = [];
maintainers = with maintainers; [ bennofs ];
};
}

View file

@ -0,0 +1,54 @@
{ lib
, stdenv
, autoreconfHook
, fetchurl
, fetchpatch
, ncurses
}:
stdenv.mkDerivation rec {
pname = "bwm-ng";
version = "0.6.3";
src = fetchurl {
url = "https://www.gropp.org/bwm-ng/${pname}-${version}.tar.gz";
sha256 = "0ikzyvnb73msm9n7ripg1dsw9av1i0c7q2hi2173xsj8zyv559f1";
};
patches = [
# Pull upstream fix for ncurses-6.3 support.
(fetchpatch {
name = "ncurses-6.3.patch";
url = "https://github.com/vgropp/bwm-ng/commit/6a2087db6cc7ac5b5f667fcd17c262c079e8dcf2.patch";
sha256 = "1l5dii9d52v0x0sq458ybw7m9p8aan2vl94gwx5s8mgxsnbcmzzx";
# accidentally committed changes
excludes = [ "config.h.in~" "configure.in" "configure~" ];
})
];
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
ncurses
];
meta = with lib; {
description = "A small and simple console-based live network and disk io bandwidth monitor";
homepage = "http://www.gropp.org/?id=projects&sub=bwm-ng";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ];
longDescription = ''
bwm-ng supports:
- /proc/net/dev, netstat, getifaddr, sysctl, kstat, /proc/diskstats /proc/partitions, IOKit,
devstat and libstatgrab
- unlimited number of interfaces/devices
- interfaces/devices are added or removed dynamically from list
- white-/blacklist of interfaces/devices
- output of KB/s, Kb/s, packets, errors, average, max and total sum
- output in curses, plain console, CSV or HTML
'';
};
}

View file

@ -0,0 +1,20 @@
--- a/configure.orig
+++ b/configure
@@ -9595,7 +9595,7 @@ fi
$as_echo "$ne_cv_lib_neon" >&6; }
if test "$ne_cv_lib_neon" = "yes"; then
ne_cv_lib_neonver=no
- for v in 27 28 29; do
+ for v in 27 28 29 30 31; do
case $ne_libver in
0.$v.*) ne_cv_lib_neonver=yes ;;
esac
@@ -10328,7 +10328,7 @@ fi
$as_echo "$ne_cv_lib_neon" >&6; }
if test "$ne_cv_lib_neon" = "yes"; then
ne_cv_lib_neonver=no
- for v in 27 28 29; do
+ for v in 27 28 29 30 31; do
case $ne_libver in
0.$v.*) ne_cv_lib_neonver=yes ;;
esac

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchurl, fetchpatch, neon, pkg-config, readline, zlib, openssl }:
stdenv.mkDerivation rec {
pname = "cadaver";
version = "0.23.3";
src = fetchurl {
url = "http://www.webdav.org/cadaver/cadaver-${version}.tar.gz";
sha256 = "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x";
};
patches = [
(fetchpatch {
url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk/disable-sslv2.patch?h=packages/cadaver";
name = "disable-sslv2.patch";
sha256 = "1qx65hv584wdarks51yhd3y38g54affkphm5wz27xiz4nhmbssrr";
})
# Cadaver also works with newer versions of neon than stated
# in the configure script
./configure.patch
];
configureFlags = [ "--with-ssl" "--with-readline" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ neon readline zlib openssl ];
meta = with lib; {
description = "A command-line WebDAV client";
homepage = "http://www.webdav.org/cadaver";
maintainers = with maintainers; [ ianwookim ];
license = licenses.gpl2;
platforms = with platforms; linux ++ freebsd ++ openbsd;
};
}

View file

@ -0,0 +1,34 @@
{ lib
, python3
, fetchFromGitHub
}:
python3.pkgs.buildPythonApplication rec {
pname = "calendar-cli";
version = "0.13.0";
src = fetchFromGitHub {
owner = "tobixen";
repo = "calendar-cli";
rev = "v${version}";
hash = "sha256-wGigrBl5PJL+fVfnFnHDJ5zyB+Rq3Fm+q9vMvLuBBys=";
};
propagatedBuildInputs = with python3.pkgs; [
icalendar
caldav
pytz
tzlocal
six
];
# tests require networking
doCheck = false;
meta = with lib; {
description = "Simple command-line CalDav client";
homepage = "https://github.com/tobixen/calendar-cli";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -0,0 +1,64 @@
{ lib
, fetchFromGitHub
, fetchpatch
, python3
}:
python3.pkgs.buildPythonApplication rec {
pname = "cantoolz";
version = "3.7.0";
src = fetchFromGitHub {
owner = "CANToolz";
repo = "CANToolz";
rev = "v${version}";
sha256 = "sha256-0ROWx1CsKtjxmbCgPYZpvr37VKsEsWCwMehf0/0/cnY=";
};
patches = [
(fetchpatch {
# Replace time.clock() which was removed, https://github.com/CANToolz/CANToolz/pull/30
url = "https://github.com/CANToolz/CANToolz/pull/30/commits/d75574523d3b273c40fb714532c4de27f9e6dd3e.patch";
sha256 = "0g91hywg5q6f2qk1awgklywigclrbhh6a6mwd0kpbkk1wawiiwbc";
})
];
propagatedBuildInputs = with python3.pkgs; [
flask
pyserial
mido
numpy
bitstring
];
checkInputs = with python3.pkgs; [
pytestCheckHook
];
disabledTests = [
"test_process"
# Sandbox issue
"test_server"
];
pythonImportsCheck = [
"cantoolz"
];
meta = with lib; {
description = "Black-box CAN network analysis framework";
longDescription = ''
CANToolz is a framework for analysing CAN networks and devices. It
provides multiple modules that can be chained using CANToolz's pipe
system and used by security researchers, automotive/OEM security
testers in black-box analysis.
CANToolz can be used for ECU discovery, MitM testing, fuzzing, brute
forcing, scanning or R&D, testing and validation. More can easily be
implemented with a new module.
'';
homepage = "https://github.com/CANToolz/CANToolz";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchFromGitHub, python3Packages, makeWrapper }:
stdenv.mkDerivation {
pname = "carddav";
version = "0.1-2014-02-26";
src = fetchFromGitHub {
owner = "ljanyst";
repo = "carddav-util";
rev = "53b181faff5f154bcd180467dd04c0ce69405564";
sha256 = "sha256-9iRCNDC0FJ+JD2Hk5TC0w4QMjJ9mMtct5WIA35xTGTg=";
};
nativeBuildInputs = [ makeWrapper ];
propagatedBuildInputs = with python3Packages; [ requests vobject lxml ];
strictDeps = true;
doCheck = false; # no test
installPhase = ''
mkdir -p $out/bin
cp $src/carddav-util.py $out/bin
pythondir="$out/lib/${python3Packages.python.sitePackages}"
mkdir -p "$pythondir"
cp $src/carddav.py "$pythondir"
'';
preFixup = ''
wrapProgram "$out/bin/carddav-util.py" \
--prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)" \
--prefix PATH : "$prefix/bin:$PATH"
'';
meta = with lib; {
homepage = "https://github.com/ljanyst/carddav-util";
description = "A CardDAV import/export utility";
platforms = platforms.unix;
license = licenses.isc;
};
}

View file

@ -0,0 +1,25 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "cassowary";
version = "0.14.0";
src = fetchFromGitHub {
owner = "rogerwelin";
repo = pname;
rev = "v${version}";
sha256 = "sha256-rQNrxAKf2huY9I6iqdf1iYxgXaQI0LG1Lkrnv1OuJsg=";
};
vendorSha256 = "sha256-hGpiL88x2roFEjJJM4CKyt3k66VK1pEnpOwvhDPDp6M=";
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
meta = with lib; {
homepage = "https://github.com/rogerwelin/cassowary";
description = "Modern cross-platform HTTP load-testing tool written in Go";
license = licenses.mit;
maintainers = with maintainers; [ hugoreeves ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,48 @@
{ lib
, stdenv
, fetchurl
, ncurses
, openssl
}:
stdenv.mkDerivation rec {
pname = "cbftp";
version = "1173";
src = fetchurl {
url = "https://cbftp.eu/${pname}-r${version}.tar.gz";
hash = "sha256-DE6fnLzWsx6Skz2LRJAaijjIqrYFB8/HPp45P5CcEc8=";
};
buildInputs = [
ncurses
openssl
];
dontConfigure = true;
makeFlags = lib.optional stdenv.isDarwin "OPTFLAGS=-O0";
installPhase = ''
runHook preInstall
install -D bin/* -t $out/bin/
install -D API README -t $out/share/doc/${pname}/
runHook postInstall
'';
meta = with lib; {
homepage = "https://cbftp.eu/";
description = " An advanced multi-purpose FTP/FXP client";
longDescription = ''
Cbftp is an advanced multi-purpose FTP/FXP client that focuses on
efficient large-scale data spreading, while also supporting most regular
FTP/FXP use cases in a modern way. It runs in a terminal and provides a
semi-graphical user interface through ncurses.
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
platforms = with platforms; unix;
};
}

View file

@ -0,0 +1,38 @@
{ lib, stdenv, fetchurl, fetchpatch, libpcap }:
stdenv.mkDerivation rec {
pname = "cdpr";
version = "2.4";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}/${version}/${pname}-${version}.tgz";
sha256 = "1idyvyafkk0ifcbi7mc65b60qia6hpsdb6s66j4ggqp7if6vblrj";
};
patches = [
# Pull fix pending upstream inclusion for gcc-10 compatibility:
# https://sourceforge.net/p/cdpr/bugs/3/
(fetchurl {
name = "fno-common";
url = "https://sourceforge.net/p/cdpr/bugs/3/attachment/0001-cdpr-fix-build-on-gcc-10-fno-common.patch";
sha256 = "023cvkpc4ry1pbjd91kkwj4af3hia0layk3fp8q40vh6mbr14pnp";
})
];
postPatch = ''
substituteInPlace Makefile --replace 'gcc' '"$$CC"'
'';
buildInputs = [ libpcap ];
installPhase = ''
install -Dm755 cdpr $out/bin/cdpr
'';
meta = with lib; {
description = "Cisco Discovery Protocol Reporter";
homepage = "http://cdpr.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ maintainers.sgo ];
};
}

View file

@ -0,0 +1,26 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "changetower";
version = "1.0";
src = fetchFromGitHub {
owner = "Dc4ts";
repo = "ChangeTower";
rev = "v${version}";
sha256 = "058ccn6d5f7w268hfqh85bz1xj6ysgfrmyj0b4asjiskq7728v9z";
};
vendorSha256 = "0hagskhwrdsl6s6hn27jriysbxhaz0pqq1h43j7v0ggnwd2s03bq";
meta = with lib; {
description = "Tools to watch for webppage changes";
homepage = "https://github.com/Dc4ts/ChangeTower";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "ChangeTower";
};
}

View file

@ -0,0 +1,29 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "chaos";
version = "0.2.0";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "chaos-client";
rev = "v${version}";
sha256 = "sha256-uND88KGlUxGH3lGlcNdjSRsti/7FofruFJIcftdgzcE=";
};
vendorSha256 = "sha256-pzh/t8GeJXLIydSGoQ3vOzZ6xdHov6kdYgu2lKh/BNo=";
subPackages = [
"cmd/chaos/"
];
meta = with lib; {
description = "Tool to communicate with Chaos DNS API";
homepage = "https://github.com/projectdiscovery/chaos-client";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,28 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "checkip";
version = "0.38.0";
src = fetchFromGitHub {
owner = "jreisinger";
repo = pname;
rev = "v${version}";
sha256 = "sha256-F+Sc3t1GYpGR+EEP+9GpzfaiWNQVpDivzpS66E7Li3A=";
};
vendorSha256 = "sha256-aiqnJ1PjrwSC6YtixNvyTxgbs8z2radcETNhKHGlPk0=";
# Requires network
doCheck = false;
meta = with lib; {
description = "CLI tool that checks an IP address using various public services";
homepage = "https://github.com/jreisinger/checkip";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,36 @@
{ buildGoModule
, fetchFromGitHub
, lib
}:
buildGoModule rec {
pname = "chisel";
version = "1.7.7";
src = fetchFromGitHub {
owner = "jpillora";
repo = pname;
rev = "v${version}";
sha256 = "sha256-3EaVUGcwkJWX0FxIaHddUehJIdbxAPfBm8esXKCUuhM=";
};
vendorSha256 = "sha256-Oko9nduKW76NIUCVyF0lPzEH+TFT1el9VGIbm5lQXtM=";
ldflags = [ "-s" "-w" "-X github.com/jpillora/chisel/share.BuildVersion=${version}" ];
# tests require access to the network
doCheck = false;
meta = with lib; {
description = "TCP/UDP tunnel over HTTP";
longDescription = ''
Chisel is a fast TCP/UDP tunnel, transported over HTTP, secured via
SSH. Single executable including both client and server. Chisel is
mainly useful for passing through firewalls, though it can also be
used to provide a secure endpoint into your network.
'';
homepage = "https://github.com/jpillora/chisel";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,50 @@
{ lib, stdenv, fetchurl, pkg-config, libcap, readline, texinfo, nss, nspr
, libseccomp, pps-tools, gnutls }:
assert stdenv.isLinux -> libcap != null;
stdenv.mkDerivation rec {
pname = "chrony";
version = "4.2";
src = fetchurl {
url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
sha256 = "sha256-Jz+f0Vwyjtbzpfa6a67DWkIaNKc7tyVgUymxcSBI25o=";
};
postPatch = ''
patchShebangs test
'';
buildInputs = [ readline texinfo nss nspr gnutls ]
++ lib.optionals stdenv.isLinux [ libcap libseccomp pps-tools ];
nativeBuildInputs = [ pkg-config ];
hardeningEnable = [ "pie" ];
configureFlags = [ "--chronyvardir=$(out)/var/lib/chrony" "--enable-ntp-signd" ]
++ lib.optional stdenv.isLinux "--enable-scfilter";
meta = with lib; {
description = "Sets your computer's clock from time servers on the Net";
homepage = "https://chrony.tuxfamily.org/";
license = licenses.gpl2;
platforms = with platforms; linux ++ freebsd ++ openbsd;
maintainers = with maintainers; [ fpletz thoughtpolice ];
longDescription = ''
Chronyd is a daemon which runs in background on the system. It obtains
measurements via the network of the system clocks offset relative to
time servers on other systems and adjusts the system time accordingly.
For isolated systems, the user can periodically enter the correct time by
hand (using Chronyc). In either case, Chronyd determines the rate at
which the computer gains or loses time, and compensates for this. Chronyd
implements the NTP protocol and can act as either a client or a server.
Chronyc provides a user interface to Chronyd for monitoring its
performance and configuring various settings. It can do so while running
on the same computer as the Chronyd instance it is controlling or a
different computer.
'';
};
}

View file

@ -0,0 +1,40 @@
{ lib, python3 }:
let
python = python3.override {
self = python;
packageOverrides = self: super: {
tornado = super.tornado_4;
};
};
inherit (python.pkgs) buildPythonApplication fetchPypi iowait psutil pyzmq tornado mock six;
in
buildPythonApplication rec {
pname = "circus";
version = "0.16.1";
src = fetchPypi {
inherit pname version;
sha256 = "0paccmqwgard2l0z7swcc3nwc418l9b4mfaddb4s31bpnqg02z6x";
};
postPatch = ''
# relax version restrictions to fix build
substituteInPlace setup.py \
--replace "pyzmq>=13.1.0,<17.0" "pyzmq>13.1.0"
'';
checkInputs = [ mock ];
doCheck = false; # weird error
propagatedBuildInputs = [ iowait psutil pyzmq tornado six ];
meta = with lib; {
description = "A process and socket manager";
homepage = "https://github.com/circus-tent/circus";
license = licenses.asl20;
};
}

View file

@ -0,0 +1,45 @@
{ lib, stdenv, fetchFromGitHub, nodejs, which, python3, util-linux, nixosTests }:
stdenv.mkDerivation rec {
pname = "cjdns";
version = "21.1";
src = fetchFromGitHub {
owner = "cjdelisle";
repo = "cjdns";
rev = "cjdns-v${version}";
sha256 = "NOmk+vMZ8i0E2MjrUzksk+tkJ9XVVNEXlE5OOTNa+Y0=";
};
buildInputs = [ which python3 nodejs ] ++
# for flock
lib.optional stdenv.isLinux util-linux;
NIX_CFLAGS_COMPILE = [
"-O2"
"-Wno-error=array-bounds"
"-Wno-error=stringop-overflow"
"-Wno-error=stringop-truncation"
] ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
"-Wno-error=stringop-overread"
];
buildPhase =
lib.optionalString stdenv.isAarch32 "Seccomp_NO=1 "
+ "bash do";
installPhase = ''
install -Dt "$out/bin/" cjdroute makekeys privatetopublic publictoip6
mkdir -p $out/share/cjdns
cp -R tools node_build node_modules $out/share/cjdns/
'';
passthru.tests.basic = nixosTests.cjdns;
meta = with lib; {
homepage = "https://github.com/cjdelisle/cjdns";
description = "Encrypted networking for regular people";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ehmry ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,19 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "cksfv";
version = "1.3.15";
src = fetchurl {
url = "https://zakalwe.fi/~shd/foss/cksfv/files/cksfv-${version}.tar.bz2";
sha256 = "0k06aq94cn5xp4knjw0p7gz06hzh622ql2xvnrlr3q8rcmdvwwx1";
};
meta = with lib; {
homepage = "https://zakalwe.fi/~shd/foss/cksfv/";
description = "A tool for verifying files against a SFV checksum file";
maintainers = with maintainers; [ ];
platforms = platforms.all;
license = licenses.gpl2;
};
}

View file

@ -0,0 +1,38 @@
{ lib, fetchFromGitHub, buildGoModule, testers, clash }:
buildGoModule rec {
pname = "clash";
version = "1.10.6";
src = fetchFromGitHub {
owner = "Dreamacro";
repo = pname;
rev = "v${version}";
sha256 = "sha256-v9MUMgHIpHDUEmB5vXOIOkSriX+PCPtiiHHB4H5FeMw=";
};
vendorSha256 = "sha256-egbXCRmC862tctapMUWTcNej1g6a9wCt2JIC9DSEP6k=";
# Do not build testing suit
excludedPackages = [ "./test" ];
CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-X github.com/Dreamacro/clash/constant.Version=${version}"
];
passthru.tests.version = testers.testVersion {
package = clash;
command = "clash -v";
};
meta = with lib; {
description = "A rule-based tunnel in Go";
homepage = "https://github.com/Dreamacro/clash";
license = licenses.gpl3Only;
maintainers = with maintainers; [ contrun Br1ght0ne ];
};
}

View file

@ -0,0 +1,48 @@
{ lib, buildPythonApplication, fetchPypi
, argcomplete
, boto3
, botocore
, certifi
, python-dateutil
, jsonpatch
, jsonschema
, pyyaml
, tabulate
, urllib3
}:
buildPythonApplication rec {
pname = "cloud-custodian";
version = "0.8.45.1";
src = fetchPypi {
pname = "c7n";
inherit version;
sha256 = "0c199gdmpm83xfghrbzp02xliyxiygsnx2fvb35j9qpf37wzzp3z";
};
propagatedBuildInputs = [
argcomplete
boto3
botocore
certifi
python-dateutil
jsonpatch
jsonschema
pyyaml
tabulate
urllib3
];
# Requires tox, many packages, and network access
checkPhase = ''
$out/bin/custodian --help
'';
meta = with lib; {
description = "Rules engine for cloud security, cost optimization, and governance";
homepage = "https://cloudcustodian.io";
license = licenses.asl20;
maintainers = with maintainers; [ bhipple ];
};
}

View file

@ -0,0 +1,48 @@
{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, dbus }:
stdenv.mkDerivation rec {
pname = "cloudflare-warp";
version = "2022.02.24";
src = fetchurl {
url = "https://pkg.cloudflareclient.com/uploads/cloudflare_warp_2022_2_288_1_amd64_a0be7b47b3.deb";
sha256 = "sha256-gBXF0EfFMT6BC6ts/6PQYJH3AAQSDsFoZGK3RZIqmOA=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [ dbus ];
dontBuild = true;
dontConfigure = true;
unpackPhase = ''
dpkg-deb -x ${src} ./
'';
installPhase = ''
runHook preInstall
mv usr $out
mv lib $out
mv bin $out
runHook postInstall
'';
postInstall = ''
substituteInPlace $out/lib/systemd/system/warp-svc.service \
--replace "ExecStart=" "ExecStart=$out"
'';
meta = with lib; {
description = "Replaces the connection between your device and the Internet with a modern, optimized, protocol";
homepage = "https://pkg.cloudflareclient.com/packages/cloudflare-warp";
license = licenses.unfree;
maintainers = with maintainers; [ wolfangaukang ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,36 @@
{ mkDerivation, lib, fetchFromGitHub, qmake, qtbase, qttools, gitUpdater }:
mkDerivation rec {
pname = "cmst";
version = "2022.05.01";
src = fetchFromGitHub {
repo = "cmst";
owner = "andrew-bibb";
rev = "${pname}-${version}";
sha256 = "sha256-d3uvJf1tI9vXyq1eIbHkKrinBuPkYoBUcusHsJmSqMA=";
};
nativeBuildInputs = [ qmake qttools ];
buildInputs = [ qtbase ];
postPatch = ''
for f in $(find . -name \*.cpp -o -name \*.pri -o -name \*.pro); do
substituteInPlace $f --replace /etc $out/etc --replace /usr $out
done
'';
passthru.updateScript = gitUpdater {
inherit pname version;
rev-prefix = "${pname}-";
};
meta = with lib; {
description = "QT GUI for Connman with system tray icon";
homepage = "https://github.com/andrew-bibb/cmst";
maintainers = with maintainers; [ matejc romildo ];
platforms = platforms.linux;
license = licenses.mit;
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchFromGitHub, libglvnd, xorg }:
stdenv.mkDerivation rec {
pname = "cnping";
version = "unstable-2021-04-04";
src = fetchFromGitHub {
owner = "cntools";
repo = "cnping";
rev = "6b89363e6b79ecbf612306d42a8ef94a5a2f756a";
sha256 = "sha256-E3Wm5or6C4bHq7YoyaEbtDwyd+tDVYUOMeQrprlmL4A=";
fetchSubmodules = true;
};
buildInputs = [ libglvnd xorg.libXinerama xorg.libXext xorg.libX11 ];
# The "linuxinstall" target won't work for us:
# it tries to setcap and copy to a FHS directory
installPhase = ''
mkdir -p $out/{bin,share/man/man1}
cp cnping $out/bin/cnping
cp cnping.1 $out/share/man/man1/cnping.1
'';
meta = with lib; {
description = "Minimal Graphical IPV4 Ping Tool";
homepage = "https://github.com/cntools/cnping";
license = with licenses; [ mit bsd3 ]; # dual licensed, MIT-x11 & BSD-3-Clause
maintainers = with maintainers; [ ckie ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,37 @@
{ lib, stdenv, fetchurl, which}:
stdenv.mkDerivation rec {
pname = "cntlm";
version = "0.92.3";
src = fetchurl {
url = "mirror://sourceforge/cntlm/${pname}-${version}.tar.gz";
sha256 = "1632szz849wasvh5sm6rm1zbvbrkq35k7kcyvx474gyl4h4x2flw";
};
buildInputs = [ which ];
preConfigure = lib.optionalString stdenv.isDarwin ''
substituteInPlace configure --replace "xlc_r gcc" "xlc_r gcc $CC"
substitute Makefile Makefile.$CC --replace "CC=gcc" "CC=$CC"
'';
installPhase = ''
mkdir -p $out/bin; cp cntlm $out/bin/;
mkdir -p $out/share/; cp COPYRIGHT README VERSION doc/cntlm.conf $out/share/;
mkdir -p $out/man/; cp doc/cntlm.1 $out/man/;
'';
meta = with lib; {
description = "NTLM/NTLMv2 authenticating HTTP proxy";
homepage = "http://cntlm.sourceforge.net/";
license = licenses.gpl2;
maintainers =
[
maintainers.qknight
maintainers.markWot
maintainers.carlosdagos
];
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -0,0 +1,32 @@
{ lib
, stdenv
, fetchFromGitHub
, rustPlatform
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "cocom";
version = "1.1.3";
src = fetchFromGitHub {
owner = "LamdaLamdaLamda";
repo = pname;
rev = "v${version}";
sha256 = "0sl4ivn95sr5pgw2z877gmhyfc4mk9xr457i5g2i4wqnf2jmy14j";
};
cargoSha256 = "04kj1yj6hhnis3ss0xs4zq8rl71rzn577g8i0wmapkjqzqwg37yb";
buildInputs = lib.optional stdenv.isDarwin Security;
# Tests require network access
doCheck = false;
meta = with lib; {
description = "NTP client";
homepage = "https://github.com/LamdaLamdaLamda/cocom";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "connect";
version ="1.105";
src = fetchurl {
url = "https://bitbucket.org/gotoh/connect/get/${version}.tar.bz2";
sha256 = "00yld6yinc8s4xv3b8kbvzn2f4rja5dmp6ysv3n4847qn4k60dh7";
};
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # gcc and/or clang compat
installPhase = ''
install -D -m ugo=rx connect $out/bin/connect
'';
meta = {
description = "Make network connection via SOCKS and https proxy";
longDescription = ''
This proxy traversal tool is intended to assist OpenSSH (via ProxyCommand
in ~/.ssh/config) and GIT (via $GIT_PROXY_COMMAND) utilize SOCKS and https proxies.
'';
homepage = "https://bitbucket.org/gotoh/connect/wiki/Home";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.gnu ++ lib.platforms.linux ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ jcumming ];
};
}

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchFromGitHub, autoconf, automake, intltool, pkg-config,
gtk3, connman, openconnect, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "connman-gtk";
version = "1.1.1";
src = fetchFromGitHub {
owner = "jgke";
repo = "connman-gtk";
rev = "v${version}";
sha256 = "09k0hx5hxpbykvslv12l2fq9pxdwpd311mxj038hbqzjghcyidyr";
};
nativeBuildInputs = [
autoconf
automake
intltool
pkg-config
wrapGAppsHook
];
buildInputs = [
gtk3
openconnect
connman
];
preConfigure = ''
# m4/intltool.m4 is an invalid symbolic link
rm m4/intltool.m4
ln -s ${intltool}/share/aclocal/intltool.m4 m4/
./autogen.sh
'';
meta = with lib; {
description = "GTK GUI for Connman";
homepage = "https://github.com/jgke/connman-gtk";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View file

@ -0,0 +1,41 @@
{ lib, stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, pkg-config, dbus, json_c, ncurses, connman }:
stdenv.mkDerivation {
pname = "connman-ncurses";
version = "2015-07-21";
src = fetchFromGitHub {
owner = "eurogiciel-oss";
repo = "connman-json-client";
rev = "3c34b2ee62d2e188090d20e7ed2fd94bab9c47f2";
sha256 = "1831r0776fv481g8kgy1dkl750pzv47835dw11sslq2k6mm6i9p1";
};
patches = [
# Fix build with json-c 0.14
(fetchpatch {
url = "https://github.com/void-linux/void-packages/raw/5830ce60e922b7dced8157ededda8c995adb3bb9/srcpkgs/connman-ncurses/patches/lowercase-boolean.patch";
extraPrefix = "";
sha256 = "uK83DeRyXS2Y0ZZpTYvYNh/1ZM2QQ7QpajiBztaEuSM=";
})
];
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ dbus ncurses json_c connman ];
NIX_CFLAGS_COMPILE = "-Wno-error";
installPhase = ''
mkdir -p "$out/bin"
cp -va connman_ncurses "$out/bin/"
'';
meta = with lib; {
description = "Simple ncurses UI for connman";
homepage = "https://github.com/eurogiciel-oss/connman-json-client";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View file

@ -0,0 +1,36 @@
{ lib, fetchFromGitLab, python3Packages, glib, gobject-introspection, wrapGAppsHook }:
python3Packages.buildPythonApplication {
pname = "connman-notify";
version = "2019-10-05";
src = fetchFromGitLab {
owner = "wavexx";
repo = "connman-notify";
rev = "24b10a51721b54d932f4cd61ef2756423768c015";
sha256 = "1k5b5y6114yna2cm0cq82xilicran63hrhlklgv7k3p89057xh8j";
};
format = "other";
nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
buildInputs = [ glib ];
pythonPath = with python3Packages; [ dbus-python pygobject3 ];
strictDeps = false;
installPhase = ''
install -D -t $out/bin connman-notify
install -D -t $out/share/doc README.rst
'';
meta = with lib; {
description = "Desktop notification integration for connman";
homepage = "https://gitlab.com/wavexx/connman-notify";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View file

@ -0,0 +1,180 @@
{ lib, stdenv
, fetchurl
, fetchpatch
, pkg-config
, file
, glib
# always required runtime dependencies
, dbus
, libmnl
, gnutls
, readline
# configureable options
, firewallType ? "iptables" # or "nftables"
, iptables ? null
, libnftnl ? null # for nftables
, dnsType ? "internal" # or "systemd-resolved"
# optional features which are turned *on* by default
, enableOpenconnect ? true
, openconnect ? null
, enableOpenvpn ? true
, openvpn ? null
, enableVpnc ? true
, vpnc ? true
, enablePolkit ? true
, polkit ? null
, enablePptp ? true
, pptp ? null
, ppp ? null
, enableLoopback ? true
, enableEthernet ? true
, enableWireguard ? true
, enableGadget ? true
, enableWifi ? true
, enableBluetooth ? true
, enableOfono ? true
, enableDundee ? true
, enablePacrunner ? true
, enableNeard ? true
, enableWispr ? true
, enableTools ? true
, enableStats ? true
, enableClient ? true
, enableDatafiles ? true
# optional features which are turned *off* by default
, enableNetworkManager ? false
, enableHh2serialGps ? false
, enableL2tp ? false
, enableIospm ? false
, enableTist ? false
}:
assert lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ];
assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ];
let inherit (lib) optionals; in
stdenv.mkDerivation rec {
pname = "connman";
version = "1.41";
src = fetchurl {
url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz";
sha256 = "sha256-eftA9P3VUwxFqo5ZL7Froj02dPOpjPELiaZXbxmN5Yk=";
};
patches = lib.optionals stdenv.hostPlatform.isMusl [
# Fix Musl build by avoiding a Glibc-only API.
(fetchpatch {
url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";
sha256 = "1kg2nml7pdxc82h5hgsa3npvzdxy4d2jpz2f93pa97if868i8d43";
})
];
buildInputs = [
glib
dbus
libmnl
gnutls
readline
] ++ optionals (enableOpenconnect) [ openconnect ]
++ optionals (firewallType == "iptables") [ iptables ]
++ optionals (firewallType == "nftables") [ libnftnl ]
++ optionals (enablePolkit) [ polkit ]
++ optionals (enablePptp) [ pptp ppp ]
;
nativeBuildInputs = [
pkg-config
file
];
# fix invalid path to 'file'
postPatch = ''
sed -i "s/\/usr\/bin\/file/file/g" ./configure
'';
configureFlags = [
# directories flags
"--sysconfdir=/etc"
"--localstatedir=/var"
"--with-dbusconfdir=${placeholder "out"}/share"
"--with-dbusdatadir=${placeholder "out"}/share"
"--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
"--with-systemdunitdir=${placeholder "out"}/lib/systemd/system"
"--with-dns-backend=${dnsType}"
"--with-firewall=${firewallType}"
# production build flags
"--disable-maintainer-mode"
"--enable-session-policy-local=builtin"
# for building and running tests
# "--enable-tests" # installs the tests, we don't want that
"--enable-tools"
]
++ optionals (!enableLoopback) [ "--disable-loopback" ]
++ optionals (!enableEthernet) [ "--disable-ethernet" ]
++ optionals (!enableWireguard) [ "--disable-wireguard" ]
++ optionals (!enableGadget) [ "--disable-gadget" ]
++ optionals (!enableWifi) [ "--disable-wifi" ]
# enable IWD support for wifi as it doesn't require any new dependencies
# and it's easier for the NixOS module to use only one connman package when
# IWD is requested
++ optionals (enableWifi) [ "--enable-iwd" ]
++ optionals (!enableBluetooth) [ "--disable-bluetooth" ]
++ optionals (!enableOfono) [ "--disable-ofono" ]
++ optionals (!enableDundee) [ "--disable-dundee" ]
++ optionals (!enablePacrunner) [ "--disable-pacrunner" ]
++ optionals (!enableNeard) [ "--disable-neard" ]
++ optionals (!enableWispr) [ "--disable-wispr" ]
++ optionals (!enableTools) [ "--disable-tools" ]
++ optionals (!enableStats) [ "--disable-stats" ]
++ optionals (!enableClient) [ "--disable-client" ]
++ optionals (!enableDatafiles) [ "--disable-datafiles" ]
++ optionals (enableOpenconnect) [
"--enable-openconnect=builtin"
"--with-openconnect=${openconnect}/sbin/openconnect"
]
++ optionals (enableOpenvpn) [
"--enable-openvpn=builtin"
"--with-openvpn=${openvpn}/sbin/openvpn"
]
++ optionals (enableVpnc) [
"--enable-vpnc=builtin"
"--with-vpnc=${vpnc}/sbin/vpnc"
]
++ optionals (enablePolkit) [
"--enable-polkit"
]
++ optionals (enablePptp) [
"--enable-pptp"
"--with-pptp=${pptp}/sbin/pptp"
]
++ optionals (!enableWireguard) [
"--disable-wireguard"
]
++ optionals (enableNetworkManager) [
"--enable-nmcompat"
]
++ optionals (enableHh2serialGps) [
"--enable-hh2serial-gps"
]
++ optionals (enableL2tp) [
"--enable-l2tp"
]
++ optionals (enableIospm) [
"--enable-iospm"
]
++ optionals (enableTist) [
"--enable-tist"
]
;
doCheck = true;
meta = with lib; {
description = "A daemon for managing internet connections";
homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/";
maintainers = [ maintainers.matejc ];
platforms = platforms.linux;
license = licenses.gpl2Only;
};
}

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchFromGitHub, connman, dmenu }:
stdenv.mkDerivation {
pname = "connman_dmenu";
version = "unstable-2015-09-29";
src = fetchFromGitHub {
owner = "march-linux";
repo = "connman_dmenu";
rev = "cc89fec40b574b0d234afeb70ea3c94626ca3f5c";
sha256 = "061fi83pai4n19l9d7wq6wwj2d7cixwkhkh742c5ibmw1wb274yk";
};
buildInputs = [ connman dmenu ];
dontBuild = true;
# remove root requirement, see: https://github.com/march-linux/connman_dmenu/issues/3
postPatch = ''
sed -i '89,92d' connman_dmenu
'';
installPhase = ''
mkdir -p $out/bin
cp connman_dmenu $out/bin/
'';
meta = {
description = "A dmenu wrapper for connmann";
homepage = "https://github.com/march-linux/connman_dmenu";
license = lib.licenses.free;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,40 @@
{ callPackage }:
{
# All the defaults
connman = callPackage ./connman.nix { };
connmanFull = callPackage ./connman.nix {
# TODO: Why is this in `connmanFull` and not the default build? See TODO in
# nixos/modules/services/networking/connman.nix (near the assertions)
enableNetworkManager = true;
enableHh2serialGps = true;
enableL2tp = true;
enableIospm = true;
enableTist = true;
};
connmanMinimal = callPackage ./connman.nix {
enableOpenconnect = false;
enableOpenvpn = false;
enableVpnc = false;
vpnc = false;
enablePolkit = false;
enablePptp = false;
enableLoopback = false;
# enableEthernet = false; # If disabled no ethernet connection can be performed
enableWireguard = false;
enableGadget = false;
# enableWifi = false; # If disabled no WiFi connection can be performed
enableBluetooth = false;
enableOfono = false;
enableDundee = false;
enablePacrunner = false;
enableNeard = false;
enableWispr = false;
enableTools = false;
enableStats = false;
enableClient = false;
# enableDatafiles = false; # If disabled, configuration and data files are not installed
};
}

View file

@ -0,0 +1,39 @@
{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
buildGoModule rec {
pname = "corerad";
version = "1.2.1";
src = fetchFromGitHub {
owner = "mdlayher";
repo = "corerad";
rev = "v${version}";
sha256 = "sha256-JhdR1UKHnzXIUoe1shb3IZne3q198NLwRROEYuKsnW4=";
};
vendorSha256 = "sha256-w15dRxIBzDN5i4RNEDuSfCHHb4wc4fw1B2wjlTk40iE=";
# Since the tarball pulled from GitHub doesn't contain git tag information,
# we fetch the expected tag's timestamp from a file in the root of the
# repository.
preBuild = ''
buildFlagsArray=(
-ldflags="
-X github.com/mdlayher/corerad/internal/build.linkTimestamp=$(<.gittagtime)
-X github.com/mdlayher/corerad/internal/build.linkVersion=v${version}
"
)
'';
passthru.tests = {
inherit (nixosTests) corerad;
};
meta = with lib; {
homepage = "https://github.com/mdlayher/corerad";
description = "Extensible and observable IPv6 NDP RA daemon";
license = licenses.asl20;
maintainers = with maintainers; [ mdlayher ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchurl, automake }:
stdenv.mkDerivation rec {
pname = "corkscrew";
version = "2.0";
src = fetchurl {
url = "http://agroman.net/corkscrew/corkscrew-${version}.tar.gz";
sha256 = "0d0fcbb41cba4a81c4ab494459472086f377f9edb78a2e2238ed19b58956b0be";
};
preConfigure = ''
ln -sf ${automake}/share/automake-*/config.sub config.sub
ln -sf ${automake}/share/automake-*/config.guess config.guess
'';
meta = with lib; {
homepage = "http://agroman.net/corkscrew/";
description = "A tool for tunneling SSH through HTTP proxies";
license = lib.licenses.gpl2;
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,24 @@
{ lib, stdenv, fetchFromGitHub, libpcap, coreutils }:
stdenv.mkDerivation {
pname = "crackle";
version = "unstable-2020-12-13";
src = fetchFromGitHub {
owner = "mikeryan";
repo = "crackle";
rev = "d83b4b6f4145ca53c46c36bbd7ccad751af76b75";
sha256 = "sha256-Dy4s/hr9ySrogltyk2GVsuAvwNF5+b6CDjaD+2FaPHA=";
};
buildInputs = [ libpcap ];
installFlags = [ "DESTDIR=$(out)" "PREFIX=" "INSTALL=${coreutils}/bin/install" ];
meta = with lib; {
description = "Crack and decrypt BLE encryption";
homepage = "https://github.com/mikeryan/crackle";
maintainers = with maintainers; [ fortuneteller2k ];
license = licenses.bsd2;
};
}

View file

@ -0,0 +1,41 @@
{ lib, buildGoModule, fetchFromGitHub, callPackage }:
buildGoModule rec {
pname = "croc";
version = "9.5.6";
src = fetchFromGitHub {
owner = "schollz";
repo = pname;
rev = "v${version}";
sha256 = "sha256-VXbrwUf43qvXd+/GXNA+Wkt4E5EM4+1V0wPj3JONzlU=";
};
vendorSha256 = "sha256-45rQHG5Std7m7Xu8OEFfjdG6RyriM4yAPzJl7M2lPW8=";
subPackages = [ "." ];
passthru = {
tests = {
local-relay = callPackage ./test-local-relay.nix { };
};
};
meta = with lib; {
description = "Easily and securely send things from one computer to another";
longDescription = ''
Croc is a command line tool written in Go that allows any two computers to
simply and securely transfer files and folders.
Croc does all of the following:
- Allows any two computers to transfer data (using a relay)
- Provides end-to-end encryption (using PAKE)
- Enables easy cross-platform transfers (Windows, Linux, Mac)
- Allows multiple file transfers
- Allows resuming transfers that are interrupted
- Does not require a server or port-forwarding
'';
homepage = "https://github.com/schollz/croc";
license = licenses.mit;
maintainers = with maintainers; [ hugoreeves equirosa SuperSandro2000 ];
};
}

View file

@ -0,0 +1,19 @@
{ stdenv, croc }:
stdenv.mkDerivation {
name = "croc-test-local-relay";
meta.timeout = 300;
buildCommand = ''
HOME=$(mktemp -d)
# start a local relay
${croc}/bin/croc relay --ports 11111,11112 &
# start sender in background
MSG="See you later, alligator!"
${croc}/bin/croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
# wait for things to settle
sleep 1
MSG2=$(${croc}/bin/croc --relay localhost:11111 --yes correct-horse-battery-staple)
# compare
[ "$MSG" = "$MSG2" ] && touch $out
'';
}

View file

@ -0,0 +1,52 @@
On darwin, providing SystemConfiguration to curl currently results in a
reference loop, so we have to disable the check for it and the feature
which requires it (NAT64).
Patching actual configure script here as we also don't want to require
autoconf in the bootstrap loop just to regenerate a patched configure.ac.
--- a/configure 2021-10-16 00:51:59.000000000 +0100
+++ b/configure 2021-10-16 01:06:46.000000000 +0100
@@ -20810,7 +20810,7 @@
if test "x$build_for_macos" != xno; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
- LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration"
+ LDFLAGS="$LDFLAGS -framework CoreFoundation"
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
@@ -22211,9 +22211,6 @@
fi
-if test "$HAVE_GETHOSTBYNAME" != "1"; then
- as_fn_error $? "couldn't find libraries for gethostbyname()" "$LINENO" 5
-fi
curl_includes_winsock2="\
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index 99048c489..19abfbbac 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -247,19 +247,6 @@
# include "setup-win32.h"
#endif
-/*
- * Use getaddrinfo to resolve the IPv4 address literal. If the current network
- * interface doesn't support IPv4, but supports IPv6, NAT64, and DNS64,
- * performing this task will result in a synthesized IPv6 address.
- */
-#if defined(__APPLE__) && !defined(USE_ARES)
-#include <TargetConditionals.h>
-#define USE_RESOLVE_ON_IPS 1
-# if defined(TARGET_OS_OSX) && TARGET_OS_OSX
-# define CURL_OSX_CALL_COPYPROXIES 1
-# endif
-#endif
-
#ifdef USE_LWIPSOCK
# include <lwip/init.h>
# include <lwip/sockets.h>

View file

@ -0,0 +1,51 @@
diff --git a/lib/vquic/quiche.c b/lib/vquic/quiche.c
index bfdc966a85ea..e4bea4d677be 100644
--- a/lib/vquic/quiche.c
+++ b/lib/vquic/quiche.c
@@ -201,23 +201,31 @@ static SSL_CTX *quic_ssl_ctx(struct Curl_easy *data)
{
struct connectdata *conn = data->conn;
- const char * const ssl_cafile = conn->ssl_config.CAfile;
- const char * const ssl_capath = conn->ssl_config.CApath;
-
if(conn->ssl_config.verifypeer) {
- SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_PEER, NULL);
- /* tell OpenSSL where to find CA certificates that are used to verify
- the server's certificate. */
- if(!SSL_CTX_load_verify_locations(ssl_ctx, ssl_cafile, ssl_capath)) {
- /* Fail if we insist on successfully verifying the server. */
- failf(data, "error setting certificate verify locations:"
- " CAfile: %s CApath: %s",
- ssl_cafile ? ssl_cafile : "none",
- ssl_capath ? ssl_capath : "none");
- return NULL;
+ const char * const ssl_cafile = conn->ssl_config.CAfile;
+ const char * const ssl_capath = conn->ssl_config.CApath;
+ if(ssl_cafile || ssl_capath) {
+ SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_PEER, NULL);
+ /* tell OpenSSL where to find CA certificates that are used to verify
+ the server's certificate. */
+ if(!SSL_CTX_load_verify_locations(ssl_ctx, ssl_cafile, ssl_capath)) {
+ /* Fail if we insist on successfully verifying the server. */
+ failf(data, "error setting certificate verify locations:"
+ " CAfile: %s CApath: %s",
+ ssl_cafile ? ssl_cafile : "none",
+ ssl_capath ? ssl_capath : "none");
+ return NULL;
+ }
+ infof(data, " CAfile: %s", ssl_cafile ? ssl_cafile : "none");
+ infof(data, " CApath: %s", ssl_capath ? ssl_capath : "none");
}
- infof(data, " CAfile: %s", ssl_cafile ? ssl_cafile : "none");
- infof(data, " CApath: %s", ssl_capath ? ssl_capath : "none");
+#ifdef CURL_CA_FALLBACK
+ else {
+ /* verifying the peer without any CA certificates won't work so
+ use openssl's built-in default as fallback */
+ SSL_CTX_set_default_verify_paths(ssl_ctx);
+ }
+#endif
}
}
return ssl_ctx;

View file

@ -0,0 +1,201 @@
{ lib, stdenv, fetchurl, pkg-config, perl, nixosTests
, brotliSupport ? false, brotli ? null
, c-aresSupport ? false, c-ares ? null
, gnutlsSupport ? false, gnutls ? null
, gsaslSupport ? false, gsasl ? null
, gssSupport ? with stdenv.hostPlatform; (
!isWindows &&
# disable gss becuase of: undefined reference to `k5_bcmp'
# a very sad story re static: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039
!isStatic &&
# the "mig" tool does not configure its compiler correctly. This could be
# fixed in mig, but losing gss support on cross compilation to darwin is
# not worth the effort.
!(isDarwin && (stdenv.buildPlatform != stdenv.hostPlatform))
), libkrb5 ? null
, http2Support ? true, nghttp2 ? null
, http3Support ? false, nghttp3, ngtcp2 ? null
, idnSupport ? false, libidn2 ? null
, ldapSupport ? false, openldap ? null
, opensslSupport ? zlibSupport, openssl ? null
, pslSupport ? false, libpsl ? null
, rtmpSupport ? false, rtmpdump ? null
, scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
, wolfsslSupport ? false, wolfssl ? null
, zlibSupport ? true, zlib ? null
, zstdSupport ? false, zstd ? null
# for passthru.tests
, coeurl
, curlpp
, haskellPackages
, ocamlPackages
, phpExtensions
, python3
}:
# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
assert !(gnutlsSupport && opensslSupport);
assert !(gnutlsSupport && wolfsslSupport);
assert !(opensslSupport && wolfsslSupport);
assert brotliSupport -> brotli != null;
assert c-aresSupport -> c-ares != null;
assert gnutlsSupport -> gnutls != null;
assert gsaslSupport -> gsasl != null;
assert gssSupport -> libkrb5 != null;
assert http2Support -> nghttp2 != null;
assert http3Support -> nghttp3 != null;
assert http3Support -> ngtcp2 != null;
assert idnSupport -> libidn2 != null;
assert ldapSupport -> openldap != null;
assert opensslSupport -> openssl != null;
assert pslSupport -> libpsl !=null;
assert rtmpSupport -> rtmpdump !=null;
assert scpSupport -> libssh2 != null;
assert wolfsslSupport -> wolfssl != null;
assert zlibSupport -> zlib != null;
assert zstdSupport -> zstd != null;
stdenv.mkDerivation rec {
pname = "curl";
version = "7.83.1";
src = fetchurl {
urls = [
"https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
"https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
];
sha256 = "sha256-9Tmjb7RKgmDsXZd+Tg290u7intkPztqpvDyfeKETv/A=";
};
patches = [
./7.79.1-darwin-no-systemconfiguration.patch
# quiche: support ca-fallback
# https://github.com/curl/curl/commit/fdb5e21b4dd171a96cf7c002ee77bb08f8e58021
./7.83.1-quiche-support-ca-fallback.patch
];
outputs = [ "bin" "dev" "out" "man" "devdoc" ];
separateDebugInfo = stdenv.isLinux;
enableParallelBuilding = true;
strictDeps = true;
nativeBuildInputs = [ pkg-config perl ];
# Zlib and OpenSSL must be propagated because `libcurl.la' contains
# "-lz -lssl", which aren't necessary direct build inputs of
# applications that use Curl.
propagatedBuildInputs = with lib;
optional brotliSupport brotli ++
optional c-aresSupport c-ares ++
optional gnutlsSupport gnutls ++
optional gsaslSupport gsasl ++
optional gssSupport libkrb5 ++
optional http2Support nghttp2 ++
optionals http3Support [ nghttp3 ngtcp2 ] ++
optional idnSupport libidn2 ++
optional ldapSupport openldap ++
optional opensslSupport openssl ++
optional pslSupport libpsl ++
optional rtmpSupport rtmpdump ++
optional scpSupport libssh2 ++
optional wolfsslSupport wolfssl ++
optional zlibSupport zlib ++
optional zstdSupport zstd;
# for the second line see https://curl.haxx.se/mail/tracker-2014-03/0087.html
preConfigure = ''
sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
rm src/tool_hugehelp.c
'';
configureFlags = [
# Build without manual
"--disable-manual"
(lib.enableFeature c-aresSupport "ares")
(lib.enableFeature ldapSupport "ldap")
(lib.enableFeature ldapSupport "ldaps")
# The build fails when using wolfssl with --with-ca-fallback
(lib.withFeature (!wolfsslSupport) "ca-fallback")
(lib.withFeature http3Support "nghttp3")
(lib.withFeature http3Support "ngtcp2")
(lib.withFeature rtmpSupport "librtmp")
(lib.withFeature zstdSupport "zstd")
(lib.withFeatureAs brotliSupport "brotli" (lib.getDev brotli))
(lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls))
(lib.withFeatureAs idnSupport "libidn2" (lib.getDev libidn2))
(lib.withFeatureAs opensslSupport "openssl" (lib.getDev openssl))
(lib.withFeatureAs scpSupport "libssh2" (lib.getDev libssh2))
(lib.withFeatureAs wolfsslSupport "wolfssl" (lib.getDev wolfssl))
]
++ lib.optional gssSupport "--with-gssapi=${lib.getDev libkrb5}"
# For the 'urandom', maybe it should be a cross-system option
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
"--with-random=/dev/urandom"
++ lib.optionals stdenv.hostPlatform.isWindows [
"--disable-shared"
"--enable-static"
] ++ lib.optionals stdenv.isDarwin [
# Disable default CA bundle, use NIX_SSL_CERT_FILE or fallback to nss-cacert from the default profile.
# Without this curl might detect /etc/ssl/cert.pem at build time on macOS, causing curl to ignore NIX_SSL_CERT_FILE.
"--without-ca-bundle"
"--without-ca-path"
];
CXX = "${stdenv.cc.targetPrefix}c++";
CXXCPP = "${stdenv.cc.targetPrefix}c++ -E";
doCheck = true;
preCheck = ''
patchShebangs tests/
'' + lib.optionalString stdenv.isDarwin ''
# bad interaction with sandbox if enabled?
rm tests/data/test1453
rm tests/data/test1086
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
# different resolving behaviour?
rm tests/data/test1592
'';
postInstall = ''
moveToOutput bin/curl-config "$dev"
# Install completions
make -C scripts install
'' + lib.optionalString scpSupport ''
sed '/^dependency_libs/s|${lib.getDev libssh2}|${lib.getLib libssh2}|' -i "$out"/lib/*.la
'' + lib.optionalString gnutlsSupport ''
ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}
ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}.4
ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}.4.4.0
'';
passthru = {
inherit opensslSupport openssl;
tests = {
inherit curlpp coeurl;
haskell-curl = haskellPackages.curl;
ocaml-curly = ocamlPackages.curly;
php-curl = phpExtensions.curl;
pycurl = python3.pkgs.pycurl;
# Additional checking with support http3 protocol.
inherit (nixosTests) nginx-http3;
};
};
meta = with lib; {
description = "A command line tool for transferring files with URL syntax";
homepage = "https://curl.se/";
license = licenses.curl;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.all;
# Fails to link against static brotli or gss
broken = stdenv.hostPlatform.isStatic && (brotliSupport || gssSupport);
};
}

View file

@ -0,0 +1,29 @@
{ buildGoModule, fetchFromGitHub, lib, curlie, testers }:
buildGoModule rec {
pname = "curlie";
version = "1.6.9";
src = fetchFromGitHub {
owner = "rs";
repo = pname;
rev = "v${version}";
hash = "sha256-3EKxuEpFm+lp2myMfymYYY9boSXGOF2iAdjtGKnjJK0=";
};
vendorSha256 = "sha256-tYZtnD7RUurhl8yccXlTIvOxybBJITM+it1ollYJ1OI=";
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
passthru.tests.version = testers.testVersion {
package = curlie;
command = "curlie version";
};
meta = with lib; {
description = "Frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
homepage = "https://curlie.io/";
maintainers = with maintainers; [ ma27 ];
license = licenses.mit;
};
}

View file

@ -0,0 +1,40 @@
{ lib, stdenv, fetchpatch, fetchurl, libpcap, zlib }:
stdenv.mkDerivation rec {
version = "3.0.719";
pname = "darkstat";
src = fetchurl {
url = "${meta.homepage}/${pname}-${version}.tar.bz2";
sha256 = "1mzddlim6dhd7jhr4smh0n2fa511nvyjhlx76b03vx7phnar1bxf";
};
patches = [
# Avoid multiple definitions of CLOCK_REALTIME on macOS 11,
# see https://github.com/emikulic/darkstat/pull/2
(fetchpatch {
url = "https://github.com/emikulic/darkstat/commit/d2fd232e1167dee6e7a2d88b9ab7acf2a129f697.diff";
sha256 = "0z5mpyc0q65qb6cn4xcrxl0vx21d8ibzaam5kjyrcw4icd8yg4jb";
})
];
buildInputs = [ libpcap zlib ];
enableParallelBuilding = true;
meta = with lib; {
description = "Network statistics web interface";
longDescription = ''
Captures network traffic, calculates statistics about usage, and serves
reports over HTTP. Features:
- Traffic graphs, reports per host, shows ports for each host.
- Embedded web-server with deflate compression.
- Asynchronous reverse DNS resolution using a child process.
- Small. Portable. Single-threaded. Efficient.
- Supports IPv6.
'';
homepage = "http://unix4lyfe.org/darkstat";
license = licenses.gpl2;
platforms = with platforms; unix;
};
}

View file

@ -0,0 +1,80 @@
{ lib
, stdenv
, fetchurl
, cmake
, pkg-config
, openssl
, libxml2
, boost
, python3
, libuuid
, curl
, gsoap
, enableTools ? true
# Build the bundled libcurl
# and, if defaultToLibCurl,
# use instead of an external one
, useEmbeddedLibcurl ? true
# Use libcurl instead of libneon
# Note that the libneon used is bundled in the project
# See https://github.com/cern-fts/davix/issues/23
, defaultToLibcurl ? false
, enableIpv6 ? true
, enableTcpNodelay ? true
# Build davix_copy.so
, enableThirdPartyCopy ? false
}:
let
boolToUpper = b: lib.toUpper (lib.boolToString b);
in
stdenv.mkDerivation rec {
version = "0.8.0";
pname = "davix" + lib.optionalString enableThirdPartyCopy "-copy";
nativeBuildInputs = [ cmake pkg-config python3 ];
buildInputs = [
openssl
libxml2
boost
libuuid
] ++ lib.optional (defaultToLibcurl && !useEmbeddedLibcurl) curl
++ lib.optional (enableThirdPartyCopy) gsoap;
# using the url below since the github release page states
# "please ignore the GitHub-generated tarballs, as they are incomplete"
# https://github.com/cern-fts/davix/releases/tag/R_0_8_0
src = fetchurl {
url = "https://github.com/cern-fts/davix/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/davix-${version}.tar.gz";
sha256 = "LxCNoECKg/tbnwxoFQ02C6cz5LOg/imNRbDTLSircSQ=";
};
preConfigure = ''
find . -mindepth 1 -maxdepth 1 -type f -name "patch*.sh" -print0 | while IFS= read -r -d ''' file; do
patchShebangs "$file"
done
'';
cmakeFlags = [
"-DENABLE_TOOLS=${boolToUpper enableTools}"
"-DEMBEDDED_LIBCURL=${boolToUpper useEmbeddedLibcurl}"
"-DLIBCURL_BACKEND_BY_DEFAULT=${boolToUpper defaultToLibcurl}"
"-DENABLE_IPV6=${boolToUpper enableIpv6}"
"-DENABLE_TCP_NODELAY=${boolToUpper enableTcpNodelay}"
"-DENABLE_THIRD_PARTY_COPY=${boolToUpper enableThirdPartyCopy}"
];
meta = with lib; {
broken = stdenv.isDarwin;
description = "Toolkit for Http-based file management";
longDescription = "Davix is a toolkit designed for file
operations with Http based protocols (WebDav, Amazon S3, ...).
Davix provides an API and a set of command line tools";
license = licenses.lgpl2Plus;
homepage = "https://github.com/cern-fts/davix";
changelog = "https://github.com/cern-fts/davix/blob/R_${lib.replaceStrings ["."] ["_"] version}/RELEASE-NOTES.md";
maintainers = with maintainers; [ adev ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,45 @@
{ stdenv
, lib
, fetchFromGitHub
, autoconf
, automake
, libtool
, zlib
, cunit
}:
stdenv.mkDerivation rec {
pname = "dcap";
version = "2.47.12";
src = fetchFromGitHub {
owner = "dCache";
repo = "dcap";
rev = version;
sha256 = "sha256-pNLEN1YLQGMJNuv8n6bec3qONbwNOYbYDDvkwuP5AR4=";
};
nativeBuildInputs = [ autoconf automake libtool ];
buildInputs = [ zlib ];
preConfigure = ''
patchShebangs bootstrap.sh
./bootstrap.sh
'';
doCheck = true;
checkInputs = [ cunit ];
outputs = [ "bin" "dev" "out" "man" "doc" ];
meta = with lib; {
broken = stdenv.isDarwin;
description = "dCache access protocol client library";
homepage = "https://github.com/dCache/dcap";
changelog = "https://github.com/dCache/dcap/blob/master/ChangeLog";
license = licenses.lgpl2Only;
platforms = platforms.all;
mainProgram = "dccp";
maintainers = with maintainers; [ ShamrockLee ];
};
}

View file

@ -0,0 +1,30 @@
diff --git a/checks/system/unix.py b/checks/system/unix.py
index c37af3c3..58c72626 100644
--- a/checks/system/unix.py
+++ b/checks/system/unix.py
@@ -39,7 +39,7 @@ class IO(Check):
self.value_re = re.compile(r'\d+\.\d+')
def _parse_linux2(self, output):
- recentStats = output.split('Device:')[2].split('\n')
+ recentStats = output.split('Device')[2].split('\n')
header = recentStats[0]
headerNames = re.findall(self.header_re, header)
device = None
@@ -123,14 +123,14 @@ class IO(Check):
# Linux 2.6.32-343-ec2 (ip-10-35-95-10) 12/11/2012 _x86_64_ (2 CPU)
#
- # Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
+ # Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
# sda1 0.00 17.61 0.26 32.63 4.23 201.04 12.48 0.16 4.81 0.53 1.73
# sdb 0.00 2.68 0.19 3.84 5.79 26.07 15.82 0.02 4.93 0.22 0.09
# sdg 0.00 0.13 2.29 3.84 100.53 30.61 42.78 0.05 8.41 0.88 0.54
# sdf 0.00 0.13 2.30 3.84 100.54 30.61 42.78 0.06 9.12 0.90 0.55
# md0 0.00 0.00 0.05 3.37 1.41 30.01 18.35 0.00 0.00 0.00 0.00
#
- # Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
+ # Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
# sda1 0.00 0.00 0.00 10.89 0.00 43.56 8.00 0.03 2.73 2.73 2.97
# sdb 0.00 0.00 0.00 2.97 0.00 11.88 8.00 0.00 0.00 0.00 0.00
# sdg 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

View file

@ -0,0 +1,110 @@
{ lib, stdenv, fetchFromGitHub, python2
, unzip, makeWrapper }:
let
python' = python2.override {
packageOverrides = self: super: {
docker = self.buildPythonPackage rec {
name = "docker-${version}";
version = "1.10.6";
src = fetchFromGitHub {
owner = "docker";
repo = "docker-py";
rev = version;
sha256 = "1awzpbrkh4fympqzddz5i3ml81b7f0i0nwkvbpmyxjjfqx6l0m4m";
};
propagatedBuildInputs = with self; [
six
requests
websocket-client
docker_pycreds
uptime
] ++ lib.optionals (self.pythonOlder "3.7") [ backports_ssl_match_hostname ];
# due to flake8
doCheck = false;
};
pymongo = super.pymongo.overridePythonAttrs (oldAttrs: rec {
version = "2.9.5";
src = oldAttrs.src.override {
inherit version;
sha256 = "912516ac6a355d7624374a38337b8587afe3eb535c0a5456b3bd12df637a6e70";
};
});
};
};
in stdenv.mkDerivation rec {
version = "5.11.2";
pname = "dd-agent";
src = fetchFromGitHub {
owner = "datadog";
repo = "dd-agent";
rev = version;
sha256 = "1iqxvgpsqibqw3vk79158l2pnb6y4pjhjp2d6724lm5rpz4825lx";
};
patches = [ ./40103-iostat-fix.patch ];
nativeBuildInputs = [ unzip ];
buildInputs = [
makeWrapper
] ++ (with python'.pkgs; [
requests
psycopg2
psutil
ntplib
simplejson
pyyaml
pymongo
python-etcd
consul
docker
]);
propagatedBuildInputs = with python'.pkgs; [ python tornado ];
buildCommand = ''
mkdir -p $out/bin
cp -R $src $out/agent
chmod u+w -R $out
(cd $out/agent; patchPhase)
PYTHONPATH=$out/agent:$PYTHONPATH
ln -s $out/agent/agent.py $out/bin/dd-agent
ln -s $out/agent/dogstatsd.py $out/bin/dogstatsd
ln -s $out/agent/ddagent.py $out/bin/dd-forwarder
# Move out default conf.d so that /etc/dd-agent/conf.d is used
mv $out/agent/conf.d $out/agent/conf.d-system
cat > $out/bin/dd-jmxfetch <<EOF
#!/usr/bin/env bash
exec ${python'.interpreter} $out/agent/jmxfetch.py $@
EOF
chmod a+x $out/bin/dd-jmxfetch
wrapProgram $out/bin/dd-forwarder \
--prefix PYTHONPATH : $PYTHONPATH
wrapProgram $out/bin/dd-agent \
--prefix PYTHONPATH : $PYTHONPATH
wrapProgram $out/bin/dogstatsd \
--prefix PYTHONPATH : $PYTHONPATH
wrapProgram $out/bin/dd-jmxfetch \
--prefix PYTHONPATH : $PYTHONPATH
patchShebangs $out
'';
meta = {
description = ''
Event collector for the DataDog analysis service
-- v5 Python implementation
'';
homepage = "https://www.datadoghq.com";
license = lib.licenses.bsd3;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ thoughtpolice domenkozar ];
};
}

View file

@ -0,0 +1,82 @@
{ lib, buildGoModule, makeWrapper, fetchFromGitHub, pythonPackages, pkg-config, systemd, hostname, extraTags ? [] }:
let
# keep this in sync with github.com/DataDog/agent-payload dependency
payloadVersion = "4.78.0";
python = pythonPackages.python;
owner = "DataDog";
repo = "datadog-agent";
goPackagePath = "github.com/${owner}/${repo}";
in buildGoModule rec {
pname = "datadog-agent";
version = "7.36.0";
src = fetchFromGitHub {
inherit owner repo;
rev = version;
sha256 = "sha256-pkbgYE58T9QzV7nCzvfBoTt6Ue8cCMUBSuCBeDtdkzo=";
};
vendorSha256 = "sha256-SxdSoZtRAdl3evCpb+3BHWf/uPYJJKgw0CL9scwNfGA=";
subPackages = [
"cmd/agent"
"cmd/cluster-agent"
"cmd/dogstatsd"
"cmd/py-launcher"
"cmd/trace-agent"
];
nativeBuildInputs = [ pkg-config makeWrapper ];
buildInputs = [ systemd ];
PKG_CONFIG_PATH = "${python}/lib/pkgconfig";
preBuild = let
ldFlags = lib.concatStringsSep " " [
"-X ${goPackagePath}/pkg/version.Commit=${src.rev}"
"-X ${goPackagePath}/pkg/version.AgentVersion=${version}"
"-X ${goPackagePath}/pkg/serializer.AgentPayloadVersion=${payloadVersion}"
"-X ${goPackagePath}/pkg/collector/py.pythonHome=${python}"
"-r ${python}/lib"
];
in ''
buildFlagsArray=( "-tags" "ec2 systemd cpython process log secrets ${lib.concatStringsSep " " extraTags}" "-ldflags" "${ldFlags}")
# Keep directories to generate in sync with tasks/go.py
go generate ./pkg/status ./cmd/agent/gui
'';
# DataDog use paths relative to the agent binary, so fix these.
postPatch = ''
sed -e "s|PyChecksPath =.*|PyChecksPath = \"$out/${python.sitePackages}\"|" \
-e "s|distPath =.*|distPath = \"$out/share/datadog-agent\"|" \
-i cmd/agent/common/common_nix.go
sed -e "s|/bin/hostname|${lib.getBin hostname}/bin/hostname|" \
-i pkg/util/hostname_nix.go
'';
# Install the config files and python modules from the "dist" dir
# into standard paths.
postInstall = ''
mkdir -p $out/${python.sitePackages} $out/share/datadog-agent
cp -R $src/cmd/agent/dist/conf.d $out/share/datadog-agent
cp -R $src/cmd/agent/dist/{checks,utils,config.py} $out/${python.sitePackages}
cp -R $src/pkg/status/templates $out/share/datadog-agent
wrapProgram "$out/bin/agent" \
--set PYTHONPATH "$out/${python.sitePackages}" \
--prefix LD_LIBRARY_PATH : ${lib.getLib systemd}/lib
'';
meta = with lib; {
description = ''
Event collector for the DataDog analysis service
-- v6 new golang implementation.
'';
homepage = "https://www.datadoghq.com";
license = licenses.bsd3;
maintainers = with maintainers; [ thoughtpolice domenkozar rvl ];
};
}

View file

@ -0,0 +1,11 @@
{ lib, datadog-agent }:
datadog-agent.overrideAttrs (attrs: {
pname = "datadog-process-agent";
meta = with lib;
attrs.meta // {
description = "Live process collector for the DataDog Agent v7";
maintainers = with maintainers; [ domenkozar rvl ];
};
subPackages = [ "cmd/process-agent" ];
postInstall = null;
})

View file

@ -0,0 +1,92 @@
# The declarations in this file build the Datadog agent's core
# integrations. These integrations are tracked in a separate
# repository[1] outside of the agent's primary repository and provide
# checks for various kinds of services.
#
# Not all services are relevant for all users, however. As some of
# them depend on various tools and Python packages it is nonsensical
# to build *all* integrations by default.
#
# A set of default integrations is defined and built either way.
# Additional integrations can be specified by overriding
# `extraIntegrations` in datadog-integrations-core.
#
# In practice the syntax for using this with additional integrations
# is not the most beautiful, but it works. For example to use
# datadog-agent from the top-level with the `ntp`-integration
# included, one could say:
#
# let
# integrationsWithNtp = datadog-integrations-core {
# # Extra integrations map from the integration name (as in the
# # integrations-core repository) to a function that receives the
# # Python package set and returns the required dependencies.g
# ntp = (ps: [ ps.ntplib ]);
# };
#
# in ddAgentWithNtp = datadog-agent.overrideAttrs(_ : {
# python = integrationsWithNtp.python;
# });
#
# The NixOS module 'datadog-agent' provides a simplified interface to
# this. Please see the module itself for more information.
#
# [1]: https://github.com/DataDog/integrations-core
{ pkgs, python, extraIntegrations ? {} }:
with pkgs.lib;
let
src = pkgs.fetchFromGitHub {
owner = "DataDog";
repo = "integrations-core";
rev = version;
sha256 = "0424zsnf747s10kfzv5y0m0ac9sgczip78yvghhrc2i089i5z2h4";
};
version = "7.30.1";
# Build helper to build a single datadog integration package.
buildIntegration = { pname, ... }@args: python.pkgs.buildPythonPackage (args // {
inherit src version;
name = "datadog-integration-${pname}-${version}";
postPatch = ''
# jailbreak install_requires
sed -i 's/==.*//' requirements.in
cp requirements.in requirements.txt
'';
sourceRoot = "source/${args.sourceRoot or pname}";
doCheck = false;
});
# Base package depended on by all other integrations.
datadog_checks_base = buildIntegration {
pname = "checks-base";
sourceRoot = "datadog_checks_base";
propagatedBuildInputs = with python.pkgs; [
requests protobuf prometheus-client simplejson uptime
];
};
# Default integrations that should be built:
defaultIntegrations = {
disk = (ps: [ ps.psutil ]);
mongo = (ps: [ ps.pymongo ]);
network = (ps: [ ps.psutil ]);
nginx = (ps: []);
postgres = (ps: with ps; [ pg8000 psycopg2 ]);
process = (ps: []);
};
# All integrations (default + extra):
integrations = defaultIntegrations // extraIntegrations;
builtIntegrations = mapAttrs (pname: fdeps: buildIntegration {
inherit pname;
propagatedBuildInputs = (fdeps python.pkgs) ++ [ datadog_checks_base ];
}) integrations;
in builtIntegrations // {
inherit datadog_checks_base;
python = python.withPackages (_: (attrValues builtIntegrations));
}

View file

@ -0,0 +1,49 @@
{ lib, fetchFromGitHub, perlPackages, iproute2, perl }:
perlPackages.buildPerlPackage rec {
pname = "ddclient";
version = "3.9.1";
src = fetchFromGitHub {
owner = "ddclient";
repo = "ddclient";
rev = "v${version}";
sha256 = "0hf377g4j9r9sac75xp17nk2h58mazswz4vkg4g2gl2yyhvzq91w";
};
# perl packages by default get devdoc which isn't present
outputs = [ "out" ];
buildInputs = with perlPackages; [ IOSocketSSL DigestSHA1 DataValidateIP JSONPP IOSocketInet6 ];
# Use iproute2 instead of ifconfig
preConfigure = ''
touch Makefile.PL
substituteInPlace ddclient \
--replace 'in the output of ifconfig' 'in the output of ip addr show' \
--replace 'ifconfig -a' '${iproute2}/sbin/ip addr show' \
--replace 'ifconfig $arg' '${iproute2}/sbin/ip addr show $arg' \
--replace '/usr/bin/perl' '${perl}/bin/perl' # Until we get the patchShebangs fixed (issue #55786) we need to patch this manually
'';
installPhase = ''
runHook preInstall
install -Dm755 ddclient $out/bin/ddclient
install -Dm644 -t $out/share/doc/ddclient COP* ChangeLog README.* RELEASENOTE
runHook postInstall
'';
# there are no tests distributed with ddclient
doCheck = false;
meta = with lib; {
description = "Client for updating dynamic DNS service entries";
homepage = "https://ddclient.net/";
license = licenses.gpl2Plus;
# Mostly since `iproute` is Linux only.
platforms = platforms.linux;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -0,0 +1,102 @@
{ stdenv, fetchurl, fetchpatch, perl, file, nettools, iputils, iproute2, makeWrapper
, coreutils, gnused, openldap ? null
, buildPackages, lib
# client and relay are end of life, remove after 4.4.3
, withClient ? false
, withRelay ? false
}:
stdenv.mkDerivation rec {
pname = "dhcp";
version = "4.4.3";
src = fetchurl {
url = "https://ftp.isc.org/isc/dhcp/${version}/${pname}-${version}.tar.gz";
sha256 = "sha256-Dj7GtMKgXsAUiHS82ZmmbQVRg3jXdCH2B/sLydATWBg=";
};
patches =
[
# Make sure that the hostname gets set on reboot. Without this
# patch, the hostname doesn't get set properly if the old
# hostname (i.e. before reboot) is equal to the new hostname.
./set-hostname.patch
];
nativeBuildInputs = [ perl makeWrapper ];
buildInputs = [ openldap ];
depsBuildBuild = [ buildPackages.stdenv.cc ];
configureFlags = [
"--enable-failover"
"--enable-execute"
"--enable-tracing"
"--enable-delayed-ack"
"--enable-dhcpv6"
"--enable-paranoia"
"--enable-early-chroot"
"--sysconfdir=/etc"
"--localstatedir=/var"
] ++ lib.optional stdenv.isLinux "--with-randomdev=/dev/random"
++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ]
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)";
NIX_CFLAGS_COMPILE = builtins.toString [
"-Wno-error=pointer-compare"
"-Wno-error=format-truncation"
"-Wno-error=stringop-truncation"
"-Wno-error=format-overflow"
"-Wno-error=stringop-overflow=8"
];
installFlags = [ "DESTDIR=\${out}" ];
postInstall =
''
mv $out/$out/* $out
DIR=$out/$out
while rmdir $DIR 2>/dev/null; do
DIR="$(dirname "$DIR")"
done
cp client/scripts/linux $out/sbin/dhclient-script
substituteInPlace $out/sbin/dhclient-script \
--replace /sbin/ip ${iproute2}/sbin/ip
wrapProgram "$out/sbin/dhclient-script" --prefix PATH : \
"${nettools}/bin:${nettools}/sbin:${iputils}/bin:${coreutils}/bin:${gnused}/bin"
'' + lib.optionalString (!withClient) ''
rm $out/sbin/{dhclient,dhclient-script,.dhclient-script-wrapped}
'' + lib.optionalString (!withRelay) ''
rm $out/sbin/dhcrelay
'';
preConfigure =
''
substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file"
sed -i "includes/dhcpd.h" \
-e "s|^ *#define \+_PATH_DHCLIENT_SCRIPT.*$|#define _PATH_DHCLIENT_SCRIPT \"$out/sbin/dhclient-script\"|g"
export AR='${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar'
'';
enableParallelBuilding = true;
meta = with lib; {
description = "Dynamic Host Configuration Protocol (DHCP) tools";
longDescription = ''
ISC's Dynamic Host Configuration Protocol (DHCP) distribution
provides a freely redistributable reference implementation of
all aspects of DHCP, through a suite of DHCP tools: server,
client, and relay agent.
'';
homepage = "https://www.isc.org/dhcp/";
license = licenses.mpl20;
platforms = platforms.unix;
knownVulnerabilities = lib.optional (withClient || withRelay) "The client and relay component of the dhcp package have reached their end of life";
};
}

View file

@ -0,0 +1,12 @@
--- a/client/scripts/linux 2010-09-15 00:49:48.000000000 +0200
+++ b/client/scripts/linux 2011-04-01 16:08:10.984372269 +0200
@@ -133,9 +133,7 @@
[ "$current_hostname" = '(none)' ] ||
[ "$current_hostname" = 'localhost' ] ||
[ "$current_hostname" = "$old_host_name" ]; then
- if [ "$new_host_name" != "$old_host_name" ]; then
- hostname "$new_host_name"
- fi
+ hostname "$new_host_name"
fi
fi

View file

@ -0,0 +1,69 @@
{ lib
, stdenv
, fetchurl
, pkg-config
, udev
, runtimeShellPackage
, runtimeShell
, nixosTests
, enablePrivSep ? true
}:
stdenv.mkDerivation rec {
pname = "dhcpcd";
version = "9.4.1";
src = fetchurl {
url = "mirror://roy/${pname}/${pname}-${version}.tar.xz";
sha256 = "sha256-gZNXY07+0epc9E7AGyTT0/iFL+yLQkmSXcxWZ8VON2w=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
udev
runtimeShellPackage # So patchShebangs finds a bash suitable for the installed scripts
];
prePatch = ''
substituteInPlace hooks/dhcpcd-run-hooks.in --replace /bin/sh ${runtimeShell}
'';
preConfigure = "patchShebangs ./configure";
configureFlags = [
"--sysconfdir=/etc"
"--localstatedir=/var"
]
++ (
if ! enablePrivSep
then [ "--disable-privsep" ]
else [
"--enable-privsep"
# dhcpcd disables privsep if it can't find the default user,
# so we explicitly specify a user.
"--privsepuser=dhcpcd"
]
);
makeFlags = [ "PREFIX=${placeholder "out"}" ];
# Hack to make installation succeed. dhcpcd will still use /var/db
# at runtime.
installFlags = [ "DBDIR=$(TMPDIR)/db" "SYSCONFDIR=${placeholder "out"}/etc" ];
# Check that the udev plugin got built.
postInstall = lib.optionalString (udev != null) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
passthru = {
inherit enablePrivSep;
tests = { inherit (nixosTests.networking.scripted) macvlan dhcpSimple dhcpOneIf; };
};
meta = with lib; {
description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
homepage = "https://roy.marples.name/projects/dhcpcd";
platforms = platforms.linux;
license = licenses.bsd2;
maintainers = with maintainers; [ eelco fpletz ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchurl, libpcap, perl }:
stdenv.mkDerivation rec {
pname = "dhcpdump";
version = "1.8";
src = fetchurl {
url = "mirror://ubuntu/pool/universe/d/dhcpdump/dhcpdump_${version}.orig.tar.gz";
sha256 = "143iyzkqvhj4dscwqs75jvfr4wvzrs11ck3fqn5p7yv2h50vjpkd";
};
buildInputs = [libpcap perl];
hardeningDisable = [ "fortify" ];
installPhase = ''
mkdir -pv $out/bin
cp dhcpdump $out/bin
'';
meta = with lib; {
description = "A tool for visualization of DHCP packets as recorded and output by tcpdump to analyze DHCP server responses";
homepage = "http://www.mavetju.org/unix/dhcpdump-man.php";
platforms = platforms.linux;
license = licenses.bsd2;
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "dhcping";
version = "1.2";
src = fetchurl {
sha256 = "0sk4sg3hn88n44dxikipf3ggfj3ixrp22asb7nry9p0bkfaqdvrj";
url = "https://www.mavetju.org/download/dhcping-${version}.tar.gz";
};
enableParallelBuilding = true;
doCheck = true;
meta = with lib; {
description = "Send DHCP request to find out if a DHCP server is running";
longDescription = ''
dhcping sends either a DHCPREQUEST or DHCPINFORM packet to the server
and waits for an answer. Then, if a DHCPREQUEST was send, it will send
a DHCPRELEASE back to the server.
This program should be installed setuid root or ran by root only, as it
requires the privileges to bind itself to port 68 (bootpc). Root
privileges are dropped as soon as the program has bound itself to that
port.
'';
homepage = "http://www.mavetju.org/unix/general.php";
license = licenses.bsd2;
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "dibbler";
version = "1.0.1";
src = fetchurl {
url = "http://www.klub.com.pl/dhcpv6/dibbler/${pname}-${version}.tar.gz";
sha256 = "18bnwkvax02scjdg5z8gvrkvy1lhssfnlpsaqb5kkh30w1vri1i7";
};
configureFlags = [
"--enable-resolvconf"
];
# -fcommon: Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: ./Port-linux/libLowLevel.a(libLowLevel_a-interface.o):(.bss+0x4): multiple definition of `interface_auto_up';
# ./Port-linux/libLowLevel.a(libLowLevel_a-lowlevel-linux-link-state.o):(.bss+0x74): first defined here
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-D__APPLE_USE_RFC_2292=1" + " -fcommon";
meta = with lib; {
description = "Portable DHCPv6 implementation";
homepage = "https://klub.com.pl/dhcpv6/";
license = licenses.gpl2Only;
platforms = platforms.all;
maintainers = with maintainers; [ fpletz ];
};
}

Some files were not shown because too many files have changed in this diff Show more