aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/misc
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/tools/misc
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/misc')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/0x0/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile.lock27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/gemset.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/3mux/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/abduco/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/aescrypt/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/agedu/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/alarm-clock-applet/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/antimicroX/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/apparix/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/apt-offline/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/aptly/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/argtable/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/arp-scan/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/aspcud/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/autojump/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/automirror/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/autorandr/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/autorevision/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/aws-mturk-clt/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/deps.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bandwidth/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/barman/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bash_unit/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bashcards/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bashplotlib/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bat-extras/default.nix145
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bat/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bbe/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bc/cross-bc.patch169
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bc/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bcunit/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bepasty/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bfr/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bibtex2html/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bibtool/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bibutils/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bmon/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bogofilter/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/bonfire/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/brltty/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/broot/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/brotab/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/buildtorrent/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/calamares/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/capture/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/catimg/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ccze/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/xmlcatalog_patch.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/chelf/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/chezmoi/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/chrome-export/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cht.sh/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/install-dirs.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/modprobe.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clac/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clasp/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/claws/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clex/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clipman/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clipnotify/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clipster/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cloc/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/deps.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cod/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/codebraid/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/colord-gtk/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/colord-kde/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/colord/default.nix114
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/colord/installed-tests-path.patch72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/colorpicker/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/colorz/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/contacts/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/convmv/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix107
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/avoid-false-positive-in-date-debug-test.patch52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch1259
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-android-cross.patch51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-musl-cross.patch1153
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/default.nix162
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cowsay/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cpulimit/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/crex/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/crudini/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/csv2latex/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cunit/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/cutecom/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/deps.nix129
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dasht/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/datamash/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dateutils/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dbacl/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dbus-map/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ddate/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ddcutil/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/debianutils/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/debootstrap/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/setup-hook.sh6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/detox/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/ignore_links.patch20
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/list-missing-tools.sh23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/skip-failing-test.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dijo/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ding-libs/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/direnv/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/discocss/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/diskonaut/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/diskscan/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/diskus/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/disper/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dmg2img/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docbook2mdoc/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docker-ls/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile.lock29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/gemset.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/docui/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/doitlive/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dtach/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dua/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/duc/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/duf/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dumptorrent/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dupd/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dust/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/dvtm.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/unstable.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dylibbundler/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/dynamic-colors/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/edid-decode/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/edid-generator/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/emv/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ent/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/entr/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/envdir-go/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/envsubst/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/eot-utilities/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/esphome/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/esptool-ck/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/esptool/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/etcher/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ethminer/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ethtool/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/eva/Cargo.lock.patch589
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/eva/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/exa/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/expect/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fasd/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fd/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fdtools/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fdupes/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fet-sh/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fffuu/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ffsend/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/figlet/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/file/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/filebench/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/unused-variables.debian.patch48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/no-install-statedir.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/flameshot/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/flashrom/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fltrdr/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock139
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix543
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fondu/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/fontforge-fonttools.nix1
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fortune/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fpart/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fpp/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fselect/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fsmark/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fsmon/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fsql/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/fix-testrunner-darwin.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fx_cast/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fzf/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/fzy/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/g933-utils/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gammy/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gams/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/deps.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/Makefile.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/geekbench/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/geteltorito/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/getopt/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gh-ost/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gibo/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gif-for-cli/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/git-fire/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/git-town/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gnokii/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gnuvd/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/go.rice/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/goaccess/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/godu/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/godu/go-mod.patch33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/polkit.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/plugins.nix270
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grc/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grex/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-to_string.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/2.0x.nix134
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/buggybios.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/fix-bash-completion.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.nix34
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub-bootstrap.cfg1
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub.cfg10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/symlink.patch37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub/trusted.nix100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/grub4dos/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/fix-paths.patch58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/gti/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/h/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/h5utils/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hackertyper/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hacksaw/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hakuneko/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hashit/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hdaps-gl/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/byteswap.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/dontwake.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/execinfo.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/satacmds.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hdf4/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/bin-mv.patch30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hdfjava/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hdfview/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/heatseeker/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hebcal/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/heimdall/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hexd/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hexyl/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hhpc/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hid-listen/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile.lock15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/gemset.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hostsblock/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hpcg/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hpl/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix138
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hyperfine/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/hyperledger-fabric/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/i3minator/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ideviceinstaller/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/nix-mapping.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ili2c/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/intermodal/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ipad_charge/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ipbt/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ipxe/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.upstream4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ix/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/jdupes/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/journaldriver/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kanshi/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kargo/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kepubify/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kermit/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/keychain/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kisslicer/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kronometer/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/kt/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/latex2html/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lazydocker/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/add-methods-to-rc.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lcdf-typetools/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ldapvi/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ldmtool/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/less/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/fix-paths.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lf/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/stdint.patch5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lice/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/licensor/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/linuxquota/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lnav/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lnch/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lockfile-progs/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/6.x.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/7.x.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/contrib.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/logtop/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/loop/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime-closure.nix.template37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lrzsz/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/lsd/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ltunify/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/makebootfat/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/marlin-calc/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/massren/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mbuffer/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mc/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mcfly/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/format-string_CVE-2012-4426.patch31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/overflow_CVE-2012-4409.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/segv.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/sprintf_CVE-2012-4527.patch108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mdbtools/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/megacli/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86+/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mht2htm/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mimeo/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/miniserve/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ministat/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mktorrent/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mlocate/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/deps.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mmv/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix101
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mons/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/moreutils/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/most/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mprime/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mrtg/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mstflint/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mtm/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/multitail/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/multitime/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mutagen/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mysql2pgsql/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nagstamon/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nbench/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ncdu/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/neofetch/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nginx-config-formatter/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nms/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nncp/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/noteshrink/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/noti/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/notify-desktop/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ntfy/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/nyancat/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/oci-image-tool/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/odroid-xu3-bootloader/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/odyssey/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/onefetch/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/opentimestamps-client/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/opentsdb/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/os-prober/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch270
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix145
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-1592.patch138
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/page/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pal/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-imagine/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/paps/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/wrapper.nix13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/parcellite/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/parted/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/partition-manager/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pastebinit/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/patdiff/default.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pazi/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pb_cli/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pdd/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch570
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/peep/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/peruse/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pfetch/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pg_flame/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pg_top/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pgcenter/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/tests.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pick/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/picocom/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/pipelight.patch122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pipreqs/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pistol/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pixd/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pkgdiff/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/plantuml/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/plotinus/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/plowshare/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pod2mdoc/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ponysay/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-go/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/profile-sync-daemon/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/progress/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/proxytunnel/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pspg/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/psrecord/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pubs/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pv/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile.lock19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pws/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/pws/gemset.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/q-text-as-data/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/qjoypad/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/qt5ct/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/radeon-profile/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rargs/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/fix-rcmlib-path.patch48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/recutils/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/remind/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rename/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/install-exec.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/reredirect/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile.lock25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/gemset.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rig/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rig/rig_1.11-1.diff39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rkflashtool/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rlwrap/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rmlint/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rmtrash/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/roundup/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/routino/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rpcsvc-proto/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix124
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rrdtool/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/rw/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sam-ba/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/scanmem/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/python-3.patch46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/screen/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/screenfetch/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sdate/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sdl-jstest/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/shadowenv/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/shallot/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/shell-hist/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/shelldap/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/shunit2/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/silicon/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/hcitool.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/skim/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sl/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/slop/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/slsnif/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/slurp/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/smc/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/smenu/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/snapper/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/snore/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/set_resource_path.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/spigot/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sta/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/starship/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/staruml/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/statserial/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/stow/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/subberthehut/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sutils/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile.lock65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/t/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/t/gemset.nix262
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/t1utils/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile.lock40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/td/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/td/gemset.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tealdeer/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile.lock13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/gemset.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/teleconsole/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tensorman/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/termplay/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/termtosvg/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/texi2mdoc/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/thefuck/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/thinkpad-scripts/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/time/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity-iA-Oj.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity.cfg369
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tio/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tldr/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/default.nix126
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/fix-makefile-sed.patch46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/tlp-sleep-service.patch95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmate/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmpwatch/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmux/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxp/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/toilet/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/topgrade/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/toybox/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/trac/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/cstring.patch78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttwatch/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tty-clock/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttygif/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttylog/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttyplot/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/clang-fixes.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/txr/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/txt2man/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/txtw/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/tydra/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/uhubctl/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-creator/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-manager/default.nix121
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/umlet/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter-xfixes/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/unicode/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/units/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/up/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/up/gomod.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/urjtag/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/uucp/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/matherr.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vcs_query/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vector/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/venus/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vimer/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/build.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/default.nix6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/latest.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vivid/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vmtouch/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/void/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/vttest/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wagyu/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wakatime/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/watchexec/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/websocat/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wev/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wimboot/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wob/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/woof/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wootility/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wv/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/fix-include.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/wyrd/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/x11idle/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xburst-tools/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xclip/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xdaliclock/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xdo/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xdummy/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xdxf2slob/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/gui.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xfstests/default.nix110
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xiccd/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xilinx-bootgen/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xsel/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xtitle/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/xxv/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yad/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yank/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yle-dl/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/you-get/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ytree/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubico-piv-tool/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization-gui/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/z-lua/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/deps.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/zoxide/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-autoenv/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-navigation-tools/default.nix32
743 files changed, 32266 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/0x0/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/0x0/default.nix
new file mode 100644
index 000000000000..d78846922c6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/0x0/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, xsel, curl, fetchFromGitLab, makeWrapper}:
+
+stdenv.mkDerivation {
+ pname = "0x0";
+ version = "2018-06-24";
+
+ src = fetchFromGitLab {
+ owner = "somasis";
+ repo = "scripts";
+ rev = "70422c83b2ac5856559b0ddaf6e2dc3dbef40dee";
+ sha256 = "1qpylyxrisy3p2lyirfarfj5yzrdjgsgxwf8gqwljpcjn207hr72";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -Dm755 0x0 $out/bin/0x0
+
+ patchShebangs $out/bin/0x0
+ wrapProgram $out/bin/0x0 \
+ --prefix PATH : '${stdenv.lib.makeBinPath [ curl xsel ]}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A client for 0x0.st";
+ homepage = "https://gitlab.com/somasis/scripts/";
+ maintainers = [ maintainers.ar1a ];
+ license = licenses.unlicense;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile
new file mode 100644
index 000000000000..17a1086d78f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem '3llo', '0.3.0'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile.lock
new file mode 100644
index 000000000000..45a37b5e1ca6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/Gemfile.lock
@@ -0,0 +1,27 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ 3llo (0.3.0)
+ tty-prompt (~> 0.12.0)
+ equatable (0.6.1)
+ necromancer (0.4.0)
+ pastel (0.7.3)
+ equatable (~> 0.6)
+ tty-color (~> 0.5)
+ tty-color (0.5.0)
+ tty-cursor (0.4.0)
+ tty-prompt (0.12.0)
+ necromancer (~> 0.4.0)
+ pastel (~> 0.7.0)
+ tty-cursor (~> 0.4.0)
+ wisper (~> 1.6.1)
+ wisper (1.6.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ 3llo (= 0.3.0)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/default.nix
new file mode 100644
index 000000000000..75dc8f772c1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/default.nix
@@ -0,0 +1,31 @@
+{ lib, ruby, bundlerApp, fetchpatch }:
+
+bundlerApp {
+ pname = "3llo";
+
+ gemfile = ./Gemfile;
+ lockfile = ./Gemfile.lock;
+
+ gemset = lib.recursiveUpdate (import ./gemset.nix) ({
+ "3llo" = {
+ dontBuild = false;
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/qcam/3llo/commit/7667c67fdc975bac315da027a3c69f49e7c06a2e.patch";
+ sha256 = "0ahp19igj77x23b2j9zk3znlmm7q7nija7mjgsmgqkgfbz2r1y7v";
+ })
+ ];
+ };
+ });
+
+ inherit ruby;
+
+ exes = [ "3llo" ];
+
+ meta = with lib; {
+ description = "Trello interactive CLI on terminal";
+ license = licenses.mit;
+ homepage = "https://github.com/qcam/3llo";
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/gemset.nix
new file mode 100644
index 000000000000..5c50ea9b2122
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/3llo/gemset.nix
@@ -0,0 +1,85 @@
+{
+ "3llo" = {
+ dependencies = ["tty-prompt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "082g42lkkynnb2piz37ih696zm2ms63mz2q9rnfzjsd149ig39yy";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ equatable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fzx2ishipnp6c124ka6fiw5wk42s7c7gxid2c4c1mb55b30dglf";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ necromancer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ pastel = {
+ dependencies = ["equatable" "tty-color"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m43wk7gswwkl6lfxwlliqc9v1qp8arfygihyz91jc9icf270xzm";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ tty-color = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zpp6zixkkchrc2lqnabrsy24pxikz2px87ggz5ph6355fs803da";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ tty-cursor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07whfm8mnp7l49s2cm2qy1snhsqq3a90sqwb71gvym4hm2kx822a";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ tty-prompt = {
+ dependencies = ["necromancer" "pastel" "tty-cursor" "wisper"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1026nyqhgmgxi2nmk8xk3hca07gy5rpisjs8y6w00wnw4f01kpv0";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ wisper = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19bw0z1qw1dhv7gn9lad25hgbgpb1bkw8d599744xdfam158ms2s";
+ type = "gem";
+ };
+ version = "1.6.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/3mux/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/3mux/default.nix
new file mode 100644
index 000000000000..04335d3f33a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/3mux/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "3mux";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "aaronjanse";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-auEMG3txO2JS/2dMFBtEujv9s5I0A80Vwts5kXjH600=";
+ };
+
+ vendorSha256 = "sha256-rcbnyScD2GU1DLY6dTEPgFNXZfgkxXPn5lt6HRqa0d8=";
+
+ meta = with stdenv.lib; {
+ description = "Terminal multiplexer inspired by i3";
+ longDescription = ''
+ 3mux is a terminal multiplexer with out-of-the-box support for search,
+ mouse-controlled scrollback, and i3-like keybindings. Imagine tmux with a
+ smaller learning curve and more sane defaults.
+ '';
+ homepage = "https://github.com/aaronjanse/3mux";
+ license = licenses.mit;
+ maintainers = with maintainers; [ aaronjanse filalex77 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/abduco/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/abduco/default.nix
new file mode 100644
index 000000000000..a0868344d4cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/abduco/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, writeText, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ name = "abduco-2018-05-16";
+
+ src = fetchFromGitHub {
+ owner = "martanne";
+ repo = "abduco";
+ rev = "8f80aa8044d7ecf0e43a0294a09007d056b20e4c";
+ sha256 = "0wqcif633nbgnznn46j0sng9l0wncppw1x1c42f75b4p9hrph203";
+ };
+
+ configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+ preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+ CFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
+
+ meta = {
+ homepage = "http://brain-dump.org/projects/abduco";
+ license = licenses.isc;
+ description = "Allows programs to be run independently from its controlling terminal";
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
new file mode 100644
index 000000000000..31ef3e2487be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, python3 }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "adafruit-ampy";
+ version = "1.0.7";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1dz5sksalccv4c3bzk3c1jxpg3s28lwlw8hfwc9dfxhw3a1np3fd";
+ };
+
+ nativeBuildInputs = [ setuptools_scm ];
+ propagatedBuildInputs = [ click python-dotenv pyserial ];
+
+ # No tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pycampers/ampy";
+ license = licenses.mit;
+ description = "Utility to interact with a MicroPython board over a serial connection";
+ maintainers = with maintainers; [ etu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/aescrypt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/aescrypt/default.nix
new file mode 100644
index 000000000000..42941c263e6d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/aescrypt/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, libiconv }:
+
+stdenv.mkDerivation rec {
+ version = "3.14";
+ pname = "aescrypt";
+
+ src = fetchurl {
+ url = "https://www.aescrypt.com/download/v3/linux/${pname}-${version}.tgz";
+ sha256 = "1iziymcbpc64d44djgqfifpblsly4sr5bxsp5g29jgxz552kjlah";
+ };
+
+ NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-liconv";
+
+ preBuild = ''
+ substituteInPlace src/Makefile --replace "CC=gcc" "CC?=gcc"
+ cd src
+ '';
+
+ installPhase= ''
+ mkdir -p $out/bin
+ cp aescrypt $out/bin
+ cp aescrypt_keygen $out/bin
+ '';
+
+ buildInputs = [ libiconv ];
+
+ meta = with stdenv.lib; {
+ description = "Encrypt files with Advanced Encryption Standard (AES)";
+ homepage = "https://www.aescrypt.com/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lovek323 qknight ];
+ platforms = stdenv.lib.platforms.all;
+ hydraPlatforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/agedu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/agedu/default.nix
new file mode 100644
index 000000000000..c9bad789ad26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/agedu/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchgit, autoreconfHook, halibut}:
+let
+ date = "20200206";
+ rev = "963bc9d";
+in
+stdenv.mkDerivation {
+ name = "agedu-${date}.${rev}";
+ # upstream provides tarballs but it seems they disappear after the next version is released
+ src = fetchgit {
+ url = "https://git.tartarus.org/simon/agedu.git";
+ inherit rev;
+ sha256 = "1jmvgg2v6aqgbgpxbndrdhgfhlglrq4yv4sdbjaj6bsz9fb8lqhc";
+ };
+
+ nativeBuildInputs = [autoreconfHook halibut];
+
+ meta = with stdenv.lib; {
+ description = "A Unix utility for tracking down wasted disk space";
+ longDescription = ''
+ Most Unix file systems, in their default mode, helpfully record when a
+ file was last accessed. So if you generated a large amount of data years
+ ago, forgot to clean it up, and have never used it since, then it ought
+ in principle to be possible to use those last-access time stamps to tell
+ the difference between that and a large amount of data you're still
+ using regularly.
+
+ agedu uses this information to tell you which files waste disk space when
+ you haven't used them since a long time.
+ '';
+ homepage = "https://www.chiark.greenend.org.uk/~sgtatham/agedu/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ symphorien ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/alarm-clock-applet/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/alarm-clock-applet/default.nix
new file mode 100644
index 000000000000..3102dd635ca2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig
+, autoconf
+, automake111x
+, libtool
+
+, glib
+, gtk2
+, gst_all_1
+, gnome2
+, gnome-icon-theme
+, libnotify
+, libxml2
+, libunique
+, intltool
+, gst_plugins ? with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly ]
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.3.4";
+ pname = "alarm-clock-applet";
+
+ src = fetchFromGitHub {
+ owner = "joh";
+ repo = "alarm-clock";
+ rev = version;
+ sha256 = "18blvgy8hmw3jidz7xrv9yiiilnzcj65m6wxhw58nrnbcqbpydwn";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ automake111x
+ autoconf
+ libtool
+
+ gnome2.gnome-common
+
+ wrapGAppsHook
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ buildInputs = [
+ glib
+ gtk2
+ gst_all_1.gstreamer
+ gnome2.GConf
+ gnome-icon-theme
+ libnotify
+ libxml2
+ libunique
+ ] ++ gst_plugins;
+
+ propagatedUserEnvPkgs = [ gnome2.GConf.out ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://alarm-clock.pseudoberries.com/";
+ description = "A fully-featured alarm clock for your GNOME panel or equivalent";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.rasendubi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/antimicroX/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/antimicroX/default.nix
new file mode 100644
index 000000000000..cb5496d450c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/antimicroX/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, lib
+, cmake
+, extra-cmake-modules
+, pkgconfig
+, SDL2
+, qtbase
+, qttools
+, qtx11extras
+, xorg
+, fetchFromGitHub
+, itstool
+}:
+
+mkDerivation rec {
+ pname = "antimicroX";
+ version = "3.0.1";
+
+ src = fetchFromGitHub {
+ owner = "juliagoda";
+ repo = "antimicroX";
+ rev = version;
+ sha256 = "05asxlkgb4cgvpcyksw1cx8cz8nzi8hmw8b91lw92892j7a2r7wj";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig itstool ];
+ buildInputs = [
+ SDL2
+ qtbase
+ qttools
+ qtx11extras
+ xorg.libX11
+ xorg.libXtst
+ xorg.libXi
+ ];
+
+ meta = with lib; {
+ description = "GUI for mapping keyboard and mouse controls to a gamepad";
+ inherit (src.meta) homepage;
+ maintainers = with maintainers; [ jb55 ];
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/apparix/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/apparix/default.nix
new file mode 100644
index 000000000000..155fa8190d9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/apparix/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "apparix-11-062";
+
+ src = fetchurl {
+ url = "https://micans.org/apparix/src/${name}.tar.gz";
+ sha256 = "211bb5f67b32ba7c3e044a13e4e79eb998ca017538e9f4b06bc92d5953615235";
+ };
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://micans.org/apparix";
+ description = "Add directory bookmarks, distant listing, and distant editing to the command line";
+ maintainers = with maintainers; [ lethalman ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/apt-offline/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/apt-offline/default.nix
new file mode 100644
index 000000000000..7e29c63347dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/apt-offline/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ version = "1.8.1";
+ pname = "apt-offline";
+
+ src = fetchFromGitHub {
+ owner = "rickysarraf";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0k79d1d8jiwg1s684r05njmk1dz8gsb8a9bl4agz7m31snc11j84";
+ };
+
+ doCheck = false;
+
+ # Requires python-qt4 (feel free to get it working).
+ preFixup = ''rm "$out/bin/apt-offline-gui"'';
+
+ meta = with stdenv.lib; {
+ description = "Offline APT package manager";
+ license = licenses.gpl3;
+ maintainers = [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/aptly/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/aptly/default.nix
new file mode 100644
index 000000000000..3c97c1684290
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/aptly/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles, makeWrapper, gnupg, bzip2, xz, graphviz }:
+
+let
+
+ version = "1.3.0";
+ rev = "v${version}";
+
+ aptlySrc = fetchFromGitHub {
+ inherit rev;
+ owner = "aptly-dev";
+ repo = "aptly";
+ sha256 = "032gw8qkxcgc0jyrvzqh7jkbmk4k0gf7j74hyhclfnjmd9548f5l";
+ };
+
+ aptlyCompletionSrc = fetchFromGitHub {
+ rev = "1.0.1";
+ owner = "aptly-dev";
+ repo = "aptly-bash-completion";
+ sha256 = "0dkc4z687yk912lpv8rirv0nby7iny1zgdvnhdm5b47qmjr1sm5q";
+ };
+
+in
+
+buildGoPackage {
+ pname = "aptly";
+ inherit version;
+
+ src = aptlySrc;
+
+ goPackagePath = "github.com/aptly-dev/aptly";
+
+ nativeBuildInputs = [ installShellFiles makeWrapper ];
+
+ postInstall = ''
+ installShellCompletion --bash ${aptlyCompletionSrc}/aptly
+ wrapProgram "$out/bin/aptly" \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg bzip2 xz graphviz ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.aptly.info";
+ description = "Debian repository management tool";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.montag451 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/argtable/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/argtable/default.nix
new file mode 100644
index 000000000000..867b2eaba5d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/argtable/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchgit
+}:
+stdenv.mkDerivation {
+ pname = "argtable";
+ version = "3.0.1";
+
+ src = fetchgit {
+ url = "https://github.com/argtable/argtable3.git";
+ rev = "de93cfd85f755250285b337cba053a709a270721";
+ sha256 = "0fbvk78s3dwryrzgafdra0lb8w7lb873c6xgldl94ps9828x85i3";
+ };
+
+ buildPhase = ''
+ gcc -shared -o libargtable3.so -fPIC argtable3.c
+
+ pushd tests
+ make
+ popd
+ '';
+
+ installPhase = ''
+ mkdir -p $out/include
+ cp argtable3.h $out/include
+
+ mkdir -p $out/lib
+ cp libargtable3.so $out/lib
+
+ mkdir -p $out/src
+ cp argtable3.c $out/src
+ cp -r examples $out/src
+ ln -s $out/include/argtable3.h $out/src/argtable3.h
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.argtable.org/";
+ description = "A Cross-Platform, Single-File, ANSI C Command-Line Parsing Library";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ artuuge ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/arp-scan/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/arp-scan/default.nix
new file mode 100644
index 000000000000..9a3164db5d7c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/arp-scan/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libpcap, makeWrapper, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "arp-scan";
+ version = "1.9.7";
+
+ src = fetchFromGitHub {
+ owner = "royhills";
+ repo = "arp-scan";
+ rev = version;
+ sha256 = "1mf7a4f9vzvnkiavc87aqyciswggsb4fpy7j05jxnvjyyxv3l7gp";
+ };
+
+ perlModules = with perlPackages; [
+ HTTPDate
+ HTTPMessage
+ LWP
+ URI
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ perlPackages.perl libpcap makeWrapper ];
+
+ postInstall = ''
+ for name in get-{oui,iab}; do
+ wrapProgram "$out/bin/$name" --set PERL5LIB "${perlPackages.makeFullPerlPath perlModules}"
+ done;
+ '';
+
+ meta = with stdenv.lib; {
+ description = "ARP scanning and fingerprinting tool";
+ longDescription = ''
+ Arp-scan is a command-line tool that uses the ARP protocol to discover
+ and fingerprint IP hosts on the local network.
+ '';
+ homepage = "http://www.nta-monitor.com/wiki/index.php/Arp-scan_Documentation";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bjornfor mikoim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
new file mode 100644
index 000000000000..cff96a4ec86c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, rustPlatform
+, fetchCrate
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "asciinema-scenario";
+ version = "0.1.0";
+
+ src = fetchCrate {
+ inherit pname version;
+ sha256 = "sha256-ubiVpKFU81Ot9V9oMexWSiUXHepoJ6nXtrWVAFhgcYw=";
+ };
+
+ cargoSha256 = "109ij5h31bhn44l0wywgpnnlfjgyairxr5l19s6bz47sbka0xyxk";
+
+ meta = with stdenv.lib; {
+ description = "Create asciinema videos from a text file";
+ homepage = "https://github.com/garbas/asciinema-scenario/";
+ maintainers = with maintainers; [ garbas ];
+ license = with licenses; [ mit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema/default.nix
new file mode 100644
index 000000000000..67c324d4aeed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/asciinema/default.nix
@@ -0,0 +1,26 @@
+{ lib, python3Packages, fetchFromGitHub, glibcLocales }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "asciinema";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "asciinema";
+ repo = "asciinema";
+ rev = "v${version}";
+ sha256 = "1a2pysxnp6icyd08mgf66xr6f6j0irnfxdpf3fmzcz31ix7l9kc4";
+ };
+
+ checkInputs = [ glibcLocales python3Packages.nose ];
+
+ checkPhase = ''
+ LC_ALL=en_US.UTF-8 nosetests
+ '';
+
+ meta = {
+ description = "Terminal session recorder and the best companion of asciinema.org";
+ homepage = "https://asciinema.org/";
+ license = with lib.licenses; [ gpl3 ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/aspcud/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/aspcud/default.nix
new file mode 100644
index 000000000000..b58f603ce594
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/aspcud/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip
+, boost, clasp, cmake, gringo, re2c
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.9.4";
+ pname = "aspcud";
+
+ src = fetchzip {
+ url = "https://github.com/potassco/aspcud/archive/v${version}.tar.gz";
+ sha256 = "0vrf7h7g99vw1mybqfrpxamsnf89p18czlzgjmxl1zkiwc7vjpzw";
+ };
+
+ buildInputs = [ boost clasp cmake gringo re2c ];
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DASPCUD_GRINGO_PATH=${gringo}/bin/gringo"
+ "-DASPCUD_CLASP_PATH=${clasp}/bin/clasp"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Solver for package problems in CUDF format using ASP";
+ homepage = "https://potassco.org/aspcud/";
+ platforms = platforms.all;
+ maintainers = [ maintainers.hakuch ];
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/autojump/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/autojump/default.nix
new file mode 100644
index 000000000000..85e500388341
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/autojump/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, python, bash }:
+
+stdenv.mkDerivation rec {
+ pname = "autojump";
+ version = "22.5.3";
+
+ src = fetchFromGitHub {
+ owner = "wting";
+ repo = "autojump";
+ rev = "release-v${version}";
+ sha256 = "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws";
+ };
+
+ buildInputs = [ python bash ];
+ dontBuild = true;
+
+ installPhase = ''
+ python ./install.py -d "$out" -p "" -z "$out/share/zsh/site-functions/"
+
+ chmod +x "$out/etc/profile.d/autojump.sh"
+ install -Dt "$out/share/bash-completion/completions/" -m444 "$out/share/autojump/autojump.bash"
+ install -Dt "$out/share/fish/vendor_conf.d/" -m444 "$out/share/autojump/autojump.fish"
+ install -Dt "$out/share/zsh/site-functions/" -m444 "$out/share/autojump/autojump.zsh"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A `cd' command that learns";
+ longDescription = ''
+ One of the most used shell commands is “cd”. A quick survey
+ among my friends revealed that between 10 and 20% of all
+ commands they type are actually cd commands! Unfortunately,
+ jumping from one part of your system to another with cd
+ requires to enter almost the full path, which isn’t very
+ practical and requires a lot of keystrokes.
+
+ Autojump is a faster way to navigate your filesystem. It
+ works by maintaining a database of the directories you use the
+ most from the command line. The jstat command shows you the
+ current contents of the database. You need to work a little
+ bit before the database becomes usable. Once your database
+ is reasonably complete, you can “jump” to a directory by
+ typing "j dirspec", where dirspec is a few characters of the
+ directory you want to jump to. It will jump to the most used
+ directory whose name matches the pattern given in dirspec.
+
+ Autojump supports tab-completion.
+ '';
+ homepage = "https://github.com/wting/autojump";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ domenkozar yurrriq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/automirror/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/automirror/default.nix
new file mode 100644
index 000000000000..dde9c2d02d3a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/automirror/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchFromGitHub, git, ronn}:
+
+stdenv.mkDerivation rec {
+ pname = "automirror";
+ version = "49";
+
+ src = fetchFromGitHub {
+ owner = "schlomo";
+ repo = "automirror";
+ rev = "v${version}";
+ sha256 = "1syyf7dcm8fbyw31cpgmacg80h7pg036dayaaf0svvdsk0hqlsch";
+ };
+
+ patchPhase = "sed -i s#/usr##g Makefile";
+
+ buildInputs = [ git ronn ];
+
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/schlomo/automirror";
+ description = "Automatic Display Mirror";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/autorandr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/autorandr/default.nix
new file mode 100644
index 000000000000..b2bbb161f289
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/autorandr/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, python3Packages
+, fetchFromGitHub
+, systemd
+, xrandr }:
+
+let
+ python = python3Packages.python;
+ version = "1.10.1";
+in
+ stdenv.mkDerivation {
+ pname = "autorandr";
+ inherit version;
+
+ buildInputs = [ python ];
+
+ # no wrapper, as autorandr --batch does os.environ.clear()
+ buildPhase = ''
+ substituteInPlace autorandr.py \
+ --replace 'os.popen("xrandr' 'os.popen("${xrandr}/bin/xrandr' \
+ --replace '["xrandr"]' '["${xrandr}/bin/xrandr"]'
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ make install TARGETS='autorandr' PREFIX=$out
+
+ make install TARGETS='bash_completion' DESTDIR=$out/share/bash-completion/completions
+
+ make install TARGETS='autostart_config' PREFIX=$out DESTDIR=$out
+
+ ${if systemd != null then ''
+ make install TARGETS='systemd udev' PREFIX=$out DESTDIR=$out \
+ SYSTEMD_UNIT_DIR=/lib/systemd/system \
+ UDEV_RULES_DIR=/etc/udev/rules.d
+ substituteInPlace $out/etc/udev/rules.d/40-monitor-hotplug.rules \
+ --replace /bin/systemctl "/run/current-system/systemd/bin/systemctl"
+ '' else ''
+ make install TARGETS='pmutils' DESTDIR=$out \
+ PM_SLEEPHOOKS_DIR=/lib/pm-utils/sleep.d
+ make install TARGETS='udev' PREFIX=$out DESTDIR=$out \
+ UDEV_RULES_DIR=/etc/udev/rules.d
+ ''}
+
+ runHook postInstall
+ '';
+
+ src = fetchFromGitHub {
+ owner = "phillipberndt";
+ repo = "autorandr";
+ rev = version;
+ sha256 = "0msw9b1hdy3gbq9w5d04mfizhyirz1c648x84mlcbzl8salm7vpg";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/phillipberndt/autorandr/";
+ description = "Automatically select a display configuration based on connected devices";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ coroa globin ];
+ platforms = platforms.unix;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/autorevision/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/autorevision/default.nix
new file mode 100644
index 000000000000..abaca62c400c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/autorevision/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, asciidoc, libxml2, docbook_xml_dtd_45, libxslt
+, docbook_xsl, diffutils, coreutils, gnugrep, gnused
+}:
+
+stdenv.mkDerivation rec {
+ pname = "autorevision";
+ version = "1.21";
+
+ src = fetchurl {
+ url = "https://github.com/Autorevision/autorevision/releases/download/v%2F${version}/autorevision-${version}.tgz";
+ sha256 = "07ssirjy2mgbqxr792n3rqa408hm7qnhwfjzd73rqfwvjcahy1q8";
+ };
+
+ buildInputs = [
+ asciidoc libxml2 docbook_xml_dtd_45 libxslt docbook_xsl
+ ];
+
+ installFlags = [ "prefix=$(out)" ];
+
+ postInstall = ''
+ sed -e "s|\<cmp\>|${diffutils}/bin/cmp|g" \
+ -e "s|\<cat\>|${coreutils}/bin/cat|g" \
+ -e "s|\<grep\>|${gnugrep}/bin/grep|g" \
+ -e "s|\<sed\>|${gnused}/bin/sed|g" \
+ -e "s|\<tee\>|${coreutils}/bin/tee|g" \
+ -i "$out/bin/autorevision"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Extracts revision metadata from your VCS repository";
+ homepage = "https://autorevision.github.io/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/aws-mturk-clt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/aws-mturk-clt/default.nix
new file mode 100644
index 000000000000..c5f4b0f5670a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/aws-mturk-clt/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+ name = "aws-mturk-clt-1.3.0";
+
+ src = fetchurl {
+ url = "https://mturk.s3.amazonaws.com/CLTSource/${name}.tar.gz";
+ sha256 = "00yyc7k3iygg83cknv9i2dsaxwpwzdkc8a2l9j56lg999hw3mqm3";
+ };
+
+ installPhase =
+ ''
+ mkdir -p $out
+ cp -prvd bin $out/
+
+ for i in $out/bin/*.sh; do
+ sed -i "$i" -e "s|^MTURK_CMD_HOME=.*|MTURK_CMD_HOME=$out\nexport JAVA_HOME=${jre}|"
+ done
+
+ mkdir -p $out/lib
+ cp -prvd lib/* $out/lib/
+ ''; # */
+
+ meta = {
+ homepage = "https://requester.mturk.com/developer";
+ description = "Command line tools for interacting with the Amazon Mechanical Turk";
+ license = stdenv.lib.licenses.amazonsl;
+
+ longDescription =
+ ''
+ The Amazon Mechanical Turk is a crowdsourcing marketplace that
+ allows users (“requesters”) to submit tasks to be performed by
+ other humans (“workers”) for a small fee. This package
+ contains command-line tools for submitting tasks, querying
+ results, and so on.
+
+ The command-line tools expect a file
+ <filename>mturk.properties<filename> in the current directory,
+ which should contain the following:
+
+ <screen>
+ access_key=[insert your access key here]
+ secret_key=[insert your secret key here]
+ service_url=http://mechanicalturk.amazonaws.com/?Service=AWSMechanicalTurkRequester
+ </screen>
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/default.nix
new file mode 100644
index 000000000000..bfb622ee7419
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/default.nix
@@ -0,0 +1,27 @@
+# This file was generated by go2nix.
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "azure-vhd-utils";
+ version = "20160614-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "070db2d701a462ca2edcf89d677ed3cac309d8e8";
+
+ goPackagePath = "github.com/Microsoft/azure-vhd-utils";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/Microsoft/azure-vhd-utils";
+ sha256 = "0b9kbavlb92rhnb1swwq8bdn4l9a994rmf1ywyfq4yc0kd3gnhgh";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Microsoft/azure-vhd-utils";
+ description = "Read, inspect and upload VHD files for Azure";
+ longDescription = "Go package to read Virtual Hard Disk (VHD) file, a CLI interface to upload local VHD to Azure storage and to inspect a local VHD";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/deps.nix
new file mode 100644
index 000000000000..d07af99d5e59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/azure-vhd-utils/deps.nix
@@ -0,0 +1,29 @@
+[
+ {
+ goPackagePath = "github.com/Azure/azure-sdk-for-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Azure/azure-sdk-for-go";
+ rev = "0884ebb4c8e7c980527348a4d134a65286042afc";
+ sha256 = "0ixsq409akq1ff12352kp5gkbh370rpbw0m0pbwjr42cqvnzs9k0";
+ };
+ }
+ {
+ goPackagePath = "github.com/Microsoft/azure-vhd-utils-for-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Microsoft/azure-vhd-utils-for-go";
+ rev = "070db2d701a462ca2edcf89d677ed3cac309d8e8";
+ sha256 = "0b9kbavlb92rhnb1swwq8bdn4l9a994rmf1ywyfq4yc0kd3gnhgh";
+ };
+ }
+ {
+ goPackagePath = "github.com/codegangsta/cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/codegangsta/cli";
+ rev = "f614c177b70c0f0e92c368d623c8770bf337c5d6";
+ sha256 = "1l70f07v0dsp2k2pm0lmr42fp4y72j1g0czf4fkxwhvgbly3al98";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bandwidth/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
new file mode 100644
index 000000000000..5de77aea0e04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, nasm }:
+
+let
+ arch =
+ if stdenv.hostPlatform.system == "x86_64-linux" then "bandwidth64"
+ else if stdenv.hostPlatform.system == "i686-linux" then "bandwidth32"
+ else if stdenv.hostPlatform.system == "x86_64-darwin" then "bandwidth-mac64"
+ else if stdenv.hostPlatform.system == "i686-darwin" then "bandwidth-mac32"
+ else if stdenv.hostPlatform.system == "i686-cygwin" then "bandwidth-win32"
+ else throw "Unknown architecture";
+in
+stdenv.mkDerivation rec {
+ pname = "bandwidth";
+ version = "1.9.3";
+
+ src = fetchurl {
+ url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
+ sha256 = "0zpv2qgkbak0llw47qcakhyh2z3zv4d69kasldmpdlpqryd9za84";
+ };
+
+ buildInputs = [ nasm ];
+
+ buildFlags = [ arch ]
+ ++ stdenv.lib.optionals stdenv.cc.isClang [ "CC=clang" "LD=clang" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ${arch} $out/bin
+ ln -s ${arch} $out/bin/bandwidth
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://zsmith.co/bandwidth.html";
+ description = "Artificial benchmark for identifying weaknesses in the memory subsystem";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/barman/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/barman/default.nix
new file mode 100644
index 000000000000..2105ad0ae017
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/barman/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonApplication, fetchurl, lib
+, dateutil, argcomplete, argh, psycopg2, boto3
+}:
+
+buildPythonApplication rec {
+ pname = "barman";
+ version = "2.11";
+
+ outputs = [ "out" "man" ];
+ src = fetchurl {
+ url = "mirror://sourceforge/pgbarman/${version}/barman-${version}.tar.gz";
+ sha256 = "0w5lh4aavab9ynfy2mq09ga6j4vss4k0vlc3g6f5a9i4175g9pmr";
+ };
+
+ propagatedBuildInputs = [ dateutil argh psycopg2 boto3 argcomplete ];
+
+ # Tests are not present in tarball
+ checkPhase = ''
+ $out/bin/barman --help > /dev/null
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.2ndquadrant.com/en/resources/barman/";
+ description = "Backup and Disaster Recovery Manager for PostgreSQL";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bash_unit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
new file mode 100644
index 000000000000..abfe4078870e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
@@ -0,0 +1,27 @@
+{ fetchFromGitHub
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bash_unit";
+ version = "1.7.1";
+
+ src = fetchFromGitHub {
+ owner = "pgrange";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "02cam5gkhnlwhb9aqcqmkl8kskgikih0bmyx09ybi3gpaf4z82f7";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bash_unit $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Bash unit testing enterprise edition framework for professionals";
+ maintainers = with maintainers; [ pamplemousse ];
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bashcards/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bashcards/default.nix
new file mode 100644
index 000000000000..3e91b9741c63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bashcards/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bashcards";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "rpearce";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1rpqrh0022sbrjvd55a0jvpdqhhka5msf8dsz6adbbmxy3xzgdid";
+ };
+
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man8
+ cp bashcards.8 $out/share/man/man8/
+ cp bashcards $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Practice flashcards in bash";
+ homepage = "https://github.com/rpearce/bashcards/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ rpearce ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bashplotlib/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bashplotlib/default.nix
new file mode 100644
index 000000000000..3e8ae31835a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bashplotlib/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication {
+ pname = "bashplotlib";
+ version = "2019-01-02";
+
+ src = fetchFromGitHub {
+ owner = "glamp";
+ repo = "bashplotlib";
+ rev = "f7533172c4dc912b5accae42edd5c0f655d7468f";
+ sha256 = "1sifqslvvz2c05spwrl81kcdg792l6jwvfd3ih9q5wjkvkm0plz8";
+ };
+
+ # No tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/glamp/bashplotlib";
+ description = "Plotting in the terminal";
+ maintainers = with maintainers; [ dtzWill ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bat-extras/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
new file mode 100644
index 000000000000..36adc09cdba1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
@@ -0,0 +1,145 @@
+{ stdenv, callPackage, fetchFromGitHub, bash, makeWrapper, bat
+# batdiff, batgrep, and batwatch
+, coreutils
+, less
+# batgrep
+, ripgrep
+# prettybat
+, withShFmt ? shfmt != null, shfmt ? null
+, withPrettier ? nodePackages?prettier, nodePackages ? null
+, withClangTools ? clang-tools != null, clang-tools ? null
+, withRustFmt ? rustfmt != null, rustfmt ? null
+# batwatch
+, withEntr ? entr != null, entr ? null
+# batdiff
+, gitMinimal
+, withDelta ? gitAndTools?delta, gitAndTools ? null
+}:
+
+let
+ # Core derivation that all the others are based on.
+ # This includes the complete source so the per-script derivations can run the tests.
+ core = stdenv.mkDerivation rec {
+ pname = "bat-extras";
+ # there hasn't been a release since 2020-05-01 but there are important bugfixes
+ # to the test suite so we'll pull the latest commit as of 2020-06-17.
+ version = "20200515-dev"; # latest commit was dated 2020-05-15
+
+ src = fetchFromGitHub {
+ owner = "eth-p";
+ repo = pname;
+ rev = "3029b6749f61f7514e9eef30e035cfab0e31eb1d";
+ sha256 = "08mb94k2n182ql97c5s5j1v7np25ivynn5g0418whrx11ra41wr7";
+ fetchSubmodules = true;
+ };
+
+ # bat needs to be in the PATH during building so EXECUTABLE_BAT picks it up
+ nativeBuildInputs = [ bash bat ];
+
+ dontConfigure = true;
+
+ postPatch = ''
+ patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ bash ./build.sh --minify=none --no-verify
+ runHook postBuild
+ '';
+
+ # Run the library tests as they don't have external dependencies
+ doCheck = true;
+ checkPhase = ''
+ runHook preCheck
+ # test list repeats suites. Unique them
+ declare -A test_suites
+ while read -r action arg _; do
+ [[ "$action" == "test_suite" && "$arg" == lib_* ]] &&
+ test_suites+=(["$arg"]=1)
+ done <<<"$(bash ./test.sh --compiled --list --porcelain)"
+ (( ''${#test_suites[@]} != 0 )) || {
+ echo "Couldn't find any library test suites"
+ exit 1
+ }
+ bash ./test.sh --compiled $(printf -- "--suite %q\n" "''${!test_suites[@]}")
+ runHook postCheck
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ cp -a . $out
+ runHook postInstall
+ '';
+
+ # A few random files have shebangs. Don't patch them, they don't make it into the final output.
+ # The per-script derivations will go ahead and patch the files they actually install.
+ dontPatchShebangs = true;
+
+ meta = with stdenv.lib; {
+ description = "Bash scripts that integrate bat with various command line tools";
+ homepage = "https://github.com/eth-p/bat-extras";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ bbigras lilyball ];
+ platforms = platforms.all;
+ };
+ };
+ script =
+ name: # the name of the script
+ dependencies: # the tools we need to prefix onto PATH
+ stdenv.mkDerivation {
+ pname = "${core.pname}-${name}";
+ inherit (core) version;
+
+ src = core;
+
+ nativeBuildInputs = [ bash makeWrapper ];
+ # Make the dependencies available to the tests.
+ buildInputs = dependencies;
+
+ # Patch shebangs now because our tests rely on them
+ postPatch = ''
+ patchShebangs --host bin/${name}
+ '';
+
+ dontConfigure = true;
+ dontBuild = true; # we've already built
+
+ doCheck = true;
+ checkPhase = ''
+ runHook preCheck
+ bash ./test.sh --compiled --suite ${name}
+ runHook postCheck
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ cp -p bin/${name} $out/bin/${name}
+ '' + stdenv.lib.optionalString (dependencies != []) ''
+ wrapProgram $out/bin/${name} \
+ --prefix PATH : ${stdenv.lib.makeBinPath dependencies}
+ '' + ''
+ runHook postInstall
+ '';
+
+ # We already patched
+ dontPatchShebangs = true;
+
+ inherit (core) meta;
+ };
+ optionalDep = cond: dep:
+ assert cond -> dep != null;
+ stdenv.lib.optional cond dep;
+in
+{
+ batdiff = script "batdiff" ([ less coreutils gitMinimal ] ++ optionalDep withDelta gitAndTools.delta);
+ batgrep = script "batgrep" [ less coreutils ripgrep ];
+ batman = script "batman" [];
+ batwatch = script "batwatch" ([ less coreutils ] ++ optionalDep withEntr entr);
+ prettybat = script "prettybat" ([]
+ ++ optionalDep withShFmt shfmt
+ ++ optionalDep withPrettier nodePackages.prettier
+ ++ optionalDep withClangTools clang-tools
+ ++ optionalDep withRustFmt rustfmt);
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bat/default.nix
new file mode 100644
index 000000000000..e5b06521d72b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bat/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, less
+, Security
+, libiconv
+, installShellFiles
+, makeWrapper
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "bat";
+ version = "0.16.0";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "161pfix42j767ziyp4mslffdd20v9i0ncplvjw2pmpccwdm106kg";
+ };
+
+ cargoSha256 = "19vhhxfyx3nrngcs6dvwldnk9h4lvs7xjkb31aj1y0pyawz882h9";
+
+ nativeBuildInputs = [ pkg-config installShellFiles makeWrapper ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security libiconv ];
+
+ # Remove after https://github.com/NixOS/nixpkgs/pull/97000 lands into master
+ preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+ unset SDKROOT
+ '';
+
+ postInstall = ''
+ installManPage $releaseDir/build/bat-*/out/assets/manual/bat.1
+ installShellCompletion $releaseDir/build/bat-*/out/assets/completions/bat.{fish,zsh}
+ '';
+
+ # Insert Nix-built `less` into PATH because the system-provided one may be too old to behave as
+ # expected with certain flag combinations.
+ postFixup = ''
+ wrapProgram "$out/bin/bat" \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ less ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A cat(1) clone with syntax highlighting and Git integration";
+ homepage = "https://github.com/sharkdp/bat";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ dywedir lilyball zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bbe/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bbe/default.nix
new file mode 100644
index 000000000000..b0af13160d21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bbe/default.nix
@@ -0,0 +1,22 @@
+{ stdenv , fetchurl, autoreconfHook }:
+stdenv.mkDerivation rec {
+ pname = "bbe";
+ version = "0.2.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bbe-/${version}/bbe-${version}.tar.gz";
+ sha256 = "1nyxdqi4425sffjrylh7gl57lrssyk4018afb7mvrnd6fmbszbms";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ outputs = [ "out" "doc" ];
+
+ meta = with stdenv.lib; {
+ description = "A sed-like editor for binary files";
+ homepage = "http://bbe-.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.hhm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bc/cross-bc.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/bc/cross-bc.patch
new file mode 100644
index 000000000000..ba8857abb581
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bc/cross-bc.patch
@@ -0,0 +1,169 @@
+commit fdda59736ddc048cf38a2c7103f4f5d9eeaf995e
+Author: Ben Gamari <ben@smart-cactus.org>
+Date: Tue Oct 17 10:51:34 2017 -0400
+
+ Try implementing cross-compilation
+
+diff --git a/bc/Makefile.am b/bc/Makefile.am
+index d9d412e..fdef633 100644
+--- a/bc/Makefile.am
++++ b/bc/Makefile.am
+@@ -17,6 +17,7 @@ MAINTAINERCLEANFILES = Makefile.in bc.c bc.h scan.c \
+
+ AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../h
+ LIBBC = ../lib/libbc.a
++LIBBC_HOST = ../lib/libbc_host.a
+ LIBL = @LEXLIB@
+ LDADD = $(LIBBC) $(LIBL) @READLINELIB@
+
+@@ -29,12 +30,20 @@ $(PROGRAMS): libmath.h $(LIBBC)
+ scan.o: bc.h
+ global.o: libmath.h
++
++main_host.c : main.c
++ cp $< $@
+
+-fbcOBJ = main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o
++fbcOBJ = $(addsuffix _host,main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o)
++
++%.o_host : CC:=$(CC_FOR_BUILD)
++
++%.o_host : %.c
++ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $<
+
+-libmath.h: libmath.b $(fbcOBJ) $(LIBBC)
++libmath.h: libmath.b $(fbcOBJ) $(LIBBC_HOST)
+ echo '{0}' > libmath.h
+- $(MAKE) global.o
+- $(LINK) -o fbc $(fbcOBJ) global.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS)
++ $(MAKE) global.o_host
++ $(CC_FOR_BUILD) -o fbc $(fbcOBJ) global.o_host $(LIBBC_HOST) $(LIBL) ${READLINELIB} $(LIBS)
+ ./fbc -c $(srcdir)/libmath.b </dev/null >libmath.h
+ $(srcdir)/fix-libmath_h
+ rm -f ./fbc ./global.o
+diff --git a/configure.ac b/configure.ac
+index fc74573..5cabb73 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,6 +20,7 @@ m4_define([dc_version], 1.4.1)
+
+ AC_INIT([bc],[bc_version])
+ AC_CONFIG_SRCDIR(doc/bc.1)
++AC_CONFIG_MACRO_DIR([m4])
+ AM_INIT_AUTOMAKE([dist-bzip2])
+ AC_CONFIG_HEADERS(config.h)
+
+@@ -35,6 +36,7 @@ AC_DEFINE([DC_COPYRIGHT],
+ [Define the dc copyright line.])
+
+ AC_PROG_CC
++AX_CC_FOR_BUILD
+ AC_USE_SYSTEM_EXTENSIONS
+
+ AM_PROG_LEX
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index ec4bf59..c670f5b 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -1,5 +1,5 @@
+ ## Process this file with automake to produce Makefile.in
+-noinst_LIBRARIES = libbc.a
++noinst_LIBRARIES = libbc.a libbc_host.a
+
+ AM_CPPFLAGS = -I. -I.. -I$(srcdir)/../h
+
+@@ -24,3 +24,11 @@ testmul: testmul.o number.o
+
+ specialnumber: newnumber.o
+ cp newnumber.o number.o
++
++%.o_host : CC:=$(CC_FOR_BUILD)
++%.o_host : %.c
++ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $<
++
++libbc_host.a : $(addsuffix _host,$(libbc_a_OBJECTS))
++ ar cru $@ $+
++ ranlib $@
+diff --git a/m4/cc_for_build.m4 b/m4/cc_for_build.m4
+new file mode 100644
+index 0000000..c62ffad
+--- /dev/null
++++ b/m4/cc_for_build.m4
+@@ -0,0 +1,77 @@
++# ===========================================================================
++# https://www.gnu.org/software/autoconf-archive/ax_cc_for_build.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++# AX_CC_FOR_BUILD
++#
++# DESCRIPTION
++#
++# Find a build-time compiler. Sets CC_FOR_BUILD and EXEEXT_FOR_BUILD.
++#
++# LICENSE
++#
++# Copyright (c) 2010 Reuben Thomas <rrt@sc3d.org>
++# Copyright (c) 1999 Richard Henderson <rth@redhat.com>
++#
++# This program is free software: you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by the
++# Free Software Foundation, either version 3 of the License, or (at your
++# option) any later version.
++#
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
++# Public License for more details.
++#
++# You should have received a copy of the GNU General Public License along
++# with this program. If not, see <https://www.gnu.org/licenses/>.
++#
++# As a special exception, the respective Autoconf Macro's copyright owner
++# gives unlimited permission to copy, distribute and modify the configure
++# scripts that are the output of Autoconf when processing the Macro. You
++# need not follow the terms of the GNU General Public License when using
++# or distributing such scripts, even though portions of the text of the
++# Macro appear in them. The GNU General Public License (GPL) does govern
++# all other use of the material that constitutes the Autoconf Macro.
++#
++# This special exception to the GPL applies to versions of the Autoconf
++# Macro released by the Autoconf Archive. When you make and distribute a
++# modified version of the Autoconf Macro, you may extend this special
++# exception to the GPL to apply to your modified version as well.
++
++#serial 3
++
++dnl Get a default for CC_FOR_BUILD to put into Makefile.
++AC_DEFUN([AX_CC_FOR_BUILD],
++[# Put a plausible default for CC_FOR_BUILD in Makefile.
++if test -z "$CC_FOR_BUILD"; then
++ if test "x$cross_compiling" = "xno"; then
++ CC_FOR_BUILD='$(CC)'
++ else
++ CC_FOR_BUILD=gcc
++ fi
++fi
++AC_SUBST(CC_FOR_BUILD)
++# Also set EXEEXT_FOR_BUILD.
++if test "x$cross_compiling" = "xno"; then
++ EXEEXT_FOR_BUILD='$(EXEEXT)'
++else
++ AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext,
++ [rm -f conftest*
++ echo 'int main () { return 0; }' > conftest.c
++ bfd_cv_build_exeext=
++ ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
++ for file in conftest.*; do
++ case $file in
++ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
++ *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
++ esac
++ done
++ rm -f conftest*
++ test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no])
++ EXEEXT_FOR_BUILD=""
++ test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
++fi
++AC_SUBST(EXEEXT_FOR_BUILD)])dnl
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bc/default.nix
new file mode 100644
index 000000000000..d065732a2991
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bc/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, autoreconfHook, buildPackages
+, fetchurl, flex, readline, ed, texinfo
+}:
+
+stdenv.mkDerivation rec {
+ name = "bc-1.07.1";
+ src = fetchurl {
+ url = "mirror://gnu/bc/${name}.tar.gz";
+ sha256 = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a";
+ };
+
+ configureFlags = [ "--with-readline" ];
+
+ # As of 1.07 cross-compilation is quite complicated as the build system wants
+ # to build a code generator, bc/fbc, on the build machine.
+ patches = [ ./cross-bc.patch ];
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ nativeBuildInputs = [
+ # Tools
+ autoreconfHook ed flex texinfo
+ # Libraries for build
+ buildPackages.readline buildPackages.ncurses
+ ];
+ buildInputs = [ readline flex ];
+
+ doCheck = true; # not cross
+
+ # Hack to make sure we never to the relaxation `$PATH` and hooks support for
+ # compatability. This will be replaced with something clearer in a future
+ # masss-rebuild.
+ strictDeps = true;
+
+ meta = {
+ description = "GNU software calculator";
+ homepage = "https://www.gnu.org/software/bc/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bcunit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bcunit/default.nix
new file mode 100644
index 000000000000..203735d79b0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bcunit/default.nix
@@ -0,0 +1,30 @@
+{ cmake
+, fetchFromGitLab
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bcunit";
+ # Latest release 3.0.2 is missing some functions needed by bctoolbox. See:
+ # https://gitlab.linphone.org/BC/public/bcunit/issues/1
+ version = "unstable-2019-11-19";
+
+ buildInputs = [ cmake ];
+ src = fetchFromGitLab {
+ domain = "gitlab.linphone.org";
+ owner = "public";
+ group = "BC";
+ repo = pname;
+ rev = "3c720fbf67dd3c02b0c7011ed4036982b2c93532";
+ sha256 = "1237hpmkls2igp60gdfkbknxpgwvxn1vmv2m41vyl25xw1d3g35w";
+ };
+
+ meta = with stdenv.lib; {
+ inherit version;
+ description = "A fork of CUnit test framework";
+ homepage = "https://gitlab.linphone.org/BC/public/bcunit";
+ license = licenses.lgpl2Plus;
+ maintainers = with maintainers; [ raskin jluttine ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
new file mode 100644
index 000000000000..966e71bb6d3b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, perl, dpkg }:
+
+stdenv.mkDerivation rec {
+ pname = "bdf2psf";
+ version = "1.196";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
+ sha256 = "042ly91525q2qj7985qih4njhjk5ndz8jiz01v860jc38bvw595p";
+ };
+
+ nativeBuildInputs = [ dpkg ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ unpackPhase = "dpkg-deb -x $src .";
+ installPhase = "
+ substituteInPlace usr/bin/bdf2psf --replace /usr/bin/perl ${perl}/bin/perl
+ mv usr $out
+ ";
+
+ meta = with stdenv.lib; {
+ description = "BDF to PSF converter";
+ homepage = "https://packages.debian.org/sid/bdf2psf";
+ longDescription = ''
+ Font converter to generate console fonts from BDF source fonts
+ '';
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ rnhmjoj vrthra ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
new file mode 100644
index 000000000000..e7a9d98aaf23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "bdf2sfd";
+ version = "1.1.3";
+
+ src = fetchFromGitHub {
+ owner = "fcambus";
+ repo = pname;
+ rev = version;
+ sha256 = "0v1kkds35qfyv1h5kxc2m7f2gsprg9c7jzpsm3p4f71qn982wry6";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "BDF to SFD converter";
+ homepage = "https://github.com/fcambus/bdf2sfd";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bepasty/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bepasty/default.nix
new file mode 100644
index 000000000000..460f20a5f5f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bepasty/default.nix
@@ -0,0 +1,60 @@
+{ python3
+, lib
+}:
+
+let
+ python = python3.override {
+ self = python;
+ packageOverrides = self: super : {
+ xstatic-bootstrap = super.xstatic-bootstrap.overridePythonAttrs(oldAttrs: rec {
+ version = "3.3.7.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "0cgihyjb9rg6r2ddpzbjm31y0901vyc8m9h3v0zrhxydx1w9x50c";
+ };
+ });
+ };
+ };
+
+#We need to use buildPythonPackage here to get the PYTHONPATH build correctly.
+#This is needed for services.bepasty
+#https://github.com/NixOS/nixpkgs/pull/38300
+in with python.pkgs; buildPythonPackage rec {
+ pname = "bepasty";
+ version = "0.5.0";
+
+ propagatedBuildInputs = [
+ flask
+ pygments
+ setuptools
+ xstatic
+ xstatic-bootbox
+ xstatic-bootstrap
+ xstatic-jquery
+ xstatic-jquery-file-upload
+ xstatic-jquery-ui
+ xstatic-pygments
+ ];
+
+ buildInputs = [ setuptools_scm ];
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1y3smw9620w2ia4zfsl2svb9j7mkfgc8z1bzjffyk1w5vryhwikh";
+ };
+
+ checkInputs = [
+ pytest
+ selenium
+ ];
+
+ # No tests in sdist
+ doCheck = false;
+
+ meta = {
+ homepage = "https://github.com/bepasty/bepasty-server";
+ description = "Binary pastebin server";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.makefu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bfr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bfr/default.nix
new file mode 100644
index 000000000000..4ec736418428
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bfr/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ name = "bfr-1.6";
+ version = "1.6";
+
+ src = fetchurl {
+ url = "http://www.sourcefiles.org/Utilities/Text_Utilities/bfr-${version}.tar.bz2";
+ sha256 = "0fadfssvj9klj4dq9wdrzys1k2a1z2j0p6kgnfgbjv0n1bq6h4cy";
+ };
+
+ patches =
+ [ (fetchurl {
+ url = "https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/bfr/files/bfr-1.6-perl.patch?revision=1.1";
+ sha256 = "1pk9jm3c1qzs727lh0bw61w3qbykaqg4jblywf9pvq5bypk88qfj";
+ })
+ ];
+
+ buildInputs = [ perl ];
+
+ meta = with stdenv.lib; {
+ description = "A general-purpose command-line pipe buffer";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bibtex2html/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bibtex2html/default.nix
new file mode 100644
index 000000000000..ddda4ef4445a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bibtex2html/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ocaml }:
+
+stdenv.mkDerivation {
+ pname = "bibtex2html";
+ version = "1.99";
+
+ src = fetchurl {
+ url = "https://www.lri.fr/~filliatr/ftp/bibtex2html/bibtex2html-1.99.tar.gz";
+ sha256 = "07gzrs4lfrkvbn48cgn2gn6c7cx3jsanakkrb2irj0gmjzfxl96j";
+ };
+
+ buildInputs = [ ocaml ];
+
+ meta = with stdenv.lib; {
+ description = "A collection of tools for translating from BibTeX to HTML";
+ homepage = "https://www.lri.fr/~filliatr/bibtex2html/";
+ license = licenses.gpl2;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = [ maintainers.scolobb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bibtool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bibtool/default.nix
new file mode 100644
index 000000000000..041dabeee775
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bibtool/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "bibtool";
+ version = "2.68";
+
+ src = fetchurl {
+ url = "http://www.gerd-neugebauer.de/software/TeX/BibTool/BibTool-${version}.tar.gz";
+ sha256 = "1ymq901ckaysq2n1bplk1064rb2njq9n30pii15w157y0lxcwd3i";
+ };
+
+ # Perl for running test suite.
+ buildInputs = [ perl ];
+
+ installTargets = [ "install" "install.man" ];
+
+ doCheck = true;
+ checkTarget = "test";
+
+ meta = with stdenv.lib; {
+ description = "Tool for manipulating BibTeX bibliographies";
+ homepage = "http://www.gerd-neugebauer.de/software/TeX/BibTool/index.en.html";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bibutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bibutils/default.nix
new file mode 100644
index 000000000000..bd744bcfb6fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bibutils/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "bibutils";
+ version = "6.10";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bibutils/bibutils_${version}_src.tgz";
+ sha256 = "15p4av74ihsg03j854dkdqihpspwnp58p9g1lhx48w8kz91c0ml6";
+ };
+
+ configureFlags = [ "--dynamic" "--install-dir" "$(out)/bin" "--install-lib" "$(out)/lib" ];
+ dontAddPrefix = true;
+
+ doCheck = true;
+ checkTarget = "test";
+
+ meta = with stdenv.lib; {
+ description = "Bibliography format interconversion";
+ longDescription = "The bibutils program set interconverts between various bibliography formats using a common MODS-format XML intermediate. For example, one can convert RIS-format files to Bibtex by doing two transformations: RIS->MODS->Bibtex. By using a common intermediate for N formats, only 2N programs are required and not N²-N. These programs operate on the command line and are styled after standard UNIX-like filters.";
+ homepage = "https://sourceforge.net/p/bibutils/home/Bibutils/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.garrison ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/default.nix
new file mode 100644
index 000000000000..7cec0cab996e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, python3, xmlbird,
+cairo, gdk-pixbuf, libgee, glib, gtk3, webkitgtk, libnotify, sqlite, vala_0_44,
+gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "birdfont";
+ version = "2.29.0";
+
+ src = fetchurl {
+ url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
+ sha256 = "18z3qbrsbfpn00c4xq3ck1mnmvrnqgl9g1s7m4dgc1871fi6sv8w";
+ };
+
+ nativeBuildInputs = [ python3 pkgconfig vala_0_44 gobject-introspection wrapGAppsHook ];
+ buildInputs = [ xmlbird libgee cairo gdk-pixbuf glib gtk3 webkitgtk libnotify sqlite gsettings-desktop-schemas ];
+
+ postPatch = ''
+ substituteInPlace install.py \
+ --replace 'platform.version()' '"Nix"'
+
+ patchShebangs .
+ '';
+
+ buildPhase = "./build.py";
+
+ installPhase = "./install.py";
+
+ meta = with stdenv.lib; {
+ description = "Font editor which can generate fonts in TTF, EOT, SVG and BIRDFONT format";
+ homepage = "https://birdfont.org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix
new file mode 100644
index 000000000000..eddcba1c9c89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, python3, pkgconfig, vala, glib, gobject-introspection }:
+
+stdenv.mkDerivation rec {
+ pname = "xmlbird";
+ version = "1.2.11";
+
+ src = fetchurl {
+ url = "https://birdfont.org/${pname}-releases/lib${pname}-${version}.tar.xz";
+ sha256 = "1ycbgjvywnlc0garw8qjqd18s0xnrwjvssdrb410yschv3wjq1i0";
+ };
+
+ nativeBuildInputs = [ python3 pkgconfig vala gobject-introspection ];
+
+ buildInputs = [ glib ];
+
+ postPatch = ''
+ substituteInPlace configure \
+ --replace 'platform.dist()[0]' '"nix"'
+ patchShebangs .
+ '';
+
+ buildPhase = "./build.py";
+
+ installPhase = "./install.py";
+
+ meta = with stdenv.lib; {
+ description = "XML parser for Vala and C programs";
+ homepage = "https://birdfont.org/xmlbird.php";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix
new file mode 100644
index 000000000000..5bf38f1b0e7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, libusb1, pkgconfig, ... }:
+
+stdenv.mkDerivation rec {
+ pname = "blink1";
+ version = "1.98a";
+
+ src = fetchurl {
+ url = "https://github.com/todbot/blink1/archive/v${version}.tar.gz";
+ sha256 = "1waci6hccv5i50v5d3z7lx4h224fbkj66ywfynnsgn46w0jm6imv";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libusb1 ];
+
+ configurePhase = ''
+ cd commandline
+ '';
+
+ installPhase = ''
+ PREFIX=$out make install
+ '';
+
+ meta = {
+ description = "Command line client for the blink(1) notification light";
+ homepage = "https://blink1.thingm.com/";
+ license = stdenv.lib.licenses.cc-by-sa-30;
+ maintainers = [ stdenv.lib.maintainers.cransom ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
new file mode 100644
index 000000000000..afb41d8b6ea9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "bmap-tools";
+ version = "3.4";
+
+ src = fetchFromGitHub {
+ owner = "intel";
+ repo = "bmap-tools";
+ rev = "v${version}";
+ sha256 = "0p0pdwvyf9b4czi1pnhclm1ih8kw78nk2sj4if5hwi7s5423wk5q";
+ };
+
+ # tests fail only on hydra.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "bmap-related tools";
+ homepage = "https://github.com/intel/bmap-tools";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bmon/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bmon/default.nix
new file mode 100644
index 000000000000..a98b2075ada6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bmon/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, ncurses, libconfuse
+, libnl }:
+
+stdenv.mkDerivation rec {
+ pname = "bmon";
+ version = "4.0";
+
+ src = fetchFromGitHub {
+ owner = "tgraf";
+ repo = "bmon";
+ rev = "v${version}";
+ sha256 = "1ilba872c09mnlvylslv4hqv6c9cz36l76q74rr99jvis1dg69gf";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ ncurses libconfuse libnl ];
+
+ preConfigure = ''
+ # Must be an absolute path
+ export PKG_CONFIG="$(command -v "$PKG_CONFIG")"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Network bandwidth monitor";
+ homepage = "https://github.com/tgraf/bmon";
+ # Licensed unter BSD and MIT
+ # - https://github.com/tgraf/bmon/blob/master/LICENSE.BSD
+ # - https://github.com/tgraf/bmon/blob/master/LICENSE.MIT
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bjornfor pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bogofilter/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bogofilter/default.nix
new file mode 100644
index 000000000000..1924968f2d35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bogofilter/default.nix
@@ -0,0 +1,29 @@
+{fetchurl, stdenv, flex, db}:
+
+stdenv.mkDerivation rec {
+ name = "bogofilter-1.2.4";
+ src = fetchurl {
+ url = "mirror://sourceforge/bogofilter/${name}.tar.bz2";
+ sha256 = "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1";
+ };
+
+ # FIXME: We would need `pax' as a "propagated build input" (for use
+ # by the `bf_tar' script) but we don't have it currently.
+
+ buildInputs = [ flex db ];
+
+ doCheck = false; # needs "y" tool
+
+ meta = {
+ homepage = "http://bogofilter.sourceforge.net/";
+ longDescription = ''
+ Bogofilter is a mail filter that classifies mail as spam or ham
+ (non-spam) by a statistical analysis of the message's header and
+ content (body). The program is able to learn from the user's
+ classifications and corrections. It is based on a Bayesian
+ filter.
+ '';
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/bonfire/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/bonfire/default.nix
new file mode 100644
index 000000000000..85d54c167360
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/bonfire/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "bonfire";
+ version = "unstable-2017-01-19";
+
+ # use latest git version with --endpoint flag
+ # https://github.com/blue-yonder/bonfire/pull/18
+ src = fetchFromGitHub {
+ owner = "blue-yonder";
+ repo = pname;
+ rev = "d0af9ca10394f366cfa3c60f0741f1f0918011c2";
+ sha256 = "193zcvzbhxwwkwbgmnlihhhazwkajycxf4r71jz1m12w301sjhq5";
+ };
+
+ postPatch = ''
+ # https://github.com/blue-yonder/bonfire/pull/24
+ substituteInPlace requirements.txt \
+ --replace "arrow>=0.5.4,<0.8" "arrow>=0.5.4" \
+ --replace "keyring>=9,<10" "keyring>=9" \
+ --replace "click>=3.3,<7" "click>=3.3"
+ # pip fails when encountering the git hash for the package version
+ substituteInPlace setup.py \
+ --replace "version=version," "version='${version}',"
+ # remove extraneous files
+ substituteInPlace setup.cfg \
+ --replace "data_files = *.rst, *.txt" ""
+ '';
+
+ buildInputs = [ httpretty pytest pytestcov ];
+
+ preCheck = ''
+ # fix compatibility with pytest 4
+ substituteInPlace setup.cfg --replace "[pytest]" "[tool:pytest]"
+ '';
+
+ propagatedBuildInputs = [ arrow click keyring parsedatetime requests six termcolor ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://pypi.python.org/pypi/bonfire";
+ description = "CLI Graylog Client with Follow Mode";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.womfoo ];
+ platforms = platforms.linux;
+ broken = true; # no longer compatible with new arrow package
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/brltty/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/brltty/default.nix
new file mode 100644
index 000000000000..1320f28ede24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/brltty/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, pkgconfig, python3, bluez
+, alsaSupport ? stdenv.isLinux, alsaLib ? null
+, systemdSupport ? stdenv.isLinux, systemd ? null }:
+
+assert alsaSupport -> alsaLib != null;
+assert systemdSupport -> systemd != null;
+
+stdenv.mkDerivation rec {
+ name = "brltty-6.1";
+
+ src = fetchurl {
+ url = "http://brltty.com/archive/${name}.tar.gz";
+ sha256 = "0nk54chr7z2w579vyiak9xk2avhnvrx7x2l5sk8nyw2zplchkx9q";
+ };
+
+ nativeBuildInputs = [ pkgconfig python3.pkgs.cython ];
+ buildInputs = [ bluez ]
+ ++ stdenv.lib.optional alsaSupport alsaLib
+ ++ stdenv.lib.optional systemdSupport systemd;
+
+ meta = {
+ description = "Access software for a blind person using a braille display";
+ longDescription = ''
+ BRLTTY is a background process (daemon) which provides access to the Linux/Unix
+ console (when in text mode) for a blind person using a refreshable braille display.
+ It drives the braille display, and provides complete screen review functionality.
+ Some speech capability has also been incorporated.
+ '';
+ homepage = "http://www.brltty.com/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.bramd ];
+ platforms = stdenv.lib.platforms.all;
+ };
+
+ makeFlags = [ "PYTHON_PREFIX=$(out)" ];
+
+ preConfigurePhases = [ "preConfigure" ];
+
+ preConfigure = ''
+ substituteInPlace configure --replace /sbin/ldconfig ldconfig
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix
new file mode 100644
index 000000000000..c40ccad5e396
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, python2Packages, fetchFromGitHub }:
+
+python2Packages.buildPythonApplication {
+ pname = "broadlink-cli";
+ inherit (python2Packages.broadlink) version;
+
+ # the tools are available as part of the source distribution from GH but
+ # not pypi, so we have to fetch them here.
+ src = fetchFromGitHub {
+ owner = "mjg59";
+ repo = "python-broadlink";
+ # this rev is version 0.9
+ rev = "766b7b00fb1cec868e3d5fca66f1aada208959ce";
+ sha256 = "0j0idzxmpwkb1lbgvi9df2hbxafm5hxjc6mgg5481lq7z4z1r4nb";
+ };
+
+ format = "other";
+
+ propagatedBuildInputs = with python2Packages; [
+ broadlink
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin cli/broadlink_{cli,discovery}
+ install -Dm644 -t $out/share/doc/broadlink cli/README.md
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tools for interfacing with Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs";
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (python2Packages.broadlink.meta) homepage license;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/broot/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/broot/default.nix
new file mode 100644
index 000000000000..fb0868016d7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -0,0 +1,79 @@
+{ stdenv
+, rustPlatform
+, fetchCrate
+, installShellFiles
+, makeWrapper
+, coreutils
+, libiconv
+, xcbuild
+, zlib
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "broot";
+ version = "1.0.3";
+
+ src = fetchCrate {
+ inherit pname version;
+ sha256 = "046yg270hnwzhap2rraihywpqjq5s3qxmyfcvfgfayz25216jmvc";
+ };
+
+ cargoSha256 = "02l6cdfx2sglygsdgnm474vmpbmpm2a1s6srd9cy66k6hjm1m0bn";
+
+ nativeBuildInputs = [
+ makeWrapper
+ installShellFiles
+ xcbuild # The cc crate attempts to run xcbuild.
+ ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+ libiconv
+ Security
+ zlib
+ ];
+
+ postPatch = ''
+ substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
+
+ # Fill the version stub in the man page. We can't fill the date
+ # stub reproducibly.
+ substitute man/page man/broot.1 \
+ --replace "#version" "${version}"
+ '';
+
+ postInstall = ''
+ # Do not nag users about installing shell integration, since
+ # it is impure.
+ wrapProgram $out/bin/broot \
+ --set BR_INSTALL no
+
+ # Install shell function for bash.
+ $out/bin/broot --print-shell-function bash > br.bash
+ install -Dm0444 -t $out/etc/profile.d br.bash
+
+ # Install shell function for zsh.
+ $out/bin/broot --print-shell-function zsh > br.zsh
+ install -Dm0444 br.zsh $out/share/zsh/site-functions/br
+
+ # Install shell function for fish
+ $out/bin/broot --print-shell-function fish > br.fish
+ install -Dm0444 -t $out/share/fish/vendor_functions.d br.fish
+
+ # install shell completion files
+ OUT_DIR=$releaseDir/build/broot-*/out
+
+ installShellCompletion --bash $OUT_DIR/{br,broot}.bash
+ installShellCompletion --fish $OUT_DIR/{br,broot}.fish
+ installShellCompletion --zsh $OUT_DIR/{_br,_broot}
+
+ installManPage man/broot.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
+ homepage = "https://dystroy.org/broot/";
+ maintainers = with maintainers; [ danieldk ];
+ license = with licenses; [ mit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/brotab/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/brotab/default.nix
new file mode 100644
index 000000000000..c7a5642050ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/brotab/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, glibcLocales, python }:
+
+python.pkgs.buildPythonApplication rec {
+ version = "1.3.0";
+ pname = "brotab";
+
+ src = fetchFromGitHub {
+ owner = "balta2ar";
+ repo = pname;
+ rev = version;
+ sha256 = "1ja9qaf3rxm0chgzs5mpw973h7ibb454k9mbfbb2gl12gr9zllyw";
+ };
+
+ propagatedBuildInputs = with python.pkgs; [
+ requests
+ flask
+ psutil
+ setuptools
+ ];
+
+ checkBuildInputs = with python.pkgs; [
+ pytest
+ ];
+
+ # test_integration.py requires Chrome browser session
+ checkPhase = ''
+ ${python.interpreter} -m unittest brotab/tests/test_{brotab,utils}.py
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/balta2ar/brotab";
+ description = "Control your browser's tabs from the command line";
+ license = licenses.mit;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/buildtorrent/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/buildtorrent/default.nix
new file mode 100644
index 000000000000..150371f82b6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/buildtorrent/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+let version = "0.8"; in
+
+stdenv.mkDerivation rec {
+ pname = "buildtorrent";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://mathr.co.uk/blog/code/${pname}-${version}.tar.gz";
+ sha256 = "e8e27647bdb38873ac570d46c1a9689a92b01bb67f59089d1cdd08784f7052d0";
+ };
+
+ meta = {
+ description = "A simple commandline torrent creator";
+ homepage = "http://mathr.co.uk/blog/torrent.html";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix
new file mode 100644
index 000000000000..ad17c5edd6ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/byobu/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, python3, perl, textual-window-manager }:
+
+stdenv.mkDerivation rec {
+ version = "5.133";
+ name = "byobu-" + version;
+
+ src = fetchurl {
+ url = "https://launchpad.net/byobu/trunk/${version}/+download/byobu_${version}.orig.tar.gz";
+ sha256 = "0qvmmdnvwqbgbhn5c8asmrmjhclcl029py2d2zvmd7h5ij7s93jd";
+ };
+
+ doCheck = true;
+
+ buildInputs = [ python3 perl ];
+ propagatedBuildInputs = [ textual-window-manager ];
+
+ meta = {
+ homepage = "https://launchpad.net/byobu/";
+ description = "Text-based window manager and terminal multiplexer";
+
+ longDescription =
+ ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer.
+ It was originally designed to provide elegant enhancements to the otherwise functional,
+ plain, practical GNU Screen, for the Ubuntu server distribution.
+ Byobu now includes an enhanced profiles, convenient keybindings,
+ configuration utilities, and toggle-able system status notifications for both
+ the GNU Screen window manager and the more modern Tmux terminal multiplexer,
+ and works on most Linux, BSD, and Mac distributions.
+ '';
+
+ license = stdenv.lib.licenses.gpl3;
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.qknight ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/calamares/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/calamares/default.nix
new file mode 100644
index 000000000000..8f365d023d2c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/calamares/default.nix
@@ -0,0 +1,63 @@
+{ lib, fetchurl, boost, cmake, extra-cmake-modules, kparts, kpmcore
+, kservice, libatasmart, libxcb, libyamlcpp, parted, polkit-qt, python, qtbase
+, qtquickcontrols, qtsvg, qttools, qtwebengine, utillinux, glibc, tzdata
+, ckbcomp, xkeyboard_config, mkDerivation
+}:
+
+mkDerivation rec {
+ pname = "calamares";
+ version = "3.2.17.1";
+
+ # release including submodule
+ src = fetchurl {
+ url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "156zpjyw8w4y23aa60mvg3d3mr0kzfq5jkl7ixgahq33zpc17ms8";
+ };
+
+ buildInputs = [
+ boost cmake extra-cmake-modules kparts.dev kpmcore.out kservice.dev
+ libatasmart libxcb libyamlcpp parted polkit-qt python qtbase
+ qtquickcontrols qtsvg qttools qtwebengine.dev utillinux
+ ];
+
+ enableParallelBuilding = false;
+
+ cmakeFlags = [
+ "-DPYTHON_LIBRARY=${python}/lib/lib${python.libPrefix}.so"
+ "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
+ "-DCMAKE_VERBOSE_MAKEFILE=True"
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DWITH_PYTHONQT:BOOL=ON"
+ ];
+
+ POLKITQT-1_POLICY_FILES_INSTALL_DIR = "$(out)/share/polkit-1/actions";
+
+ patchPhase = ''
+ sed -e "s,/usr/bin/calamares,$out/bin/calamares," \
+ -i calamares.desktop \
+ -i com.github.calamares.calamares.policy
+
+ sed -e 's,/usr/share/zoneinfo,${tzdata}/share/zoneinfo,' \
+ -i src/modules/locale/timezonewidget/localeconst.h \
+ -i src/modules/locale/SetTimezoneJob.cpp
+
+ sed -e 's,/usr/share/i18n/locales,${glibc.out}/share/i18n/locales,' \
+ -i src/modules/locale/timezonewidget/localeconst.h
+
+ sed -e 's,/usr/share/X11/xkb/rules/base.lst,${xkeyboard_config}/share/X11/xkb/rules/base.lst,' \
+ -i src/modules/keyboard/keyboardwidget/keyboardglobal.h
+
+ sed -e 's,"ckbcomp","${ckbcomp}/bin/ckbcomp",' \
+ -i src/modules/keyboard/keyboardwidget/keyboardpreview.cpp
+
+ sed "s,\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR},''${out}/share/polkit-1/actions," \
+ -i CMakeLists.txt
+ '';
+
+ meta = with lib; {
+ description = "Distribution-independent installer framework";
+ license = licenses.gpl3;
+ maintainers = with lib.maintainers; [ manveru ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/capture/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/capture/default.nix
new file mode 100644
index 000000000000..e92898ccc4d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/capture/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, slop, ffmpeg_3, fetchFromGitHub, makeWrapper}:
+
+stdenv.mkDerivation {
+ pname = "capture-unstable";
+ version = "2019-03-10";
+
+ src = fetchFromGitHub {
+ owner = "buhman";
+ repo = "capture";
+ rev = "80dd9e7195aad5c132badef610f19509f3935b24";
+ sha256 = "0zyyg4mvrny7cc2xgvfip97b6yc75ka5ni39rwls93971jbk83d6";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -Dm755 src/capture.sh $out/bin/capture
+
+ patchShebangs $out/bin/capture
+ wrapProgram $out/bin/capture \
+ --prefix PATH : '${stdenv.lib.makeBinPath [ slop ffmpeg_3 ]}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A no bullshit screen capture tool";
+ homepage = "https://github.com/buhman/capture";
+ maintainers = [ maintainers.ar1a ];
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/catimg/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/catimg/default.nix
new file mode 100644
index 000000000000..30845759a28e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/catimg/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake } :
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "catimg";
+ version = "2.7.0";
+
+ src = fetchFromGitHub {
+ owner = "posva";
+ repo = pname;
+ rev = version;
+ sha256 = "0a2dswbv4xddb2l2d55hc43lzvjwrjs5z9am7v6i0p0mi2fmc89s";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = {
+ license = licenses.mit;
+ homepage = "https://github.com/posva/catimg";
+ description = "Insanely fast image printing in your terminal";
+ maintainers = with maintainers; [ ryantm ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ccze/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ccze/default.nix
new file mode 100644
index 000000000000..409297de9f75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ccze/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, autoconf, ncurses, pcre }:
+
+stdenv.mkDerivation rec {
+ name = "ccze-0.2.1-2";
+
+ src = fetchurl {
+ url = "https://github.com/madhouse/ccze/archive/${name}.tar.gz";
+ sha256 = "1amavfvyls4v0gnikk43n2rpciaspxifgrmvi99qj6imv3mfg66n";
+ };
+
+ buildInputs = [ autoconf ncurses pcre ];
+
+ preConfigure = '' autoheader && autoconf '';
+
+ meta = with stdenv.lib; {
+ description = "Fast, modular log colorizer";
+ longDescription = ''
+ Fast log colorizer written in C, intended to be a drop-in replacement
+ for the Perl colorize tool. Includes plugins for a variety of log
+ formats (Apache, Postfix, Procmail, etc.).
+ '';
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ malyn ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/default.nix
new file mode 100644
index 000000000000..5ed477c93a2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, which, libxslt, libxml2, docbook_xml_dtd_412, docbook_xsl, glib, imagemagick, darwin }:
+
+
+stdenv.mkDerivation rec {
+ version = "1.4.1";
+ pname = "chafa";
+
+ src = fetchFromGitHub {
+ owner = "hpjansson";
+ repo = "chafa";
+ rev = version;
+ sha256 = "13vv2xmfh0dr949bh75448lidvzwxks6f1mjawdg1q8qwzxhzry4";
+ };
+
+ nativeBuildInputs = [ autoconf
+ automake
+ libtool
+ pkgconfig
+ which
+ libxslt
+ libxml2
+ docbook_xml_dtd_412
+ docbook_xsl
+ ];
+
+ buildInputs = [ glib imagemagick ] ++ stdenv.lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices ];
+
+ patches = [ ./xmlcatalog_patch.patch ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ configureFlags = [ "--enable-man"
+ "--with-xml-catalog=${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Terminal graphics for the 21st century";
+ homepage = "https://hpjansson.org/chafa/";
+ license = licenses.lgpl3Plus;
+ platforms = platforms.all;
+ maintainers = [ maintainers.mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/xmlcatalog_patch.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/xmlcatalog_patch.patch
new file mode 100644
index 000000000000..6bf988d6117f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/chafa/xmlcatalog_patch.patch
@@ -0,0 +1,23 @@
+diff --git a/configure.ac b/configure.ac
+index 0055a70..fd4a905 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -111,18 +111,6 @@ AS_IF([ test "$enable_man" != no ], [
+ ])
+ ])
+
+-AS_IF([test "$enable_man" != no], [
+- dnl check for DocBook XSL stylesheets in the local catalog
+- JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
+- [DocBook XSL Stylesheets], [have_docbook_style=yes],[have_docbook_style=no])
+- AS_IF([ test "$have_docbook_style" != yes ], [
+- AS_IF([ test "$enable_man" = yes ], [
+- AC_MSG_ERROR([DocBook XSL Stylesheets are required for --enable-man])
+- ])
+- enable_man=no
+- ])
+-])
+-
+ AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
+
+ AC_MSG_CHECKING([whether to generate man pages])
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/chelf/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/chelf/default.nix
new file mode 100644
index 000000000000..96949dd5da57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/chelf/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "chelf";
+ version = "0.2.2";
+
+ src = fetchFromGitHub {
+ owner = "Gottox";
+ repo = "chelf";
+ rev = "v${version}";
+ sha256 = "0xwd84aynyqsi2kcndbff176vmhrak3jmn3lfcwya59653pppjr6";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv chelf $out/bin/chelf
+ '';
+
+ meta = with stdenv.lib; {
+ description = "change or display the stack size of an ELF binary";
+ homepage = "https://github.com/Gottox/chelf";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
new file mode 100644
index 000000000000..d7b7646afec3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "chezmoi";
+ version = "1.8.5";
+
+ src = fetchFromGitHub {
+ owner = "twpayne";
+ repo = "chezmoi";
+ rev = "v${version}";
+ sha256 = "16sv1kbd66rllnnl851y3x54wkl0p7g0qsblprvfr9715svk1835";
+ };
+
+ vendorSha256 = "1i9d672mzmb97s26n0v01m70g4viyl9pdk25haxr6ny4rab2wbi7";
+
+ doCheck = false;
+
+ buildFlagsArray = [
+ "-ldflags=-s -w -X main.version=${version} -X main.builtBy=nixpkgs"
+ ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installShellCompletion --bash --name chezmoi.bash completions/chezmoi-completion.bash
+ installShellCompletion --fish completions/chezmoi.fish
+ installShellCompletion --zsh completions/chezmoi.zsh
+ '';
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.chezmoi.io/";
+ description = "Manage your dotfiles across multiple machines, securely";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jhillyerd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/chrome-export/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/chrome-export/default.nix
new file mode 100644
index 000000000000..8639f6f6f794
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/chrome-export/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub
+, python3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "chrome-export";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "bdesham";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0p1914wfjggjavw7a0dh2nb7z97z3wrkwrpwxkdc2pj5w5lv405m";
+ };
+
+ buildInputs = [ python3 ];
+
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/bin
+ cp export-chrome-bookmarks export-chrome-history $out/bin
+ mkdir -p $out/share/man/man1
+ cp man_pages/*.1 $out/share/man/man1
+ '';
+ doInstallCheck = true;
+ installCheckPhase = ''
+ bash test/run_tests $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Scripts to save Google Chrome's bookmarks and history as HTML bookmarks files";
+ homepage = "https://github.com/bdesham/chrome-export";
+ license = [ licenses.isc ];
+ maintainers = [ maintainers.bdesham ];
+ platforms = python3.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cht.sh/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
new file mode 100644
index 000000000000..1c38e7c3b8f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, curl
+, ncurses
+, rlwrap
+, xsel
+}:
+
+stdenv.mkDerivation {
+ pname = "cht.sh";
+ version = "unstable-2020-08-06";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ src = fetchFromGitHub {
+ owner = "chubin";
+ repo = "cheat.sh";
+ rev = "9f99bec1f0293e84d6d8a990a1940c1422e3b0ce";
+ sha256 = "1n4lgzsgg4502zh113d7pb1hw6bykqx6vpfp8j08z7y5clmdiwa6";
+ };
+
+ # Fix ".cht.sh-wrapped" in the help message
+ postPatch = "substituteInPlace share/cht.sh.txt --replace '\${0##*/}' cht.sh";
+
+ installPhase = ''
+ install -m755 -D share/cht.sh.txt "$out/bin/cht.sh"
+
+ # install shell completion files
+ mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
+ mv share/bash_completion.txt $out/share/bash-completion/completions/cht.sh
+ cp share/zsh.txt $out/share/zsh/site-functions/_cht
+
+ wrapProgram "$out/bin/cht.sh" \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ curl rlwrap ncurses xsel ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CLI client for cheat.sh, a community driven cheat sheet";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fgaz evanjs ];
+ homepage = "https://github.com/chubin/cheat.sh";
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/default.nix
new file mode 100644
index 000000000000..8189a07c214b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, mkDerivation, fetchFromGitHub, substituteAll, udev
+, pkgconfig, qtbase, cmake, zlib, kmod }:
+
+mkDerivation rec {
+ version = "0.4.2";
+ pname = "ckb-next";
+
+ src = fetchFromGitHub {
+ owner = "ckb-next";
+ repo = "ckb-next";
+ rev = "v${version}";
+ sha256 = "1mkx1psw5xnpscdfik1kpzsnfhhkn3571i7acr9gxyjr27sckplc";
+ };
+
+ buildInputs = [
+ udev
+ qtbase
+ zlib
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ cmake
+ ];
+
+ cmakeFlags = [
+ "-DINSTALL_DIR_ANIMATIONS=libexec"
+ "-DUDEV_RULE_DIRECTORY=lib/udev/rules.d"
+ "-DFORCE_INIT_SYSTEM=systemd"
+ "-DDISABLE_UPDATER=1"
+ ];
+
+ patches = [
+ ./install-dirs.patch
+ (substituteAll {
+ name = "ckb-next-modprobe.patch";
+ src = ./modprobe.patch;
+ inherit kmod;
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Driver and configuration tool for Corsair keyboards and mice";
+ homepage = "https://github.com/ckb-next/ckb-next";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kierdavis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/install-dirs.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/install-dirs.patch
new file mode 100644
index 000000000000..0f113d71aa3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/install-dirs.patch
@@ -0,0 +1,13 @@
+diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
+index 2fc10a8..22dbd14 100644
+--- a/src/daemon/CMakeLists.txt
++++ b/src/daemon/CMakeLists.txt
+@@ -421,7 +421,7 @@ if ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "launchd")
+ elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "systemd")
+ install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.service"
+- DESTINATION "/usr/lib/systemd/system"
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
+ PERMISSIONS
+ OWNER_READ OWNER_WRITE
+ GROUP_READ
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/modprobe.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/modprobe.patch
new file mode 100644
index 000000000000..a2cbe262e89f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ckb-next/modprobe.patch
@@ -0,0 +1,26 @@
+diff --git a/src/daemon/input_linux.c b/src/daemon/input_linux.c
+index 8489f5b..b851419 100644
+--- a/src/daemon/input_linux.c
++++ b/src/daemon/input_linux.c
+@@ -63,7 +63,7 @@ int os_inputopen(usbdevice* kb){
+
+ // If not available, load the module
+ if(fd < 0){
+- if(system("modprobe uinput") != 0) {
++ if(system("@kmod@/bin/modprobe uinput") != 0) {
+ ckb_fatal("Failed to load uinput module\n");
+ return 1;
+ }
+diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
+index 1eb95bd..f7d38ba 100644
+--- a/src/gui/mainwindow.cpp
++++ b/src/gui/mainwindow.cpp
+@@ -284,7 +284,7 @@ void MainWindow::updateVersion(){
+ #elif defined(Q_OS_LINUX)
+ if(!(QFileInfo("/dev/uinput").exists() || QFileInfo("/dev/input/uinput").exists())){
+ QProcess modprobe;
+- modprobe.start("modprobe", QStringList("uinput"));
++ modprobe.start("@kmod@/bin/modprobe", QStringList("uinput"));
+
+ if(!modprobe.waitForFinished())
+ qDebug() << "Modprobe error";
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clac/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clac/default.nix
new file mode 100644
index 000000000000..8aea37ebddff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clac/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ pname = "clac";
+ version = "0.0.0.20170503";
+
+ src = fetchFromGitHub {
+ owner = "soveran";
+ repo = "clac";
+ rev = "e92bd5cbab0d694cef945e3478820c9505e06f04";
+ sha256 = "0j8p1npgq32s377c9lw959h5i2csq4yb27cvg7av17bji46816bv";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ mkdir -p "$out/share/doc/${pname}"
+ cp README* LICENSE "$out/share/doc/${pname}"
+ '';
+
+ meta = {
+ inherit version;
+ description = "Interactive stack-based calculator";
+ license = stdenv.lib.licenses.bsd2;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.unix;
+ homepage = "https://github.com/soveran/clac";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clasp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clasp/default.nix
new file mode 100644
index 000000000000..2748c0126cde
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clasp/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl }:
+
+let
+ version = "3.1.4";
+in
+
+stdenv.mkDerivation {
+ pname = "clasp";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/potassco/clasp/${version}/clasp-${version}-source.tar.gz";
+ sha256 = "1zkjqc4gp4n9p2kf3k3z8x82g42any4p3shhhivny89z1jlxi9zn";
+ };
+
+ preConfigure = "patchShebangs ./configure.sh";
+ configureScript = "./configure.sh";
+
+ preBuild = "cd build/release";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/clasp $out/bin/clasp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Answer set solver for (extended) normal and disjunctive logic programs";
+ homepage = "http://potassco.sourceforge.net/";
+ platforms = platforms.all;
+ maintainers = [ maintainers.hakuch ];
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/claws/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/claws/default.nix
new file mode 100644
index 000000000000..10347e6e794d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/claws/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "claws";
+ version = "0.3.2";
+
+ goPackagePath = "github.com/thehowl/${pname}";
+
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "thehowl";
+ repo = pname;
+ sha256 = "0nl7xvdivnabqr98mh3m1pwqznprsaqpagny6zcwwmz480x4pmfz";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/thehowl/claws";
+ description = "Interactive command line client for testing websocket servers";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ petabyteboy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clex/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clex/default.nix
new file mode 100644
index 000000000000..7a6a78af59a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clex/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "clex";
+ version = "4.6.patch9";
+
+ src = fetchurl {
+ sha256 = "1qj5yp8k90wag5sb3zrm2pn90qqx3zbrgf2gqpqpdqmlgffnv1jc";
+ url = "${meta.homepage}/download/${pname}-${version}.tar.gz";
+ };
+
+ buildInputs = [ ncurses ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "File manager with full-screen terminal interface";
+ longDescription = ''
+ CLEX (pronounced KLEKS) displays directory contents including the file
+ status details and provides features like command history, filename
+ insertion, or name completion in order to help users to create commands
+ to be executed by the shell. There are no built-in commands, CLEX is an
+ add-on to your favorite shell.
+ '';
+ homepage = "http://www.clex.sk";
+ license = licenses.gpl2Plus;
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clipman/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clipman/default.nix
new file mode 100644
index 000000000000..80a0afe68d36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clipman/default.nix
@@ -0,0 +1,32 @@
+{ buildGoModule, fetchFromGitHub, lib, wl-clipboard, makeWrapper }:
+
+buildGoModule rec {
+ pname = "clipman";
+ version = "1.5.2";
+
+ src = fetchFromGitHub {
+ owner = "yory8";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1lf5fbzplyc1mpdqgfwbrn8m5568vhjf48580fvvfgbhz6zcil8n";
+ };
+
+ vendorSha256 = "18jw4z0lcrh00yjr3qdkgvlrpfwqbsm0ncz7fp1h72pzkh41byv7";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ wrapProgram $out/bin/clipman \
+ --prefix PATH : ${lib.makeBinPath [ wl-clipboard ]}
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/yory8/clipman";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ma27 ];
+ description = "A simple clipboard manager for Wayland";
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clipnotify/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clipnotify/default.nix
new file mode 100644
index 000000000000..91c428def280
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clipnotify/default.nix
@@ -0,0 +1,26 @@
+{ libX11, libXfixes, stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ pname = "clipnotify";
+ version = "git-2018-02-20";
+
+ src = fetchFromGitHub {
+ owner = "cdown";
+ repo = "clipnotify";
+ rev = "9cb223fbe494c5b71678a9eae704c21a97e3bddd";
+ sha256 = "1x9avjq0fgw0svcbw6b6873qnsqxbacls9sipmcv86xia4bxh8dn";
+ };
+
+ buildInputs = [ libX11 libXfixes ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp clipnotify $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Notify on new X clipboard events";
+ inherit (src.meta) homepage;
+ maintainers = with maintainers; [ jb55 ];
+ license = licenses.publicDomain;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clipster/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clipster/default.nix
new file mode 100644
index 000000000000..bb14830bf063
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clipster/default.nix
@@ -0,0 +1,50 @@
+{fetchFromGitHub , stdenv, python3, gtk3, libwnck3,
+ gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "clipster";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "mrichar1";
+ repo = "clipster";
+ rev = version;
+ sha256 = "0582r8840dk4k4jj1zq6kmyh7z9drcng099bj7f4wvr468nb9z1p";
+ };
+
+ pythonEnv = python3.withPackages(ps: with ps; [ pygobject3 ]);
+
+ buildInputs = [ pythonEnv gtk3 libwnck3 gobject-introspection wrapGAppsHook ];
+
+ installPhase = ''
+ sed -i 's/python/python3/g' clipster
+ mkdir -p $out/bin/
+ cp clipster $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "lightweight python clipboard manager";
+ longDescription = ''
+ Clipster was designed to try to add a good selection of useful features, while avoiding bad design decisions or becoming excessively large.
+ Its feature list includes:
+ - Event driven, rather than polling. More efficient, helps with power management.
+ - Control over when it write to disk, for similar reasons.
+ - Command-line options/config for everything.
+ - No global keybindings - that's the job of a Window Manager
+ - Sensible handling of unusual clipboard events. Some apps (Chrome, Emacs) trigger a clipboard 'update event' for every character you select, rather than just one event when you stop selecting.
+ - Preserves the last item in clipboard after an application closes. (Many apps clear the clipboard on exit).
+ - Minimal dependencies, no complicated build/install requirements.
+ - utf-8 support
+ - Proper handling of embedded newlines and control codes.
+ - Smart matching of urls, emails, regexes. (extract_*)
+ - Option to synchronise the SELECTION and CLIPBOARD clipboards. (sync_selections)
+ - Option to track one or both clipboards. (active_selections)
+ - Option to ignore clipboard updates form certain applications. (filter_classes)
+ - Ability to delete items in clipboard history.
+ '';
+ license = licenses.agpl3;
+ homepage = "https://github.com/mrichar1/clipster";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cloc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloc/default.nix
new file mode 100644
index 000000000000..2b9cbfe10305
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloc/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "cloc";
+ version = "1.88";
+
+ src = fetchFromGitHub {
+ owner = "AlDanial";
+ repo = "cloc";
+ rev = version;
+ sha256 = "1ixgswzbzv63bl50gb2kgaqr0jcicjz6w610hi9fal1i7744zraw";
+ };
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */Unix)
+ '';
+
+ buildInputs = [ makeWrapper ] ++ (with perlPackages; [
+ perl AlgorithmDiff ParallelForkManager RegexpCommon
+ ]);
+
+ makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
+
+ postFixup = "wrapProgram $out/bin/cloc --prefix PERL5LIB : $PERL5LIB";
+
+ meta = {
+ description = "A program that counts lines of source code";
+ homepage = "https://github.com/AlDanial/cloc";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with stdenv.lib.maintainers; [ rycee ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
new file mode 100644
index 000000000000..16263e2b6c35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "cloud-sql-proxy";
+ version = "1.13";
+
+ goPackagePath = "github.com/GoogleCloudPlatform/cloudsql-proxy";
+
+ subPackages = [ "cmd/cloud_sql_proxy" ];
+
+ src = fetchgit {
+ rev = version;
+ url = "https://${goPackagePath}";
+ sha256 = "07n2hfhqa9hinabmx79aqqwxzzkky76x3jvpd89kch14fijbh532";
+ };
+
+ goDeps = ./deps.nix;
+
+ buildFlagsArray = [ "-ldflags=" "-X main.versionString=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "An authenticating proxy for Second Generation Google Cloud SQL databases";
+ homepage = "https://${goPackagePath}";
+ license = licenses.asl20;
+ maintainers = [ maintainers.nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/deps.nix
new file mode 100644
index 000000000000..6898833b6f12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/deps.nix
@@ -0,0 +1,48 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "bazil.org/fuse";
+ fetch = {
+ type = "git";
+ url = "https://github.com/bazil/fuse";
+ rev = "65cc252bf6691cb3c7014bcb2c8dc29de91e3a7e";
+ sha256 = "0qjm9yrhc5h632wwhklqzhalid4lxcm9iwsqs3jahp303rm27vpk";
+ };
+ }
+ {
+ goPackagePath = "cloud.google.com/go";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/gocloud";
+ rev = "dba8c2c195294739180b3e6865f8893eb808676e";
+ sha256 = "1l6aj26sd7byjcgi2b4k452fcg949v28lff2fkw5nq2qr2fjnqxy";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "9b4f9f5ad5197c79fd623a3638e70d8b26cef344";
+ sha256 = "06hvxy113h76f31gv1mq6vdr6xja1zv0fdig686l2b4y2b6swych";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "9dcd33a902f40452422c2367fefcb95b54f9f8f8";
+ sha256 = "15lfa780h2ff50qvcdl7sfs9f9j13fa5kfj6fb292rk3fwxhnx4i";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/api";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/google-api-go-client";
+ rev = "39567f0042a03aeb2691599961ed4454e43d5063";
+ sha256 = "0c5gx156v1pk0gqvl9w43l06z0rh9g2sackpl9ghds0asnyqx04d";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
new file mode 100644
index 000000000000..afae939ef38a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, makeWrapper
+, gawk, gnused, utillinux, file
+, wget, python3, qemu-utils, euca2ools
+, e2fsprogs, cdrkit
+, gptfdisk }:
+
+let
+ # according to https://packages.debian.org/sid/cloud-image-utils + https://packages.debian.org/sid/admin/cloud-guest-utils
+ guestDeps = [
+ e2fsprogs gptfdisk gawk gnused utillinux
+ ];
+ binDeps = guestDeps ++ [
+ wget file qemu-utils cdrkit
+ ];
+in stdenv.mkDerivation rec {
+ # NOTICE: if you bump this, make sure to run
+ # $ nix-build nixos/release-combined.nix -A nixos.tests.ec2-nixops
+ # growpart is needed in initrd in nixos/system/boot/grow-partition.nix
+ pname = "cloud-utils";
+ version = "0.31";
+ src = fetchurl {
+ url = "https://launchpad.net/cloud-utils/trunk/${version}/+download/cloud-utils-${version}.tar.gz";
+ sha256 = "07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r";
+ };
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ python3 ];
+ installFlags = [ "LIBDIR=$(out)/lib" "BINDIR=$(out)/bin" "MANDIR=$(out)/man/man1" "DOCDIR=$(out)/doc" ];
+
+ # $guest output contains all executables needed for cloud-init and $out the rest + $guest
+ # This is similar to debian's package split into cloud-image-utils and cloud-guest-utils
+ # The reason is to reduce the closure size
+ outputs = [ "out" "guest"];
+
+ postFixup = ''
+ moveToOutput bin/ec2metadata $guest
+ moveToOutput bin/growpart $guest
+ moveToOutput bin/vcs-run $guest
+
+ for i in $out/bin/*; do
+ wrapProgram $i --prefix PATH : "${stdenv.lib.makeBinPath binDeps}:$out/bin"
+ done
+
+ for i in $guest/bin/*; do
+ wrapProgram $i --prefix PATH : "${stdenv.lib.makeBinPath guestDeps}:$guest/bin"
+ ln -s $i $out/bin
+ done
+ '';
+
+ dontBuild = true;
+
+ meta = with stdenv.lib; {
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff b/infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff
new file mode 100644
index 000000000000..aed9112682b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff
@@ -0,0 +1,72 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 86fec9e..b9d0341 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,7 +22,7 @@ elseif(WIN32 AND ${OpenCL_LIBRARIES} MATCHES "OpenCL.lib")
+ set(OpenCL_LIBRARIES ${OpenCL_LIBRARIES} cfgmgr32.lib)
+ endif()
+
+-FIND_PATH(HPP_FOUND CL/cl.hpp PATHS ${OpenCL_INCLUDE_DIRS})
++FIND_PATH(HPP_FOUND CL/cl2.hpp PATHS ${OpenCL_INCLUDE_DIRS})
+ if(NOT HPP_FOUND)
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+ include(BuildCLHpp)
+diff --git a/include/clpeak.h b/include/clpeak.h
+index c090d31..0d9d5e2 100644
+--- a/include/clpeak.h
++++ b/include/clpeak.h
+@@ -1,14 +1,10 @@
+ #ifndef CLPEAK_HPP
+ #define CLPEAK_HPP
+
+-#define __CL_ENABLE_EXCEPTIONS
+-
+-#include <CL/cl.hpp>
+-
+ #include <iostream>
+ #include <stdio.h>
+ #include <iomanip>
+-#include <string.h>
++#include <string>
+ #include <sstream>
+ #include <common.h>
+ #include <logger.h>
+diff --git a/include/common.h b/include/common.h
+index 91318cb..6aaca04 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -1,7 +1,11 @@
+ #ifndef COMMON_H
+ #define COMMON_H
+
+-#include <CL/cl.hpp>
++#define CL_HPP_ENABLE_EXCEPTIONS
++#define CL_HPP_MINIMUM_OPENCL_VERSION 120
++#define CL_HPP_TARGET_OPENCL_VERSION 120
++#include <CL/cl2.hpp>
++
+ #if defined(__APPLE__) || defined(__MACOSX) || defined(__FreeBSD__)
+ #include <sys/types.h>
+ #endif
+diff --git a/src/clpeak.cpp b/src/clpeak.cpp
+index 8708463..4a47842 100644
+--- a/src/clpeak.cpp
++++ b/src/clpeak.cpp
+@@ -3,7 +3,7 @@
+
+ #define MSTRINGIFY(...) #__VA_ARGS__
+
+-static const char *stringifiedKernels =
++static const std::string stringifiedKernels =
+ #include "global_bandwidth_kernels.cl"
+ #include "compute_sp_kernels.cl"
+ #include "compute_hp_kernels.cl"
+@@ -65,7 +65,7 @@ int clPeak::runAll()
+
+ cl::Context ctx(CL_DEVICE_TYPE_ALL, cps);
+ vector<cl::Device> devices = ctx.getInfo<CL_CONTEXT_DEVICES>();
+- cl::Program::Sources source(1, make_pair(stringifiedKernels, (strlen(stringifiedKernels) + 1)));
++ cl::Program::Sources source(1, stringifiedKernels);
+ cl::Program prog = cl::Program(ctx, source);
+
+ for (size_t d = 0; d < devices.size(); d++)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/default.nix
new file mode 100644
index 000000000000..b021703b804a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/clpeak/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, ocl-icd, opencl-clhpp }:
+
+stdenv.mkDerivation rec {
+ pname = "clpeak";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "krrishnarraj";
+ repo = "clpeak";
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "1wkjpvn4r89c3y06rv7gfpwpqw6ljmqwz0w0mljl9y5hn1r4pkx2";
+ };
+
+ patches = [
+ # The cl.hpp header was removed from opencl-clhpp. This patch
+ # updates clpeak to use the new cp2.hpp header. The patch comes
+ # from the following PR and was updated to apply against more
+ # recent versions: https://github.com/krrishnarraj/clpeak/pull/46
+ ./clpeak-clhpp2.diff
+ ];
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ ocl-icd opencl-clhpp ];
+
+ meta = with stdenv.lib; {
+ description = "A tool which profiles OpenCL devices to find their peak capacities";
+ homepage = "https://github.com/krrishnarraj/clpeak/";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ danieldk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cod/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cod/default.nix
new file mode 100644
index 000000000000..945f4c61f1d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cod/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "cod";
+ version = "unstable-2020-09-10";
+
+ goPackagePath = "cod";
+
+ src = fetchFromGitHub {
+ owner = "dim-an";
+ repo = pname;
+ rev = "ae68da08339471dd278d6df79abbfd6fe89a10fe";
+ sha256 = "1l3gn9v8dcy72f5xq9hwbkvkis0vp4dp8qyinsrii3acmhksg9v6";
+ };
+
+ vendorSha256 = "1arllkiz1hk12hq5b2zpg3f8i9lxl66mil5sdv8gnhflmb37vbv3";
+
+ buildFlagsArray = [ "-ldflags=-X main.GitSha=${src.rev}" ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Tool for generating Bash/Zsh autocompletions based on `--help` output";
+ homepage = src.meta.homepage;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/codebraid/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/codebraid/default.nix
new file mode 100644
index 000000000000..eea5260a989c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/codebraid/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "codebraid";
+ version = "0.5.0-unstable-2020-07-01";
+
+ src = fetchFromGitHub {
+ owner = "gpoore";
+ repo = pname;
+ rev = "c7962587e7f1e619b5dcf9a5e901eb7042520b00";
+ sha256 = "1f31yaiwc33ivjbipym7sggsqwqxn70kgf9dixi8392pk70jzq6p";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ bespon ];
+ # unfortunately upstream doesn't contain tests
+ checkPhase = ''
+ $out/bin/codebraid --help > /dev/null
+ '';
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/gpoore/codebraid";
+ description = ''
+ Live code in Pandoc Markdown.
+
+ Codebraid is a Python program that enables executable code in Pandoc
+ Markdown documents. Using Codebraid can be as simple as adding a class to
+ your code blocks' attributes, and then running codebraid rather than
+ pandoc to convert your document from Markdown to another format.
+ codebraid supports almost all of pandoc's options and passes them to
+ pandoc internally.
+
+ Codebraid provides two options for executing code. It includes a built-in
+ code execution system that currently supports Python 3.5+, Julia, Rust,
+ R, Bash, and JavaScript. Code can also be executed using Jupyter kernels,
+ with support for rich output like plots.
+ '';
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ synthetica ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/colord-gtk/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord-gtk/default.nix
new file mode 100644
index 000000000000..b2113f8304cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord-gtk/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchurl
+, colord
+, gettext
+, meson
+, ninja
+, gobject-introspection
+, gtk-doc
+, docbook-xsl-ns
+, docbook_xsl
+, docbook_xml_dtd_412
+, libxslt
+, glib
+, gtk3
+, pkgconfig
+, lcms2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "colord-gtk";
+ version = "0.2.0";
+
+ outputs = [ "out" "dev" "devdoc" ];
+
+ src = fetchurl {
+ url = "https://www.freedesktop.org/software/colord/releases/${pname}-${version}.tar.xz";
+ sha256 = "05y78jbcbar22sgyhzffhv98dbpl4v6k8j9p807h17y6ighglk1a";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ gettext
+ meson
+ ninja
+ gobject-introspection
+ gtk-doc
+ docbook-xsl-ns
+ docbook_xsl
+ docbook_xml_dtd_412
+ libxslt
+ ];
+
+ buildInputs = [
+ glib
+ lcms2
+ ];
+
+ propagatedBuildInputs = [
+ colord
+ gtk3
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.freedesktop.org/software/colord/intro.html";
+ license = licenses.lgpl21Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/colord-kde/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord-kde/default.nix
new file mode 100644
index 000000000000..33686498112b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord-kde/default.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib, fetchurl
+, extra-cmake-modules, ki18n
+, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kiconthemes, kcmutils
+, kio, knotifications, plasma-framework, kwidgetsaddons, kwindowsystem
+, kitemviews, lcms2, libXrandr, qtx11extras
+}:
+
+mkDerivation rec {
+ pname = "colord-kde";
+ version = "0.5.0";
+
+ src = fetchurl {
+ url = "http://download.kde.org/stable/colord-kde/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "0brdnpflm95vf4l41clrqxwvjrdwhs859n7401wxcykkmw4m0m3c";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules ];
+
+ buildInputs = [
+ kconfig kconfigwidgets kcoreaddons kdbusaddons kiconthemes
+ kcmutils ki18n kio knotifications plasma-framework kwidgetsaddons
+ kwindowsystem kitemviews lcms2 libXrandr qtx11extras
+ ];
+
+ meta = with lib; {
+ homepage = "https://projects.kde.org/projects/playground/graphics/colord-kde";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ttuegel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/colord/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord/default.nix
new file mode 100644
index 000000000000..79d27129173a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord/default.nix
@@ -0,0 +1,114 @@
+{ stdenv
+, fetchurl
+, nixosTests
+, bash-completion
+, glib
+, polkit
+, pkgconfig
+, gettext
+, gusb
+, lcms2
+, sqlite
+, systemd
+, dbus
+, gobject-introspection
+, argyllcms
+, meson
+, ninja
+, vala
+, libgudev
+, wrapGAppsHook
+, shared-mime-info
+, sane-backends
+, docbook_xsl
+, docbook_xsl_ns
+, docbook_xml_dtd_412
+, gtk-doc
+, libxslt
+}:
+
+stdenv.mkDerivation rec {
+ pname = "colord";
+ version = "1.4.4";
+
+ outputs = [ "out" "dev" "devdoc" "man" "installedTests" ];
+
+ src = fetchurl {
+ url = "https://www.freedesktop.org/software/colord/releases/${pname}-${version}.tar.xz";
+ sha256 = "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws";
+ };
+
+ patches = [
+ # Put installed tests into its own output
+ ./installed-tests-path.patch
+ ];
+
+ postPatch = ''
+ for file in data/tests/meson.build lib/colord/cd-test-shared.c lib/colord/meson.build; do
+ substituteInPlace $file --subst-var-by installed_tests_dir "$installedTests"
+ done
+ '';
+
+ mesonFlags = [
+ "--localstatedir=/var"
+ "-Dinstalled_tests=true"
+ "-Dlibcolordcompat=true"
+ "-Dsane=true"
+ "-Dvapi=true"
+ "-Ddaemon_user=colord"
+ ];
+
+ nativeBuildInputs = [
+ docbook_xml_dtd_412
+ docbook_xsl
+ docbook_xsl_ns
+ gettext
+ gobject-introspection
+ gtk-doc
+ libxslt
+ meson
+ ninja
+ pkgconfig
+ shared-mime-info
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ argyllcms
+ bash-completion
+ dbus
+ glib
+ gusb
+ lcms2
+ libgudev
+ polkit
+ sane-backends
+ sqlite
+ systemd
+ ];
+
+ postInstall = ''
+ glib-compile-schemas $out/share/glib-2.0/schemas
+ '';
+
+ PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
+ PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user";
+ PKG_CONFIG_SYSTEMD_TMPFILESDIR = "${placeholder "out"}/lib/tmpfiles.d";
+ PKG_CONFIG_BASH_COMPLETION_COMPLETIONSDIR= "${placeholder "out"}/share/bash-completion/completions";
+ PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
+
+ passthru = {
+ tests = {
+ installedTests = nixosTests.installed-tests.colord;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "System service to manage, install and generate color profiles to accurately color manage input and output devices";
+ homepage = "https://www.freedesktop.org/software/colord/";
+ license = licenses.lgpl2Plus;
+ maintainers = [ maintainers.marcweber ] ++ teams.freedesktop.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/colord/installed-tests-path.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord/installed-tests-path.patch
new file mode 100644
index 000000000000..6d91cbbcb022
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/colord/installed-tests-path.patch
@@ -0,0 +1,72 @@
+diff --git a/data/tests/meson.build b/data/tests/meson.build
+index 8b38f10..250582c 100644
+--- a/data/tests/meson.build
++++ b/data/tests/meson.build
+@@ -17,6 +17,6 @@ if get_option('installed_tests')
+ 'test.ccss',
+ 'test.sp',
+ ],
+- install_dir: join_paths(libexecdir, 'installed-tests', 'colord')
++ install_dir: join_paths('@installed_tests_dir@', 'libexec', 'installed-tests', 'colord')
+ )
+ endif
+diff --git a/lib/colord/cd-test-shared.c b/lib/colord/cd-test-shared.c
+index c3b9d23..7577e13 100644
+--- a/lib/colord/cd-test-shared.c
++++ b/lib/colord/cd-test-shared.c
+@@ -45,7 +45,8 @@ cd_test_get_filename (const gchar *filename)
+
+ /* running in the installed system */
+ if (g_getenv ("INSTALLED_TESTS") != NULL) {
+- return g_build_filename (LIBEXECDIR,
++ return g_build_filename ("@installed_tests_dir@",
++ "libexec",
+ "installed-tests",
+ PACKAGE_NAME,
+ filename,
+diff --git a/lib/colord/meson.build b/lib/colord/meson.build
+index 61f0518..df71358 100644
+--- a/lib/colord/meson.build
++++ b/lib/colord/meson.build
+@@ -214,20 +214,20 @@ endif
+ if get_option('installed_tests')
+ con2 = configuration_data()
+ con2.set('installedtestsdir',
+- join_paths(libexecdir, 'installed-tests', 'colord'))
++ join_paths('@installed_tests_dir@', 'libexec', 'installed-tests', 'colord'))
+ configure_file(
+ input : 'colord-daemon.test.in',
+ output : 'colord-daemon.test',
+ configuration : con2,
+ install: true,
+- install_dir: join_paths('share', 'installed-tests', 'colord'),
++ install_dir: join_paths('@installed_tests_dir@', 'share', 'installed-tests', 'colord'),
+ )
+ configure_file(
+ input : 'colord-private.test.in',
+ output : 'colord-private.test',
+ configuration : con2,
+ install: true,
+- install_dir: join_paths('share', 'installed-tests', 'colord'),
++ install_dir: join_paths('@installed_tests_dir@', 'share', 'installed-tests', 'colord'),
+ )
+ endif
+
+@@ -254,7 +254,7 @@ if get_option('tests')
+ '-DTESTDATADIR="' + testdatadir + '"',
+ ],
+ install : get_option('installed_tests'),
+- install_dir : join_paths(libexecdir, 'installed-tests', 'colord'),
++ install_dir : join_paths('@installed_tests_dir@','libexec', 'installed-tests', 'colord'),
+ )
+ test('colord-test-private', e)
+ e = executable(
+@@ -278,7 +278,7 @@ if get_option('tests')
+ '-DTESTDATADIR="' + testdatadir + '"',
+ ],
+ install : get_option('installed_tests'),
+- install_dir : join_paths(libexecdir, 'installed-tests', 'colord'),
++ install_dir : join_paths('@installed_tests_dir@', 'libexec', 'installed-tests', 'colord'),
+ )
+ test('colord-test-daemon', e)
+ endif
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/colorpicker/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
new file mode 100644
index 000000000000..3de5d33617c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+ pname = "colorpicker";
+ version = "git-2018-01-14";
+
+ src = fetchFromGitHub {
+ owner = "Ancurio";
+ repo = "colorpicker";
+ rev = "287676947e6e3b5b0cee784aeb1638cf22f0ce17";
+ sha256 = "1kj1dpb79llrfpszraaz6r7ci114zqi5rmqxwsvq2dnnpjxyi29r";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ gtk2 ];
+
+ installPhase = ''
+ install -Dt $out/bin colorpicker
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Click on a pixel on your screen and print its color value in RGB";
+ homepage = "https://github.com/Ancurio/colorpicker";
+ maintainers = with maintainers; [ jb55 ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/colorz/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/colorz/default.nix
new file mode 100644
index 000000000000..aadd050dae2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/colorz/default.nix
@@ -0,0 +1,24 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "colorz";
+ version = "1.0.3";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0ghd90lgplf051fs5n5bb42zffd3fqpgzkbv6bhjw7r8jqwgcky0";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ pillow scipy ];
+
+ checkPhase = ''
+ $out/bin/colorz --help > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "Color scheme generator";
+ homepage = "https://github.com/metakirby5/colorz";
+ license = licenses.mit;
+ maintainers = with maintainers; [ skykanin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/contacts/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/contacts/default.nix
new file mode 100644
index 000000000000..b58e0c6e31e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/contacts/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, xcbuildHook, Foundation, AddressBook }:
+
+stdenv.mkDerivation {
+ version = "1.1a-3";
+ pname = "contacts";
+
+ src = fetchurl {
+ url = "https://github.com/dhess/contacts/archive/4092a3c6615d7a22852a3bafc44e4aeeb698aa8f.tar.gz";
+ sha256 = "0wdqc1ndgrdhqapvvgx5xihc750szv08lp91x4l6n0gh59cpxpg3";
+ };
+
+ nativeBuildInputs = [ xcbuildHook ];
+ buildInputs = [ Foundation AddressBook ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp Products/Default/contacts $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Access contacts from the Mac address book from command-line";
+ homepage = "http://www.gnufoo.org/contacts/contacts.html";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ jwiegley ];
+ platforms = stdenv.lib.platforms.darwin;
+ hydraPlatforms = stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/convmv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/convmv/default.nix
new file mode 100644
index 000000000000..56b9d5c849a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/convmv/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ name = "convmv-2.05";
+
+ src = fetchurl {
+ url = "https://www.j3e.de/linux/convmv/${name}.tar.gz";
+ sha256 = "19hwv197p7c23f43vvav5bs19z9b72jzca2npkjsxgprwj5ardjk";
+ };
+
+ preBuild=''
+ makeFlags="PREFIX=$out"
+ '';
+
+ patchPhase=''
+ tar -xf testsuite.tar
+ patchShebangs .
+ '';
+
+ doCheck = true;
+ checkTarget = "test";
+
+ buildInputs = [ perl ];
+
+ meta = with stdenv.lib; {
+ description = "Converts filenames from one encoding to another";
+ platforms = platforms.linux ++ platforms.freebsd ++ platforms.cygwin;
+ maintainers = [ ];
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
new file mode 100644
index 000000000000..39e2e041e326
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
@@ -0,0 +1,107 @@
+{ stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, iasl, makeWrapper, gnugrep, gnused, file, buildEnv }:
+
+let
+ version = "4.12";
+
+ commonMeta = with stdenv.lib; {
+ description = "Various coreboot-related tools";
+ homepage = "https://www.coreboot.org";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.petabyteboy ];
+ platforms = platforms.linux;
+ };
+
+ generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
+ inherit pname version;
+
+ src = fetchurl {
+ url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
+ sha256 = "1qibds9lsk22wf1sxwg0jg32fgcvc9an39vf74y1hwwvxq0d1jpd";
+ };
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ cd ${path}
+ '';
+
+ makeFlags = [
+ "INSTALL=install"
+ "PREFIX=${placeholder "out"}"
+ ];
+
+ meta = commonMeta // args.meta;
+ } // (removeAttrs args ["meta"]));
+
+ utils = {
+ msrtool = generic {
+ pname = "msrtool";
+ meta.description = "Dump chipset-specific MSR registers";
+ buildInputs = [ pciutils zlib ];
+ preConfigure = "export INSTALL=install";
+ };
+ cbmem = generic {
+ pname = "cbmem";
+ meta.description = "Coreboot console log reader";
+ };
+ ifdtool = generic {
+ pname = "ifdtool";
+ meta.description = "Extract and dump Intel Firmware Descriptor information";
+ };
+ intelmetool = generic {
+ pname = "intelmetool";
+ meta.description = "Dump interesting things about Management Engine";
+ buildInputs = [ pciutils zlib ];
+ };
+ cbfstool = generic {
+ pname = "cbfstool";
+ meta.description = "Management utility for CBFS formatted ROM images";
+ };
+ nvramtool = generic {
+ pname = "nvramtool";
+ meta.description = "Read and write coreboot parameters and display information from the coreboot table in CMOS/NVRAM";
+ };
+ superiotool = generic {
+ pname = "superiotool";
+ meta.description = "User-space utility to detect Super I/O of a mainboard and provide detailed information about the register contents of the Super I/O";
+ buildInputs = [ pciutils zlib ];
+ };
+ ectool = generic {
+ pname = "ectool";
+ meta.description = "Dump the RAM of a laptop's Embedded/Environmental Controller (EC)";
+ meta.platforms = [ "x86_64-linux" "i686-linux" ];
+ preInstall = "mkdir -p $out/sbin";
+ };
+ inteltool = generic {
+ pname = "inteltool";
+ meta.description = "Provides information about Intel CPU/chipset hardware configuration (register contents, MSRs, etc)";
+ buildInputs = [ pciutils zlib ];
+ };
+ amdfwtool = generic {
+ pname = "amdfwtool";
+ meta.description = "Create AMD firmware combination";
+ installPhase = "install -Dm755 amdfwtool $out/bin/amdfwtool";
+ };
+ acpidump-all = generic {
+ pname = "acpidump-all";
+ path = "util/acpi";
+ meta.description = "Walk through all ACPI tables with their addresses";
+ nativeBuildInputs = [ makeWrapper ];
+ dontBuild = true;
+ installPhase = "install -Dm755 acpidump-all $out/bin/acpidump-all";
+ postFixup = let
+ binPath = [ coreutils acpica-tools iasl gnugrep gnused file ];
+ in "wrapProgram $out/bin/acpidump-all --set PATH ${stdenv.lib.makeBinPath binPath}";
+ };
+ };
+
+in utils // {
+ coreboot-utils = (buildEnv {
+ name = "coreboot-utils-${version}";
+ paths = stdenv.lib.attrValues utils;
+ postBuild = "rm -rf $out/sbin";
+ }) // {
+ inherit version;
+ meta = commonMeta;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/avoid-false-positive-in-date-debug-test.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/avoid-false-positive-in-date-debug-test.patch
new file mode 100644
index 000000000000..ae1a02d4d202
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/avoid-false-positive-in-date-debug-test.patch
@@ -0,0 +1,52 @@
+From 0251229bfd9617e8a35cf9dd7d338d63fff74a0c Mon Sep 17 00:00:00 2001
+From: Assaf Gordon <assafgordon@gmail.com>
+Date: Mon, 13 May 2019 16:37:40 -0600
+Subject: [PATCH] tests: avoid false-positive in date-debug test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When debugging an invalid date due to DST switching, the intermediate
+'normalized time' should not be checked - its value can differ between
+systems (e.g. glibc vs musl).
+
+Reported by Niklas Hambüchen in
+https://lists.gnu.org/r/coreutils/2019-05/msg00031.html
+Analyzed by Rich Felker in
+https://lists.gnu.org/r/coreutils/2019-05/msg00039.html
+
+* tests/misc/date-debug.sh: Replace the exact normalized time
+with 'XX:XX:XX' so different values would not trigger test failure.
+---
+ tests/misc/date-debug.sh | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/tests/misc/date-debug.sh b/tests/misc/date-debug.sh
+index aa47f1abb..2ce6f4ce8 100755
+--- a/tests/misc/date-debug.sh
++++ b/tests/misc/date-debug.sh
+@@ -71,7 +71,7 @@ date: input timezone: TZ="America/Edmonton" in date string
+ date: using specified time as starting value: '02:30:00'
+ date: error: invalid date/time value:
+ date: user provided time: '(Y-M-D) 2006-04-02 02:30:00'
+-date: normalized time: '(Y-M-D) 2006-04-02 03:30:00'
++date: normalized time: '(Y-M-D) 2006-04-02 XX:XX:XX'
+ date: --
+ date: possible reasons:
+ date: non-existing due to daylight-saving time;
+@@ -81,7 +81,14 @@ date: invalid date 'TZ="America/Edmonton" 2006-04-02 02:30:00'
+ EOF
+
+ # date should return 1 (error) for invalid date
+-returns_ 1 date --debug -d "$in2" >out2 2>&1 || fail=1
++returns_ 1 date --debug -d "$in2" >out2-t 2>&1 || fail=1
++
++# The output line of "normalized time" can differ between systems
++# (e.g. glibc vs musl) and should not be checked.
++# See: https://lists.gnu.org/archive/html/coreutils/2019-05/msg00039.html
++sed '/normalized time:/s/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ XX:XX:XX/' \
++ out2-t > out2 || framework_failure_
++
+ compare exp2 out2 || fail=1
+
+ ##
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch
new file mode 100644
index 000000000000..2f69347ffabd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch
@@ -0,0 +1,1259 @@
+--- coreutils-8.23/ChangeLog 2014-07-18 15:22:24.000000000 -0700
++++ coreutils-8.23/ChangeLog 2014-10-13 08:56:50.775188900 -0700
+@@ -1,3 +1,220 @@
++2014-10-13 U-WIN-RSJ0SJPBR3E\Administrator <Administrator@WIN-KQ1OCEBI2E8>
++
++ Cygwin release 8.23-4
++ * copy.c (copy_internal): Fix typo that broke recursive copy
++ when dealing with directories.
++
++2014-09-24 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.23-3
++ * lib/cygwin.c (cygwin_spelling): Skip .exe magic if .exe is
++ already present. Also honor .exe magic on symlinks.
++ * lib/same.c (same_name): Treat files as same if only difference
++ is .exe magic.
++ * copy.c (copy): Move symlink special casing here.
++ * install.c (strip): Update caller.
++ * ls.c (gobble_file): Likewise.
++ * stat.c (do_statfs, do_stat): Likewise.
++
++2014-08-12 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.23-2.
++ Drop hostname.
++
++2014-08-01 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.23-1.
++ * configure.ac: Disable stdbuf.
++ * lib/local.mk: Upstream switched to flat make, impacting how
++ we build local cygwin.c code.
++ * lib/canonicalize.c: Accepted upstream.
++ * lib/file-has-acl.c: Likewise.
++ * realpath.c: Likewise.
++ * su.c: Upstream dropped su.
++ * Makefile.am: Drop su changes.
++ * chroot.c: Adapt to new upstream code.
++
++2012-02-04 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.15-1.
++ * lib/fts.c: Early gnulib fix is now upstream.
++ * lib/canonicalize.c: Backport gnulib fix for /// -> /.
++ * realpath.c: Backport gnulib fix for --relative-to.
++
++2011-10-27 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.14-1.
++ * lib/ftc.c: Backport gnulib fix to make rm close before rmdir.
++ * lib/cygwin.c (cygwin_spelling): Fix logic when 'f' and 'f.exe'
++ exist but are different files.
++ * stat.c: Fix --append-exe.
++
++2011-02-04 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.10-1.
++
++2010-12-24 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.8-1.
++ * lib/mountlist.c (ME_REMOTE): Restore previous cygwin hack to
++ determine remote drives, lost since 6.11-1.
++
++2010-04-29 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.5-1.
++
++2010-03-11 Eric Blake <eblake@redhat.com>
++
++ Cygwin release 8.4-1.
++ * lib/xfreopen.c (xfreopen): Consolidate workaround for broken
++ freopen usage into one place.
++ * copy.c (copy): Reinstate .exe magic handling when copying
++ files with implicit .exe.
++
++2008-12-13 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 7.0-1.
++
++2008-06-02 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.12-1.
++
++2008-05-12 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.11-1, requires cygwin 1.7.0.
++ * lib/cygwin.h (CYGWIN_APPEND_EXE): Accomodate new PATH_MAX.
++ * lib/cygwin.c (cygwin_spelling): Accomodate new trailing
++ `.' semantics.
++ * lib/same.c (same_name): Accomodate new PATH_MAX.
++
++2008-01-24 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.10-1.
++ * lib/hash-triple.c (triple_hash): Hash case-insensitively.
++ * lib/hash-pjw.h (hash_pjw_case): New interface.
++ * lib/hash-pjw.c (hash_pjw_case): New function.
++ * chcon.c (main): Support my root_dev_ino tweaks.
++
++2007-08-21 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.9-5.
++ * same.c (same_name): Detect same file differing only by case.
++ * copy.c (same_file_ok): Add parameter to detect when case
++ change is being attempted.
++ (triple_hash): Hash names case-insensitively.
++ (copy_internal): Accommodate case-change attempts.
++ * mv.c (do_move): Allow 'mv foo/ Foo/' as shorthand for
++ 'mv -T foo/ Foo/'.
++
++2007-07-23 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.9-4.
++ * dd.c (main): Fix typo in earlier cygwin patch.
++
++2007-05-29 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.9-3.
++ * cksum.c (main): Don't lose append mode.
++ * md5sum.c (main): Likewise.
++ * cat.c (main): Likewise.
++ * head.c (main): Likewise.
++ * tac.c (main): Likewise.
++ * tail.c (main): Likewise.
++ * tee.c (main): Likewise.
++ * tr.c (main): Likewise.
++
++2006-11-24 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 6.6-2.
++ * lib/cygwin.c (cygwin_spelling): Work even with old-style
++ symlinks, which lacked .lnk suffix.
++
++2006-04-14 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 5.94-5. Experimental only, depends on cygwin
++ snapshot 20060329 or later.
++ * dd.c (main): Default to binary mode.
++ * system.h (rpl_freopen): Remove this hack, now that cygwin
++ freopen(NULL) works.
++ * lib/quotearg.c (quote_eight_bit): New variable, so I can...
++ (quotearg_buffer_restyled): treat 8-bit characters as printable
++ when outputting to a terminal.
++ * lib/quote.c (quote_n): Use it.
++
++2006-02-28 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 5.94-4. Experimental only, depends on cygwin
++ snapshot 20060227 or later.
++ * lib/root-dev-ino.h (struct root_dev_ino): New struct.
++ (ROOT_DEV_INO_CHECK, ROOT_DEV_INO_WARN): Also track //.
++ * lib/root-dev-ino.c (get_root_dev_ino): Also track //.
++ * chmod.c (root_dev_ino): Use new type.
++ (main): Ditto.
++ * chown-core.h (struct Chown_option): Ditto.
++ * chown.c (main): Ditto.
++ * remove.h (struct rm_options): Ditto.
++ * rm.c (main): Ditto.
++ * pwd.c (robust_getcwd): Ditto. Also fix bug when in / or //.
++
++2006-01-24 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 5.93-3, depends on cygwin-1.5.19-1 or later.
++ * cksum.c (main): Always output binary files.
++ * md5sum.c (main): Likewise.
++ * su.c (correct_password): On NT machines, attempt
++ passwordless login first, and give better error message if
++ password check fails. I still don't know how to distinguish
++ between insufficient privileges vs. incorrect password.
++ * dircolors.c (main): Silence warning from tcsh 6.14.00.
++
++2005-10-15 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 5.90-3, depends on snapshot 20051003 or later (will
++ become cygwin 1.5.19).
++ * doc/coreutils.texi (ls invocation, stat invocation): Document
++ --append-exe.
++ * ls.c (usage): Ditto.
++ (gobble_file): Append .exe as needed when requested.
++ * stat.c (usage): Document --append-exe.
++ (do_stat, do_statfs): Append .exe as needed when requested.
++
++2005-10-08 Eric Blake <ebb9@byu.net>
++
++ Cygwin release 5.90-2, depends on snapshot 20051003 or later (will
++ become cygwin 1.5.19).
++ * lib/mkdir-p.c (make_dir_parents): Fix bug in last patch.
++ * lib/cygwin.h (CYGWIN_APPEND_EXE): Factor into common macro.
++ * copy.c (copy): Use new macro.
++ * install.c (strip): Ditto.
++ * ln.c (do_link): Ditto.
++
++2005-07-13 Eric Blake <ebb9@byu.net>
++
++ * doc/coreutils.texi (ln invocation): Document --disable-exe-magic.
++ * ln.c (usage): Likewise.
++ (do_link): Skip .exe magic when requested.
++
++2005-07-12 Eric Blake <ebb9@byu.net>
++
++ * lib/cygwin.c (cygwin_spelling): Don't append .exe to directories.
++ Make sure .exe exists before returning 1, because otherwise
++ virtual directories such as /cygdrive have problems.
++
++2005-07-07 Eric Blake <ebb9@byu.net>
++
++ * lib/cygwin.h: New file, defining cygwin_spelling.
++ * lib/cygwin.c: New file.
++ * lib/Makefile.am: Compile it.
++ * copy.c (copy_internal, copy): Use new cygwin_spelling() to
++ undo .exe magic.
++ * link.c (do_link): Likewise.
++ * install.c (strip): Likewise.
++
++2005-01-03 Corinna Vinschen <corinna@vinschen.de>
++
++ * install.c (strip): Check for .exe here since strip doesn't.
++
++
+ 2014-07-18 Pádraig Brady <P@draigBrady.com>
+
+ version 8.23
+--- coreutils-8.23/configure.ac 2014-07-17 18:40:57.000000000 -0700
++++ coreutils-8.23/configure.ac 2014-10-13 08:30:37.165262300 -0700
+@@ -473,7 +473,7 @@ AC_COMPILE_IFELSE(
+ [stdbuf_supported=yes],
+ [stdbuf_supported=no])
+ AC_MSG_RESULT([$stdbuf_supported])
+-if test "$stdbuf_supported" = "yes"; then
++if test "$stdbuf_supported" = "yes" && test -z "$EXEEXT"; then
+ gl_ADD_PROG([optional_bin_progs], [stdbuf])
+ fi
+
+--- coreutils-8.23/doc/coreutils.texi 2014-07-13 15:09:52.000000000 -0700
++++ coreutils-8.23/doc/coreutils.texi 2014-10-13 08:30:37.180881200 -0700
+@@ -7838,6 +7838,14 @@ These options change how file names them
+
+ @table @samp
+
++@item --append-exe
++@opindex --append-exe
++@cindex appending exe on cygwin
++Cygwin only: Cygwin normally performs @samp{.exe} magic, where a
++command line argument typed without an .exe extension transparently
++refers to the existing file with an extension. Specifying this option
++will make the .exe show if cygwin magic was involved.
++
+ @item -b
+ @itemx --escape
+ @itemx --quoting-style=escape
+@@ -11799,6 +11807,14 @@ With this option, @command{stat} acts on
+ by each symbolic link argument.
+ Without it, @command{stat} acts on any symbolic link argument directly.
+
++@item --append-exe
++@opindex --append-exe
++@cindex appending exe on cygwin
++Cygwin only: Cygwin normally performs .exe magic, where a command line
++argument typed without an .exe extension transparently refers to the
++existing file with an extension. Specifying this option will make
++the .exe show if cygwin magic was involved.
++
+ @item -f
+ @itemx --file-system
+ @opindex -f
+--- coreutils-8.23/lib/cygwin.c 1969-12-31 16:00:00.000000000 -0800
++++ coreutils-8.23/lib/cygwin.c 2014-10-13 08:30:37.180881200 -0700
+@@ -0,0 +1,67 @@
++/* cygwin.c - helper functions unique to Cygwin
++
++ Copyright (C) 2005, 2006, 2008, 2011 Free Software Foundation, Inc.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3, or (at your option)
++ any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software Foundation,
++ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++ Written by Eric Blake. */
++
++#include <config.h>
++
++#include "cygwin.h"
++
++#include <errno.h>
++#include <limits.h>
++#include <string.h>
++#include <unistd.h>
++
++/* Return -1 if PATH is not found, 0 if PATH will not have .exe
++ appended (it is possible that a PATH that does not exist still
++ returns 0 instead of -1, or fails for a PATH that exists but cannot
++ be stat'ed), and positive if PATH has ".exe" automatically appended
++ by cygwin (1 if PATH is a symlink, 2 otherwise). Won't change errno. */
++
++int
++cygwin_spelling (char const *path)
++{
++ int saved_errno = errno;
++ int result = 0; /* Start with assumption that PATH is okay. */
++ int len;
++ struct stat st1;
++ struct stat st2;
++ char *path_exe;
++
++ if (! path || ! *path || len > PATH_MAX)
++ /* PATH will cause EINVAL or ENAMETOOLONG, treat it as non-existing. */
++ return -1;
++ len = strlen (path);
++ if (path[len - 1] == '/'
++ || (len > 4 && !strcasecmp (&path[len - 4], ".exe")))
++ /* Don't change spelling if there is a trailing `/' or '.exe'. */
++ return 0;
++ if (lstat (path, &st1) < 0 || S_ISDIR(st1.st_mode))
++ {
++ errno = saved_errno;
++ return -1;
++ }
++ path_exe = malloca (len + 5); /* adding ".exe" and NUL. */
++ strcat (stpcpy (path_exe, path), ".exe");
++ if (lstat (path_exe, &st2) == 0 && st1.st_ino == st2.st_ino)
++ result = 1 + !S_ISLNK(st1.st_mode);
++ freea (path_exe);
++
++ errno = saved_errno;
++ return result;
++}
+--- coreutils-8.23/lib/cygwin.h 1969-12-31 16:00:00.000000000 -0800
++++ coreutils-8.23/lib/cygwin.h 2014-10-13 08:30:37.180881200 -0700
+@@ -0,0 +1,38 @@
++/* cygwin.h - helper functions unique to Cygwin
++
++ Copyright (C) 2005, 2006, 2008, 2010, 2011 Free Software Foundation, Inc.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3, or (at your option)
++ any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software Foundation,
++ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++ Written by Eric Blake. */
++
++#ifndef CYGWIN_H
++# define CYGWIN_H 1
++
++#include "malloca.h"
++
++int cygwin_spelling (char const *);
++
++/* Append ".exe" to char *__NAME_ORIG, where __NAME is either NULL or
++ between __NAME_ORIG and the nul terminator. Both params will be
++ evaluated more than once and assigned the new value. The user must
++ later call freea(__NAME). */
++#define CYGWIN_APPEND_EXE(__name, __name_orig) \
++ __name_orig = __name = \
++ strcat (strcpy (malloca (strchr (__name ? __name : __name_orig, '\0') \
++ - (__name_orig) + 5), \
++ __name_orig), ".exe")
++
++#endif /* CYGWIN_H */
+--- coreutils-8.23/lib/hash-pjw.c 2014-05-29 05:05:50.000000000 -0700
++++ coreutils-8.23/lib/hash-pjw.c 2014-10-13 08:30:37.180881200 -0700
+@@ -19,6 +19,7 @@
+
+ #include "hash-pjw.h"
+
++#include <ctype.h>
+ #include <limits.h>
+
+ #define SIZE_BITS (sizeof (size_t) * CHAR_BIT)
+@@ -38,3 +39,16 @@ hash_pjw (const void *x, size_t tablesiz
+
+ return h % tablesize;
+ }
++
++/* Likewise, but case-insensitive. */
++size_t
++hash_pjw_case (const void *x, size_t tablesize)
++{
++ const unsigned char *s;
++ size_t h = 0;
++
++ for (s = x; *s; s++)
++ h = tolower (*s) + ((h << 9) | (h >> (SIZE_BITS - 9)));
++
++ return h % tablesize;
++}
+--- coreutils-8.23/lib/hash-pjw.h 2014-05-29 05:05:50.000000000 -0700
++++ coreutils-8.23/lib/hash-pjw.h 2014-10-13 08:30:37.180881200 -0700
+@@ -21,3 +21,4 @@
+ The result is platform dependent: it depends on the size of the 'size_t'
+ type and on the signedness of the 'char' type. */
+ extern size_t hash_pjw (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE;
++extern size_t hash_pjw_case (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE;
+--- coreutils-8.23/lib/hash-triple.c 2014-05-29 05:05:50.000000000 -0700
++++ coreutils-8.23/lib/hash-triple.c 2014-10-13 08:30:37.180881200 -0700
+@@ -34,7 +34,13 @@ size_t
+ triple_hash (void const *x, size_t table_size)
+ {
+ struct F_triple const *p = x;
++#if !__CYGWIN__
+ size_t tmp = hash_pjw (p->name, table_size);
++#else // cygwin
++ /* Hash case-insensitively, to force collisions on names that differ by
++ case; copy.c can then account for case-insensitive renames. */
++ size_t tmp = hash_pjw_case (p->name, table_size);
++#endif
+
+ /* Ignoring the device number here should be fine. */
+ return (tmp ^ p->st_ino) % table_size;
+--- coreutils-8.23/lib/local.mk 2013-12-04 06:48:30.000000000 -0800
++++ coreutils-8.23/lib/local.mk 2014-10-13 08:30:37.180881200 -0700
+@@ -3,3 +3,6 @@ include lib/gnulib.mk
+ # Allow "make distdir" to succeed before "make all" has run.
+ dist-hook: $(noinst_LIBRARIES)
+ .PHONY: dist-hook
++
++# Hook in cygwin helper
++lib_libcoreutils_a_SOURCES += lib/cygwin.c lib/cygwin.h
+--- coreutils-8.23/lib/root-dev-ino.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/lib/root-dev-ino.c 2014-10-13 08:30:37.180881200 -0700
+@@ -25,13 +25,17 @@
+ /* Call lstat to get the device and inode numbers for '/'.
+ Upon failure, return NULL. Otherwise, set the members of
+ *ROOT_D_I accordingly and return ROOT_D_I. */
+-struct dev_ino *
+-get_root_dev_ino (struct dev_ino *root_d_i)
++struct root_dev_ino *
++get_root_dev_ino (struct root_dev_ino *root_d_i)
+ {
+ struct stat statbuf;
+ if (lstat ("/", &statbuf))
+ return NULL;
+- root_d_i->st_ino = statbuf.st_ino;
+- root_d_i->st_dev = statbuf.st_dev;
++ root_d_i->single_slash.st_ino = statbuf.st_ino;
++ root_d_i->single_slash.st_dev = statbuf.st_dev;
++ if (lstat ("//", &statbuf))
++ return NULL;
++ root_d_i->double_slash.st_ino = statbuf.st_ino;
++ root_d_i->double_slash.st_dev = statbuf.st_dev;
+ return root_d_i;
+ }
+--- coreutils-8.23/lib/root-dev-ino.h 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/lib/root-dev-ino.h 2014-10-13 08:30:37.180881200 -0700
+@@ -21,19 +21,26 @@
+ # include "dev-ino.h"
+ # include "same-inode.h"
+
+-struct dev_ino *
+-get_root_dev_ino (struct dev_ino *root_d_i);
++struct root_dev_ino
++{
++ struct dev_ino single_slash;
++ struct dev_ino double_slash;
++};
++
++struct root_dev_ino *
++get_root_dev_ino (struct root_dev_ino *root_d_i);
+
+ /* These macros are common to the programs that support the
+ --preserve-root and --no-preserve-root options. */
+
+ # define ROOT_DEV_INO_CHECK(Root_dev_ino, Dir_statbuf) \
+- (Root_dev_ino && SAME_INODE (*Dir_statbuf, *Root_dev_ino))
++ (Root_dev_ino && (SAME_INODE (*Dir_statbuf, (Root_dev_ino)->single_slash) \
++ || SAME_INODE (*Dir_statbuf, (Root_dev_ino)->double_slash)))
+
+ # define ROOT_DEV_INO_WARN(Dirname) \
+ do \
+ { \
+- if (STREQ (Dirname, "/")) \
++ if (STREQ (Dirname, "/") || STREQ (Dirname, "//")) \
+ error (0, 0, _("it is dangerous to operate recursively on %s"), \
+ quote (Dirname)); \
+ else \
+--- coreutils-8.23/lib/same.c 2014-05-29 05:05:50.000000000 -0700
++++ coreutils-8.23/lib/same.c 2014-10-13 08:30:37.180881200 -0700
+@@ -40,6 +40,13 @@
+ #include "error.h"
+ #include "same-inode.h"
+
++#if __CYGWIN__
++# include <sys/cygwin.h>
++# include "cygwin.h"
++# include "malloca.h"
++# include "memcasecmp.h"
++#endif
++
+ #ifndef MIN
+ # define MIN(a, b) ((a) < (b) ? (a) : (b))
+ #endif
+@@ -59,6 +66,45 @@ same_name (const char *source, const cha
+ (source_baselen == dest_baselen
+ && memcmp (source_basename, dest_basename, dest_baselen) == 0);
+ bool compare_dirs = identical_basenames;
++#if __CYGWIN__
++ /* If two names differ case-insensitively by only an '.exe' suffix,
++ do some sleuthing to see if .exe magic matters on the shorter
++ name. Swapping the longer name to dest avoids duplication. */
++ if (source_baselen == dest_baselen + 4)
++ {
++ char const *tmp_basename = source_basename;
++ size_t tmp_baselen = source_baselen;
++ source_basename = dest_basename;
++ source_baselen = dest_baselen;
++ dest_basename = tmp_basename;
++ dest_baselen = tmp_baselen;
++ }
++ if (source_baselen + 4 == dest_baselen
++ && !memcasecmp (dest_basename - 4, ".exe", 4)
++ && !memcasecmp (source_basename, dest_basename, source_baselen)
++ && 0 < cygwin_spelling(source))
++ dest_baselen -= 4;
++ /* Some, but not all, files are case-insensitive (depending on mount
++ options, CYGWIN=case settings, and virtual file systems). Do
++ some sleuthing to decide whether case-insensitivity matters. */
++ if (! compare_dirs && source_baselen == dest_baselen)
++ {
++ ssize_t wsrclen = cygwin_conv_path (CCP_POSIX_TO_WIN_W,
++ source, NULL, 0);
++ ssize_t wdstlen = cygwin_conv_path (CCP_POSIX_TO_WIN_W,
++ dest, NULL, 0);
++ char *wsrc = malloca (wsrclen);
++ char *wdst = malloca (wdstlen);
++ if (cygwin_conv_path (CCP_POSIX_TO_WIN_W, source, wsrc, wsrclen))
++ error (EXIT_FAILURE, errno, "unable to convert path name %s", source);
++ if (cygwin_conv_path (CCP_POSIX_TO_WIN_W, dest, wdst, wdstlen))
++ error (EXIT_FAILURE, errno, "unable to convert path name %s", dest);
++ if (wsrclen == wdstlen && memcasecmp (wsrc, wdst, wsrclen) == 0)
++ compare_dirs = true;
++ freea (wsrc);
++ freea (wdst);
++ }
++#endif /* __CYGWIN__ */
+ bool same = false;
+
+ #if ! _POSIX_NO_TRUNC && HAVE_PATHCONF && defined _PC_NAME_MAX
+--- coreutils-8.23/lib/xfreopen.c 2014-05-29 05:05:50.000000000 -0700
++++ coreutils-8.23/lib/xfreopen.c 2014-10-13 08:30:37.180881200 -0700
+@@ -18,6 +18,7 @@
+ #include "xfreopen.h"
+
+ #include <errno.h>
++#include <fcntl.h>
+ #include "error.h"
+ #include "exitfail.h"
+ #include "quote.h"
+@@ -26,9 +27,17 @@
+ #include "gettext.h"
+ #define _(msgid) gettext (msgid)
+
++#define STREQ(s1, s2) (strcmp (s1, s2) == 0)
++
+ void
+ xfreopen (char const *filename, char const *mode, FILE *fp)
+ {
++ if (!filename && STREQ (mode, "wb"))
++ {
++ int flag = fcntl (fileno (fp), F_GETFL);
++ if (0 <= flag && (flag & O_APPEND))
++ mode = "ab";
++ }
+ if (!freopen (filename, mode, fp))
+ {
+ char const *f = (filename ? filename
+--- coreutils-8.23/chcon.c 2014-07-13 15:09:52.000000000 -0700
++++ coreutils-8.23/src/chcon.c 2014-10-13 08:30:37.180881200 -0700
+@@ -48,7 +48,7 @@ static bool verbose;
+
+ /* Pointer to the device and inode numbers of '/', when --recursive.
+ Otherwise NULL. */
+-static struct dev_ino *root_dev_ino;
++static struct root_dev_ino *root_dev_ino;
+
+ /* The name of the context file is being given. */
+ static char const *specified_context;
+@@ -569,7 +569,7 @@ main (int argc, char **argv)
+
+ if (recurse && preserve_root)
+ {
+- static struct dev_ino dev_ino_buf;
++ static struct root_dev_ino dev_ino_buf;
+ root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ if (root_dev_ino == NULL)
+ error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
+--- coreutils-8.23/chgrp.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/chgrp.c 2014-10-13 08:30:37.180881200 -0700
+@@ -299,7 +299,7 @@ main (int argc, char **argv)
+
+ if (chopt.recurse && preserve_root)
+ {
+- static struct dev_ino dev_ino_buf;
++ static struct root_dev_ino dev_ino_buf;
+ chopt.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ if (chopt.root_dev_ino == NULL)
+ error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
+--- coreutils-8.23/chmod.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/chmod.c 2014-10-13 08:30:37.180881200 -0700
+@@ -81,7 +81,7 @@ static enum Verbosity verbosity = V_off;
+
+ /* Pointer to the device and inode numbers of '/', when --recursive.
+ Otherwise NULL. */
+-static struct dev_ino *root_dev_ino;
++static struct root_dev_ino *root_dev_ino;
+
+ /* For long options that have no equivalent short option, use a
+ non-character as a pseudo short option, starting with CHAR_MAX + 1. */
+@@ -552,7 +552,7 @@ main (int argc, char **argv)
+
+ if (recurse && preserve_root)
+ {
+- static struct dev_ino dev_ino_buf;
++ static struct root_dev_ino dev_ino_buf;
+ root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ if (root_dev_ino == NULL)
+ error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
+--- coreutils-8.23/chown-core.h 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/chown-core.h 2014-10-13 08:30:37.196451900 -0700
+@@ -50,7 +50,7 @@ struct Chown_option
+
+ /* Pointer to the device and inode numbers of '/', when --recursive.
+ Need not be freed. Otherwise NULL. */
+- struct dev_ino *root_dev_ino;
++ struct root_dev_ino *root_dev_ino;
+
+ /* This corresponds to the --dereference (opposite of -h) option. */
+ bool affect_symlink_referent;
+--- coreutils-8.23/chown.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/chown.c 2014-10-13 08:30:37.196451900 -0700
+@@ -312,7 +312,7 @@ main (int argc, char **argv)
+
+ if (chopt.recurse && preserve_root)
+ {
+- static struct dev_ino dev_ino_buf;
++ static struct root_dev_ino dev_ino_buf;
+ chopt.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ if (chopt.root_dev_ino == NULL)
+ error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
+--- coreutils-8.23/chroot.c 2014-07-13 16:59:20.000000000 -0700
++++ coreutils-8.23/src/chroot.c 2014-10-13 08:30:37.196451900 -0700
+@@ -163,7 +163,7 @@ parse_additional_groups (char const *gro
+ static bool
+ is_root (const char* dir)
+ {
+- struct dev_ino root_ino;
++ struct root_dev_ino root_ino;
+ if (! get_root_dev_ino (&root_ino))
+ error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
+ quote ("/"));
+@@ -173,7 +173,7 @@ is_root (const char* dir)
+ error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
+ quote (dir));
+
+- return SAME_INODE (root_ino, arg_st);
++ return ROOT_DEV_INO_CHECK (&root_ino, &arg_st);
+ }
+
+ void
+--- coreutils-8.23/cksum.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/cksum.c 2014-10-13 08:30:37.196451900 -0700
+@@ -301,6 +301,9 @@ main (int argc, char **argv)
+
+ have_read_stdin = false;
+
++ if (O_BINARY)
++ xfreopen (NULL, "wb", stdout);
++
+ if (optind == argc)
+ ok = cksum ("-", false);
+ else
+--- coreutils-8.23/copy.c 2014-07-13 15:09:52.000000000 -0700
++++ coreutils-8.23/src/copy.c 2014-10-13 08:49:30.450181800 -0700
+@@ -70,6 +70,10 @@
+ # include "verror.h"
+ #endif
+
++#if __CYGWIN__
++# include "cygwin.h"
++#endif
++
+ #ifndef HAVE_FCHOWN
+ # define HAVE_FCHOWN false
+ # define fchown(fd, uid, gid) (-1)
+@@ -1313,7 +1317,11 @@ close_src_desc:
+ static bool
+ same_file_ok (char const *src_name, struct stat const *src_sb,
+ char const *dst_name, struct stat const *dst_sb,
+- const struct cp_options *x, bool *return_now, bool *unlink_src)
++ const struct cp_options *x, bool *return_now, bool *unlink_src
++#if __CYGWIN__
++ , bool *case_change
++#endif
++ )
+ {
+ const struct stat *src_sb_link;
+ const struct stat *dst_sb_link;
+@@ -1461,6 +1469,18 @@ same_file_ok (char const *src_name, stru
+ if (S_ISLNK (dst_sb_link->st_mode))
+ return true;
+
++#if __CYGWIN__
++ /* If the files have the same name, but differ in case, then let
++ rename() change the case. */
++ if (same_link && x->move_mode && same_name (src_name, dst_name)
++ && memcmp (last_component (src_name), last_component (dst_name),
++ base_len (src_name)) != 0)
++ {
++ *case_change = true;
++ return true;
++ }
++#endif /* __CYGWIN__ */
++
+ if (same_link
+ && 1 < dst_sb_link->st_nlink
+ && ! same_name (src_name, dst_name))
+@@ -1813,10 +1833,20 @@ copy_internal (char const *src_name, cha
+ && ! (x->move_mode || x->symbolic_link || x->hard_link
+ || x->backup_type != no_backups
+ || x->unlink_dest_before_opening));
+- if ((use_stat
+- ? stat (dst_name, &dst_sb)
+- : lstat (dst_name, &dst_sb))
+- != 0)
++ int res = (use_stat
++ ? stat (dst_name, &dst_sb)
++ : lstat (dst_name, &dst_sb));
++#if __CYGWIN__
++ /* stat("a") succeeds even if it was really "a.exe". */
++ if (! res && 0 < cygwin_spelling (dst_name))
++ {
++ /* Only DST_NAME.exe exists, but we want the non-existant
++ DST_NAME. */
++ res = -1;
++ errno = ENOENT;
++ }
++#endif /* __CYGWIN__ */
++ if (res != 0)
+ {
+ if (errno != ENOENT)
+ {
+@@ -1833,10 +1863,17 @@ copy_internal (char const *src_name, cha
+ that it is stat'able or lstat'able. */
+ bool return_now;
+ bool unlink_src;
++#if __CYGWIN__
++ bool case_change = false;
++#endif /* __CYGWIN__ */
+
+ have_dst_lstat = !use_stat;
+ if (! same_file_ok (src_name, &src_sb, dst_name, &dst_sb,
+- x, &return_now, &unlink_src))
++ x, &return_now, &unlink_src
++#if __CYGWIN__
++ , &case_change
++#endif
++))
+ {
+ error (0, 0, _("%s and %s are the same file"),
+ quote_n (0, src_name), quote_n (1, dst_name));
+@@ -1895,6 +1932,9 @@ copy_internal (char const *src_name, cha
+ cp and mv treat -i and -f differently. */
+ if (x->move_mode)
+ {
++#if __CYGWIN__
++ if (!case_change)
++#endif /* __CYGWIN__ */
+ if (abandon_move (x, dst_name, &dst_sb)
+ || (unlink_src && unlink (src_name) == 0))
+ {
+@@ -2058,7 +2098,11 @@ copy_internal (char const *src_name, cha
+ /* Never unlink dst_name when in move mode. */
+ && ! x->move_mode
+ && (x->unlink_dest_before_opening
+- || (x->preserve_links && 1 < dst_sb.st_nlink)
++ || (x->preserve_links && 1 < dst_sb.st_nlink
++#if __CYGWIN__
++ && !case_change
++#endif /* __CYGWIN__ */
++ )
+ || (x->dereference == DEREF_NEVER
+ && ! S_ISREG (src_sb.st_mode))
+ ))
+@@ -2816,6 +2860,21 @@ copy (char const *src_name, char const *
+ {
+ assert (valid_options (options));
+
++#if __CYGWIN__
++ /* .exe magic - if src exists with an implicit .exe suffix and is
++ not a symlink, but dst does not exist and was also specified
++ without a suffix, then append .exe to dst. */
++ int cygwin = cygwin_spelling (src_name);
++ char *p;
++ if (cygwin == 2
++ && ((p = strchr (dst_name, '\0') - 4) <= dst_name
++ || strcasecmp (p, ".exe") != 0))
++ {
++ cygwin = 3;
++ CYGWIN_APPEND_EXE (p, dst_name);
++ }
++#endif /* __CYGWIN__ */
++
+ /* Record the file names: they're used in case of error, when copying
+ a directory into itself. I don't like to make these tools do *any*
+ extra work in the common case when that work is solely to handle
+@@ -2827,10 +2886,15 @@ copy (char const *src_name, char const *
+ top_level_dst_name = dst_name;
+
+ bool first_dir_created_per_command_line_arg = false;
+- return copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
++ bool result = copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
+ options, true,
+ &first_dir_created_per_command_line_arg,
+ copy_into_self, rename_succeeded);
++#if __CYGWIN__
++ if (cygwin == 3)
++ freea ((char *) dst_name);
++#endif /* __CYGWIN__ */
++ return result;
+ }
+
+ /* Set *X to the default options for a value of type struct cp_options. */
+--- coreutils-8.23/dd.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/dd.c 2014-10-13 08:30:37.196451900 -0700
+@@ -37,6 +37,10 @@
+ #include "xstrtol.h"
+ #include "xtime.h"
+
++#if __CYGWIN__
++# include <io.h>
++#endif
++
+ /* The official name of this program (e.g., no 'g' prefix). */
+ #define PROGRAM_NAME "dd"
+
+@@ -1862,6 +1866,13 @@ copy_with_unblock (char const *buf, size
+ static void
+ set_fd_flags (int fd, int add_flags, char const *name)
+ {
++#if __CYGWIN__
++ /* Cygwin does not allow fcntl to set the mode. */
++ int mode_flags = add_flags & (O_BINARY | O_TEXT);
++ add_flags &= ~(O_BINARY | O_TEXT);
++ if (mode_flags && setmode (fd, mode_flags) == -1)
++ error (EXIT_FAILURE, errno, _("setting flags for %s"), quote (name));
++#endif /* __CYGWIN__ */
+ /* Ignore file creation flags that are no-ops on file descriptors. */
+ add_flags &= ~ (O_NOCTTY | O_NOFOLLOW);
+
+@@ -2242,6 +2253,8 @@ main (int argc, char **argv)
+ }
+ else
+ {
++ if ((input_flags & (O_BINARY | O_TEXT)) == 0)
++ input_flags |= O_BINARY;
+ if (fd_reopen (STDIN_FILENO, input_file, O_RDONLY | input_flags, 0) < 0)
+ error (EXIT_FAILURE, errno, _("failed to open %s"), quote (input_file));
+ }
+@@ -2264,6 +2277,8 @@ main (int argc, char **argv)
+ | (conversions_mask & C_NOCREAT ? 0 : O_CREAT)
+ | (conversions_mask & C_EXCL ? O_EXCL : 0)
+ | (seek_records || (conversions_mask & C_NOTRUNC) ? 0 : O_TRUNC));
++ if ((opts & (O_BINARY | O_TEXT)) == 0)
++ opts |= O_BINARY;
+
+ /* Open the output file with *read* access only if we might
+ need to read to satisfy a 'seek=' request. If we can't read
+--- coreutils-8.23/dircolors.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/dircolors.c 2014-10-13 08:30:37.196451900 -0700
+@@ -494,8 +494,12 @@ main (int argc, char **argv)
+ }
+ else
+ {
++ /* tcsh treats LS_COLORS as a magic shell variable for its
++ builtin ls-F, but does not recognize all the categories
++ that coreutils ls does. Therefore, silence stderr to
++ avoid messages like "Unknown colorls variable `su'.". */
+ prefix = "setenv LS_COLORS '";
+- suffix = "'\n";
++ suffix = "' >&/dev/null\n";
+ }
+ fputs (prefix, stdout);
+ fwrite (s, 1, len, stdout);
+--- coreutils-8.23/install.c 2014-07-13 15:09:52.000000000 -0700
++++ coreutils-8.23/src/install.c 2014-10-13 08:30:37.196451900 -0700
+@@ -44,6 +44,10 @@
+ #include "utimens.h"
+ #include "xstrtol.h"
+
++#if __CYGWIN__
++# include "cygwin.h"
++#endif
++
+ /* The official name of this program (e.g., no 'g' prefix). */
+ #define PROGRAM_NAME "install"
+
+@@ -531,6 +535,16 @@ strip (char const *name)
+ error (0, errno, _("fork system call failed"));
+ break;
+ case 0: /* Child. */
++#if __CYGWIN__
++ {
++ /* Check for .exe here, since strip doesn't. */
++ char *p;
++ if (((p = strchr (name, '\0') - 4) <= name
++ || strcasecmp (p, ".exe") != 0)
++ && 0 < cygwin_spelling (name))
++ CYGWIN_APPEND_EXE (p, name);
++ }
++#endif /* __CYGWIN__ */
+ execlp (strip_program, strip_program, name, NULL);
+ error (EXIT_FAILURE, errno, _("cannot run %s"), strip_program);
+ break;
+--- coreutils-8.23/ls.c 2014-07-13 15:09:52.000000000 -0700
++++ coreutils-8.23/src/ls.c 2014-10-13 08:30:37.196451900 -0700
+@@ -117,6 +117,10 @@
+ # include <sys/capability.h>
+ #endif
+
++#if __CYGWIN__
++# include "cygwin.h"
++#endif
++
+ #define PROGRAM_NAME (ls_mode == LS_LS ? "ls" \
+ : (ls_mode == LS_MULTI_COL \
+ ? "dir" : "vdir"))
+@@ -747,6 +751,11 @@ static char const *long_time_format[2] =
+ N_("%b %e %H:%M")
+ };
+
++#if __CYGWIN__
++/* Whether .exe should be appended to command-line args as needed. */
++static bool append_exe;
++#endif /* __CYGWIN__ */
++
+ /* The set of signals that are caught. */
+
+ static sigset_t caught_signals;
+@@ -782,6 +791,9 @@ enum
+ enum
+ {
+ AUTHOR_OPTION = CHAR_MAX + 1,
++#if __CYGWIN__
++ APPEND_EXE_OPTION,
++#endif /* __CYGWIN__ */
+ BLOCK_SIZE_OPTION,
+ COLOR_OPTION,
+ DEREFERENCE_COMMAND_LINE_SYMLINK_TO_DIR_OPTION,
+@@ -843,6 +855,9 @@ static struct option const long_options[
+ {"block-size", required_argument, NULL, BLOCK_SIZE_OPTION},
+ {"context", no_argument, 0, 'Z'},
+ {"author", no_argument, NULL, AUTHOR_OPTION},
++#if __CYGWIN__
++ {"append-exe", no_argument, NULL, APPEND_EXE_OPTION},
++#endif /* __CYGWIN__ */
+ {GETOPT_HELP_OPTION_DECL},
+ {GETOPT_VERSION_OPTION_DECL},
+ {NULL, 0, NULL, 0}
+@@ -1954,6 +1969,12 @@ decode_switches (int argc, char **argv)
+ print_scontext = true;
+ break;
+
++#if __CYGWIN__
++ case APPEND_EXE_OPTION:
++ append_exe = true;
++ break;
++#endif /* __CYGWIN__ */
++
+ case_GETOPT_HELP_CHAR;
+
+ case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
+@@ -2924,6 +2945,12 @@ gobble_file (char const *name, enum file
+ uintmax_t blocks = 0;
+ struct fileinfo *f;
+
++#if __CYGWIN__
++ char *name_alt = NULL;
++ if (command_line_arg && append_exe && 0 < cygwin_spelling (name))
++ CYGWIN_APPEND_EXE (name_alt, name);
++#endif /* __CYGWIN__ */
++
+ /* An inode value prior to gobble_file necessarily came from readdir,
+ which is not used for command line arguments. */
+ assert (! command_line_arg || inode == NOT_AN_INODE_NUMBER);
+@@ -3035,11 +3062,19 @@ gobble_file (char const *name, enum file
+ file_failure (command_line_arg,
+ _("cannot access %s"), absolute_name);
+ if (command_line_arg)
+- return 0;
++ {
++#if __CYGWIN__
++ freea (name_alt);
++#endif /* __CYGWIN__ */
++ return 0;
++ }
+
+ f->name = xstrdup (name);
+ cwd_n_used++;
+
++#if __CYGWIN__
++ freea (name_alt);
++#endif /* __CYGWIN__ */
+ return 0;
+ }
+
+@@ -3223,6 +3258,9 @@ gobble_file (char const *name, enum file
+ f->name = xstrdup (name);
+ cwd_n_used++;
+
++#if __CYGWIN__
++ freea (name_alt);
++#endif /* __CYGWIN__ */
+ return blocks;
+ }
+
+@@ -4923,6 +4961,11 @@ Sort entries alphabetically if none of -
+ -Z, --context print any security context of each file\n\
+ -1 list one file per line\n\
+ "), stdout);
++#if __CYGWIN__
++ fputs (_("\
++ --append-exe append .exe if cygwin magic was needed\n\
++"), stdout);
++#endif /* __CYGWIN__ */
+ fputs (HELP_OPTION_DESCRIPTION, stdout);
+ fputs (VERSION_OPTION_DESCRIPTION, stdout);
+ emit_size_note ();
+--- coreutils-8.23/md5sum.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/md5sum.c 2014-10-13 08:30:37.212072800 -0700
+@@ -813,6 +813,9 @@ main (int argc, char **argv)
+ if (optind == argc)
+ argv[argc++] = bad_cast ("-");
+
++ if (O_BINARY)
++ xfreopen (NULL, "wb", stdout);
++
+ for (; optind < argc; ++optind)
+ {
+ char *file = argv[optind];
+--- coreutils-8.23/mv.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/mv.c 2014-10-13 08:30:37.212072800 -0700
+@@ -92,7 +92,7 @@ rm_option_init (struct rm_options *x)
+ x->require_restore_cwd = true;
+
+ {
+- static struct dev_ino dev_ino_buf;
++ static struct root_dev_ino dev_ino_buf;
+ x->root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ if (x->root_dev_ino == NULL)
+ error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
+@@ -467,6 +467,16 @@ main (int argc, char **argv)
+ else if (!target_directory)
+ {
+ assert (2 <= n_files);
++#if __CYGWIN__
++ struct stat s1, s2;
++ if (2 == n_files
++ && lstat (file[0], &s1) == 0 && lstat (file[1], &s2) == 0
++ && s1.st_ino == s2.st_ino)
++ {
++ /* Allow 'mv foo Foo' to change case of the directory foo. */
++ }
++ else
++#endif /* __CYGWIN__ */
+ if (target_directory_operand (file[n_files - 1]))
+ target_directory = file[--n_files];
+ else if (2 < n_files)
+--- coreutils-8.23/pwd.c 2014-07-13 15:09:52.000000000 -0700
++++ coreutils-8.23/src/pwd.c 2014-10-13 08:30:37.212072800 -0700
+@@ -268,8 +268,8 @@ static void
+ robust_getcwd (struct file_name *file_name)
+ {
+ size_t height = 1;
+- struct dev_ino dev_ino_buf;
+- struct dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
++ struct root_dev_ino dev_ino_buf;
++ struct root_dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ struct stat dot_sb;
+
+ if (root_dev_ino == NULL)
+@@ -282,7 +282,7 @@ robust_getcwd (struct file_name *file_na
+ while (1)
+ {
+ /* If we've reached the root, we're done. */
+- if (SAME_INODE (dot_sb, *root_dev_ino))
++ if (ROOT_DEV_INO_CHECK (root_dev_ino, &dot_sb))
+ break;
+
+ find_dir_entry (&dot_sb, file_name, height++);
+@@ -291,6 +291,9 @@ robust_getcwd (struct file_name *file_na
+ /* See if a leading slash is needed; file_name_prepend adds one. */
+ if (file_name->start[0] == '\0')
+ file_name_prepend (file_name, "", 0);
++ /* If we aren't in `/', we must be in `//'. */
++ if (! SAME_INODE (root_dev_ino->single_slash, dot_sb))
++ file_name_prepend (file_name, "", 0);
+ }
+
+
+--- coreutils-8.23/remove.h 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/remove.h 2014-10-13 08:30:37.212072800 -0700
+@@ -54,7 +54,7 @@ struct rm_options
+
+ /* Pointer to the device and inode numbers of '/', when --recursive
+ and preserving '/'. Otherwise NULL. */
+- struct dev_ino *root_dev_ino;
++ struct root_dev_ino *root_dev_ino;
+
+ /* If nonzero, stdin is a tty. */
+ bool stdin_tty;
+--- coreutils-8.23/rm.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/rm.c 2014-10-13 08:30:37.212072800 -0700
+@@ -325,7 +325,7 @@ main (int argc, char **argv)
+
+ if (x.recursive && preserve_root)
+ {
+- static struct dev_ino dev_ino_buf;
++ static struct root_dev_ino dev_ino_buf;
+ x.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
+ if (x.root_dev_ino == NULL)
+ error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
+--- coreutils-8.23/stat.c 2014-07-11 04:00:07.000000000 -0700
++++ coreutils-8.23/src/stat.c 2014-10-13 08:30:37.212072800 -0700
+@@ -73,6 +73,13 @@
+ #include "find-mount-point.h"
+ #include "xvasprintf.h"
+
++#if __CYGWIN__
++# include "cygwin.h"
++/* Whether .exe should be appended to command-line args as needed. */
++static bool append_exe;
++# define APPEND_EXE_OPTION 10000
++#endif
++
+ #if USE_STATVFS
+ # define STRUCT_STATVFS struct statvfs
+ # define STRUCT_STATXFS_F_FSID_IS_INTEGER STRUCT_STATVFS_F_FSID_IS_INTEGER
+@@ -189,6 +196,9 @@ static struct option const long_options[
+ {"format", required_argument, NULL, 'c'},
+ {"printf", required_argument, NULL, PRINTF_OPTION},
+ {"terse", no_argument, NULL, 't'},
++#if __CYGWIN__
++ {"append-exe", no_argument, NULL, APPEND_EXE_OPTION},
++#endif /* __CYGWIN__ */
+ {GETOPT_HELP_OPTION_DECL},
+ {GETOPT_VERSION_OPTION_DECL},
+ {NULL, 0, NULL, 0}
+@@ -1264,14 +1274,26 @@ do_statfs (char const *filename, char co
+ return false;
+ }
+
++#if __CYGWIN__
++ char *name_alt = NULL;
++ if (append_exe && 0 < cygwin_spelling (filename))
++ CYGWIN_APPEND_EXE (name_alt, filename);
++#endif /* __CYGWIN__ */
++
+ if (STATFS (filename, &statfsbuf) != 0)
+ {
+ error (0, errno, _("cannot read file system information for %s"),
+ quote (filename));
++#if __CYGWIN__
++ freea (name_alt);
++#endif /* __CYGWIN__ */
+ return false;
+ }
+
+ bool fail = print_it (format, -1, filename, print_statfs, &statfsbuf);
++#if __CYGWIN__
++ freea (name_alt);
++#endif /* __CYGWIN__ */
+ return ! fail;
+ }
+
+@@ -1282,6 +1304,7 @@ do_stat (char const *filename, char cons
+ {
+ int fd = STREQ (filename, "-") ? 0 : -1;
+ struct stat statbuf;
++ char *name_alt = NULL;
+
+ if (0 <= fd)
+ {
+@@ -1294,18 +1317,29 @@ do_stat (char const *filename, char cons
+ /* We can't use the shorter
+ (follow_links?stat:lstat) (filename, &statbug)
+ since stat might be a function-like macro. */
+- else if ((follow_links
+- ? stat (filename, &statbuf)
+- : lstat (filename, &statbuf)) != 0)
++ else
+ {
+- error (0, errno, _("cannot stat %s"), quote (filename));
+- return false;
++ if ((follow_links
++ ? stat (filename, &statbuf)
++ : lstat (filename, &statbuf)) != 0)
++ {
++ error (0, errno, _("cannot stat %s"), quote (filename));
++ return false;
++ }
++
++#if __CYGWIN__
++ if (append_exe && 0 < cygwin_spelling (filename))
++ CYGWIN_APPEND_EXE (name_alt, filename);
++#endif /* __CYGWIN__ */
+ }
+
+ if (S_ISBLK (statbuf.st_mode) || S_ISCHR (statbuf.st_mode))
+ format = format2;
+
+ bool fail = print_it (format, fd, filename, print_stat, &statbuf);
++#if __CYGWIN__
++ freea (name_alt);
++#endif /* __CYGWIN__ */
+ return ! fail;
+ }
+
+@@ -1427,6 +1461,11 @@ Display file or file system status.\n\
+ if you want a newline, include \\n in FORMAT\n\
+ -t, --terse print the information in terse form\n\
+ "), stdout);
++#if __CYGWIN__
++ fputs (_("\
++ --append-exe append .exe if cygwin magic was needed\n\
++"), stdout);
++#endif /* __CYGWIN__ */
+ fputs (HELP_OPTION_DESCRIPTION, stdout);
+ fputs (VERSION_OPTION_DESCRIPTION, stdout);
+
+@@ -1547,6 +1586,12 @@ main (int argc, char *argv[])
+ terse = true;
+ break;
+
++#if __CYGWIN__
++ case APPEND_EXE_OPTION:
++ append_exe = true;
++ break;
++#endif /* __CYGWIN__ */
++
+ case_GETOPT_HELP_CHAR;
+
+ case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-android-cross.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-android-cross.patch
new file mode 100644
index 000000000000..97d95d1c5b19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-android-cross.patch
@@ -0,0 +1,51 @@
+From 3bd82a82cf4ba693d2c31c7b95aaec4e56dc92a4 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Mon, 11 Mar 2019 16:40:29 -0700
+Subject: [PATCH 1/1] strtod: fix clash with strtold
+
+Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817).
+* lib/strtod.c (compute_minus_zero, minus_zero):
+Simplify by remving the macro / external variable,
+and having just a function. User changed. This avoids
+the need for an external variable that might clash.
+---
+ ChangeLog | 9 +++++++++
+ lib/strtod.c | 11 +++++------
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/lib/strtod.c b/lib/strtod.c
+index b9eaa51..69b1564 100644
+--- a/lib/strtod.c
++++ b/lib/strtod.c
+@@ -294,16 +294,15 @@ parse_number (const char *nptr,
+ ICC 10.0 has a bug when optimizing the expression -zero.
+ The expression -MIN * MIN does not work when cross-compiling
+ to PowerPC on Mac OS X 10.5. */
+-#if defined __hpux || defined __sgi || defined __ICC
+ static DOUBLE
+-compute_minus_zero (void)
++minus_zero (void)
+ {
++#if defined __hpux || defined __sgi || defined __ICC
+ return -MIN * MIN;
+-}
+-# define minus_zero compute_minus_zero ()
+ #else
+-DOUBLE minus_zero = -0.0;
++ return -0.0;
+ #endif
++}
+
+ /* Convert NPTR to a DOUBLE. If ENDPTR is not NULL, a pointer to the
+ character after the last one used in the number is put in *ENDPTR. */
+@@ -479,6 +478,6 @@ STRTOD (const char *nptr, char **endptr)
+ /* Special case -0.0, since at least ICC miscompiles negation. We
+ can't use copysign(), as that drags in -lm on some platforms. */
+ if (!num && negative)
+- return minus_zero;
++ return minus_zero ();
+ return negative ? -num : num;
+ }
+--
+1.9.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-musl-cross.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-musl-cross.patch
new file mode 100644
index 000000000000..02b0b85db312
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.31-musl-cross.patch
@@ -0,0 +1,1153 @@
+From 453ff940449bbbde9ec00f0bbf82a359c5598fc7 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Sat, 23 Mar 2019 23:00:52 +0100
+Subject: [PATCH 1/1] Support cross-compilation to musl libc.
+
+Reported by Necktwi Ozfguah <necktwi@ferryfair.com>.
+
+* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Add cross-compilation guesses for
+musl libc.
+* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise.
+* m4/chown.m4 (gl_FUNC_CHOWN): Likewise.
+* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
+* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise.
+* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
+* m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise.
+* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
+* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
+* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
+* m4/getgroups.m4 (AC_FUNC_GETGROUPS, gl_FUNC_GETGROUPS): Likewise.
+* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
+* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Likewise.
+* m4/hypot.m4 (gl_FUNC_HYPOT): Likewise. // removed
+* m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise. // removed
+* m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise. // removed
+* m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Likewise. // removed
+* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Likewise.
+* m4/log.m4 (gl_FUNC_LOG): Likewise. // removed
+* m4/logf.m4 (gl_FUNC_LOGF): Likewise. // removed
+* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise. // removed
+* m4/log10.m4 (gl_FUNC_LOG10): Likewise. // removed
+* m4/log10f.m4 (gl_FUNC_LOG10F): Likewise. // removed
+* m4/log10l.m4 (gl_FUNC_LOG10L): Likewise. // removed
+* m4/log1p.m4 (gl_FUNC_LOG1P): Likewise. // removed
+* m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise. // removed
+* m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise. // removed
+* m4/log2.m4 (gl_FUNC_LOG2): Likewise. // removed
+* m4/log2f.m4 (gl_FUNC_LOG2F): Likewise. // removed
+* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Likewise.
+* m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
+* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
+* m4/modf.m4 (gl_FUNC_MODF): Likewise. // removed
+* m4/modff.m4 (gl_FUNC_MODFF): Likewise. // removed
+* m4/modfl.m4 (gl_FUNC_MODFL): Likewise. // removed
+* m4/perror.m4 (gl_FUNC_PERROR): Likewise.
+* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE,
+gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A,
+gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO, gl_SNPRINTF_TRUNCATION_C99,
+gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N,
+gl_VSNPRINTF_ZEROSIZE_C99): Likewise.
+* m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise. // removed
+* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
+* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise.
+* m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise. // removed
+* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise. // removed
+* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise. // removed
+* m4/rintl.m4 (gl_FUNC_RINTL): Likewise. // removed
+* m4/round.m4 (gl_FUNC_ROUND): Likewise. // removed
+* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. // removed
+* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. // removed
+* m4/setenv.m4 (gl_FUNC_SETENV): Likewise.
+* m4/signbit.m4 (gl_SIGNBIT): Likewise.
+* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
+* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
+* m4/strerror.m4 (gl_FUNC_STRERROR, gl_FUNC_STRERROR_0): Likewise.
+* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
+* m4/strtold.m4 (gl_FUNC_STRTOLD): Likewise.
+* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. // removed
+* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. // removed
+* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. // removed
+* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise.
+* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise.
+* m4/usleep.m4 (gl_FUNC_USLEEP): Likewise.
+* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
+* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
+---
+ m4/calloc.m4 | 4 ++-
+ m4/canonicalize.m4 | 4 ++-
+ m4/chown.m4 | 22 +++++++------
+ m4/d-ino.m4 | 16 +++++-----
+ m4/fdopendir.m4 | 12 ++++---
+ m4/fnmatch.m4 | 18 ++++++++---
+ m4/fpurge.m4 | 24 +++++++++-----
+ m4/getcwd-abort-bug.m4 | 11 +++++--
+ m4/getcwd.m4 | 4 ++-
+ m4/getdelim.m4 | 40 ++++++++++++++----------
+ m4/getgroups.m4 | 6 +++-
+ m4/getline.m4 | 38 +++++++++++++---------
+ m4/gettimeofday.m4 | 4 ++-
+ m4/link-follow.m4 | 4 ++-
+ m4/malloc.m4 | 4 +--
+ m4/mkdir.m4 | 4 ++-
+ m4/mkstemp.m4 | 4 ++-
+ m4/perror.m4 | 12 ++++---
+ m4/printf.m4 | 22 ++++++++++++-
+ m4/putenv.m4 | 4 ++-
+ m4/realloc.m4 | 4 +--
+ m4/setenv.m4 | 4 ++-
+ m4/signbit.m4 | 6 +++-
+ m4/sleep.m4 | 4 ++-
+ m4/stpncpy.m4 | 14 +++++++--
+ m4/strerror.m4 | 6 +++-
+ m4/strtod.m4 | 10 +++---
+ m4/strtold.m4 | 9 ++++--
+ m4/tzset.m4 | 4 ++-
+ m4/ungetc.m4 | 18 ++++++-----
+ m4/usleep.m4 | 4 ++-
+ m4/utimes.m4 | 10 +++---
+ m4/wcwidth.m4 | 12 ++++---
+ 76 files changed, 461 insertions(+), 157 deletions(-)
+
+diff --git a/m4/calloc.m4 b/m4/calloc.m4
+index 012a5bf..d76535d 100644
+--- a/m4/calloc.m4
++++ b/m4/calloc.m4
+@@ -1,4 +1,4 @@
+-# calloc.m4 serial 18
++# calloc.m4 serial 19
+
+ # Copyright (C) 2004-2019 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+@@ -40,6 +40,8 @@ AC_DEFUN([_AC_FUNC_CALLOC_IF],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/canonicalize.m4 b/m4/canonicalize.m4
+index 5b6e25d..b61747b 100644
+--- a/m4/canonicalize.m4
++++ b/m4/canonicalize.m4
+@@ -1,4 +1,4 @@
+-# canonicalize.m4 serial 29
++# canonicalize.m4 serial 30
+
+ dnl Copyright (C) 2003-2007, 2009-2019 Free Software Foundation, Inc.
+
+@@ -113,6 +113,8 @@ AC_DEFUN([gl_FUNC_REALPATH_WORKS],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_realpath_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_realpath_works="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/chown.m4 b/m4/chown.m4
+index ecfc0c0..b798325 100644
+--- a/m4/chown.m4
++++ b/m4/chown.m4
+@@ -1,4 +1,4 @@
+-# serial 30
++# serial 32
+ # Determine whether we need the chown wrapper.
+
+ dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2019 Free Software
+@@ -109,10 +109,12 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN],
+ [gl_cv_func_chown_slash_works=yes],
+ [gl_cv_func_chown_slash_works=no],
+ [case "$host_os" in
+- # Guess yes on glibc systems.
+- *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;;
+- # If we don't know, assume the worst.
+- *) gl_cv_func_chown_slash_works="guessing no" ;;
++ # Guess yes on glibc systems.
++ *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_chown_slash_works="guessing yes" ;;
++ # If we don't know, assume the worst.
++ *) gl_cv_func_chown_slash_works="guessing no" ;;
+ esac
+ ])
+ rm -f conftest.link conftest.file])
+@@ -145,10 +147,12 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN],
+ [gl_cv_func_chown_ctime_works=yes],
+ [gl_cv_func_chown_ctime_works=no],
+ [case "$host_os" in
+- # Guess yes on glibc systems.
+- *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;;
+- # If we don't know, assume the worst.
+- *) gl_cv_func_chown_ctime_works="guessing no" ;;
++ # Guess yes on glibc systems.
++ *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_chown_ctime_works="guessing yes" ;;
++ # If we don't know, assume the worst.
++ *) gl_cv_func_chown_ctime_works="guessing no" ;;
+ esac
+ ])
+ rm -f conftest.file])
+diff --git a/m4/d-ino.m4 b/m4/d-ino.m4
+index f1420cc..87dcacc 100644
+--- a/m4/d-ino.m4
++++ b/m4/d-ino.m4
+@@ -1,4 +1,4 @@
+-# serial 18
++# serial 19
+
+ dnl From Jim Meyering.
+ dnl
+@@ -40,12 +40,14 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
+ [gl_cv_struct_dirent_d_ino=yes],
+ [gl_cv_struct_dirent_d_ino=no],
+ [case "$host_os" in
+- # Guess yes on glibc systems with Linux kernel.
+- linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+- # Guess no on native Windows.
+- mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;;
+- # If we don't know, assume the worst.
+- *) gl_cv_struct_dirent_d_ino="guessing no" ;;
++ # Guess yes on glibc systems with Linux kernel.
++ linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
++ # Guess yes on musl systems with Linux kernel.
++ linux*-musl*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
++ # Guess no on native Windows.
++ mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;;
++ # If we don't know, assume the worst.
++ *) gl_cv_struct_dirent_d_ino="guessing no" ;;
+ esac
+ ])])
+ case "$gl_cv_struct_dirent_d_ino" in
+diff --git a/m4/fdopendir.m4 b/m4/fdopendir.m4
+index 0490551..b2b3b03 100644
+--- a/m4/fdopendir.m4
++++ b/m4/fdopendir.m4
+@@ -1,4 +1,4 @@
+-# serial 10
++# serial 11
+ # See if we need to provide fdopendir.
+
+ dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
+@@ -45,10 +45,12 @@ DIR *fdopendir (int);
+ [gl_cv_func_fdopendir_works=yes],
+ [gl_cv_func_fdopendir_works=no],
+ [case "$host_os" in
+- # Guess yes on glibc systems.
+- *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+- # If we don't know, assume the worst.
+- *) gl_cv_func_fdopendir_works="guessing no" ;;
++ # Guess yes on glibc systems.
++ *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_fdopendir_works="guessing yes" ;;
++ # If we don't know, assume the worst.
++ *) gl_cv_func_fdopendir_works="guessing no" ;;
+ esac
+ ])])
+ case "$gl_cv_func_fdopendir_works" in
+diff --git a/m4/fnmatch.m4 b/m4/fnmatch.m4
+index c264ca7..75ba55b 100644
+--- a/m4/fnmatch.m4
++++ b/m4/fnmatch.m4
+@@ -1,4 +1,4 @@
+-# Check for fnmatch - serial 13. -*- coding: utf-8 -*-
++# Check for fnmatch - serial 14. -*- coding: utf-8 -*-
+
+ # Copyright (C) 2000-2007, 2009-2019 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+@@ -14,6 +14,7 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX],
+ m4_divert_text([DEFAULTS], [gl_fnmatch_required=POSIX])
+
+ AC_REQUIRE([gl_FNMATCH_H])
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ gl_fnmatch_required_lowercase=`
+ echo $gl_fnmatch_required | LC_ALL=C tr '[[A-Z]]' '[[a-z]]'
+ `
+@@ -117,12 +118,19 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX],
+ ]])],
+ [eval "$gl_fnmatch_cache_var=yes"],
+ [eval "$gl_fnmatch_cache_var=no"],
+- [eval "$gl_fnmatch_cache_var=\"guessing no\""])
++ [case "$host_os" in
++ # Guess yes on musl systems.
++ *-musl*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;;
++ # Guess no otherwise, even on glibc systems.
++ *) eval "$gl_fnmatch_cache_var=\"guessing no\"" ;;
++ esac
++ ])
+ ])
+ eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
+- if test "$gl_fnmatch_result" != yes; then
+- REPLACE_FNMATCH=1
+- fi
++ case "$gl_fnmatch_result" in
++ *yes) ;;
++ *) REPLACE_FNMATCH=1 ;;
++ esac
+ fi
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
+ gl_REPLACE_FNMATCH_H
+diff --git a/m4/fpurge.m4 b/m4/fpurge.m4
+index cb21f56..6c5b3e9 100644
+--- a/m4/fpurge.m4
++++ b/m4/fpurge.m4
+@@ -1,4 +1,4 @@
+-# fpurge.m4 serial 8
++# fpurge.m4 serial 9
+ dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -7,12 +7,13 @@ dnl with or without modifications, as long as this notice is preserved.
+ AC_DEFUN([gl_FUNC_FPURGE],
+ [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_FUNCS_ONCE([fpurge])
+ AC_CHECK_FUNCS_ONCE([__fpurge])
+ AC_CHECK_DECLS([fpurge], , , [[#include <stdio.h>]])
+ if test "x$ac_cv_func_fpurge" = xyes; then
+ HAVE_FPURGE=1
+- # Detect BSD bug. Only cygwin 1.7 is known to be immune.
++ # Detect BSD bug. Only cygwin 1.7 and musl are known to be immune.
+ AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+@@ -48,11 +49,20 @@ AC_DEFUN([gl_FUNC_FPURGE],
+ return 13;
+ return 0;
+ ])],
+- [gl_cv_func_fpurge_works=yes], [gl_cv_func_fpurge_works=no],
+- [gl_cv_func_fpurge_works='guessing no'])])
+- if test "x$gl_cv_func_fpurge_works" != xyes; then
+- REPLACE_FPURGE=1
+- fi
++ [gl_cv_func_fpurge_works=yes],
++ [gl_cv_func_fpurge_works=no],
++ [case "$host_os" in
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_fpurge_works="guessing yes" ;;
++ # Guess no otherwise.
++ *) gl_cv_func_fpurge_works="guessing no" ;;
++ esac
++ ])
++ ])
++ case "$gl_cv_func_fpurge_works" in
++ *yes) ;;
++ *) REPLACE_FPURGE=1 ;;
++ esac
+ else
+ HAVE_FPURGE=0
+ fi
+diff --git a/m4/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4
+index f0f24a5..7227f08 100644
+--- a/m4/getcwd-abort-bug.m4
++++ b/m4/getcwd-abort-bug.m4
+@@ -1,4 +1,4 @@
+-# serial 9
++# serial 11
+ # Determine whether getcwd aborts when the length of the working directory
+ # name is unusually large. Any length between 4k and 16k trigger the bug
+ # when using glibc-2.4.90-9 or older.
+@@ -13,6 +13,7 @@
+ # gl_FUNC_GETCWD_ABORT_BUG([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+ AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
+ [
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_DECLS_ONCE([getcwd])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+@@ -142,7 +143,13 @@ main ()
+ else
+ gl_cv_func_getcwd_abort_bug=no
+ fi],
+- [gl_cv_func_getcwd_abort_bug=yes])
++ [case "$host_os" in
++ # Guess no on musl systems.
++ *-musl*) gl_cv_func_getcwd_abort_bug="guessing no" ;;
++ # Guess yes otherwise, even on glibc systems.
++ *) gl_cv_func_getcwd_abort_bug="guessing yes"
++ esac
++ ])
+ ])
+ AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2])
+ ])
+diff --git a/m4/getcwd.m4 b/m4/getcwd.m4
+index 4929b51..625171a 100644
+--- a/m4/getcwd.m4
++++ b/m4/getcwd.m4
+@@ -6,7 +6,7 @@
+ # with or without modifications, as long as this notice is preserved.
+
+ # Written by Paul Eggert.
+-# serial 16
++# serial 17
+
+ AC_DEFUN([gl_FUNC_GETCWD_NULL],
+ [
+@@ -50,6 +50,8 @@ AC_DEFUN([gl_FUNC_GETCWD_NULL],
+ [[case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_getcwd_null="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+ # If we don't know, assume the worst.
+diff --git a/m4/getdelim.m4 b/m4/getdelim.m4
+index bf17c57..e77c379 100644
+--- a/m4/getdelim.m4
++++ b/m4/getdelim.m4
+@@ -1,4 +1,4 @@
+-# getdelim.m4 serial 12
++# getdelim.m4 serial 13
+
+ dnl Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc.
+ dnl
+@@ -11,6 +11,7 @@ AC_PREREQ([2.59])
+ AC_DEFUN([gl_FUNC_GETDELIM],
+ [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Persuade glibc <stdio.h> to declare getdelim().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+@@ -21,9 +22,10 @@ AC_DEFUN([gl_FUNC_GETDELIM],
+ if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
+ dnl Found it in some library. Verify that it works.
+- AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim],
+- [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
++ AC_CACHE_CHECK([for working getdelim function],
++ [gl_cv_func_working_getdelim],
++ [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
++ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ # include <stdio.h>
+ # include <stdlib.h>
+ # include <string.h>
+@@ -53,25 +55,31 @@ AC_DEFUN([gl_FUNC_GETDELIM],
+ fclose (in);
+ return 0;
+ }
+- ]])], [gl_cv_func_working_getdelim=yes] dnl The library version works.
+- , [gl_cv_func_working_getdelim=no] dnl The library version does NOT work.
+- , dnl We're cross compiling. Assume it works on glibc2 systems.
+- [AC_EGREP_CPP([Lucky GNU user],
+- [
++ ]])],
++ [gl_cv_func_working_getdelim=yes],
++ [gl_cv_func_working_getdelim=no],
++ [dnl We're cross compiling.
++ dnl Guess it works on glibc2 systems and musl systems.
++ AC_EGREP_CPP([Lucky GNU user],
++ [
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+ #endif
+- ],
+- [gl_cv_func_working_getdelim="guessing yes"],
+- [gl_cv_func_working_getdelim="guessing no"])]
+- )])
++ ],
++ [gl_cv_func_working_getdelim="guessing yes"],
++ [case "$host_os" in
++ *-musl*) gl_cv_func_working_getdelim="guessing yes" ;;
++ *) gl_cv_func_working_getdelim="guessing no" ;;
++ esac
++ ])
++ ])
++ ])
+ case "$gl_cv_func_working_getdelim" in
+- *no)
+- REPLACE_GETDELIM=1
+- ;;
++ *yes) ;;
++ *) REPLACE_GETDELIM=1 ;;
+ esac
+ else
+ HAVE_GETDELIM=0
+diff --git a/m4/getgroups.m4 b/m4/getgroups.m4
+index 2ce986e..c93447b 100644
+--- a/m4/getgroups.m4
++++ b/m4/getgroups.m4
+@@ -1,4 +1,4 @@
+-# serial 21
++# serial 22
+
+ dnl From Jim Meyering.
+ dnl A wrapper around AC_FUNC_GETGROUPS.
+@@ -42,6 +42,8 @@ AC_DEFUN([AC_FUNC_GETGROUPS],
+ [case "$host_os" in # ((
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) ac_cv_func_getgroups_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) ac_cv_func_getgroups_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_getgroups_works="guessing no" ;;
+ esac
+@@ -95,6 +97,8 @@ AC_DEFUN([gl_FUNC_GETGROUPS],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_getgroups_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_getgroups_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_getgroups_works="guessing no" ;;
+ esac
+diff --git a/m4/getline.m4 b/m4/getline.m4
+index 5b2ead2..32f771c 100644
+--- a/m4/getline.m4
++++ b/m4/getline.m4
+@@ -1,4 +1,4 @@
+-# getline.m4 serial 28
++# getline.m4 serial 29
+
+ dnl Copyright (C) 1998-2003, 2005-2007, 2009-2019 Free Software Foundation,
+ dnl Inc.
+@@ -16,6 +16,7 @@ dnl to do with the function we need.
+ AC_DEFUN([gl_FUNC_GETLINE],
+ [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Persuade glibc <stdio.h> to declare getline().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+@@ -28,9 +29,10 @@ AC_DEFUN([gl_FUNC_GETLINE],
+ gl_getline_needs_run_time_check=yes],
+ [am_cv_func_working_getline=no])
+ if test $gl_getline_needs_run_time_check = yes; then
+- AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline],
+- [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
++ AC_CACHE_CHECK([for working getline function],
++ [am_cv_func_working_getline],
++ [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
++ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ # include <stdio.h>
+ # include <stdlib.h>
+ # include <string.h>
+@@ -61,21 +63,28 @@ AC_DEFUN([gl_FUNC_GETLINE],
+ fclose (in);
+ return 0;
+ }
+- ]])], [am_cv_func_working_getline=yes] dnl The library version works.
+- , [am_cv_func_working_getline=no] dnl The library version does NOT work.
+- , dnl We're cross compiling. Assume it works on glibc2 systems.
+- [AC_EGREP_CPP([Lucky GNU user],
+- [
++ ]])],
++ [am_cv_func_working_getline=yes],
++ [am_cv_func_working_getline=no],
++ [dnl We're cross compiling.
++ dnl Guess it works on glibc2 systems and musl systems.
++ AC_EGREP_CPP([Lucky GNU user],
++ [
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+ #endif
+- ],
+- [am_cv_func_working_getline="guessing yes"],
+- [am_cv_func_working_getline="guessing no"])]
+- )])
++ ],
++ [am_cv_func_working_getline="guessing yes"],
++ [case "$host_os" in
++ *-musl*) am_cv_func_working_getline="guessing yes" ;;
++ *) am_cv_func_working_getline="guessing no" ;;
++ esac
++ ])
++ ])
++ ])
+ fi
+
+ if test $ac_cv_have_decl_getline = no; then
+@@ -83,7 +92,8 @@ AC_DEFUN([gl_FUNC_GETLINE],
+ fi
+
+ case "$am_cv_func_working_getline" in
+- *no)
++ *yes) ;;
++ *)
+ dnl Set REPLACE_GETLINE always: Even if we have not found the broken
+ dnl getline function among $LIBS, it may exist in libinet and the
+ dnl executable may be linked with -linet.
+diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4
+index d29b4bf..5e2ef6f 100644
+--- a/m4/gettimeofday.m4
++++ b/m4/gettimeofday.m4
+@@ -1,4 +1,4 @@
+-# serial 25
++# serial 26
+
+ # Copyright (C) 2001-2003, 2005, 2007, 2009-2019 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+@@ -105,6 +105,8 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
+ case "$host_os" in
+ # Guess all is fine on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
++ # Guess all is fine on musl systems.
++ *-musl*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/link-follow.m4 b/m4/link-follow.m4
+index cbd2dca..8ac7301 100644
+--- a/m4/link-follow.m4
++++ b/m4/link-follow.m4
+@@ -1,4 +1,4 @@
+-# serial 20
++# serial 21
+ dnl Run a program to determine whether link(2) follows symlinks.
+ dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
+
+@@ -88,6 +88,8 @@ AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
+ case "$host_os" in
+ # On glibc/Linux we know the result.
+ linux*-gnu* | gnu*) gl_cv_func_link_follows_symlink="guessing no" ;;
++ # On musl/Linux we know the result.
++ linux*-musl*) gl_cv_func_link_follows_symlink="guessing no" ;;
+ # Otherwise, we don't know.
+ *) gl_cv_func_link_follows_symlink=unknown ;;
+ esac
+diff --git a/m4/malloc.m4 b/m4/malloc.m4
+index b9b8d4b..c469c45 100644
+--- a/m4/malloc.m4
++++ b/m4/malloc.m4
+@@ -1,4 +1,4 @@
+-# malloc.m4 serial 17
++# malloc.m4 serial 19
+ dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -32,7 +32,7 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF],
+ [ac_cv_func_malloc_0_nonnull=no],
+ [case "$host_os" in
+ # Guess yes on platforms where we know the result.
+- *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
++ *-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \
+ | hpux* | solaris* | cygwin* | mingw*)
+ ac_cv_func_malloc_0_nonnull="guessing yes" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/mkdir.m4 b/m4/mkdir.m4
+index 4cd9590..366a3cd 100644
+--- a/m4/mkdir.m4
++++ b/m4/mkdir.m4
+@@ -1,4 +1,4 @@
+-# serial 14
++# serial 15
+
+ # Copyright (C) 2001, 2003-2004, 2006, 2008-2019 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+@@ -62,6 +62,8 @@ AC_DEFUN([gl_FUNC_MKDIR],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/mkstemp.m4 b/m4/mkstemp.m4
+index ae24c3b..1b15c2e 100644
+--- a/m4/mkstemp.m4
++++ b/m4/mkstemp.m4
+@@ -1,4 +1,4 @@
+-#serial 25
++#serial 26
+
+ # Copyright (C) 2001, 2003-2007, 2009-2019 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+@@ -59,6 +59,8 @@ AC_DEFUN([gl_FUNC_MKSTEMP],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_working_mkstemp="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_working_mkstemp="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/perror.m4 b/m4/perror.m4
+index 335be72..08e2db1 100644
+--- a/m4/perror.m4
++++ b/m4/perror.m4
+@@ -1,4 +1,4 @@
+-# perror.m4 serial 7
++# perror.m4 serial 8
+ dnl Copyright (C) 2008-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -48,10 +48,12 @@ AC_DEFUN([gl_FUNC_PERROR],
+ rm -rf conftest.txt1 conftest.txt2],
+ [gl_cv_func_perror_works=no],
+ [case "$host_os" in
+- # Guess yes on native Windows.
+- mingw*) gl_cv_func_perror_works="guessing yes" ;;
+- # Otherwise guess no.
+- *) gl_cv_func_perror_works="guessing no" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_perror_works="guessing yes" ;;
++ # Guess yes on native Windows.
++ mingw*) gl_cv_func_perror_works="guessing yes" ;;
++ # Otherwise guess no.
++ *) gl_cv_func_perror_works="guessing no" ;;
+ esac
+ ])
+ ])
+diff --git a/m4/printf.m4 b/m4/printf.m4
+index cbf6ae4..6d2280e 100644
+--- a/m4/printf.m4
++++ b/m4/printf.m4
+@@ -1,4 +1,4 @@
+-# printf.m4 serial 60
++# printf.m4 serial 61
+ dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -62,6 +62,8 @@ int main ()
+ changequote(,)dnl
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+@@ -240,6 +242,8 @@ int main ()
+ changequote(,)dnl
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
+@@ -457,6 +461,8 @@ int main ()
+ changequote(,)dnl
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+@@ -575,6 +581,8 @@ int main ()
+ [gl_cv_func_printf_directive_a="guessing yes"],
+ [gl_cv_func_printf_directive_a="guessing no"])
+ ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_printf_directive_a="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_directive_a="guessing no";;
+ # Guess no on native Windows.
+@@ -625,6 +633,8 @@ int main ()
+ changequote(,)dnl
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
+@@ -960,6 +970,8 @@ changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess no on Android.
+@@ -1206,6 +1218,8 @@ changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+@@ -1308,6 +1322,8 @@ int main ()
+ changequote(,)dnl
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+@@ -1400,6 +1416,8 @@ changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
+@@ -1554,6 +1572,8 @@ changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+diff --git a/m4/putenv.m4 b/m4/putenv.m4
+index f8960f6..342ba26 100644
+--- a/m4/putenv.m4
++++ b/m4/putenv.m4
+@@ -1,4 +1,4 @@
+-# putenv.m4 serial 22
++# putenv.m4 serial 23
+ dnl Copyright (C) 2002-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -36,6 +36,8 @@ AC_DEFUN([gl_FUNC_PUTENV],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_svid_putenv="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_svid_putenv="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/realloc.m4 b/m4/realloc.m4
+index f9f15ad..93066e8 100644
+--- a/m4/realloc.m4
++++ b/m4/realloc.m4
+@@ -1,4 +1,4 @@
+-# realloc.m4 serial 15
++# realloc.m4 serial 17
+ dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -32,7 +32,7 @@ AC_DEFUN([_AC_FUNC_REALLOC_IF],
+ [ac_cv_func_realloc_0_nonnull=no],
+ [case "$host_os" in
+ # Guess yes on platforms where we know the result.
+- *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
++ *-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \
+ | hpux* | solaris* | cygwin* | mingw*)
+ ac_cv_func_realloc_0_nonnull="guessing yes" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/setenv.m4 b/m4/setenv.m4
+index 6101274..a8f83d6 100644
+--- a/m4/setenv.m4
++++ b/m4/setenv.m4
+@@ -1,4 +1,4 @@
+-# setenv.m4 serial 27
++# setenv.m4 serial 28
+ dnl Copyright (C) 2001-2004, 2006-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -37,6 +37,8 @@ AC_DEFUN([gl_FUNC_SETENV],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_setenv_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_setenv_works="guessing no" ;;
+ esac
+diff --git a/m4/signbit.m4 b/m4/signbit.m4
+index bf5bce5..f7f2f3d 100644
+--- a/m4/signbit.m4
++++ b/m4/signbit.m4
+@@ -1,4 +1,4 @@
+-# signbit.m4 serial 16
++# signbit.m4 serial 17
+ dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -31,6 +31,8 @@ AC_DEFUN([gl_SIGNBIT],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_signbit="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_signbit="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_signbit="guessing yes" ;;
+ # If we don't know, assume the worst.
+@@ -62,6 +64,8 @@ AC_DEFUN([gl_SIGNBIT],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_signbit_gcc="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_signbit_gcc="guessing yes" ;;
+ # Guess yes on mingw, no on MSVC.
+ mingw*) if test -n "$GCC"; then
+ gl_cv_func_signbit_gcc="guessing yes"
+diff --git a/m4/sleep.m4 b/m4/sleep.m4
+index 5f71cc7..7bab467 100644
+--- a/m4/sleep.m4
++++ b/m4/sleep.m4
+@@ -1,4 +1,4 @@
+-# sleep.m4 serial 9
++# sleep.m4 serial 10
+ dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -48,6 +48,8 @@ handle_alarm (int sig)
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_sleep_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_sleep_works="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/stpncpy.m4 b/m4/stpncpy.m4
+index 83425dd..f8e1a7c 100644
+--- a/m4/stpncpy.m4
++++ b/m4/stpncpy.m4
+@@ -1,4 +1,4 @@
+-# stpncpy.m4 serial 16
++# stpncpy.m4 serial 17
+ dnl Copyright (C) 2002-2003, 2005-2007, 2009-2019 Free Software Foundation,
+ dnl Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -7,6 +7,8 @@ dnl with or without modifications, as long as this notice is preserved.
+
+ AC_DEFUN([gl_FUNC_STPNCPY],
+ [
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
++
+ dnl Persuade glibc <string.h> to declare stpncpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+@@ -69,12 +71,18 @@ int main ()
+ ]])],
+ [gl_cv_func_stpncpy=yes],
+ [gl_cv_func_stpncpy=no],
+- [AC_EGREP_CPP([Thanks for using GNU], [
++ [dnl Guess yes on glibc systems and musl systems.
++ AC_EGREP_CPP([Thanks for using GNU], [
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+ Thanks for using GNU
+ #endif
+-], [gl_cv_func_stpncpy="guessing yes"], [gl_cv_func_stpncpy="guessing no"])
++], [gl_cv_func_stpncpy="guessing yes"],
++ [case "$host_os" in
++ *-musl*) gl_cv_func_stpncpy="guessing yes" ;;
++ *) gl_cv_func_stpncpy="guessing no" ;;
++ esac
++ ])
+ ])
+ ])
+ case "$gl_cv_func_stpncpy" in
+diff --git a/m4/strerror.m4 b/m4/strerror.m4
+index b452f7f..2c90f31 100644
+--- a/m4/strerror.m4
++++ b/m4/strerror.m4
+@@ -1,4 +1,4 @@
+-# strerror.m4 serial 19
++# strerror.m4 serial 20
+ dnl Copyright (C) 2002, 2007-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -26,6 +26,8 @@ AC_DEFUN([gl_FUNC_STRERROR],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_working_strerror="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_working_strerror="guessing no" ;;
+ esac
+@@ -80,6 +82,8 @@ AC_DEFUN([gl_FUNC_STRERROR_0],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_strerror_0_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/strtod.m4 b/m4/strtod.m4
+index 9912217..d68ab75 100644
+--- a/m4/strtod.m4
++++ b/m4/strtod.m4
+@@ -1,4 +1,4 @@
+-# strtod.m4 serial 24
++# strtod.m4 serial 25
+ dnl Copyright (C) 2002-2003, 2006-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -115,9 +115,11 @@ numeric_equal (double x, double y)
+ ],
+ [gl_cv_func_strtod_works="guessing yes"],
+ [case "$host_os" in
+- # Guess yes on native Windows.
+- mingw*) gl_cv_func_strtod_works="guessing yes" ;;
+- *) gl_cv_func_strtod_works="guessing no" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_strtod_works="guessing yes" ;;
++ # Guess yes on native Windows.
++ mingw*) gl_cv_func_strtod_works="guessing yes" ;;
++ *) gl_cv_func_strtod_works="guessing no" ;;
+ esac
+ ])
+ ])
+diff --git a/m4/strtold.m4 b/m4/strtold.m4
+index 16b4eda..17125fe 100644
+--- a/m4/strtold.m4
++++ b/m4/strtold.m4
+@@ -1,4 +1,4 @@
+-# strtold.m4 serial 2
++# strtold.m4 serial 4
+ dnl Copyright (C) 2002-2003, 2006-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -98,7 +98,12 @@ numeric_equal (long double x, long double y)
+ #endif
+ ],
+ [gl_cv_func_strtold_works="guessing yes"],
+- [gl_cv_func_strtod_works="guessing no"])
++ [case "$host_os" in
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_strtold_works="guessing yes" ;;
++ *) gl_cv_func_strtold_works="guessing no" ;;
++ esac
++ ])
+ ])
+ ])
+ case "$gl_cv_func_strtold_works" in
+diff --git a/m4/tzset.m4 b/m4/tzset.m4
+index 1278801..afdfa8e 100644
+--- a/m4/tzset.m4
++++ b/m4/tzset.m4
+@@ -1,4 +1,4 @@
+-# serial 11
++# serial 12
+
+ # Copyright (C) 2003, 2007, 2009-2019 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+@@ -70,6 +70,8 @@ main ()
+ [case "$host_os" in
+ # Guess all is fine on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_tzset_clobber="guessing no" ;;
++ # Guess all is fine on musl systems.
++ *-musl*) gl_cv_func_tzset_clobber="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_tzset_clobber="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/ungetc.m4 b/m4/ungetc.m4
+index ab8757b..08baf33 100644
+--- a/m4/ungetc.m4
++++ b/m4/ungetc.m4
+@@ -1,4 +1,4 @@
+-# ungetc.m4 serial 6
++# ungetc.m4 serial 7
+ dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -41,12 +41,16 @@ AC_DEFUN_ONCE([gl_FUNC_UNGETC_WORKS],
+ remove ("conftest.tmp");])],
+ [gl_cv_func_ungetc_works=yes], [gl_cv_func_ungetc_works=no],
+ [case "$host_os" in
+- # Guess yes on glibc and bionic systems.
+- *-gnu* | gnu* | *-android*) gl_cv_func_ungetc_works="guessing yes" ;;
+- # Guess yes on native Windows.
+- mingw*) gl_cv_func_ungetc_works="guessing yes" ;;
+- # If we don't know, assume the worst.
+- *) gl_cv_func_ungetc_works="guessing no" ;;
++ # Guess yes on glibc systems.
++ *-gnu* | gnu*) gl_cv_func_ungetc_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_ungetc_works="guessing yes" ;;
++ # Guess yes on bionic systems.
++ *-android*) gl_cv_func_ungetc_works="guessing yes" ;;
++ # Guess yes on native Windows.
++ mingw*) gl_cv_func_ungetc_works="guessing yes" ;;
++ # If we don't know, assume the worst.
++ *) gl_cv_func_ungetc_works="guessing no" ;;
+ esac
+ ])
+ ])
+diff --git a/m4/usleep.m4 b/m4/usleep.m4
+index 59605a8..4a6bff0 100644
+--- a/m4/usleep.m4
++++ b/m4/usleep.m4
+@@ -1,4 +1,4 @@
+-# usleep.m4 serial 5
++# usleep.m4 serial 6
+ dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -31,6 +31,8 @@ AC_DEFUN([gl_FUNC_USLEEP],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_usleep_works="guessing yes" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_usleep_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_usleep_works="guessing no" ;;
+ # If we don't know, assume the worst.
+diff --git a/m4/utimes.m4 b/m4/utimes.m4
+index 7209b6d..5806d8f 100644
+--- a/m4/utimes.m4
++++ b/m4/utimes.m4
+@@ -1,5 +1,5 @@
+ # Detect some bugs in glibc's implementation of utimes.
+-# serial 5
++# serial 6
+
+ dnl Copyright (C) 2003-2005, 2009-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -143,9 +143,11 @@ main ()
+ [gl_cv_func_working_utimes=yes],
+ [gl_cv_func_working_utimes=no],
+ [case "$host_os" in
+- # Guess no on native Windows.
+- mingw*) gl_cv_func_working_utimes="guessing no" ;;
+- *) gl_cv_func_working_utimes="guessing no" ;;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_working_utimes="guessing yes" ;;
++ # Guess no on native Windows.
++ mingw*) gl_cv_func_working_utimes="guessing no" ;;
++ *) gl_cv_func_working_utimes="guessing no" ;;
+ esac
+ ])
+ ])
+diff --git a/m4/wcwidth.m4 b/m4/wcwidth.m4
+index baa2002..3952fd2 100644
+--- a/m4/wcwidth.m4
++++ b/m4/wcwidth.m4
+@@ -1,4 +1,4 @@
+-# wcwidth.m4 serial 27
++# wcwidth.m4 serial 28
+ dnl Copyright (C) 2006-2019 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -98,9 +98,13 @@ int main ()
+ [
+ changequote(,)dnl
+ case "$host_os" in
+- # Guess yes on glibc and AIX 7 systems.
+- *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+- *) gl_cv_func_wcwidth_works="guessing no";;
++ # Guess yes on glibc systems.
++ *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";;
++ # Guess yes on musl systems.
++ *-musl*) gl_cv_func_wcwidth_works="guessing yes";;
++ # Guess yes on AIX 7 systems.
++ aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
++ *) gl_cv_func_wcwidth_works="guessing no";;
+ esac
+ changequote([,])dnl
+ ])
+--
+1.9.1
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/default.nix
new file mode 100644
index 000000000000..50d3a2437d70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/coreutils/default.nix
@@ -0,0 +1,162 @@
+{ stdenv, lib, buildPackages
+, autoreconfHook, bison, texinfo, fetchurl, perl, xz, libiconv, gmp ? null
+, aclSupport ? stdenv.isLinux, acl ? null
+, attrSupport ? stdenv.isLinux, attr ? null
+, selinuxSupport? false, libselinux ? null, libsepol ? null
+# No openssl in default version, so openssl-induced rebuilds aren't too big.
+# It makes *sum functions significantly faster.
+, minimal ? true, withOpenssl ? !minimal, openssl ? null
+, withPrefix ? false
+, singleBinary ? "symlinks" # you can also pass "shebangs" or false
+}:
+
+# 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 aclSupport -> acl != null;
+assert selinuxSupport -> libselinux != null && libsepol != null;
+
+with lib;
+
+stdenv.mkDerivation (rec {
+ pname = "coreutils";
+ version = "8.31";
+
+ src = fetchurl {
+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz";
+ };
+
+ patches = optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch
+ # Fix failing test with musl. See https://lists.gnu.org/r/coreutils/2019-05/msg00031.html
+ # To be removed in coreutils-8.32.
+ ++ optional stdenv.hostPlatform.isMusl ./avoid-false-positive-in-date-debug-test.patch
+ # Fix compilation in musl-cross environments. To be removed in coreutils-8.32.
+ ++ optional stdenv.hostPlatform.isMusl ./coreutils-8.31-musl-cross.patch
+ # Fix compilation in android-cross environments. To be removed in coreutils-8.32.
+ ++ [ ./coreutils-8.31-android-cross.patch ];
+
+ postPatch = ''
+ # The test tends to fail on btrfs,f2fs and maybe other unusual filesystems.
+ sed '2i echo Skipping dd sparse test && exit 77' -i ./tests/dd/sparse.sh
+ sed '2i echo Skipping du threshold test && exit 77' -i ./tests/du/threshold.sh
+ sed '2i echo Skipping cp sparse test && exit 77' -i ./tests/cp/sparse.sh
+ sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh
+ sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh
+
+ # Some target platforms, especially when building inside a container have
+ # issues with the inotify test.
+ sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail-2/inotify-dir-recreate.sh
+
+ # sandbox does not allow setgid
+ sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh
+ substituteInPlace ./tests/install/install-C.sh \
+ --replace 'mode3=2755' 'mode3=1755'
+
+ sed '2i print "Skipping env -S test"; exit 77;' -i ./tests/misc/env-S.pl
+
+ # Fails on systems with a rootfs. Looks like a bug in the test, see
+ # https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html
+ sed '2i print "Skipping df skip-rootfs test"; exit 77' -i ./tests/df/skip-rootfs.sh
+
+ # these tests fail in the unprivileged nix sandbox (without nix-daemon) as we break posix assumptions
+ for f in ./tests/chgrp/{basic.sh,recurse.sh,default-no-deref.sh,no-x.sh,posix-H.sh}; do
+ sed '2i echo Skipping chgrp && exit 77' -i "$f"
+ done
+ for f in gnulib-tests/{test-chown.c,test-fchownat.c,test-lchown.c}; do
+ echo "int main() { return 77; }" > "$f"
+ done
+ '' + optionalString (stdenv.hostPlatform.libc == "musl") (lib.concatStringsSep "\n" [
+ ''
+ echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c
+ echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c
+ ''
+ ]);
+
+ outputs = [ "out" "info" ];
+
+ nativeBuildInputs = [ perl xz.bin ]
+ ++ optionals stdenv.hostPlatform.isCygwin [ autoreconfHook texinfo ] # due to patch
+ ++ optionals stdenv.hostPlatform.isMusl [ autoreconfHook bison ]; # due to patch
+ configureFlags = [ "--with-packager=https://NixOS.org" ]
+ ++ optional (singleBinary != false)
+ ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}")
+ ++ optional withOpenssl "--with-openssl"
+ ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no"
+ ++ optional withPrefix "--program-prefix=g"
+ ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc == "glibc") [
+ # TODO(19b98110126fde7cbb1127af7e3fe1568eacad3d): Needed for fstatfs() I
+ # don't know why it is not properly detected cross building with glibc.
+ "fu_cv_sys_stat_statfs2_bsize=yes"
+ ];
+
+
+ buildInputs = [ gmp ]
+ ++ optional aclSupport acl
+ ++ optional attrSupport attr
+ ++ optional withOpenssl openssl
+ ++ optionals selinuxSupport [ libselinux libsepol ]
+ # TODO(@Ericson2314): Investigate whether Darwin could benefit too
+ ++ optional (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc != "glibc") libiconv;
+
+ # The tests are known broken on Cygwin
+ # (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
+ # Darwin (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
+ # and {Open,Free}BSD.
+ # With non-standard storeDir: https://github.com/NixOS/nix/issues/512
+ doCheck = stdenv.hostPlatform == stdenv.buildPlatform
+ && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.isMusl)
+ && builtins.storeDir == "/nix/store";
+
+ # Prevents attempts of running 'help2man' on cross-built binaries.
+ PERL = if stdenv.hostPlatform == stdenv.buildPlatform then null else "missing";
+
+ # Saw random failures like ‘help2man: can't get '--help' info from
+ # man/sha512sum.td/sha512sum’.
+ enableParallelBuilding = false;
+
+ NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
+ FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1";
+
+ # Works around a bug with 8.26:
+ # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually). Stop.
+ preInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|'
+ '';
+
+ postInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform && !minimal) ''
+ rm $out/share/man/man1/*
+ cp ${buildPackages.coreutils-full}/share/man/man1/* $out/share/man/man1
+ ''
+ # du: 8.7 M locale + 0.4 M man pages
+ + optionalString minimal ''
+ rm -r "$out/share"
+ '';
+
+ meta = {
+ homepage = "https://www.gnu.org/software/coreutils/";
+ description = "The basic file, shell and text manipulation utilities of the GNU operating system";
+
+ longDescription = ''
+ The GNU Core Utilities are the basic file, shell and text
+ manipulation utilities of the GNU operating system. These are
+ the core utilities which are expected to exist on every
+ operating system.
+ '';
+
+ license = licenses.gpl3Plus;
+
+ platforms = platforms.unix ++ platforms.windows;
+
+ priority = 10;
+
+ maintainers = [ maintainers.eelco ];
+ };
+} // optionalAttrs stdenv.hostPlatform.isMusl {
+ # Work around a bogus warning in conjunction with musl.
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+} // stdenv.lib.optionalAttrs stdenv.hostPlatform.isAndroid {
+ NIX_CFLAGS_COMPILE = "-D__USE_FORTIFY_LEVEL=0";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cowsay/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cowsay/default.nix
new file mode 100644
index 000000000000..972b2997d810
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cowsay/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ version = "3.03+dfsg2";
+ pname = "cowsay";
+
+ src = fetchurl {
+ url = "http://http.debian.net/debian/pool/main/c/cowsay/cowsay_${version}.orig.tar.gz";
+ sha256 = "0ghqnkp8njc3wyqx4mlg0qv0v0pc996x2nbyhqhz66bbgmf9d29v";
+ };
+
+ buildInputs = [ perl ];
+
+ postBuild = ''
+ substituteInPlace cowsay --replace "%BANGPERL%" "!${perl}/bin/perl" \
+ --replace "%PREFIX%" "$out"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,man/man1,share/cows}
+ install -m755 cowsay $out/bin/cowsay
+ ln -s cowsay $out/bin/cowthink
+ install -m644 cowsay.1 $out/man/man1/cowsay.1
+ ln -s cowsay.1 $out/man/man1/cowthink.1
+ install -m644 cows/* -t $out/share/cows/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A program which generates ASCII pictures of a cow with a message";
+ homepage = "https://en.wikipedia.org/wiki/Cowsay";
+ license = licenses.gpl1;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rob ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cpulimit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cpulimit/default.nix
new file mode 100644
index 000000000000..13c29d6ab936
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cpulimit/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ pname = "cpulimit";
+ version = "2.6";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/limitcpu/${pname}-${version}.tar.gz";
+ sha256 = "0xf0r6zxaqan1drz61nqf95p2pkiiihpvrjhrr9dx9j3vswyx31g";
+ };
+
+ buildFlags = with stdenv; [ (
+ if isDarwin then "osx"
+ else if isFreeBSD then "freebsd"
+ else "cpulimit"
+ ) ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://limitcpu.sourceforge.net/";
+ description = "A tool to throttle the CPU usage of programs";
+ platforms = with platforms; linux ++ freebsd;
+ license = licenses.gpl2;
+ maintainers = [maintainers.rycee];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
new file mode 100644
index 000000000000..dba42e4bfea8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, curl, jansson, autoconf, automake
+, aesni ? stdenv.hostPlatform.aesSupport }:
+
+let
+ rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
+ date = "20160316";
+in
+stdenv.mkDerivation {
+ name = "cpuminer-multi-${date}-${stdenv.lib.strings.substring 0 7 rev}";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/wolf9466/cpuminer-multi.git";
+ sha256 = "11dg4rra4dgfb9x6q85irn0hrkx2lkwyrdpgdh10pag09s3vhy4v";
+ };
+
+ buildInputs = [ autoconf automake curl jansson ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ configureFlags = [ (if aesni then "--enable-aes-ni" else "--disable-aes-ni") ];
+
+ meta = with stdenv.lib; {
+ description = "Multi-algo CPUMiner";
+ homepage = "https://github.com/wolf9466/cpuminer-multi";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.ehmry ];
+ # does not build on i686 https://github.com/lucasjones/cpuminer-multi/issues/27
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer/default.nix
new file mode 100644
index 000000000000..d48dc5ec1c9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cpuminer/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, curl
+, jansson
+, perl
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cpuminer";
+ version = "2.5.1";
+
+ src = fetchFromGitHub {
+ owner = "pooler";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0f44i0z8rid20c2hiyp92xq0q0mjj537r05sa6vdbc0nl0a5q40i";
+ };
+
+ patchPhase = if stdenv.cc.isClang then "${perl}/bin/perl ./nomacro.pl" else null;
+
+ buildInputs = [ curl jansson autoreconfHook ];
+
+ configureFlags = [ "CFLAGS=-O3" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pooler/cpuminer";
+ description = "CPU miner for Litecoin and Bitcoin";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/crex/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/crex/default.nix
new file mode 100644
index 000000000000..72e8521fec1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/crex/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "crex";
+ version = "0.2.5";
+
+ src = fetchFromGitHub {
+ owner = "octobanana";
+ repo = "crex";
+ rev = version;
+ sha256 = "086rvwl494z48acgsq3yq11qh1nxm8kbf11adn16aszai4d4ipr3";
+ };
+
+ postPatch = ''
+ substituteInPlace CMakeLists.txt --replace "/usr/local/bin" "bin"
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "Explore, test, and check regular expressions in the terminal";
+ homepage = "https://octobanana.com/software/crex";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/crudini/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/crudini/default.nix
new file mode 100644
index 000000000000..1a49446e9c01
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/crudini/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, python3Packages, help2man, installShellFiles }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "crudini";
+ version = "0.9.3";
+
+ src = fetchFromGitHub {
+ owner = "pixelb";
+ repo = "crudini";
+ rev = version;
+ sha256 = "0298hvg0fpk0m0bjpwryj3icksbckwqqsr9w1ain55wf5s0v24k3";
+ };
+
+ nativeBuildInputs = [ help2man installShellFiles ];
+
+ propagatedBuildInputs = with python3Packages; [ iniparse ];
+
+ postPatch = ''
+ substituteInPlace crudini-help \
+ --replace ./crudini $out/bin/crudini
+ substituteInPlace tests/test.sh \
+ --replace ..: $out/bin:
+ '';
+
+ postInstall = ''
+ # this just creates the man page
+ make all
+
+ install -Dm444 -t $out/share/doc/${pname} README EXAMPLES
+ installManPage *.1
+ '';
+
+ checkPhase = ''
+ runHook preCheck
+
+ pushd tests >/dev/null
+ bash ./test.sh
+ popd >/dev/null
+
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A utility for manipulating ini files ";
+ homepage = "https://www.pixelbeat.org/programs/crudini/";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/csv2latex/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/csv2latex/default.nix
new file mode 100644
index 000000000000..da2225829677
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/csv2latex/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "csv2latex";
+ version = "0.22";
+
+ src = fetchurl {
+ url = "http://brouits.free.fr/csv2latex/csv2latex-${version}.tar.gz";
+ sha256 = "09qih2zx6cvlii1n5phiinvm9xw1l8f4i60b5hg56pymzjhn97vy";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ make PREFIX=$out install
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line CSV to LaTeX file converter";
+ homepage = "http://brouits.free.fr/csv2latex/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.catern ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cunit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cunit/default.nix
new file mode 100644
index 000000000000..305084b900d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cunit/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, autoconf, automake, libtool, autoreconfHook}:
+
+stdenv.mkDerivation rec {
+ pname = "CUnit";
+ version = "2.1-3";
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [autoconf automake libtool];
+
+ src = fetchurl {
+ url = "mirror://sourceforge/cunit/CUnit/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "057j82da9vv4li4z5ri3227ybd18nzyq81f6gsvhifs5z0vr3cpm";
+ };
+
+ meta = {
+ description = "A Unit Testing Framework for C";
+
+ longDescription = ''
+ CUnit is a lightweight system for writing, administering, and running
+ unit tests in C. It provides C programmers a basic testing functionality
+ with a flexible variety of user interfaces.
+ '';
+
+ homepage = "http://cunit.sourceforge.net/";
+
+ license = stdenv.lib.licenses.lgpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/cutecom/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/cutecom/default.nix
new file mode 100644
index 000000000000..d825b555e195
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/cutecom/default.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, lib, fetchFromGitLab, qtbase, qtserialport, cmake }:
+
+mkDerivation rec {
+ pname = "cutecom";
+ version = "0.51.0";
+
+ src = fetchFromGitLab {
+ owner = "cutecom";
+ repo = "cutecom";
+ rev = "v${version}";
+ sha256 = "1zprabjs4z26hsb64fc3k790aiiqiz9d88j666xrzi4983m1bfv8";
+ };
+
+ preConfigure = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "#find_package(Serialport REQUIRED)" "find_package(Qt5SerialPort REQUIRED)"
+ '';
+
+ buildInputs = [ qtbase qtserialport ];
+ nativeBuildInputs = [ cmake ];
+
+ meta = with lib; {
+ description = "A graphical serial terminal";
+ homepage = "https://gitlab.com/cutecom/cutecom/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ bennofs ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/default.nix
new file mode 100644
index 000000000000..11523ae3758d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "dashing";
+ version = "0.4.0";
+
+ goPackagePath = "github.com/technosophos/dashing";
+
+ src = fetchFromGitHub {
+ owner = "technosophos";
+ repo = pname;
+ rev = version;
+ sha256 = "0mhv0w5q5vpynbfi21n5i3yw2165bppdlg0amvbv86n9z4c21h89";
+ };
+
+ goDeps = ./deps.nix;
+
+ buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "A Dash Generator Script for Any HTML";
+ homepage = "https://github.com/technosophos/dashing";
+ license = licenses.mit;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/deps.nix
new file mode 100644
index 000000000000..a87de8674ff1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dashing/deps.nix
@@ -0,0 +1,129 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "v0.3.1";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/andybalholm/cascadia";
+ fetch = {
+ type = "git";
+ url = "https://github.com/andybalholm/cascadia";
+ rev = "903109d295d5";
+ sha256 = "1zprh6wfyf4f5c6nw1bgyyfx3niydsnbdyvpi18fc378wmh4hlq4";
+ };
+ }
+ {
+ goPackagePath = "github.com/cpuguy83/go-md2man";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cpuguy83/go-md2man";
+ rev = "f79a8a8ca69d";
+ sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-sqlite3";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-sqlite3";
+ rev = "v2.0.1";
+ sha256 = "1i3v0j5144iir1n31nahbq9rs2picraphyh5qx9n9rz1d5w1v8zy";
+ };
+ }
+ {
+ goPackagePath = "github.com/pmezard/go-difflib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pmezard/go-difflib";
+ rev = "v1.0.0";
+ sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+ };
+ }
+ {
+ goPackagePath = "github.com/russross/blackfriday";
+ fetch = {
+ type = "git";
+ url = "https://github.com/russross/blackfriday";
+ rev = "v2.0.1";
+ sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
+ };
+ }
+ {
+ goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
+ fetch = {
+ type = "git";
+ url = "https://github.com/shurcooL/sanitized_anchor_name";
+ rev = "v1.0.0";
+ sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
+ };
+ }
+ {
+ goPackagePath = "github.com/urfave/cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/urfave/cli";
+ rev = "v2.0.0";
+ sha256 = "0ybpg48s08sm46xsbb42yk14zrsm7pr9808khh6f9fca7s3c7fns";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "c2843e01d9a2";
+ sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "e7e4b65ae663";
+ sha256 = "0phil62b9cqvllhfjqqm1jpyk2dxg1dvd88pq2044nc3sxni7w8b";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "d0b11bdaac8a";
+ sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "20d25e280405";
+ sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.2";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dasht/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dasht/default.nix
new file mode 100644
index 000000000000..7c2ff3548366
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dasht/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, makeWrapper
+, installShellFiles
+, coreutils
+, gnused
+, gnugrep
+, sqlite
+, wget
+, w3m
+, socat
+, gawk
+}:
+
+stdenv.mkDerivation rec {
+ pname = "dasht";
+ version = "2.4.0";
+
+ src = fetchFromGitHub {
+ owner = "sunaku";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "08wssmifxi7pnvn9gqrvpzpkc2qpkfbzbhxh0dk1gff2y2211qqk";
+ };
+
+ deps = lib.makeBinPath [
+ coreutils
+ gnused
+ gnugrep
+ sqlite
+ wget
+ w3m
+ socat
+ gawk
+ (placeholder "out")
+ ];
+
+ nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ cp bin/* $out/bin/
+
+ installManPage man/man1/*
+ installShellCompletion --zsh etc/zsh/completions/*
+
+ for i in $out/bin/*; do
+ echo "Wrapping $i"
+ wrapProgram $i --prefix PATH : ${deps};
+ done;
+
+ runHook postInstall
+ '';
+
+ meta = {
+ description = "Search API docs offline, in terminal or browser";
+ homepage = "https://sunaku.github.io/dasht/man";
+ license = stdenv.lib.licenses.isc;
+ platforms = stdenv.lib.platforms.unix; #cannot test other
+ maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/datamash/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/datamash/default.nix
new file mode 100644
index 000000000000..8e9782506fb9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/datamash/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "datamash";
+ version = "1.7";
+
+ src = fetchurl {
+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1cxdlhgz3wzjqlq8bgwad93fgqymk2abbldfzw1ffnhcp4mmjjjp";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A command-line program which performs basic numeric,textual and statistical operations on input textual data files";
+ homepage = "https://www.gnu.org/software/datamash/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub vrthra ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dateutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dateutils/default.nix
new file mode 100644
index 000000000000..eae2241c3b4e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dateutils/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, autoreconfHook, tzdata, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ version = "0.4.7";
+ pname = "dateutils";
+
+ src = fetchurl {
+ url = "https://bitbucket.org/hroptatyr/dateutils/downloads/${pname}-${version}.tar.xz";
+ sha256 = "16jr9yjk8wgzfh22hr3z6mp4jm3fkacyibds4jj5xx5yymbm8wj9";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://bitbucket.org/hroptatyr/dateutils/commits/6813ed94534f2311fbe9164748919e39d60b0190/raw";
+ sha256 = "1zs3iizb172ha56g03rr8kzd8zx6qypiqsc11jw758mliwxk5rgc";
+ })
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ tzdata ]; # needed for datezone
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "A bunch of tools that revolve around fiddling with dates and times in the command line";
+ homepage = "http://www.fresse.org/dateutils/";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.paperdigits ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dbacl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dbacl/default.nix
new file mode 100644
index 000000000000..a6bc0111ad4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dbacl/default.nix
@@ -0,0 +1,17 @@
+{fetchurl, stdenv}:
+
+stdenv.mkDerivation rec {
+ name = "dbacl-1.14";
+ src = fetchurl {
+ url = "https://www.lbreyer.com/gpl/${name}.tar.gz";
+ sha256 = "0224g6x71hyvy7jikfxmgcwww1r5lvk0jx36cva319cb9nmrbrq7";
+ };
+
+ meta = {
+ homepage = "http://dbacl.sourceforge.net/";
+ longDescription = "a digramic Bayesian classifier for text recognition.";
+ maintainers = [];
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dbus-map/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dbus-map/default.nix
new file mode 100644
index 000000000000..c311de3a7790
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dbus-map/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, glib, procps, libxml2 }:
+
+stdenv.mkDerivation {
+ pname = "dbus-map";
+ version = "2015-05-28";
+ src = fetchFromGitHub {
+ owner = "taviso";
+ repo = "dbusmap";
+ rev = "43703fc5e15743309b67131b5ba457b0d6ea7667";
+ sha256 = "1pjqn6w29ci8hfxkn1aynzfc8nvy3pqv3hixbxwr7qx20g4rwvdc";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ glib procps libxml2
+ ];
+ installPhase = ''
+ mkdir -p $out/bin
+ mv dbus-map $out/bin
+ '';
+ meta = with lib; {
+ description = "Simple utility for enumerating D-Bus endpoints, an nmap for D-Bus";
+ homepage = "https://github.com/taviso/dbusmap";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ddate/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ddate/default.nix
new file mode 100644
index 000000000000..0987fb6d286f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ddate/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchgit, cmake} :
+
+stdenv.mkDerivation {
+ name = "ddate-0.2.2";
+ src = fetchgit {
+ url = "https://github.com/bo0ts/ddate";
+ rev = "refs/tags/v0.2.2";
+ sha256 = "1qchxnxvghbma6gp1g78wnjxsri0b72ha9axyk31cplssl7yn73f";
+ };
+
+ buildInputs = [ cmake ];
+
+ meta = {
+ homepage = "https://github.com/bo0ts/ddate";
+ description = "Discordian version of the date program";
+ license = stdenv.lib.licenses.publicDomain;
+ maintainers = with stdenv.lib.maintainers; [kovirobi];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
new file mode 100644
index 000000000000..cfc48af5be54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, intltool, libxml2
+, pciutils, pkgconfig, gtk2, ddccontrol-db
+, makeDesktopItem
+}:
+
+let version = "0.4.4"; in
+stdenv.mkDerivation rec {
+ pname = "ddccontrol";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "ddccontrol";
+ repo = "ddccontrol";
+ rev = "0.4.4";
+ sha256 = "09npy6z2j3jrvpvlr46vih31y2mbrh7wsqlbrjprxjv1j0kkz5q2";
+ };
+
+ nativeBuildInputs = [ autoreconfHook intltool pkgconfig ];
+
+ buildInputs = [
+ libxml2
+ pciutils
+ gtk2
+ ddccontrol-db
+ ];
+
+ hardeningDisable = [ "format" "bindnow" ];
+
+ prePatch = ''
+ oldPath="\$""{datadir}/ddccontrol-db"
+ newPath="${ddccontrol-db}/share/ddccontrol-db"
+ sed -i -e "s|$oldPath|$newPath|" configure.ac
+ sed -i -e "s/chmod 4711/chmod 0711/" src/ddcpci/Makefile*
+ '';
+
+ preConfigure = ''
+ intltoolize --force
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/applications/
+ cp $desktopItem/share/applications/* $out/share/applications/
+ for entry in $out/share/applications/*.desktop; do
+ substituteAllInPlace $entry
+ done
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "gddccontrol";
+ desktopName = "gddccontrol";
+ genericName = "DDC/CI control";
+ comment = meta.description;
+ exec = "@out@/bin/gddccontrol";
+ icon = "gddccontrol";
+ categories = "Settings;HardwareSettings;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A program used to control monitor parameters by software";
+ homepage = "https://github.com/ddccontrol/ddccontrol";
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ maintainers = [ stdenv.lib.maintainers.pakhfn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ddcutil/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
new file mode 100644
index 000000000000..0a2664d6a775
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, glib, i2c-tools, udev, libgudev, libusb1, libdrm, xorg }:
+
+stdenv.mkDerivation rec {
+ pname = "ddcutil";
+ version = "0.9.9";
+
+ src = fetchFromGitHub {
+ owner = "rockowitz";
+ repo = "ddcutil";
+ rev = "v${version}";
+ sha256 = "1ppiddnrvkbb9iir28kl9hzpww0hpgb05jfxzf07xsqkdfb4qv71";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [
+ i2c-tools udev libgudev
+ glib libusb1 libdrm xorg.libXrandr
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.ddcutil.com/";
+ description = "Query and change Linux monitor settings using DDC/CI and USB";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ rnhmjoj ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
new file mode 100644
index 000000000000..35db9ef7db36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
@@ -0,0 +1,66 @@
+{stdenv, fetchurl, unzip, xz, dpkg
+, libxslt, docbook_xsl, makeWrapper
+, python3Packages
+, perlPackages, curl, gnupg, diffutils
+, sendmailPath ? "/run/wrappers/bin/sendmail"
+}:
+
+let
+ inherit (python3Packages) python setuptools;
+in stdenv.mkDerivation rec {
+ version = "2.16.8";
+ pname = "debian-devscripts";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/d/devscripts/devscripts_${version}.tar.xz";
+ sha256 = "0xy1nvqrnifx46g8ch69pk31by0va6hn10wpi1fkrsrgncanjjh1";
+ };
+
+ buildInputs = [ unzip xz dpkg libxslt python setuptools makeWrapper curl gnupg diffutils ] ++
+ (with perlPackages; [ perl CryptSSLeay LWP TimeDate DBFile FileDesktopEntry ParseDebControl LWPProtocolHttps ]);
+
+ preConfigure = ''
+ export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}${dpkg}";
+ tgtpy="$out/lib/${python.libPrefix}/site-packages"
+ mkdir -p "$tgtpy"
+ export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$tgtpy"
+ find po4a scripts -type f -exec sed -r \
+ -e "s@/usr/bin/gpg(2|)@${gnupg}/bin/gpg@g" \
+ -e "s@/usr/(s|)bin/sendmail@${sendmailPath}@g" \
+ -e "s@/usr/bin/diff@${diffutils}/bin/diff@g" \
+ -e "s@/usr/bin/gpgv(2|)@${gnupg}/bin/gpgv@g" \
+ -e "s@(command -v|/usr/bin/)curl@${curl.bin}/bin/curl@g" \
+ -i {} +
+ sed -e "s@/usr/share/sgml/[^ ]*/manpages/docbook.xsl@${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl@" -i scripts/Makefile
+ sed -r \
+ -e "s@/usr( |$|/)@$out\\1@g" \
+ -e "s@/etc( |$|/)@$out/etc\\1@g" \
+ -e 's/ translated_manpages//; s/--install-layout=deb//; s@--root="[^ ]*"@--prefix="'"$out"'"@' \
+ -i Makefile* */Makefile*
+ '';
+
+ makeFlags = [
+ "DESTDIR=$(out)"
+ "PREFIX="
+ "COMPL_DIR=/share/bash-completion/completions"
+ "PERLMOD_DIR=/share/devscripts"
+ ];
+
+ postInstall = ''
+ sed -re 's@(^|[ !`"])/bin/bash@\1${stdenv.shell}@g' -i "$out/bin"/*
+ for i in "$out/bin"/*; do
+ wrapProgram "$i" \
+ --prefix PERL5LIB : "$PERL5LIB" \
+ --prefix PERL5LIB : "$out/share/devscripts" \
+ --prefix PYTHONPATH : "$out/lib/python3.4/site-packages" \
+ --prefix PATH : "${dpkg}/bin"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''Debian package maintenance scripts'';
+ license = licenses.free; # Mix of public domain, Artistic+GPL, GPL1+, GPL2+, GPL3+, and GPL2-only... TODO
+ maintainers = with maintainers; [raskin];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/debianutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/debianutils/default.nix
new file mode 100644
index 000000000000..141df3332227
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/debianutils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "debianutils";
+ version = "4.11.1";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
+ sha256 = "0g4qmzb2ff0rqszzpsal465hcslnpdl4nhghv59qvhamkkqnks4b";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Miscellaneous utilities specific to Debian";
+ longDescription = ''
+ This package provides a number of small utilities which are used primarily by the installation scripts of Debian packages, although you may use them directly.
+
+ The specific utilities included are: add-shell installkernel ischroot remove-shell run-parts savelog tempfile which
+ '';
+ downloadPage = "https://packages.debian.org/sid/debianutils";
+ license = with licenses; [ gpl2Plus publicDomain smail ];
+ maintainers = [];
+ platforms = platforms.all;
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/debootstrap/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
new file mode 100644
index 000000000000..2940ff0a5738
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, dpkg, gawk, perl, wget, coreutils, utillinux
+, gnugrep, gnutar, gnused, gzip, makeWrapper }:
+# USAGE like this: debootstrap sid /tmp/target-chroot-directory
+# There is also cdebootstrap now. Is that easier to maintain?
+let binPath = stdenv.lib.makeBinPath [
+ coreutils
+ dpkg
+ gawk
+ gnugrep
+ gnused
+ gnutar
+ gzip
+ perl
+ wget
+ ];
+in stdenv.mkDerivation rec {
+ pname = "debootstrap";
+ version = "1.0.123";
+
+ src = fetchurl {
+ # git clone git://git.debian.org/d-i/debootstrap.git
+ # I'd like to use the source. However it's lacking the lanny script ? (still true?)
+ url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.gz";
+ sha256 = "0a53dhfwa74vdhqd6kbl7zlm7iic37c6wkdclppf0syxxi3q2njy";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ substituteInPlace debootstrap \
+ --replace 'CHROOT_CMD="chroot ' 'CHROOT_CMD="${coreutils}/bin/chroot ' \
+ --replace 'CHROOT_CMD="unshare ' 'CHROOT_CMD="${utillinux}/bin/unshare ' \
+ --replace /usr/bin/dpkg ${dpkg}/bin/dpkg \
+ --replace '#!/bin/sh' '#!/bin/bash' \
+ --subst-var-by VERSION ${version}
+
+ d=$out/share/debootstrap
+ mkdir -p $out/{share/debootstrap,bin}
+
+ mv debootstrap $out/bin
+
+ cp -r . $d
+
+ wrapProgram $out/bin/debootstrap \
+ --set PATH ${binPath} \
+ --set-default DEBOOTSTRAP_DIR $d
+
+ mkdir -p $out/man/man8
+ mv debootstrap.8 $out/man/man8
+
+ rm -rf $d/debian
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool to create a Debian system in a chroot";
+ homepage = "https://wiki.debian.org/Debootstrap";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marcweber ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
new file mode 100644
index 000000000000..045e199e3ae7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, glib, libintl }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "desktop-file-utils";
+ version = "0.24";
+
+ src = fetchurl {
+ url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz";
+ sha256 = "1nc3bwjdrpcrkbdmzvhckq0yngbcxspwj2n1r7jr3gmx1jk5vpm1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib libintl ];
+
+ setupHook = ./setup-hook.sh;
+
+ meta = {
+ homepage = "http://www.freedesktop.org/wiki/Software/desktop-file-utils";
+ description = "Command line utilities for working with .desktop files";
+ platforms = platforms.linux ++ platforms.darwin;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/setup-hook.sh
new file mode 100644
index 000000000000..728070e34581
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/desktop-file-utils/setup-hook.sh
@@ -0,0 +1,6 @@
+# Remove mimeinfo cache
+mimeinfoPreFixupPhase() {
+ rm -f $out/share/applications/mimeinfo.cache
+}
+
+preFixupPhases="${preFixupPhases-} mimeinfoPreFixupPhase"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/detox/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/detox/default.nix
new file mode 100644
index 000000000000..85bed63c7f9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/detox/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, flex}:
+
+stdenv.mkDerivation {
+ name = "detox-1.2.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/detox/1.2.0/detox-1.2.0.tar.gz";
+ sha256 = "02cfkf3yhw64xg8mksln8w24gdwgm2x9g3vps7gn6jbjbfd8mh45";
+ };
+
+ buildInputs = [flex];
+
+ hardeningDisable = [ "format" ];
+
+ postInstall = ''
+ install -m644 safe.tbl $out/share/detox/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://detox.sourceforge.net/";
+ description = "Utility designed to clean up filenames";
+ longDescription = ''
+ Detox is a utility designed to clean up filenames. It replaces
+ difficult to work with characters, such as spaces, with standard
+ equivalents. It will also clean up filenames with UTF-8 or Latin-1
+ (or CP-1252) characters in them.
+ '';
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
new file mode 100644
index 000000000000..011c5432089d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -0,0 +1,88 @@
+{ lib, stdenv, fetchurl, runCommand, makeWrapper, python3Packages, docutils, help2man
+, abootimg, acl, apktool, binutils-unwrapped, build-tools, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
+, e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
+, gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, openssl, pdftk, pgpdump, poppler_utils, qemu, R
+, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
+, enableBloat ? false
+}:
+
+# Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
+let
+ apksigner = runCommand "apksigner" { nativeBuildInputs = [ makeWrapper ]; } ''
+ mkdir -p $out/bin
+ makeWrapper "${jdk}/bin/java" "$out/bin/apksigner" \
+ --add-flags "-jar ${builtins.head build-tools}/libexec/android-sdk/build-tools/28.0.3/lib/apksigner.jar"
+ '';
+in
+python3Packages.buildPythonApplication rec {
+ pname = "diffoscope";
+ version = "160";
+
+ src = fetchurl {
+ url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
+ sha256 = "1nshcgq31nrbh4r70i5azs7s0wfc4llb60ka1w8rncy22rg8rabc";
+ };
+
+ outputs = [ "out" "man" ];
+
+ patches = [
+ ./ignore_links.patch
+ ./skip-failing-test.patch
+ ];
+
+ postPatch = ''
+ # Upstream doesn't provide a PKG-INFO file
+ sed -i setup.py -e "/'rpm-python',/d"
+
+ # When generating manpage, use the installed version
+ substituteInPlace doc/Makefile --replace "../bin" "$out/bin"
+ '';
+
+ nativeBuildInputs = [ docutils help2man ];
+
+ # Most of the non-Python dependencies here are optional command-line tools for various file-format parsers.
+ # To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh
+ #
+ # Still missing these tools: docx2txt dumppdf dumpxsb enjarify lipo ocamlobjinfo oggDump otool procyon
+ pythonPath = [
+ binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
+ dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
+ libarchive libcaca lz4 openssl pgpdump sng sqlite squashfsTools unzip xxd
+ xz zip zstd
+ ]
+ ++ (with python3Packages; [
+ argcomplete debian defusedxml jsondiff jsbeautifier libarchive-c
+ python_magic progressbar33 pypdf2 rpm tlsh
+ ])
+ ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
+ ++ lib.optionals enableBloat ([
+ abootimg apksigner apktool cbfstool colord ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
+ hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt
+ ] ++ (with python3Packages; [ binwalk guestfs h5py ]));
+
+ checkInputs = with python3Packages; [ pytest ] ++ pythonPath;
+
+ postInstall = ''
+ make -C doc
+ mkdir -p $out/share/man/man1
+ cp doc/diffoscope.1 $out/share/man/man1/diffoscope.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Perform in-depth comparison of files, archives, and directories";
+ longDescription = ''
+ diffoscope will try to get to the bottom of what makes files or directories
+ different. It will recursively unpack archives of many kinds and transform
+ various binary formats into more human readable form to compare them. It can
+ compare two tarballs, ISO images, or PDF just as easily. The differences can
+ be shown in a text or HTML report.
+
+ diffoscope is developed as part of the "reproducible builds" Debian
+ project and was formerly known as "debbindiff".
+ '';
+ homepage = "https://diffoscope.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dezgeg ma27 danielfullmer ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/ignore_links.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/ignore_links.patch
new file mode 100644
index 000000000000..b88d6e0231ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/ignore_links.patch
@@ -0,0 +1,20 @@
+diff --git a/diffoscope/comparators/directory.py b/diffoscope/comparators/directory.py
+index 5f34d62..36999a3 100644
+--- a/diffoscope/comparators/directory.py
++++ b/diffoscope/comparators/directory.py
+@@ -77,6 +77,7 @@ else:
+ FILE_RE = re.compile(r"^\s*File:.*$")
+ DEVICE_RE = re.compile(r"Device: [0-9a-f]+h/[0-9]+d\s+")
+ INODE_RE = re.compile(r"Inode: [0-9]+\s+")
++ LINKS_RE = re.compile(r'Links: [0-9]+\s+')
+ ACCESS_TIME_RE = re.compile(r"^Access: [0-9]{4}-[0-9]{2}-[0-9]{2}.*$")
+ CHANGE_TIME_RE = re.compile(r"^Change: [0-9]{4}-[0-9]{2}-[0-9]{2}.*$")
+ BIRTH_TIME_RE = re.compile(r"^\s*Birth:.*$")
+@@ -86,6 +87,7 @@ else:
+ line = Stat.FILE_RE.sub("", line)
+ line = Stat.DEVICE_RE.sub("", line)
+ line = Stat.INODE_RE.sub("", line)
++ line = Stat.LINKS_RE.sub("", line)
+ line = Stat.ACCESS_TIME_RE.sub("", line)
+ line = Stat.CHANGE_TIME_RE.sub("", line)
+ line = Stat.BIRTH_TIME_RE.sub("", line)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/list-missing-tools.sh b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/list-missing-tools.sh
new file mode 100755
index 000000000000..5f4d118cfed7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/list-missing-tools.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+# This script lists all the optional command-line tools that diffoscope can use
+# (i.e. `diffoscope --list-tools`) but are missing from the Nix expression.
+
+diffoscope=$(nix-build --no-out-link -E 'with import ./. {}; diffoscope.override { enableBloat = true; }')/bin/diffoscope
+
+required=$($diffoscope --list-tools | \
+ grep '^External-Tools-Required:' | \
+ cut -d ' ' -f2- | \
+ tr -d ,)
+
+# Uber-hacky!
+pathScript=$(cat $diffoscope | grep PATH)
+
+export PATH=$(nix-build --no-out-link -A which)/bin
+eval "$pathScript"
+
+for tool in $required; do
+ if ! which $tool >/dev/null 2>&1; then
+ echo $tool
+ fi
+done | sort
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/skip-failing-test.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/skip-failing-test.patch
new file mode 100644
index 000000000000..bf871d295bda
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diffoscope/skip-failing-test.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/test_tools.py b/tests/test_tools.py
+index f0010678..1c3c7ce1 100644
+--- a/tests/test_tools.py
++++ b/tests/test_tools.py
+@@ -21,6 +21,7 @@ import os
+ import pytest
+
+
++@pytest.mark.skip()
+ def test_sbin_added_to_path():
+ from diffoscope.tools import tool_required
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dijo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dijo/default.nix
new file mode 100644
index 000000000000..2a3fa2426993
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dijo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, ncurses, CoreServices }:
+let version = "0.2.3"; in
+rustPlatform.buildRustPackage {
+ pname = "dijo";
+ inherit version;
+ buildInputs = [ ncurses ] ++ lib.optional stdenv.isDarwin CoreServices;
+ src = fetchFromGitHub {
+ owner = "NerdyPepper";
+ repo = "dijo";
+ rev = "v${version}";
+ sha256 = "1lcvj0pri5v64zygkf2p24vr72y39agrq1r3kb8dfgz8yy3vcz0a";
+ };
+ cargoSha256 = "0pm048xf8hkva8q8fjmhrdnk7h2im28ix7xy784xwkkdnilm4j7f";
+
+ meta = with lib; {
+ description = "Scriptable, curses-based, digital habit tracker";
+ homepage = "https://github.com/NerdyPepper/dijo";
+ license = licenses.mit;
+ maintainers = with maintainers; [ infinisil ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ding-libs/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ding-libs/default.nix
new file mode 100644
index 000000000000..deb70d082d98
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ding-libs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, check }:
+
+stdenv.mkDerivation rec {
+ pname = "ding-libs";
+ version = "0.6.1";
+
+ src = fetchurl {
+ url = "https://fedorahosted.org/released/ding-libs/ding-libs-${version}.tar.gz";
+ sha256 = "1h97mx2jdv4caiz4r7y8rxfsq78fx0k4jjnfp7x2s7xqvqks66d3";
+ };
+
+ enableParallelBuilding = true;
+ buildInputs = [ check ];
+
+ doCheck = true;
+
+ meta = {
+ description = "'D is not GLib' utility libraries";
+ homepage = "https://fedorahosted.org/sssd/";
+ platforms = with stdenv.lib.platforms; linux;
+ maintainers = with stdenv.lib.maintainers; [ e-user ];
+ license = [ stdenv.lib.licenses.gpl3 stdenv.lib.licenses.lgpl3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/direnv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/direnv/default.nix
new file mode 100644
index 000000000000..e24d8611a433
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/direnv/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, buildGoModule, bash, fish, zsh }:
+
+buildGoModule rec {
+ pname = "direnv";
+ version = "2.23.0";
+
+ vendorSha256 = null;
+
+ src = fetchFromGitHub {
+ owner = "direnv";
+ repo = "direnv";
+ rev = "v${version}";
+ sha256 = "0m42mg4z04880dwl3iyppq2nda9v883jaxl8221d0xcpkjfm8hjm";
+ };
+
+ # we have no bash at the moment for windows
+ BASH_PATH =
+ stdenv.lib.optionalString (!stdenv.hostPlatform.isWindows)
+ "${bash}/bin/bash";
+
+ # replace the build phase to use the GNUMakefile instead
+ buildPhase = ''
+ make BASH_PATH=$BASH_PATH
+ '';
+
+ installPhase = ''
+ make install DESTDIR=$out
+ mkdir -p $out/share/fish/vendor_conf.d
+ echo "eval ($out/bin/direnv hook fish)" > $out/share/fish/vendor_conf.d/direnv.fish
+ '';
+
+ checkInputs = [ fish zsh ];
+
+ checkPhase = ''
+ export HOME=$(mktemp -d)
+ make test-go test-bash test-fish test-zsh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A shell extension that manages your environment";
+ longDescription = ''
+ Once hooked into your shell direnv is looking for an .envrc file in your
+ current directory before every prompt.
+
+ If found it will load the exported environment variables from that bash
+ script into your current environment, and unload them if the .envrc is
+ not reachable from the current path anymore.
+
+ In short, this little tool allows you to have project-specific
+ environment variables.
+ '';
+ homepage = "https://direnv.net";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/discocss/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/discocss/default.nix
new file mode 100644
index 000000000000..43214c866302
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/discocss/default.nix
@@ -0,0 +1,27 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "discocss";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "mlvzk";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1818jca3sw2ngw1n488q82w5rakx4cxgknnkmsaa0sz4h8gldfy8";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -m755 -D ./discocss $out/bin/discocss
+ '';
+
+ meta = with lib; {
+ description = "A tiny Discord css-injector";
+ homepage = "https://github.com/mlvzk/discocss";
+ license = licenses.mpl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mlvzk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diskonaut/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
new file mode 100644
index 000000000000..20b955f877e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "diskonaut";
+ version = "0.11.0";
+
+ src = fetchFromGitHub {
+ owner = "imsnif";
+ repo = "diskonaut";
+ rev = version;
+ sha256 = "1pmbag3r2ka30zmy2rs9jps2qxj2zh0gy4a774v9yhf0b6qjid54";
+ };
+
+ cargoSha256 = "0y86ikf235lp5j85fgzawgp4vx66rmzqd6p5n8iy3mqwn3c1ggb8";
+
+ meta = with stdenv.lib; {
+ description = "Terminal disk space navigator";
+ homepage = "https://github.com/imsnif/diskonaut";
+ license = licenses.mit;
+ maintainers = with maintainers; [ evanjs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diskscan/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/diskscan/default.nix
new file mode 100644
index 000000000000..204b7b4cf8dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diskscan/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, ncurses, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "diskscan";
+ version = "0.20";
+
+ src = fetchFromGitHub {
+ owner = "baruch";
+ repo = "diskscan";
+ rev = version;
+ sha256 = "1s2df082yrnr3gqnapdsqz0yd0ld75bin37g0rms83ymzkh4ysgv";
+ };
+
+ buildInputs = [ ncurses zlib ];
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/baruch/diskscan";
+ description = "Scan HDD/SSD for failed and near failed sectors";
+ platforms = with platforms; linux;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit version;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/diskus/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/diskus/default.nix
new file mode 100644
index 000000000000..b3fbc6377ab5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/diskus/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "diskus";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = "diskus";
+ rev = "v${version}";
+ sha256 = "087w58q5kd3r23a9qnhqgvq4vhv69b5a6a7n3kh09g5cjszy8s05";
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ cargoSha256 = "0bivmjn7h4lfp5azbc6q0xiqq3fk68jdd4kwrwgbxiljg4xd2qy8";
+
+ meta = with stdenv.lib; {
+ description = "A minimal, fast alternative to 'du -sh'";
+ homepage = "https://github.com/sharkdp/diskus";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = [ maintainers.fuerbringer ];
+ platforms = platforms.unix;
+ longDescription = ''
+ diskus is a very simple program that computes the total size of the
+ current directory. It is a parallelized version of du -sh.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/disper/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/disper/default.nix
new file mode 100644
index 000000000000..6ba446d7bc04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/disper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, python, xorg, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "disper";
+ version = "0.3.1.1";
+
+ src = fetchFromGitHub {
+ owner = "apeyser";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "1kl4py26n95q0690npy5mc95cv1cyfvh6kxn8rvk62gb8scwg9zn";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ python ];
+
+ preConfigure = ''
+ export makeFlags="PREFIX=$out"
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/disper \
+ --prefix "LD_LIBRARY_PATH" : "${stdenv.lib.makeLibraryPath [ xorg.libXrandr xorg.libX11 ]}"
+ '';
+
+ meta = {
+ description = "On-the-fly display switch utility";
+ homepage = "http://willem.engen.nl/projects/disper/";
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.gpl3;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dmg2img/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dmg2img/default.nix
new file mode 100644
index 000000000000..b132079a28e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dmg2img/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, zlib, bzip2, openssl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ name = "dmg2img-1.6.7";
+
+ src = fetchurl {
+ url = "http://vu1tur.eu.org/tools/${name}.tar.gz";
+ sha256 = "066hqhg7k90xcw5aq86pgr4l7apzvnb4559vj5s010avbk8adbh2";
+ };
+
+ buildInputs = [ zlib bzip2 openssl ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/Homebrew/formula-patches/85fa66a9/dmg2img/openssl-1.1.diff";
+ sha256 = "076sz69hf3ryylplg025vl8sj991cb81g3yazsmrf8anrd7ffmxx";
+ })
+ ];
+
+ patchFlags = [ "-p0" ];
+
+ installPhase = ''
+ install -D dmg2img $out/bin/dmg2img
+ install -D vfdecrypt $out/bin/vfdecrypt
+ '';
+
+ meta = {
+ platforms = stdenv.lib.platforms.unix;
+ description = "An Apple's compressed dmg to standard (hfsplus) image disk file convert tool";
+ license = stdenv.lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docbook2mdoc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/docbook2mdoc/default.nix
new file mode 100644
index 000000000000..2237d009d43c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docbook2mdoc/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, expat }:
+
+stdenv.mkDerivation rec {
+ pname = "docbook2mdoc";
+ version = "0.0.9";
+
+ src = fetchurl {
+ url = "http://mdocml.bsd.lv/docbook2mdoc/snapshots/${pname}-${version}.tgz";
+ sha256 = "07il80sg89xf6ym4bry6hxdacfzqgbwkxzyf7bjaihmw5jj0lclk";
+ };
+
+ buildInputs = [ expat.dev ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://mdocml.bsd.lv/";
+ description = "converter from DocBook V4.x and v5.x XML into mdoc";
+ license = licenses.isc;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ramkromberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-ls/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-ls/default.nix
new file mode 100644
index 000000000000..8522256c7d52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-ls/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage, fetchFromGitHub, stdenv, docker }:
+
+buildGoPackage rec {
+ pname = "docker-ls";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "mayflower";
+ repo = "docker-ls";
+ rev = "v${version}";
+ sha256 = "1hb9b0jhaf01zlmkm353mz608kwb79dzic3gvb2fhyrh8d17w2iv";
+ };
+
+ goPackagePath = "github.com/mayflower/docker-ls";
+
+ meta = with stdenv.lib; {
+ description = "Tools for browsing and manipulating docker registries";
+ longDescription = ''
+ Docker-ls is a set of CLI tools for browsing and manipulating docker registries.
+ In particular, docker-ls can handle authentication and display the sha256 content digests associated
+ with tags.
+ '';
+
+ homepage = "https://github.com/mayflower/docker-ls";
+ maintainers = with maintainers; [ ma27 ];
+ platforms = docker.meta.platforms;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile
new file mode 100644
index 000000000000..2c8125a46165
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org' do
+ gem 'docker-sync'
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile.lock
new file mode 100644
index 000000000000..4f14b77d0ef0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/Gemfile.lock
@@ -0,0 +1,29 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ backticks (1.0.2)
+ daemons (1.3.1)
+ docker-compose (1.1.10)
+ backticks (~> 1.0)
+ docker-sync (0.5.9)
+ daemons (~> 1.2, >= 1.2.3)
+ docker-compose (~> 1.1, >= 1.1.7)
+ dotenv (~> 2.1, >= 2.1.1)
+ gem_update_checker (~> 0.2.0, >= 0.2.0)
+ os
+ terminal-notifier (= 2.0.0)
+ thor (~> 0.20, >= 0.20.0)
+ dotenv (2.6.0)
+ gem_update_checker (0.2.0)
+ os (1.0.0)
+ terminal-notifier (2.0.0)
+ thor (0.20.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ docker-sync!
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/default.nix
new file mode 100644
index 000000000000..48fbaa1e9de0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/default.nix
@@ -0,0 +1,20 @@
+{ lib, ruby, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "docker-sync";
+ gemdir = ./.;
+
+ inherit ruby;
+
+ exes = ["docker-sync"];
+
+ passthru.updateScript = bundlerUpdateScript "docker-sync";
+
+ meta = with lib; {
+ description = "Run your application at full speed while syncing your code for development";
+ homepage = "http://docker-sync.io";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/gemset.nix
new file mode 100644
index 000000000000..739d11c7b5ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docker-sync/gemset.nix
@@ -0,0 +1,76 @@
+{
+ backticks = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vr28l9vckavnrb9pnqrhcmnk3wsvvpas8jjh165w2rzv3sdkws5";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ daemons = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ docker-compose = {
+ dependencies = ["backticks"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00v3y182rmpq34dl91iprvhc50vw8hysy2h7iy3ihmmm9pgg71gc";
+ type = "gem";
+ };
+ version = "1.1.10";
+ };
+ docker-sync = {
+ dependencies = ["daemons" "docker-compose" "dotenv" "gem_update_checker" "os" "terminal-notifier" "thor"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vrlcggj7k8w30b76f23p64yx4wg7p7mq9lp6lsnh2ysq9n3cjqg";
+ type = "gem";
+ };
+ version = "0.5.9";
+ };
+ dotenv = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rgl2kqhnxqbjvi9brbvb52iaq1z8yi0pl0bawk4fm6kl9igxr8f";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ gem_update_checker = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ckbz4q3q59kkv138n0cmsyida0wg45pwscxzf5vshxcrxhmq3x7";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ os = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ terminal-notifier = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1slc0y8pjpw30hy21v8ypafi8r7z9jlj4bjbgz03b65b28i2n3bs";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ thor = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+ type = "gem";
+ };
+ version = "0.20.3";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/docui/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/docui/default.nix
new file mode 100644
index 000000000000..73aa8984a49b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/docui/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "docui";
+ version = "2.0.4";
+
+ src = fetchFromGitHub {
+ owner = "skanehira";
+ repo = "docui";
+ rev = version;
+ sha256 = "0jya0wdp8scjmsr44krdbbb8q4gplf44gsng1nyn12a6ldqzayxl";
+ };
+
+ vendorSha256 = "1ggdczvv03lj0g6cq26vrk1rba6pk0805n85w9hkbjx9c4r3j577";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "TUI Client for Docker";
+ homepage = "https://github.com/skanehira/docui";
+ license = licenses.mit;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ aethelz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/doitlive/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/doitlive/default.nix
new file mode 100644
index 000000000000..3c0406a4ea0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/doitlive/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "doitlive";
+ version = "4.3.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "03qrs032x206xrl0x3z0fpvxgjivzz9rkmb11bqlk1id10707cac";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ click click-completion click-didyoumean ];
+
+ # disable tests (too many failures)
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Tool for live presentations in the terminal";
+ homepage = "https://pypi.python.org/pypi/doitlive";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mbode ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
new file mode 100644
index 000000000000..69b689fb8244
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, fetchFromGitHub }:
+python3Packages.buildPythonApplication rec {
+ pname = "dpt-rp1-py";
+ version = "unstable-2018-10-16";
+
+ src = fetchFromGitHub {
+ owner = "janten";
+ repo = pname;
+ rev = "4551b4432f8470de5f2ad9171105f731a6259395";
+ sha256 = "176y5j31aci1vpi8v6r5ki55432fbdsazh9bsyzr90im9zimkffl";
+ };
+
+ doCheck = false;
+
+ propagatedBuildInputs = with python3Packages; [
+ httpsig
+ requests
+ pbkdf2
+ urllib3
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/janten/dpt-rp1-py";
+ description = "Python script to manage Sony DPT-RP1 without Digital Paper App";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mt-caret ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dtach/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dtach/default.nix
new file mode 100644
index 000000000000..9973eddc7efa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dtach/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "dtach";
+ version = "0.9";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/dtach/dtach/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1wwj2hlngi8qn2pisvhyfxxs8gyqjlgrrv5lz91w8ly54dlzvs9j";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp dtach $out/bin/dtach
+ '';
+
+ meta = {
+ homepage = "http://dtach.sourceforge.net/";
+ description = "A program that emulates the detach feature of screen";
+
+ longDescription = ''
+ dtach is a tiny program that emulates the detach feature of
+ screen, allowing you to run a program in an environment that is
+ protected from the controlling terminal and attach to it later.
+ dtach does not keep track of the contents of the screen, and
+ thus works best with programs that know how to redraw
+ themselves.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dua/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dua/default.nix
new file mode 100644
index 000000000000..b4cdde95b800
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dua/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "dua";
+ version = "2.10.2";
+
+ src = fetchFromGitHub {
+ owner = "Byron";
+ repo = "dua-cli";
+ rev = "v${version}";
+ sha256 = "0qsk4pa7xywd6fdwd5v4qwj334hyp3xjlayjzgyhks7a87hdwjgs";
+ # Remove unicode file names which leads to different checksums on HFS+
+ # vs. other filesystems because of unicode normalisation.
+ extraPostFetch = ''
+ rm -r $out/tests/fixtures
+ '';
+ };
+
+ cargoSha256 = "02wd4cw9hd8d96szwx8yxz6bll60f7w1z0xiz7k1h8h12mriaz4w";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A tool to conveniently learn about the disk usage of directories, fast!";
+ homepage = "https://github.com/Byron/dua-cli";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ killercup ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/duc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/duc/default.nix
new file mode 100644
index 000000000000..74dd2a34cc44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/duc/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, tokyocabinet, ncurses
+, cairo ? null, pango ? null
+, enableCairo ? stdenv.isLinux
+}:
+
+assert enableCairo -> cairo != null && pango != null;
+
+stdenv.mkDerivation rec {
+ pname = "duc";
+ version = "1.4.4";
+
+ src = fetchFromGitHub {
+ owner = "zevv";
+ repo = "duc";
+ rev = version;
+ sha256 = "1i7ry25xzy027g6ysv6qlf09ax04q4vy0kikl8h0aq5jbxsl9q52";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ tokyocabinet ncurses ] ++
+ stdenv.lib.optionals enableCairo [ cairo pango ];
+
+ configureFlags =
+ stdenv.lib.optionals (!enableCairo) [ "--disable-x11" "--disable-cairo" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://duc.zevv.nl/";
+ description = "Collection of tools for inspecting and visualizing disk usage";
+ license = licenses.gpl2;
+
+ platforms = platforms.all;
+ maintainers = [ maintainers.lethalman ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/duf/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/duf/default.nix
new file mode 100644
index 000000000000..831d66c73c72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/duf/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "duf";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "muesli";
+ repo = "duf";
+ rev = "v${version}";
+ sha256 = "093kir1zwpkl0jic4p1f032ir5k7kra94di2indzn0fa4j4r7a0i";
+ };
+
+ dontStrip = true;
+
+ vendorSha256 = "1jqilfsirj7bkhzywimzf98w2b4s777phb06nsw6lr3bi6nnwzr1";
+
+ buildFlagsArray = [ "-ldflags=" "-X=main.Version=${version}" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/muesli/duf/";
+ description = "Disk Usage/Free Utility";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ petabyteboy penguwin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dumptorrent/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dumptorrent/default.nix
new file mode 100644
index 000000000000..146ab54dd62f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dumptorrent/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "dumptorrent";
+ version = "1.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/dumptorrent/dumptorrent-${version}.tar.gz";
+ sha256 = "073h03bmpfdy15qh37lvppayld2747i4acpyk0pm5nf2raiak0zm";
+ };
+
+ patchPhase = ''
+ substituteInPlace Makefile \
+ --replace "gcc" "cc"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ./dumptorrent $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Dump .torrent file information";
+ homepage = "https://sourceforge.net/projects/dumptorrent/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.zohl ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dupd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dupd/default.nix
new file mode 100644
index 000000000000..4c8f5e2e2b1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dupd/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, perl, which
+, openssl, sqlite }:
+
+# Instead of writing directly into $HOME, we change the default db location
+# from $HOME/.dupd_sqlite to $HOME/.cache/dupd.sqlite3
+
+stdenv.mkDerivation rec {
+ pname = "dupd";
+ version = "1.7";
+
+ src = fetchFromGitHub {
+ owner = "jvirkki";
+ repo = "dupd";
+ rev = version;
+ sha256 = "0vg4vbiwjc5p22cisj8970mym4y2r29fcm08ibik92786vsbxcqk";
+ };
+
+ postPatch = ''
+ patchShebangs tests
+
+ # tests need HOME to write the database
+ export HOME=$TMPDIR
+
+ mkdir -p $HOME/.cache
+
+ for f in man/dupd man/dupd.1 src/main.c tests/test.56 tests/test.57 ; do
+ substituteInPlace $f --replace .dupd_sqlite .cache/dupd.sqlite3
+ done
+ '';
+
+ buildInputs = [ openssl sqlite ];
+
+ nativeBuildInputs = [ perl which ];
+
+ makeFlags = [
+ "INSTALL_PREFIX=$(out)"
+ ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "CLI utility to find duplicate files";
+ homepage = "http://www.virkki.com/dupd";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dust/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dust/default.nix
new file mode 100644
index 000000000000..238ff73ba387
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dust/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "du-dust";
+ version = "0.5.3";
+
+ src = fetchFromGitHub {
+ owner = "bootandy";
+ repo = "dust";
+ rev = "v${version}";
+ sha256 = "1rcbxqcxr8v5faa52psjsjjlnkia5cwc3b1cwka9f5cxwhdwg7hr";
+ # Remove unicode file names which leads to different checksums on HFS+
+ # vs. other filesystems because of unicode normalisation.
+ extraPostFetch = ''
+ rm -rf $out/src/test_dir3/
+ '';
+ };
+
+ cargoSha256 = "1q15xy15hk6r3sai9wry2jm57dhinx6r84yxg9fwvq354613k645";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "du + rust = dust. Like du but more intuitive";
+ homepage = "https://github.com/bootandy/dust";
+ license = licenses.asl20;
+ maintainers = [ maintainers.infinisil ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/default.nix
new file mode 100644
index 000000000000..bedfebd96812
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/default.nix
@@ -0,0 +1,19 @@
+{callPackage, fetchurl}:
+callPackage ./dvtm.nix rec {
+ name = "dvtm-0.15";
+
+ src = fetchurl {
+ url = "http://www.brain-dump.org/projects/dvtm/${name}.tar.gz";
+ sha256 = "0475w514b7i3gxk6khy8pfj2gx9l7lv2pwacmq92zn1abv01a84g";
+ };
+
+ patches = [
+ # https://github.com/martanne/dvtm/pull/69
+ # Use self-pipe instead of signal blocking fixes issues on darwin.
+ (fetchurl {
+ url = "https://github.com/martanne/dvtm/commit/1f1ed664d64603f3f1ce1388571227dc723901b2.patch";
+ sha256 = "1cby8x3ckvhzqa8yxlfrwzgm8wk7yz84kr9psdjr7xwpnca1cqrd";
+ })
+ ];
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/dvtm.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/dvtm.nix
new file mode 100644
index 000000000000..5bb8efb5540c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/dvtm.nix
@@ -0,0 +1,29 @@
+{ stdenv, ncurses, customConfig ? null, name, src, patches ? [] }:
+stdenv.mkDerivation {
+
+ inherit name src patches;
+
+ CFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
+
+ postPatch = stdenv.lib.optionalString (customConfig != null) ''
+ cp ${builtins.toFile "config.h" customConfig} ./config.h
+ '';
+
+ nativeBuildInputs = [ ncurses ];
+ buildInputs = [ ncurses ];
+
+ prePatch = ''
+ substituteInPlace Makefile \
+ --replace /usr/share/terminfo $out/share/terminfo
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Dynamic virtual terminal manager";
+ homepage = "http://www.brain-dump.org/projects/dvtm";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/unstable.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/unstable.nix
new file mode 100644
index 000000000000..6ee2a465c69a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dvtm/unstable.nix
@@ -0,0 +1,29 @@
+{callPackage, fetchFromGitHub, fetchpatch}:
+callPackage ./dvtm.nix {
+ name = "dvtm-unstable-2018-03-31";
+
+ src = fetchFromGitHub {
+ owner = "martanne";
+ repo = "dvtm";
+ rev = "311a8c0c28296f8f87fb63349e0f3254c7481e14";
+ sha256 = "0pyxjkaxh8n97kccnmd3p98vi9h8mcfy5lswzqiplsxmxxmlbpx2";
+ };
+
+ patches = [
+ # https://github.com/martanne/dvtm/pull/69
+ # Use self-pipe instead of signal blocking fixes issues on darwin.
+ (fetchpatch {
+ name = "use-self-pipe-fix-darwin";
+ url = "https://github.com/martanne/dvtm/commit/1f1ed664d64603f3f1ce1388571227dc723901b2.patch";
+ sha256 = "14j3kks7b1v6qq12442v1da3h7khp02rp0vi0qrz0rfgkg1zilpb";
+ })
+
+ # https://github.com/martanne/dvtm/pull/86
+ # Fix buffer corruption when title is updated
+ (fetchpatch {
+ name = "fix-buffer-corruption-on-title-update";
+ url = "https://github.com/martanne/dvtm/commit/be6c3f8f615daeab214d484e6fff22e19631a0d1.patch";
+ sha256 = "1wdrl3sg815lhs22fwbc4w5dn4ifpdgl7v1kqfnhg752av4im7h7";
+ })
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dylibbundler/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dylibbundler/default.nix
new file mode 100644
index 000000000000..c4209442de8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dylibbundler/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ name = "dylibbundler";
+
+ src = fetchFromGitHub {
+ owner = "auriamg";
+ repo = "/macdylibbundler";
+ rev = "27923fbf6d1bc4d18c18e118280c4fe51fc41a80";
+ sha256 = "1mpd43hvpfp7pskfrjnd6vcmfii9v3p97q0ws50krkdvshp0bv2h";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Small command-line program that aims to make bundling .dylibs as easy as possible";
+ homepage = "https://github.com/auriamg/macdylibbundler";
+ license = licenses.mit;
+ maintainers = with maintainers; [ alexfmpe ];
+ platforms = with platforms; darwin ++ linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/dynamic-colors/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/dynamic-colors/default.nix
new file mode 100644
index 000000000000..6cb01f14a2c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/dynamic-colors/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "dynamic-colors";
+ version = "0.2.2.2";
+
+ src = fetchFromGitHub {
+ owner = "peterhoeg";
+ repo = "dynamic-colors";
+ rev = "v${version}";
+ sha256 = "0i63570z9aqbxa8ixh4ayb3akgjdnlqyl2sbf9d7x8f1pxhk5kd5";
+ };
+
+ PREFIX = placeholder "out";
+
+ postPatch = ''
+ substituteInPlace bin/dynamic-colors \
+ --replace /usr/share/dynamic-colors $out/share/dynamic-colors
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Change terminal colors on the fly";
+ homepage = "https://github.com/peterhoeg/dynamic-colors";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/edid-decode/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/edid-decode/default.nix
new file mode 100644
index 000000000000..c755f73b118b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/edid-decode/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit }:
+let
+ version = "2018-12-06";
+in stdenv.mkDerivation {
+ pname = "edid-decode-unstable";
+ inherit version;
+
+ src = fetchgit {
+ url = "git://linuxtv.org/edid-decode.git";
+ rev = "6def7bc83dfb0338632e06a8b14c93faa6af8879";
+ sha256 = "0v6d6jy309pb02l377l0fpmgfsvcpiqc5bvyrli34v413mhq6p15";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp edid-decode $out/bin
+ '';
+
+ meta = {
+ description = "EDID decoder and conformance tester";
+ homepage = "https://cgit.freedesktop.org/xorg/app/edid-decode/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.chiiruno ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/edid-generator/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/edid-generator/default.nix
new file mode 100644
index 000000000000..49b6277faef5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/edid-generator/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, dos2unix
+, edid-decode
+, hexdump
+, zsh
+, modelines ? [] # Modeline "1280x800" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
+}:
+let
+ version = "unstable-2018-03-15";
+in stdenv.mkDerivation {
+ pname = "edid-generator";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "akatrevorjay";
+ repo = "edid-generator";
+ rev = "31a6f80784d289d2faa8c4ca4788409c83b3ea14";
+ sha256 = "0j6wqzx5frca8b5i6812vvr5iwk7440fka70bmqn00k0vfhsc2x3";
+ };
+
+ nativeBuildInputs = [ dos2unix edid-decode hexdump zsh ];
+
+ postPatch = ''
+ patchShebangs modeline2edid
+ '';
+
+ configurePhase = (stdenv.lib.concatMapStringsSep "\n" (m: "echo \"${m}\" | ./modeline2edid -") modelines);
+
+ installPhase = ''
+ install -Dm 444 *.bin -t "$out/lib/firmware/edid"
+ '';
+
+ meta = {
+ description = "Hackerswork to generate an EDID blob from given Xorg Modelines";
+ homepage = "https://github.com/akatrevorjay/edid-generator";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.flokli ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/emv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/emv/default.nix
new file mode 100644
index 000000000000..76ea8ceba0d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/emv/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ pname = "emv";
+ version = "1.95";
+
+ src = fetchurl {
+ url = "http://www.i0i0.de/toolchest/emv";
+ sha256 = "7e0e12afa45ef5ed8025e5f2c6deea0ff5f512644a721f7b1b95b63406a8f7ce";
+ };
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -pv $out/bin
+ cp $src $out/bin/emv
+ chmod +x $out/bin/emv
+ '';
+
+ meta = {
+ homepage = "http://www.i0i0.de/toolchest/emv";
+ description = "Editor Move: Rename files with your favourite text editor";
+ license = stdenv.lib.licenses.publicDomain;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ent/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ent/default.nix
new file mode 100644
index 000000000000..4ecb8fe488a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ent/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+ name = "ent-1.1";
+
+ src = fetchurl {
+ url = "https://www.fourmilab.ch/random/random.zip";
+ sha256 = "1v39jlj3lzr5f99avzs2j2z6anqqd64bzm1pdf6q84a5n8nxckn1";
+ };
+
+ # Work around the "unpacker appears to have produced no directories"
+ # case that happens when the archive doesn't have a subdirectory.
+ setSourceRoot = "sourceRoot=`pwd`";
+
+ buildInputs = [ unzip ];
+
+ buildFlags = stdenv.lib.optional stdenv.cc.isClang "CC=clang";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ent $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Pseudorandom Number Sequence Test Program";
+ homepage = "http://www.fourmilab.ch/random/";
+ platforms = platforms.all;
+ license = licenses.publicDomain;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/entr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/entr/default.nix
new file mode 100644
index 000000000000..9bd9c2104f38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/entr/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, coreutils, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "entr";
+ version = "4.6";
+
+ src = fetchurl {
+ url = "http://entrproject.org/code/${pname}-${version}.tar.gz";
+ sha256 = "0vcflgagna2gdlpjsd6748c73j2829xlhm276mi838zl1n121phn";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile.bsd --replace /bin/echo echo
+ substituteInPlace entr.c --replace /bin/cat ${coreutils}/bin/cat
+ substituteInPlace entr.c --replace /usr/bin/clear ${ncurses.out}/bin/clear
+ substituteInPlace entr.1 --replace /bin/cat cat
+ substituteInPlace entr.1 --replace /usr/bin/clear clear
+ '';
+ dontAddPrefix = true;
+ doCheck = true;
+ checkTarget = "test";
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://entrproject.org/";
+ description = "Run arbitrary commands when files change";
+ license = licenses.isc;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub synthetica ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/envdir-go/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/envdir-go/default.nix
new file mode 100644
index 000000000000..957f5941cb6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/envdir-go/default.nix
@@ -0,0 +1,27 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ version = "1.0.0";
+ pname = "envdir";
+
+ goPackagePath = "github.com/d10n/envdir";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "d10n";
+ repo = "envdir";
+ sha256 = "1wdlblj127skgynf9amk7waabc3abbyxys9dvyc6c72zpcpdy5nc";
+ };
+
+ preBuild = ''
+ # TODO: is there a way to get the commit ref so we can set main.buildCommit?
+ buildFlagsArray+=("-ldflags" "-X main.buildDate=1970-01-01T00:00:00+0000 -X main.buildVersion=${version}")
+'';
+
+ meta = {
+ description = "A go rewrite of envdir";
+ homepage = "https://github.com/d10n/envdir";
+ maintainers = with stdenv.lib.maintainers; [ edude03 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/envsubst/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/envsubst/default.nix
new file mode 100644
index 000000000000..be563345b2c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/envsubst/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "envsubst";
+ version = "1.2.0";
+
+ goPackagePath = "github.com/a8m/envsubst";
+ src = fetchFromGitHub {
+ owner = "a8m";
+ repo = "envsubst";
+ rev = "v${version}";
+ sha256 = "0zkgjdlw3d5xh7g45bzxqspxr61ljdli8ng4a1k1gk0dls4sva8n";
+ };
+
+ meta = with lib; {
+ description = "Environment variables substitution for Go";
+ homepage = "https://github.com/a8m/envsubst";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/eot-utilities/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/eot-utilities/default.nix
new file mode 100644
index 000000000000..546ad8d3d7dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/eot-utilities/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "eot_utilities";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "https://www.w3.org/Tools/eot-utils/eot-utilities-${version}.tar.gz";
+ sha256 = "0cb41riabss23hgfg7vxhky09d6zqwjy1nxdvr3l2bh5qzd4kvaf";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = {
+ homepage = "http://www.w3.org/Tools/eot-utils/";
+ description = "Create Embedded Open Type from OpenType or TrueType font";
+ license = stdenv.lib.licenses.w3c;
+ maintainers = with stdenv.lib.maintainers; [ leenaars ];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/esphome/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/esphome/default.nix
new file mode 100644
index 000000000000..74eccc029ac0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/esphome/default.nix
@@ -0,0 +1,54 @@
+{ lib, python3, platformio, esptool, git, protobuf3_12, fetchpatch }:
+
+let
+ python = python3.override {
+ packageOverrides = self: super: {
+ protobuf = super.protobuf.override {
+ protobuf = protobuf3_12;
+ };
+ };
+ };
+
+in python.pkgs.buildPythonApplication rec {
+ pname = "esphome";
+ version = "1.15.2";
+
+ src = python.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "1wnmgn0q4n2vp2cdwsc36acsy7c7w5vyxdglii3432mr5drrgcsx";
+ };
+
+ ESPHOME_USE_SUBPROCESS = "";
+
+ propagatedBuildInputs = with python.pkgs; [
+ voluptuous pyyaml paho-mqtt colorlog
+ tornado protobuf tzlocal pyserial ifaddr
+ protobuf click
+ ];
+
+ # remove all version pinning (E.g tornado==5.1.1 -> tornado)
+ postPatch = ''
+ sed -i -e "s/==[0-9.]*//" requirements.txt
+ '';
+
+ makeWrapperArgs = [
+ # platformio is used in esphomeyaml/platformio_api.py
+ # esptool is used in esphomeyaml/__main__.py
+ # git is used in esphomeyaml/writer.py
+ "--prefix PATH : ${lib.makeBinPath [ platformio esptool git ]}"
+ "--set ESPHOME_USE_SUBPROCESS ''"
+ ];
+
+ # Platformio will try to access the network
+ # Instead, run the executable
+ checkPhase = ''
+ $out/bin/esphome --help > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "Make creating custom firmwares for ESP32/ESP8266 super easy";
+ homepage = "https://esphome.io/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dotlambda globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/esptool-ck/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/esptool-ck/default.nix
new file mode 100644
index 000000000000..a57a042a0c17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/esptool-ck/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "esptool-ck";
+ version = "0.4.13";
+
+ src = fetchFromGitHub {
+ owner = "igrr";
+ repo = "esptool-ck";
+ rev = "0.4.13";
+ sha256 = "1cb81b30a71r7i0gmkh2qagfx9lhq0myq5i37fk881bq6g7i5n2k";
+ };
+
+ makeFlags = [ "VERSION=${version}" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp esptool $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "ESP8266/ESP32 build helper tool";
+ homepage = "https://github.com/igrr/esptool-ck";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/esptool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/esptool/default.nix
new file mode 100644
index 000000000000..465e30e76157
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/esptool/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, python3, openssl }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "esptool";
+ version = "2.7";
+
+ src = fetchFromGitHub {
+ owner = "espressif";
+ repo = "esptool";
+ rev = "v${version}";
+ sha256 = "1p5hx0rhs986ffqz78rdxg7jayndsq632399xby39k17kvd3mb31";
+ };
+
+ checkInputs = with python3.pkgs; [ flake8 flake8-future-import flake8-import-order openssl ];
+ propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa ];
+
+ meta = with stdenv.lib; {
+ description = "ESP8266 and ESP32 serial bootloader utility";
+ homepage = "https://github.com/espressif/esptool";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dezgeg dotlambda ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/etcher/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/etcher/default.nix
new file mode 100644
index 000000000000..fec78db979c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/etcher/default.nix
@@ -0,0 +1,86 @@
+{ stdenv
+, fetchurl
+, gcc-unwrapped
+, dpkg
+, polkit
+, utillinux
+, bash
+, nodePackages
+, makeWrapper
+, electron_7
+}:
+
+let
+ sha256 = {
+ "x86_64-linux" = "1yvqi86bw0kym401zwknhwq9041fxg047sbj3aydnfcqf11vrrmk";
+ "i686-linux" = "12lghzhsl16h3jvzm3vw4hrly32fz99z6rdmybl8viralrxy8mb8";
+ }."${stdenv.system}";
+
+ arch = {
+ "x86_64-linux" = "amd64";
+ "i686-linux" = "i386";
+ }."${stdenv.system}";
+
+ electron = electron_7;
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "etcher";
+ version = "1.5.86";
+
+ src = fetchurl {
+ url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher-electron_${version}_${arch}.deb";
+ inherit sha256;
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ unpackPhase = ''
+ ${dpkg}/bin/dpkg-deb -x $src .
+ '';
+
+ # sudo-prompt has hardcoded binary paths on Linux and we patch them here
+ # along with some other paths
+ patchPhase = ''
+ ${nodePackages.asar}/bin/asar extract opt/balenaEtcher/resources/app.asar tmp
+ # use Nix(OS) paths
+ sed -i "s|/usr/bin/pkexec|/usr/bin/pkexec', '/run/wrappers/bin/pkexec|" tmp/node_modules/sudo-prompt/index.js
+ sed -i 's|/bin/bash|${bash}/bin/bash|' tmp/node_modules/sudo-prompt/index.js
+ sed -i "s|'lsblk'|'${utillinux}/bin/lsblk'|" tmp/node_modules/drivelist/js/lsblk/index.js
+ sed -i "s|process.resourcesPath|'$out/share/${pname}/resources/'|" tmp/generated/gui.js
+ ${nodePackages.asar}/bin/asar pack tmp opt/balenaEtcher/resources/app.asar
+ rm -rf tmp
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share/${pname}
+
+ cp -a usr/share/* $out/share
+ cp -a opt/balenaEtcher/{locales,resources} $out/share/${pname}
+
+ substituteInPlace $out/share/applications/balena-etcher-electron.desktop \
+ --replace 'Exec=/opt/balenaEtcher/balena-etcher-electron' 'Exec=${pname}'
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+ --add-flags $out/share/${pname}/resources/app.asar \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Flash OS images to SD cards and USB drives, safely and easily";
+ homepage = "https://etcher.io/";
+ license = licenses.asl20;
+ maintainers = [ maintainers.shou ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ethminer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ethminer/default.nix
new file mode 100644
index 000000000000..d593d677cc32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ethminer/default.nix
@@ -0,0 +1,78 @@
+{
+ stdenv,
+ fetchFromGitHub,
+ opencl-headers,
+ cmake,
+ jsoncpp,
+ boost,
+ makeWrapper,
+ cudatoolkit,
+ mesa,
+ ethash,
+ opencl-info,
+ ocl-icd,
+ openssl,
+ pkg-config,
+ cli11
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ethminer";
+ version = "0.18.0";
+
+ src =
+ fetchFromGitHub {
+ owner = "ethereum-mining";
+ repo = "ethminer";
+ rev = "v${version}";
+ sha256 = "10b6s35axmx8kyzn2vid6l5nnzcaf4nkk7f5f7lg3cizv6lsj707";
+ fetchSubmodules = true;
+ };
+
+ # NOTE: dbus is broken
+ cmakeFlags = [
+ "-DHUNTER_ENABLED=OFF"
+ "-DETHASHCUDA=ON"
+ "-DAPICORE=ON"
+ "-DETHDBUS=OFF"
+ "-DCMAKE_BUILD_TYPE=Release"
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ makeWrapper
+ ];
+
+ buildInputs = [
+ cli11
+ boost
+ opencl-headers
+ mesa
+ cudatoolkit
+ ethash
+ opencl-info
+ ocl-icd
+ openssl
+ jsoncpp
+ ];
+
+ preConfigure = ''
+ sed -i 's/_lib_static//' libpoolprotocols/CMakeLists.txt
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/ethminer --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Ethereum miner with OpenCL, CUDA and stratum support";
+ homepage = "https://github.com/ethereum-mining/ethminer";
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ nand0p ];
+ license = licenses.gpl2;
+ # Doesn't build with gcc9, and if overlayed to use gcc8 stdenv fails on CUDA issues.
+ broken = true;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ethtool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ethtool/default.nix
new file mode 100644
index 000000000000..b1b9956404a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ethtool/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "ethtool";
+ version = "5.4";
+
+ src = fetchurl {
+ url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "0srbqp4a3x9ryrbm5q854375y04ni8j0bmsrl89nmsyn4x4ixy12";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Utility for controlling network drivers and hardware";
+ homepage = "https://www.kernel.org/pub/software/network/ethtool/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/eva/Cargo.lock.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/eva/Cargo.lock.patch
new file mode 100644
index 000000000000..67553f0d6d83
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/eva/Cargo.lock.patch
@@ -0,0 +1,589 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..ac198e7
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,583 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "arrayref"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "arrayvec"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "atty"
++version = "0.2.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "autocfg"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "backtrace-sys"
++version = "0.1.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "base64"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "blake2b_simd"
++version = "0.5.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "byteorder"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cc"
++version = "1.0.48"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "clap"
++version = "2.33.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cloudabi"
++version = "0.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "constant_time_eq"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.6.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "directories"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dirs"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dirs-sys"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "eva"
++version = "0.2.7"
++dependencies = [
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "directories 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "radix_fmt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustyline 4.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "failure"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "failure_derive"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-cprng"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "libc"
++version = "0.2.66"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "nix"
++version = "0.13.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-bigint"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-complex"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-iter"
++version = "0.1.39"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-rational"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "radix_fmt"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rand_core"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rand_os"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rdrand"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "redox_users"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex"
++version = "1.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rust-argon2"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustyline"
++version = "4.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nix 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "syn"
++version = "1.0.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "synstructure"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-width"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "utf8parse"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "vec_map"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "void"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[metadata]
++"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
++"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
++"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
++"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
++"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
++"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
++"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
++"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0"
++"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
++"checksum cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f52a465a666ca3d838ebbf08b241383421412fe7ebb463527bba275526d89f76"
++"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
++"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
++"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
++"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
++"checksum directories 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c"
++"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
++"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
++"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
++"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
++"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
++"checksum nix 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4dbdc256eaac2e3bd236d93ad999d3479ef775c863dbda3068c4006a92eec51b"
++"checksum num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db"
++"checksum num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a"
++"checksum num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc"
++"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
++"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
++"checksum num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454"
++"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4"
++"checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
++"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
++"checksum radix_fmt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
++"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
++"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
++"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
++"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
++"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
++"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
++"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustyline 4.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f47ea1ceb347d2deae482d655dc8eef4bd82363d3329baffa3818bd76fea48b"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238"
++"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
++"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d"
++"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
++"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/eva/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/eva/default.nix
new file mode 100644
index 000000000000..e59c2387a3ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/eva/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, rustPlatform, fetchpatch }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "eva";
+ version = "0.2.7";
+
+ cargoSha256 = "1lycjw5i169xx73qw8gknbakrxikdbr65fmqx7xq2mafc0hb1zyn";
+
+ src = fetchFromGitHub {
+ owner = "NerdyPepper";
+ repo = "${pname}";
+ rev = "6ce0fc0212a34ffb647b24d9d903029ac4518165";
+ sha256 = "10242vnq2ph0g3p2hdacs4lmx3f474xm04nadplxbpv9xh4nbag3";
+ };
+
+ cargoPatches = [ ./Cargo.lock.patch ];
+
+ patches = [
+ # to fix the test suite (can be removed as soon as #33 is merged).
+ (fetchpatch {
+ url = "https://github.com/NerdyPepper/eva/commit/cacf51dbb9748b1dbe97b35f3c593a0a272bd4db.patch";
+ sha256 = "11q7dkz2x1888f3awnlr1nbbxzzfjrr46kd0kk6sgjdkyfh50cvv";
+ })
+
+ # to fix `cargo test -- --test-threads $NIX_BUILD_CORES`
+ (fetchpatch {
+ url = "https://github.com/NerdyPepper/eva/commit/ccfb3d327567dbaf03b2283c7e684477e2e84590.patch";
+ sha256 = "003yxqlyi8jna0rf05q2a006r2pkz6pcwwfl3dv8zb6p83kk1kgj";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A calculator REPL, similar to bc";
+ homepage = "https://github.com/NerdyPepper/eva";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nrdxp ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/exa/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/exa/default.nix
new file mode 100644
index 000000000000..fd6baadb685c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/exa/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, fetchpatch, rustPlatform, cmake, perl, pkgconfig, zlib
+, darwin, libiconv, installShellFiles
+}:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "exa";
+ version = "0.9.0";
+
+ cargoSha256 = "0nl106jlbr8gnnlbi20mrc6zyww7vxgmw6w34ibndxqh9ggxwfvr";
+
+ src = fetchFromGitHub {
+ owner = "ogham";
+ repo = "exa";
+ rev = "v${version}";
+ sha256 = "14qlm9zb9v22hxbbi833xaq2b7qsxnmh15s317200vz5f1305hhw";
+ };
+
+ patches = [
+ (fetchpatch {
+ # https://github.com/ogham/exa/pull/584
+ name = "fix-panic-on-broken-symlink-in-git-repository.patch";
+ url = "https://github.com/ogham/exa/pull/584/commits/a7a8e99cf3a15992afb2383435da0231917ffb54.patch";
+ sha256 = "0n5q483sz300jkp0sbb350hdinmkw7s6bmigdyr6ypz3fvygd9hx";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig perl installShellFiles ];
+ buildInputs = [ zlib ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [
+ libiconv darwin.apple_sdk.frameworks.Security ]
+ ;
+
+ outputs = [ "out" "man" ];
+
+ postInstall = ''
+ installManPage contrib/man/exa.1
+ installShellCompletion \
+ --name exa contrib/completions.bash \
+ --name exa.fish contrib/completions.fish \
+ --name _exa contrib/completions.zsh
+ '';
+
+ # Some tests fail, but Travis ensures a proper build
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Replacement for 'ls' written in Rust";
+ longDescription = ''
+ exa is a modern replacement for ls. It uses colours for information by
+ default, helping you distinguish between many types of files, such as
+ whether you are the owner, or in the owning group. It also has extra
+ features not present in the original ls, such as viewing the Git status
+ for a directory, or recursing into directories with a tree view. exa is
+ written in Rust, so it’s small, fast, and portable.
+ '';
+ homepage = "https://the.exa.website";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ehegnes lilyball globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix
new file mode 100644
index 000000000000..ecedd2b0b417
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix
@@ -0,0 +1,55 @@
+{ lib, skawarePackages
+# for execlineb-with-builtins
+, coreutils, gnugrep, writeScriptBin, runCommand, runCommandCC
+}:
+
+with skawarePackages;
+
+buildPackage {
+ pname = "execline";
+ version = "2.6.1.0";
+ sha256 = "0mj565xml3hvw27finydms0s9abbbpgbr29vnr8gwi7zjzq7ck52";
+
+ description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
+
+ outputs = [ "bin" "lib" "dev" "doc" "out" ];
+
+ # TODO: nsss support
+ configureFlags = [
+ "--libdir=\${lib}/lib"
+ "--dynlibdir=\${lib}/lib"
+ "--bindir=\${bin}/bin"
+ "--includedir=\${dev}/include"
+ "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
+ "--with-include=${skalibs.dev}/include"
+ "--with-lib=${skalibs.lib}/lib"
+ "--with-dynlib=${skalibs.lib}/lib"
+ ];
+
+ postInstall = ''
+ # remove all execline executables from build directory
+ rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
+ rm libexecline.*
+
+ mv doc $doc/share/doc/execline/html
+ mv examples $doc/share/doc/execline/examples
+
+ mv $bin/bin/execlineb $bin/bin/.execlineb-wrapped
+
+ # A wrapper around execlineb, which provides all execline
+ # tools on `execlineb`’s PATH.
+ # It is implemented as a C script, because on non-Linux,
+ # nested shebang lines are not supported.
+ # The -lskarnet has to come at the end to support static builds.
+ $CC \
+ -O \
+ -Wall -Wpedantic \
+ -D "EXECLINEB_PATH()=\"$bin/bin/.execlineb-wrapped\"" \
+ -D "EXECLINE_BIN_PATH()=\"$bin/bin\"" \
+ -I "${skalibs.dev}/include" \
+ -L "${skalibs.lib}/lib" \
+ -o "$bin/bin/execlineb" \
+ ${./execlineb-wrapper.c} \
+ -lskarnet
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c b/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c
new file mode 100644
index 000000000000..d31a76ca26eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c
@@ -0,0 +1,50 @@
+/*
+ * A wrapper around execlineb, which provides all execline
+ * tools on execlineb’s PATH.
+ * It is implemented as a C program, because on non-Linux,
+ * nested shebang lines are not supported.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <skalibs/stralloc.h>
+#include <skalibs/djbunix.h>
+#include <skalibs/strerr2.h>
+#include <skalibs/env.h>
+
+#define dienomem() strerr_diefu1sys(111, "stralloc_catb")
+
+// macros from outside
+/* const char* EXECLINEB_PATH; */
+/* const char* EXECLINE_BIN_PATH; */
+
+int main(int argc, char const* argv[], char const *const *envp)
+{
+ PROG = "execlineb-wrapper";
+
+ char const* path = getenv("PATH");
+ stralloc path_modif = STRALLOC_ZERO;
+
+ // modify PATH if unset or EXECLINEB_BIN_PATH is not yet there
+ if ( !path || ! strstr(path, EXECLINE_BIN_PATH())) {
+ // prepend our execline path
+ if ( ! stralloc_cats(&path_modif, "PATH=")
+ || ! stralloc_cats(&path_modif, EXECLINE_BIN_PATH()) ) dienomem();
+ // old path was not empty
+ if ( path && path[0] ) {
+ if ( ! stralloc_catb(&path_modif, ":", 1)
+ || ! stralloc_cats(&path_modif, path) ) dienomem();
+ }
+ // append final \0
+ if ( ! stralloc_0(&path_modif) ) dienomem();
+ }
+
+ // exec into execlineb and append path_modif to the environment
+ xpathexec_r_name(
+ EXECLINEB_PATH(),
+ argv,
+ envp, env_len(envp),
+ path_modif.s, path_modif.len
+ );
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/expect/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/expect/default.nix
new file mode 100644
index 000000000000..cbb8c337ff87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/expect/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, tcl, makeWrapper, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ version = "5.45.4";
+ pname = "expect";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/expect/Expect/${version}/expect${version}.tar.gz";
+ sha256 = "0d1cp5hggjl93xwc8h1y6adbnrvpkk0ywkd00inz9ndxn21xm9s9";
+ };
+
+ buildInputs = [ tcl ];
+ nativeBuildInputs = [ makeWrapper autoreconfHook ];
+
+ hardeningDisable = [ "format" ];
+
+ postPatch = ''
+ sed -i "s,/bin/stty,$(type -p stty),g" configure.in
+ '';
+
+ configureFlags = [
+ "--with-tcl=${tcl}/lib"
+ "--with-tclinclude=${tcl}/include"
+ "--exec-prefix=\${out}"
+ ];
+
+ postInstall = ''
+ for i in $out/bin/*; do
+ wrapProgram $i \
+ --prefix PATH : "${tcl}/bin" \
+ --prefix TCLLIBPATH ' ' $out/lib/* \
+ ${stdenv.lib.optionalString stdenv.isDarwin "--prefix DYLD_LIBRARY_PATH : $out/lib/expect${version}"}
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool for automating interactive applications";
+ homepage = "http://expect.sourceforge.net/";
+ license = "Expect";
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fasd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fasd/default.nix
new file mode 100644
index 000000000000..6c2cbd257442
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fasd/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub } :
+
+stdenv.mkDerivation rec {
+ pname = "fasd";
+ name = "${pname}-unstable-2016-08-11";
+
+ src = fetchFromGitHub {
+ owner = "clvv";
+ repo = pname;
+ rev = "90b531a5daaa545c74c7d98974b54cbdb92659fc";
+ sha256 = "0i22qmhq3indpvwbxz7c472rdyp8grag55x7iyjz8gmyn8gxjc11";
+ };
+
+ installPhase = ''
+ PREFIX=$out make install
+ '';
+
+ meta = {
+ homepage = "https://github.com/clvv/${pname}";
+ description = "Quick command-line access to files and directories for POSIX shells";
+ license = stdenv.lib.licenses.mit;
+
+ longDescription = ''
+ Fasd is a command-line productivity booster.
+ Fasd offers quick access to files and directories for POSIX shells. It is
+ inspired by tools like autojump, z and v. Fasd keeps track of files and
+ directories you have accessed, so that you can quickly reference them in the
+ command line.
+ '';
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fd/default.nix
new file mode 100644
index 000000000000..31b47a31ca8f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fd/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, rustPlatform, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "fd";
+ version = "8.1.1";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = "fd";
+ rev = "v${version}";
+ sha256 = "0qzqnsjkq8i4gzn9273algx33kr1hzgxid8lnqp4awy2zxm4ksiq";
+ };
+
+ cargoSha256 = "1d7hfgl9l4b9bnq2qcpvdq5rh7lpz33r19hw3wwgnqh142q67m7r";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ preFixup = ''
+ installManPage doc/fd.1
+
+ installShellCompletion $releaseDir/build/fd-find-*/out/fd.{bash,fish}
+ installShellCompletion --zsh $releaseDir/build/fd-find-*/out/_fd
+ '';
+
+ meta = with lib; {
+ description = "A simple, fast and user-friendly alternative to find";
+ longDescription = ''
+ `fd` is a simple, fast and user-friendly alternative to `find`.
+
+ While it does not seek to mirror all of `find`'s powerful functionality,
+ it provides sensible (opinionated) defaults for 80% of the use cases.
+ '';
+ homepage = "https://github.com/sharkdp/fd";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ dywedir globin ma27 zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fdtools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fdtools/default.nix
new file mode 100644
index 000000000000..6e0cb66749f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fdtools/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, lib, fetchurl, skawarePackages }:
+
+let
+ pname = "fdtools";
+ version = "2020.05.04";
+ sha256 = "0lnafcp4yipi0dl8gh33zjs8wlpz0mim8mwmiz9s49id0b0fmlla";
+
+in stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchurl {
+ url = "https://code.dogmap.org/${pname}/releases/${pname}-${version}.tar.bz2";
+ inherit sha256;
+ };
+
+ outputs = [ "bin" "lib" "dev" "doc" "out" ];
+
+ buildInputs = [ skawarePackages.skalibs ];
+
+ configurePhase = ''
+ cd ${pname}-${version}
+ sed -e 's|gcc|$CC|' \
+ conf-compile/defaults/host_link.sh \
+ > conf-compile/host_link.sh
+
+ echo "${skawarePackages.skalibs.lib}/lib/skalibs/sysdeps" \
+ > conf-compile/depend_skalibs_sysdeps
+ '';
+
+ buildPhase = ''
+ bash package/build
+ '';
+
+ installPhase = ''
+ mkdir -p $bin/bin
+ tools=( grabconsole multitee pipecycle recvfd seek0 sendfd setblock setstate statfile vc-get vc-lock vc-switch )
+
+ for t in "''${tools[@]}"; do
+ mv "command/$t" "$bin/bin/$t"
+ done
+
+ mkdir -p $lib/lib
+ mkdir -p $dev/include
+ docdir=$doc/share/doc/${pname}
+ mkdir -p $docdir
+
+ mv library/fdtools.a $lib/lib/fdtools.a
+ mv include/fdtools.h $dev/include/fdtools.h
+
+ ${skawarePackages.cleanPackaging.commonFileActions {
+ noiseFiles = [
+ "conf-compile/**/*"
+ "src/**/*"
+ "src/.**/*"
+ "compile/**/*"
+ "package/{build,check,compile,elsewhere,install,install_commands,own,run,sharing,upgrade,upgrade_version,url_src,url_src_latest,versions}"
+ ];
+ docFiles = [
+ "package/INSTALL"
+ "package/LICENSE"
+ "package/README"
+ ];
+ }} $docdir
+
+ ${skawarePackages.cleanPackaging.checkForRemainingFiles}
+
+ # we don’t use this, but nixpkgs requires it
+ touch $out
+ '';
+
+ meta = {
+ homepage = "https://code.dogmap.org./fdtools/";
+ description = "A set of utilities for working with file descriptors";
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.all;
+ maintainers = [ lib.maintainers.Profpatsch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fdupes/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fdupes/default.nix
new file mode 100644
index 000000000000..7203d6b57fcd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fdupes/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, pcre2 }:
+
+stdenv.mkDerivation rec {
+ pname = "fdupes";
+ version = "2.1.1";
+
+ src = fetchFromGitHub {
+ owner = "adrianlopezroche";
+ repo = "fdupes";
+ rev = "v${version}";
+ sha256 = "1c5hv7vkfxsii1qafhsynzp9zkwim47xkpk27sy64qdsjnhysdak";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ ncurses pcre2 ];
+
+ meta = with stdenv.lib; {
+ description = "Identifies duplicate files residing within specified directories";
+ longDescription = ''
+ fdupes searches the given path for duplicate files.
+ Such files are found by comparing file sizes and MD5 signatures,
+ followed by a byte-by-byte comparison.
+ '';
+ homepage = "https://github.com/adrianlopezroche/fdupes";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.maggesi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fet-sh/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
new file mode 100644
index 000000000000..4041a9abdbad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "fet-sh";
+ version = "1.7";
+
+ src = fetchFromGitHub {
+ owner = "6gk";
+ repo = "fet.sh";
+ rev = "v${version}";
+ sha256 = "02izkwfph4i62adwns4q4w1pfcmdsczm8ghagx5yb9315ww3adzn";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -m755 -D ./fet.sh $out/bin/fet.sh
+ '';
+
+ meta = with lib; {
+ description = "A fetch written in posix shell without any external commands (linux only)";
+ homepage = "https://github.com/6gk/fet.sh";
+ license = licenses.isc;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ elkowar ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fffuu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fffuu/default.nix
new file mode 100644
index 000000000000..2463ee5a6e99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fffuu/default.nix
@@ -0,0 +1,51 @@
+{ mkDerivation, haskellPackages, fetchFromGitHub, lib }:
+
+mkDerivation {
+ pname = "fffuu";
+ version = "unstable-2018-05-26";
+
+ src = fetchFromGitHub {
+ owner = "diekmann";
+ repo = "Iptables_Semantics";
+ rev = "e0a2516bd885708fce875023b474ae341cbdee29";
+ sha256 = "1qc7p44dqja6qrjbjdc2xn7n9v41j5v59sgjnxjj5k0mxp58y1ch";
+ };
+
+ postPatch = ''
+ substituteInPlace haskell_tool/fffuu.cabal \
+ --replace "containers >=0.5 && <0.6" "containers >= 0.6" \
+ --replace "optparse-generic >= 1.2.3 && < 1.3" "optparse-generic >= 1.2.3"
+ '';
+
+ preCompileBuildDriver = ''
+ cd haskell_tool
+ '';
+
+ isLibrary = false;
+
+ isExecutable = true;
+
+ # fails with sandbox
+ doCheck = false;
+
+ libraryHaskellDepends = with haskellPackages; [
+ base
+ containers
+ split
+ parsec
+ optparse-generic
+ ];
+
+ executableHaskellDepends = with haskellPackages; [ base ];
+
+ testHaskellDepends = with haskellPackages; [
+ tasty
+ tasty-hunit
+ tasty-golden
+ ];
+
+ description = "Fancy Formal Firewall Universal Understander";
+ homepage = "https://github.com/diekmann/Iptables_Semantics/tree/master/haskell_tool";
+ license = lib.licenses.bsd2;
+ maintainers = [ lib.maintainers.marsam ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ffsend/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ffsend/default.nix
new file mode 100644
index 000000000000..8b9f79aaa7fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ffsend/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitLab, rustPlatform, cmake, pkgconfig, openssl
+, darwin, installShellFiles
+
+, x11Support ? stdenv.isLinux || stdenv.hostPlatform.isBSD
+, xclip ? null, xsel ? null
+, preferXsel ? false # if true and xsel is non-null, use it instead of xclip
+}:
+
+let
+ usesX11 = stdenv.isLinux || stdenv.hostPlatform.isBSD;
+in
+
+assert (x11Support && usesX11) -> xclip != null || xsel != null;
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "ffsend";
+ version = "0.2.65";
+
+ src = fetchFromGitLab {
+ owner = "timvisee";
+ repo = "ffsend";
+ rev = "v${version}";
+ sha256 = "02yw129rw072jlf36k60jbhfdv9ayx2wb5il61fc0v07h1nd7i0d";
+ };
+
+ cargoSha256 = "04waki61b5pjlgznbhbrjpi9rxgdwg9mjbx2apfh9swvfip602r6";
+
+ nativeBuildInputs = [ cmake pkgconfig installShellFiles ];
+ buildInputs =
+ if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security AppKit ])
+ else [ openssl ];
+
+ preBuild = stdenv.lib.optionalString (x11Support && usesX11) (
+ if preferXsel && xsel != null then ''
+ export XSEL_PATH="${xsel}/bin/xsel"
+ '' else ''
+ export XCLIP_PATH="${xclip}/bin/xclip"
+ ''
+ );
+
+ postInstall = ''
+ installShellCompletion contrib/completions/ffsend.{bash,fish} --zsh contrib/completions/_ffsend
+ '';
+ # There's also .elv and .ps1 completion files but I don't know where to install those
+
+ meta = with stdenv.lib; {
+ description = "Easily and securely share files from the command line. A fully featured Firefox Send client";
+ longDescription = ''
+ Easily and securely share files and directories from the command line through a safe, private
+ and encrypted link using a single simple command. Files are shared using the Send service and
+ may be up to 2GB. Others are able to download these files with this tool, or through their
+ web browser.
+ '';
+ homepage = "https://gitlab.com/timvisee/ffsend";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ lilyball equirosa ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/figlet/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/figlet/default.nix
new file mode 100644
index 000000000000..90fb0981fbd0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/figlet/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation {
+ name = "figlet-2.2.5";
+
+ # some tools can be found here ftp://ftp.figlet.org/pub/figlet/util/
+ src = fetchurl {
+ url = "ftp://ftp.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz";
+ sha256 = "0za1ax15x7myjl8jz271ybly8ln9kb9zhm1gf6rdlxzhs07w925z";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://git.alpinelinux.org/aports/plain/main/figlet/musl-fix-cplusplus-decls.patch?h=3.4-stable&id=71776c73a6f04b6f671430f702bcd40b29d48399";
+ name = "musl-fix-cplusplus-decls.patch";
+ sha256 = "1720zgrfk9makznqkbjrnlxm7nnhk6zx7g458fv53337n3g3zn7j";
+ })
+ ];
+
+ makeFlags = [ "prefix=$(out)" "CC:=$(CC)" "LD:=$(CC)" ];
+
+ doCheck = true;
+
+ meta = {
+ description = "Program for making large letters out of ordinary text";
+ homepage = "http://www.figlet.org/";
+ license = stdenv.lib.licenses.afl21;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/file/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/file/default.nix
new file mode 100644
index 000000000000..8e284b25c08d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/file/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, file, zlib, libgnurx }:
+
+stdenv.mkDerivation rec {
+ pname = "file";
+ version = "5.39";
+
+ src = fetchurl {
+ urls = [
+ "ftp://ftp.astron.com/pub/file/${pname}-${version}.tar.gz"
+ "https://distfiles.macports.org/file/${pname}-${version}.tar.gz"
+ ];
+ sha256 = "1lgs2w2sgamzf27kz5h7pajz7v62554q21fbs11n4mfrfrm2hpgh";
+ };
+
+ patches = [
+ # https://github.com/file/file/commit/85b7ab83257b3191a1a7ca044589a092bcef2bb3
+ # Without the RCS id change to avoid conflicts. Remove on next bump.
+ ./webassembly-format-fix.patch
+ ];
+
+ nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
+ buildInputs = [ zlib ]
+ ++ stdenv.lib.optional stdenv.hostPlatform.isWindows libgnurx;
+
+ doCheck = true;
+
+ makeFlags = stdenv.lib.optional stdenv.hostPlatform.isWindows "FILE_COMPILE=file";
+
+ meta = with stdenv.lib; {
+ homepage = "https://darwinsys.com/file";
+ description = "A program that shows the type of files";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch
new file mode 100644
index 000000000000..5eca833e4d71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/funcs.c b/src/funcs.c
+index 299b8f022..ecbfa28c5 100644
+--- a/src/funcs.c
++++ b/src/funcs.c
+@@ -93,7 +93,7 @@ file_checkfmt(char *msg, size_t mlen, const char *fmt)
+ if (*++p == '%')
+ continue;
+ // Skip uninteresting.
+- while (strchr("0.'+- ", *p) != NULL)
++ while (strchr("#0.'+- ", *p) != NULL)
+ p++;
+ if (*p == '*') {
+ if (msg)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/filebench/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/filebench/default.nix
new file mode 100644
index 000000000000..4cd572ac9920
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/filebench/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, autoreconfHook, bison, flex }:
+
+stdenv.mkDerivation rec {
+ pname = "filebench";
+ version = "1.4.9.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/filebench/${pname}-${version}.tar.gz";
+ sha256 = "13hmx67lsz367sn8lrvz1780mfczlbiz8v80gig9kpkpf009yksc";
+ };
+
+ nativeBuildInputs = [ autoreconfHook bison flex ];
+
+ meta = with stdenv.lib; {
+ description = "File system and storage benchmark that can generate both micro and macro workloads";
+ homepage = "https://sourceforge.net/projects/filebench/";
+ license = licenses.cddl;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/default.nix
new file mode 100644
index 000000000000..056943e96d78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, gamin }:
+
+stdenv.mkDerivation rec {
+ name = "fileschanged-0.6.9";
+
+ src = fetchurl {
+ url = "mirror://savannah/fileschanged/${name}.tar.gz";
+ sha256 = "0ajc9h023vzpnlqqjli4wbvs0q36nr5p9msc3wzbic8rk687qcxc";
+ };
+
+ buildInputs = [ gamin ];
+
+ patches = [./unused-variables.debian.patch];
+
+ doCheck = true;
+
+ meta = {
+ homepage = "https://www.nongnu.org/fileschanged/";
+ description = "A command-line utility that reports when files have been altered";
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ longDescription = ''
+ This utility is a client to FAM (File Alteration Monitor) servers
+ like FAM or Gamin. You give it some filenames on the command line
+ and then it monitors those files for changes. When it discovers
+ that a file has been altered, it displays the filename on the
+ standard-output or executes a given command.
+ '';
+
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/unused-variables.debian.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/unused-variables.debian.patch
new file mode 100644
index 000000000000..73d307f9413d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fileschanged/unused-variables.debian.patch
@@ -0,0 +1,48 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 07_unused_variables.dpatch by Colin Watson <cjwatson@ubuntu.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: GCC 4.6 warns about unused variables, and fileschanged builds with
+## DP: -Werror, so deal with unused variable warnings.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' fileschanged-0.6.5~/src/monitor.c fileschanged-0.6.5/src/monitor.c
+--- fileschanged-0.6.5~/src/monitor.c 2006-04-19 20:42:29.000000000 +0100
++++ fileschanged-0.6.5/src/monitor.c 2011-09-14 01:17:23.000000000 +0100
+@@ -84,6 +84,7 @@
+ retval = FAMMonitorDirectory (c, node->filename, &node->request,
+ (void *) node);
+ //printf ("FAMMonitorDirectory returns %d (reqnum %d)\n", retval, node->request.reqnum);
++ (void) retval;
+ }
+ else if (S_ISREG (node->statbuf.st_mode))
+ {
+@@ -91,6 +92,7 @@
+ retval = FAMMonitorFile (c, node->filename, &node->request,
+ (void *) node);
+ //printf ("FAMMonitorFile returns %d (reqnum %d)\n", retval, node->request.reqnum);
++ (void) retval;
+ }
+ monitor_handle_events (c, list, 0, 30);
+ }
+
+diff -r -U3 fileschanged-0.6.9-orig/src/main.c fileschanged-0.6.9/src/main.c
+--- fileschanged-0.6.9-orig/src/main.c 2012-04-13 01:31:59.160601022 +0400
++++ fileschanged-0.6.9/src/main.c 2012-04-13 01:32:47.549599643 +0400
+@@ -126,6 +126,7 @@
+ {
+ retval = process_file (filelist, filelist_len, arguments.args[i]);
+ }
++ (void) retval;
+ return 0;
+ }
+
+@@ -168,6 +169,7 @@
+
+ if (fileptr != stdin)
+ fclose (fileptr);
++ (void) retval;
+ return 0;
+ }
+ int
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/default.nix
new file mode 100644
index 000000000000..84dd187e1fc7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl
+, coreutils
+}:
+
+# 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.
+
+stdenv.mkDerivation rec {
+ pname = "findutils";
+ version = "4.7.0";
+
+ src = fetchurl {
+ url = "mirror://gnu/findutils/${pname}-${version}.tar.xz";
+ sha256 = "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5";
+ };
+
+ postPatch = ''
+ substituteInPlace xargs/xargs.c --replace 'char default_cmd[] = "echo";' 'char default_cmd[] = "${coreutils}/bin/echo";'
+ '';
+
+ patches = [
+ ./no-install-statedir.patch
+ ];
+
+ buildInputs = [ coreutils ]; # bin/updatedb script needs to call sort
+
+ # Since glibc-2.25 the i686 tests hang reliably right after test-sleep.
+ doCheck
+ = !stdenv.hostPlatform.isDarwin
+ && !(stdenv.hostPlatform.libc == "glibc" && stdenv.hostPlatform.isi686)
+ && (stdenv.hostPlatform.libc != "musl")
+ && stdenv.hostPlatform == stdenv.buildPlatform;
+
+ outputs = [ "out" "info" ];
+
+ configureFlags = [
+ # "sort" need not be on the PATH as a run-time dep, so we need to tell
+ # configure where it is. Covers the cross and native case alike.
+ "SORT=${coreutils}/bin/sort"
+ "--localstatedir=/var/cache"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "https://www.gnu.org/software/findutils/";
+ description = "GNU Find Utilities, the basic directory searching utilities of the GNU operating system";
+
+ longDescription = ''
+ The GNU Find Utilities are the basic directory searching
+ utilities of the GNU operating system. These programs are
+ typically used in conjunction with other programs to provide
+ modular and powerful directory search and file locating
+ capabilities to other commands.
+
+ The tools supplied with this package are:
+
+ * find - search for files in a directory hierarchy;
+ * locate - list files in databases that match a pattern;
+ * updatedb - update a file name database;
+ * xargs - build and execute command lines from standard input.
+ '';
+
+ platforms = stdenv.lib.platforms.all;
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/no-install-statedir.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/no-install-statedir.patch
new file mode 100644
index 000000000000..a7a48038a3aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/findutils/no-install-statedir.patch
@@ -0,0 +1,11 @@
+--- a/locate/Makefile.in
++++ b/locate/Makefile.in
+@@ -2357,7 +2357,7 @@ updatedb: updatedb.sh Makefile
+ chmod +x $@
+
+ install-data-hook:
+- $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(localstatedir)
++ #$(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(localstatedir)
+
+ dblocation.texi:
+ echo '@set LOCATE_DB $(LOCATE_DB)' > $@.tmp
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/flameshot/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/flameshot/default.nix
new file mode 100644
index 000000000000..afca2e3007ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/flameshot/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, lib, fetchFromGitHub, qtbase, qmake, qttools, qtsvg }:
+
+# To use `flameshot gui`, you will also need to put flameshot in `services.dbus.packages`
+# in configuration.nix so that the daemon gets launched properly:
+#
+# services.dbus.packages = [ pkgs.flameshot ];
+# environment.systemPackages = [ pkgs.flameshot ];
+mkDerivation rec {
+ pname = "flameshot";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "lupoDharkael";
+ repo = "flameshot";
+ rev = "v${version}";
+ sha256 = "193szslh55v44jzxzx5g9kxhl8p8di7vbcnxlid4acfidhnvgazm";
+ };
+
+ nativeBuildInputs = [ qmake qttools qtsvg ];
+ buildInputs = [ qtbase ];
+
+ qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ preConfigure = ''
+ # flameshot.pro assumes qmake is being run in a git checkout.
+ git() { echo ${version}; }
+ export -f git
+ '';
+
+ postFixup = ''
+ substituteInPlace $out/share/dbus-1/services/org.dharkael.Flameshot.service \
+ --replace "/usr/local" "$out"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Powerful yet simple to use screenshot software";
+ homepage = "https://github.com/lupoDharkael/flameshot";
+ maintainers = [ maintainers.scode ];
+ license = lib.licenses.gpl3;
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/flashrom/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/flashrom/default.nix
new file mode 100644
index 000000000000..2f92dc6d9bf2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/flashrom/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, libftdi1
+, libusb1
+, pciutils
+}:
+
+stdenv.mkDerivation rec {
+ pname = "flashrom";
+ version = "1.2";
+
+ src = fetchurl {
+ url = "https://download.flashrom.org/releases/flashrom-v${version}.tar.bz2";
+ sha256 = "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71";
+ };
+
+ mesonFlags = lib.optionals stdenv.isAarch64 [ "-Dpciutils=false" ];
+ nativeBuildInputs = [ meson pkgconfig ninja ];
+ buildInputs = [ libftdi1 libusb1 pciutils ];
+
+ meta = with lib; {
+ homepage = "http://www.flashrom.org";
+ description = "Utility for reading, writing, erasing and verifying flash ROM chips";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ funfunctor fpletz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fltrdr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fltrdr/default.nix
new file mode 100644
index 000000000000..8d585324d875
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fltrdr/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, icu, openssl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fltrdr";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ repo = "fltrdr";
+ owner = "octobanana";
+ rev = version;
+ sha256 = "1vpci7vqzcpdd21zgigyz38k77r9fc81dmiwsvfr8w7gad5sg6sj";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ icu openssl ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://octobanana.com/software/fltrdr";
+ description = "A TUI text reader for the terminal";
+
+ longDescription = ''
+ Fltrdr, or flat-reader, is an interactive text reader for the terminal. It
+ is flat in the sense that the reader is word-based. It creates a
+ horizontal stream of words, ignoring all newline characters and reducing
+ extra whitespace. Its purpose is to facilitate reading, scanning, and
+ searching text. The program has a play mode that moves the reader forward
+ one word at a time, along with a configurable words per minute (WPM),
+ setting.
+ '';
+
+ platforms = platforms.linux; # can only test linux
+ license = licenses.mit;
+ maintainers = [ maintainers.matthiasbeyer ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
new file mode 100644
index 000000000000..174c0f42684f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, flex, bison }:
+
+stdenv.mkDerivation rec {
+ pname = "fluent-bit";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "fluent";
+ repo = "fluent-bit";
+ rev = "v${version}";
+ sha256 = "1m8ly2h52mw67kqc7qqpf7sxxnyk4fnw2qavjpj6zgw3i6dhj0p1";
+ };
+
+ nativeBuildInputs = [ cmake flex bison ];
+
+ postPatch = ''
+ substituteInPlace src/CMakeLists.txt \
+ --replace /lib/systemd $out/lib/systemd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Log forwarder and processor, part of Fluentd ecosystem";
+ homepage = "https://fluentbit.io";
+ maintainers = with maintainers; [
+ samrose
+ ];
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile
new file mode 100644
index 000000000000..8cbed0ebac40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile
@@ -0,0 +1,13 @@
+source "https://rubygems.org"
+
+gem 'fluentd'
+gem 'fluent-plugin-record-reformer'
+gem 'fluent-plugin-s3'
+gem 'fluent-plugin-kinesis'
+gem 'fluent-plugin-kafka'
+gem 'fluent-plugin-elasticsearch'
+gem 'fluent-plugin-scribe'
+gem 'fluent-plugin-mongo'
+gem 'fluent-plugin-webhdfs'
+gem 'fluent-plugin-rewrite-tag-filter'
+gem 'fluent-plugin-cloudwatch-logs'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
new file mode 100644
index 000000000000..1b1f6cec622e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
@@ -0,0 +1,139 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ aws-eventstream (1.0.3)
+ aws-partitions (1.207.0)
+ aws-sdk-cloudwatchlogs (1.25.0)
+ aws-sdk-core (~> 3, >= 3.61.1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-core (3.65.1)
+ aws-eventstream (~> 1.0, >= 1.0.2)
+ aws-partitions (~> 1.0)
+ aws-sigv4 (~> 1.1)
+ jmespath (~> 1.0)
+ aws-sdk-firehose (1.20.0)
+ aws-sdk-core (~> 3, >= 3.61.1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kinesis (1.19.0)
+ aws-sdk-core (~> 3, >= 3.61.1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kms (1.24.0)
+ aws-sdk-core (~> 3, >= 3.61.1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-s3 (1.48.0)
+ aws-sdk-core (~> 3, >= 3.61.1)
+ aws-sdk-kms (~> 1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-sqs (1.22.0)
+ aws-sdk-core (~> 3, >= 3.61.1)
+ aws-sigv4 (~> 1.1)
+ aws-sigv4 (1.1.0)
+ aws-eventstream (~> 1.0, >= 1.0.2)
+ bson (4.5.0)
+ concurrent-ruby (1.1.5)
+ cool.io (1.5.4)
+ dig_rb (1.0.1)
+ digest-crc (0.4.1)
+ elasticsearch (7.3.0)
+ elasticsearch-api (= 7.3.0)
+ elasticsearch-transport (= 7.3.0)
+ elasticsearch-api (7.3.0)
+ multi_json
+ elasticsearch-transport (7.3.0)
+ faraday
+ multi_json
+ excon (0.66.0)
+ faraday (0.15.4)
+ multipart-post (>= 1.2, < 3)
+ fluent-config-regexp-type (1.0.0)
+ fluentd (> 1.0.0, < 2)
+ fluent-plugin-cloudwatch-logs (0.7.4)
+ aws-sdk-cloudwatchlogs (~> 1.0)
+ fluentd (>= 0.14.15)
+ fluent-plugin-elasticsearch (3.5.5)
+ elasticsearch
+ excon
+ fluentd (>= 0.14.22)
+ fluent-plugin-kafka (0.11.1)
+ fluentd (>= 0.10.58, < 2)
+ ltsv
+ ruby-kafka (>= 0.7.8, < 0.8.0)
+ fluent-plugin-kinesis (3.1.0)
+ aws-sdk-firehose (~> 1, != 1.9, != 1.5)
+ aws-sdk-kinesis (~> 1, != 1.5, != 1.4)
+ fluentd (>= 0.14.10, < 2)
+ google-protobuf (~> 3)
+ fluent-plugin-mongo (1.3.0)
+ fluentd (>= 0.14.22, < 2)
+ mongo (~> 2.6.0)
+ fluent-plugin-record-reformer (0.9.1)
+ fluentd
+ fluent-plugin-rewrite-tag-filter (2.2.0)
+ fluent-config-regexp-type
+ fluentd (>= 0.14.2, < 2)
+ fluent-plugin-s3 (1.1.11)
+ aws-sdk-s3 (~> 1.0)
+ aws-sdk-sqs (~> 1.0)
+ fluentd (>= 0.14.22, < 2)
+ fluent-plugin-scribe (1.0.0)
+ fluentd
+ thrift (~> 0.8.0)
+ fluent-plugin-webhdfs (1.2.4)
+ fluentd (>= 0.14.22)
+ webhdfs (>= 0.6.0)
+ fluentd (1.7.0)
+ cool.io (>= 1.4.5, < 2.0.0)
+ dig_rb (~> 1.0.0)
+ http_parser.rb (>= 0.5.1, < 0.7.0)
+ msgpack (>= 0.7.0, < 2.0.0)
+ serverengine (>= 2.0.4, < 3.0.0)
+ sigdump (~> 0.2.2)
+ strptime (>= 0.2.2, < 1.0.0)
+ tzinfo (~> 2.0)
+ tzinfo-data (~> 1.0)
+ yajl-ruby (~> 1.0)
+ google-protobuf (3.9.1)
+ http_parser.rb (0.6.0)
+ jmespath (1.4.0)
+ ltsv (0.1.2)
+ mongo (2.6.4)
+ bson (>= 4.3.0, < 5.0.0)
+ msgpack (1.3.1)
+ multi_json (1.13.1)
+ multipart-post (2.1.1)
+ public_suffix (4.0.1)
+ ruby-kafka (0.7.10)
+ digest-crc
+ serverengine (2.1.1)
+ sigdump (~> 0.2.2)
+ sigdump (0.2.4)
+ strptime (0.2.3)
+ thrift (0.8.0)
+ tzinfo (2.0.0)
+ concurrent-ruby (~> 1.0)
+ tzinfo-data (1.2019.2)
+ tzinfo (>= 1.0.0)
+ webhdfs (0.8.0)
+ addressable
+ yajl-ruby (1.4.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ fluent-plugin-cloudwatch-logs
+ fluent-plugin-elasticsearch
+ fluent-plugin-kafka
+ fluent-plugin-kinesis
+ fluent-plugin-mongo
+ fluent-plugin-record-reformer
+ fluent-plugin-rewrite-tag-filter
+ fluent-plugin-s3
+ fluent-plugin-scribe
+ fluent-plugin-webhdfs
+ fluentd
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/default.nix
new file mode 100644
index 000000000000..82ea02aae680
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/default.nix
@@ -0,0 +1,18 @@
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
+
+bundlerEnv {
+ inherit ruby;
+
+ pname = "fluentd";
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "fluentd";
+
+ meta = with lib; {
+ description = "A data collector";
+ homepage = "https://www.fluentd.org/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
new file mode 100644
index 000000000000..a4b488597c78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
@@ -0,0 +1,543 @@
+{
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ aws-eventstream = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ aws-partitions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dr16ryn9514qfdf9zrv06f7gb7gih960b82arkv868nfj4470jx";
+ type = "gem";
+ };
+ version = "1.207.0";
+ };
+ aws-sdk-cloudwatchlogs = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10vracvnmihazs34nlmar813qdigk34afij66182hjcciby0as6x";
+ type = "gem";
+ };
+ version = "1.25.0";
+ };
+ aws-sdk-core = {
+ dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vb49n1ydz1m2l0qhc7gp0rvc7fa7qxczf582kyv7nsfn2k2z9s4";
+ type = "gem";
+ };
+ version = "3.65.1";
+ };
+ aws-sdk-firehose = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2rksdk3iv9jvcnyvnpvmh35vbs0ppan9iw4zq6fg87y44j9i74";
+ type = "gem";
+ };
+ version = "1.20.0";
+ };
+ aws-sdk-kinesis = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w2azv19xi1jmp4dsqjh8af1xdyw4ajd1l5abmx3wpwd8zngxvlp";
+ type = "gem";
+ };
+ version = "1.19.0";
+ };
+ aws-sdk-kms = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14blvvfz67rhffi4ahby50jiip5f0hm85mcxlx6y93g0cfrnxh3m";
+ type = "gem";
+ };
+ version = "1.24.0";
+ };
+ aws-sdk-s3 = {
+ dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14iv2wqvvbiz0gdms21i9n6rh8390r1yg4zcf8pzzfplbqfwqw4w";
+ type = "gem";
+ };
+ version = "1.48.0";
+ };
+ aws-sdk-sqs = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pszp0bcgiqn4iskb6xv5j2n540h1k9glz2w85vq5iml1casq769";
+ type = "gem";
+ };
+ version = "1.22.0";
+ };
+ aws-sigv4 = {
+ dependencies = ["aws-eventstream"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ bson = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gxdavhccppnfbmh2cx0qxv6b6rzr5s00dsigazw808dhb34yyg7";
+ type = "gem";
+ };
+ version = "4.5.0";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+ type = "gem";
+ };
+ version = "1.1.5";
+ };
+ "cool.io" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l836z3qgrl5829q48qaz1zngqqxy2k0l61swqm0amhyfcgfbz1m";
+ type = "gem";
+ };
+ version = "1.5.4";
+ };
+ dig_rb = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12dbb1pl2vr9z7yy2zsbsjaj4hw89y56wll6kd8422mylmcw7bx4";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ digest-crc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q8p0fk51aa6dwhy2xmjaj76arcq9nn22gyia162jmqpccfx50l";
+ type = "gem";
+ };
+ version = "0.4.1";
+ };
+ elasticsearch = {
+ dependencies = ["elasticsearch-api" "elasticsearch-transport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r4gpskjgg8blk7ws9g1p3d5n8bjrggyzxg2v3q40036rjp3fp1h";
+ type = "gem";
+ };
+ version = "7.3.0";
+ };
+ elasticsearch-api = {
+ dependencies = ["multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jyd03ylyvv975iail13cwlkg4h9yknhpm1kcq1dpvmbjqy7q6bz";
+ type = "gem";
+ };
+ version = "7.3.0";
+ };
+ elasticsearch-transport = {
+ dependencies = ["faraday" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dqm819iqkhbny5lwkf8mh83fmffpwbscal9vmfdw4g9mf08yfnf";
+ type = "gem";
+ };
+ version = "7.3.0";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05qmrx7l8abpbvp0z01fdpc731c4k6akk67l424vdp5dywhachpr";
+ type = "gem";
+ };
+ version = "0.66.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+ type = "gem";
+ };
+ version = "0.15.4";
+ };
+ fluent-config-regexp-type = {
+ dependencies = ["fluentd"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hk0vxcmlbid7n6piyv3x83j5gyiz7in397l9x3c6nh69wicy7gm";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ fluent-plugin-cloudwatch-logs = {
+ dependencies = ["aws-sdk-cloudwatchlogs" "fluentd"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "046nx56zgb3l29r5v1s79zhhxsb18fwz2d8v6n6cgbv8i13xhl0l";
+ type = "gem";
+ };
+ version = "0.7.4";
+ };
+ fluent-plugin-elasticsearch = {
+ dependencies = ["elasticsearch" "excon" "fluentd"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19nrhgx8mh59lpcv2jf3gb031x4zan93j9fswzjzvyjh4rlfpbmn";
+ type = "gem";
+ };
+ version = "3.5.5";
+ };
+ fluent-plugin-kafka = {
+ dependencies = ["fluentd" "ltsv" "ruby-kafka"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1km7gjcx2icwj2s2svbmrhwb1gmpk85zfa8pivm04wzc8f6vjhy2";
+ type = "gem";
+ };
+ version = "0.11.1";
+ };
+ fluent-plugin-kinesis = {
+ dependencies = ["aws-sdk-firehose" "aws-sdk-kinesis" "fluentd" "google-protobuf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j0qs09g53xsvbxpdlylwm3h2v8rvr3xpn0kwy63cjnpdf012m8f";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ fluent-plugin-mongo = {
+ dependencies = ["fluentd" "mongo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "108gxrgbn0ib70n7gvdlx8xr1i0jdh1cb2n4m4m24ihyfb8i6vli";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ fluent-plugin-record-reformer = {
+ dependencies = ["fluentd"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gwfrfyi9is4l9q4ih3c4l3c9qvyh00jnd2qajdpdh5xjj2m7akn";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ fluent-plugin-rewrite-tag-filter = {
+ dependencies = ["fluent-config-regexp-type" "fluentd"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kf8p1s02pwhkks82kmkkbfbf4qlhhqiczqah4w0dnp86wp6xyw5";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ fluent-plugin-s3 = {
+ dependencies = ["aws-sdk-s3" "aws-sdk-sqs" "fluentd"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "093fs43bixd0lmjfpkk1fl24asa1w8kacqrm82lbfx4cq4dg4fif";
+ type = "gem";
+ };
+ version = "1.1.11";
+ };
+ fluent-plugin-scribe = {
+ dependencies = ["fluentd" "thrift"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19m37d0saknifjg8kva96pgsc7zsmdlwvwiy9gvhi2d6c7bq3q30";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ fluent-plugin-webhdfs = {
+ dependencies = ["fluentd" "webhdfs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mhy321gxb59yk0rsawnqf3kfx33ncdlnpmn4rdfzgi0v8ya0fp4";
+ type = "gem";
+ };
+ version = "1.2.4";
+ };
+ fluentd = {
+ dependencies = ["cool.io" "dig_rb" "http_parser.rb" "msgpack" "serverengine" "sigdump" "strptime" "tzinfo" "tzinfo-data" "yajl-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pyjd31z95l819n9sbl6bl5bvjmyi39is0p2i0im3v0r9ydgyf27";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ google-protobuf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb7v00zya00jddl7cpraz27xi3jsdjn31mm672byqwzdyghpfka";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ "http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ jmespath = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ ltsv = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wrjvc5079zhpn62k1yflrf7js6vaysrg1qwggf7bj2zi0p5rhys";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ mongo = {
+ dependencies = ["bson"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k0f1826hixqfqgsc9g6rdqrzr5pzy46hszmk6869pmvm638jah1";
+ type = "gem";
+ };
+ version = "2.6.4";
+ };
+ msgpack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+ type = "gem";
+ };
+ version = "4.0.1";
+ };
+ ruby-kafka = {
+ dependencies = ["digest-crc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m50s1xabvgq36k9jx2qj8bd8ivvkxa6fs2czi22jxhzqsl3xlvc";
+ type = "gem";
+ };
+ version = "0.7.10";
+ };
+ serverengine = {
+ dependencies = ["sigdump"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10y535621y0kyn40bkcnl01zrsf3z4abf4mdl8m3fdcmj30mazlw";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ sigdump = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mqf06iw7rymv54y7rgbmfi6ppddgjjmxzi3hrw658n1amp1gwhb";
+ type = "gem";
+ };
+ version = "0.2.4";
+ };
+ strptime = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yj5wwa7wbhgi7w8d9ihpzpf99niw956fhyxddhayj09fgmdcxd8";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ thrift = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0aj23ndh5n5yqcvp4c12y7vl5wvxpl66zncf6n6ax2zvb6ig44cv";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ tzinfo = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jp9f5120az6q84w5w19nnn6g6yl2whc1cbcnnv4xryw9q8vqbkb";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ tzinfo-data = {
+ dependencies = ["tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m507in0d7vlfgasxpkz3y1a44zp532k9qlqcaz90ay939sz9h5q";
+ type = "gem";
+ };
+ version = "1.2019.2";
+ };
+ webhdfs = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gs6xb9dz9bp5xc38yplfy48jcgj7jrj0zg0vgi7ydkxnkzkhbf2";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ yajl-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fondu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fondu/default.nix
new file mode 100644
index 000000000000..772ae236764c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fondu/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ version = "060102";
+ pname = "fondu";
+
+ src = fetchurl {
+ url = "http://fondu.sourceforge.net/fondu_src-${version}.tgz";
+ sha256 = "152prqad9jszjmm4wwqrq83zk13ypsz09n02nrk1gg0fcxfm7fr2";
+ };
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ hardeningDisable = [ "fortify" ];
+
+ meta = {
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/default.nix
new file mode 100644
index 000000000000..8da5c8716524
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchurl, lib
+, fetchpatch
+, cmake, perl, uthash, pkgconfig, gettext
+, python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
+, readline, woff2, zeromq, libuninameslist
+, withSpiro ? false, libspiro
+, withGTK ? false, gtk3
+, withGUI ? withGTK
+, withPython ? true
+, withExtras ? true
+, Carbon ? null, Cocoa ? null
+}:
+
+assert withGTK -> withGUI;
+
+stdenv.mkDerivation rec {
+ pname = "fontforge";
+ version = "20200314";
+
+ src = fetchurl {
+ url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
+ sha256 = "0qf88wd6riycq56d24brybyc93ns74s0nyyavm43zp2kfcihn6fd";
+ };
+
+ patches = [
+ # Unreleased fix for https://github.com/fontforge/fontforge/issues/4229
+ # which is required to fix an uninterposated `${CMAKE_INSTALL_PREFIX}/lib`, see
+ # see https://github.com/nh2/static-haskell-nix/pull/98#issuecomment-665395399
+ # TODO: Remove https://github.com/fontforge/fontforge/pull/4232 is in a release.
+ (fetchpatch {
+ name = "fontforge-cmake-set-rpath-to-the-configure-time-CMAKE_INSTALL_PREFIX";
+ url = "https://github.com/fontforge/fontforge/commit/297ee9b5d6db5970ca17ebe5305189e79a1520a1.patch";
+ sha256 = "14qfp8pwh0vzzib4hq2nc6xhn8lc1cal1sb0lqwb2q5dijqx5kqk";
+ })
+ ];
+
+ # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps
+ postPatch = ''
+ find . -type f -name '*.c' -exec sed -r -i 's#\btime\(&(.+)\)#if (getenv("SOURCE_DATE_EPOCH")) \1=atol(getenv("SOURCE_DATE_EPOCH")); else &#g' {} \;
+ sed -r -i 's#author\s*!=\s*NULL#& \&\& !getenv("SOURCE_DATE_EPOCH")#g' fontforge/cvexport.c fontforge/dumppfa.c fontforge/print.c fontforge/svg.c fontforge/splineutil2.c
+ sed -r -i 's#\bb.st_mtime#getenv("SOURCE_DATE_EPOCH") ? atol(getenv("SOURCE_DATE_EPOCH")) : &#g' fontforge/parsepfa.c fontforge/sfd.c fontforge/svg.c
+ sed -r -i 's#^\s*ttf_fftm_dump#if (!getenv("SOURCE_DATE_EPOCH")) ttf_fftm_dump#g' fontforge/tottf.c
+ sed -r -i 's#sprintf\(.+ author \);#if (!getenv("SOURCE_DATE_EPOCH")) &#g' fontforgeexe/fontinfo.c
+ '';
+
+ # do not use x87's 80-bit arithmetic, rouding errors result in very different font binaries
+ NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-msse2 -mfpmath=sse";
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [
+ readline uthash woff2 zeromq libuninameslist
+ python freetype zlib glib libungif libpng libjpeg libtiff libxml2
+ ]
+ ++ lib.optionals withSpiro [libspiro]
+ ++ lib.optionals withGUI [ gtk3 cairo pango ]
+ ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
+
+ cmakeFlags = [ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ]
+ ++ lib.optional (!withSpiro) "-DENABLE_LIBSPIRO=OFF"
+ ++ lib.optional (!withGUI) "-DENABLE_GUI=OFF"
+ ++ lib.optional (!withGTK) "-DENABLE_X11=ON"
+ ++ lib.optional withExtras "-DENABLE_FONTFORGE_EXTRAS=ON";
+
+ # work-around: git isn't really used, but configuration fails without it
+ preConfigure = ''
+ # The way $version propagates to $version of .pe-scripts (https://github.com/dejavu-fonts/dejavu-fonts/blob/358190f/scripts/generate.pe#L19)
+ export SOURCE_DATE_EPOCH=$(date -d ${version} +%s)
+ '';
+
+ postInstall =
+ # get rid of the runtime dependency on python
+ lib.optionalString (!withPython) ''
+ rm -r "$out/share/fontforge/python"
+ '';
+
+ meta = {
+ description = "A font editor";
+ homepage = "http://fontforge.github.io";
+ platforms = stdenv.lib.platforms.all;
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [ stdenv.lib.maintainers.erictapen ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/fontforge-fonttools.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/fontforge-fonttools.nix
new file mode 100644
index 000000000000..ea4acfc5f0bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fontforge/fontforge-fonttools.nix
@@ -0,0 +1 @@
+{ fontforge }: fontforge.override { withExtras = true; }
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fortune/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fortune/default.nix
new file mode 100644
index 000000000000..74c21d21fcc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fortune/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, cmake, recode, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "fortune-mod";
+ version = "2.10.0";
+
+ src = fetchurl {
+ url = "https://www.shlomifish.org/open-source/projects/fortune-mod/arcs/fortune-mod-${version}.tar.xz";
+ sha256 = "07g50hij87jb7m40pkvgd47qfvv4s805lwiz79jbqcxzd7zdyax7";
+ };
+
+ nativeBuildInputs = [ cmake perl ];
+
+ buildInputs = [ recode ];
+
+ cmakeFlags = [
+ "-DLOCALDIR=${placeholder "out"}/share/fortunes"
+ ];
+
+ patches = [ (builtins.toFile "not-a-game.patch" ''
+ diff --git a/CMakeLists.txt b/CMakeLists.txt
+ index 865e855..5a59370 100644
+ --- a/CMakeLists.txt
+ +++ b/CMakeLists.txt
+ @@ -154,7 +154,7 @@ ENDMACRO()
+ my_exe(
+ "fortune"
+ "fortune/fortune.c"
+ - "games"
+ + "bin"
+ )
+
+ my_exe(
+ --
+ '') ];
+
+ meta = with stdenv.lib; {
+ description = "A program that displays a pseudorandom message from a database of quotations";
+ license = licenses.bsdOriginal;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fpart/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fpart/default.nix
new file mode 100644
index 000000000000..e673c73d0961
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fpart/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, fts }:
+
+stdenv.mkDerivation rec {
+ pname = "fpart";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "martymac";
+ repo = "fpart";
+ rev = "${pname}-${version}";
+ sha256 = "17zm3cgp3f2plynqhj8a0hbma5rvawrx5kqygjqyynn7cljv458v";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ fts ];
+
+ postInstall = ''
+ sed "s|^FPART_BIN=.*|FPART_BIN=\"$out/bin/fpart\"|" \
+ -i "$out/bin/fpsync"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Split file trees into bags (called \"partitions\")";
+ longDescription = ''
+ Fpart is a tool that helps you sort file trees and pack them into bags
+ (called "partitions").
+
+ It splits a list of directories and file trees into a certain number of
+ partitions, trying to produce partitions with the same size and number of
+ files. It can also produce partitions with a given number of files or a
+ limited size.
+
+ Once generated, partitions are either printed as file lists to stdout
+ (default) or to files. Those lists can then be used by third party programs.
+
+ Fpart also includes a live mode, which allows it to crawl very large
+ filesystems and produce partitions in live. Hooks are available to act on
+ those partitions (e.g. immediatly start a transfer using rsync(1))
+ without having to wait for the filesystem traversal job to be finished.
+ Used this way, fpart can be seen as a powerful data migration tool.
+ '';
+ homepage = "http://contribs.martymac.org/";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fpp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fpp/default.nix
new file mode 100644
index 000000000000..b00f2198dbc1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fpp/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, python3 }:
+
+stdenv.mkDerivation rec {
+ pname = "fpp";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = "PathPicker";
+ rev = version;
+ sha256 = "08p2xlz045fqyb0aj9pwwf2s5nb4b02i8zj81732q59yx5c6lrlv";
+ };
+
+ postPatch = ''
+ substituteInPlace fpp --replace 'PYTHONCMD="python3"' 'PYTHONCMD="${python3.interpreter}"'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/fpp $out/bin
+ cp -r fpp src $out/share/fpp
+ ln -s $out/share/fpp/fpp $out/bin/fpp
+ '';
+
+ meta = {
+ description = "CLI program that accepts piped input and presents files for selection";
+ homepage = "https://facebook.github.io/PathPicker/";
+ license = stdenv.lib.licenses.bsd3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fselect/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fselect/default.nix
new file mode 100644
index 000000000000..312c7bbe3e97
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fselect/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "fselect";
+ version = "0.6.10";
+
+ src = fetchFromGitHub {
+ owner = "jhspetersson";
+ repo = "fselect";
+ rev = version;
+ sha256 = "17dz0qj2981plvzp72yisyrjnyz1sy3pqyvhx76ws2754vjgq4ra";
+ };
+
+ cargoSha256 = "19b05gx717xjg4arn4zgrqh7ckzgzx0ygg9gkfzsg7phz7f01626";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installManPage docs/fselect.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Find files with SQL-like queries";
+ homepage = "https://github.com/jhspetersson/fselect";
+ license = with licenses; [ asl20 mit ];
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fsmark/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fsmark/default.nix
new file mode 100644
index 000000000000..7bfa24e3a082
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fsmark/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "fsmark";
+ version = "3.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fsmark/${version}/fs_mark-${version}.tar.gz";
+ sha256 = "15f8clcz49qsfijdmcz165ysp8v4ybsm57d3dxhhlnq1bp1i9w33";
+ };
+
+ patchPhase = ''
+ sed -i Makefile -e 's/-static //'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp fs_mark $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Synchronous write workload file system benchmark";
+ homepage = "https://sourceforge.net/projects/fsmark/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fsmon/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fsmon/default.nix
new file mode 100644
index 000000000000..668fa463adb3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fsmon/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "fsmon";
+ version = "1.8.1";
+
+ src = fetchFromGitHub {
+ owner = "nowsecure";
+ repo = "fsmon";
+ rev = version;
+ sha256 = "0i7irqs4100j0g19jh64p2plbwipl6p3ld6w4sscc7n8lwkxmj03";
+ };
+
+ installPhase = ''
+ make install PREFIX=$out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "FileSystem Monitor utility";
+ homepage = "https://github.com/nowsecure/fsmon";
+ license = licenses.mit;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fsql/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fsql/default.nix
new file mode 100644
index 000000000000..fa64d7428658
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fsql/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "fsql";
+ version = "0.3.1";
+
+ goPackagePath = "github.com/kshvmdn/fsql";
+
+ src = fetchFromGitHub {
+ owner = "kshvmdn";
+ repo = "fsql";
+ rev = "v${version}";
+ sha256 = "1accpxryk4744ydfrqc3la5k376ji11yr84n66dz5cx0f3n71vmz";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Search through your filesystem with SQL-esque queries";
+ homepage = "https://github.com/kshvmdn/fsql";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.unix;
+ inherit version;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/default.nix
new file mode 100644
index 000000000000..bf6c125ac759
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper, pkgconfig
+, zlib, lzma, bzip2, mtools, dosfstools, zip, unzip, libconfuse, libsodium
+, libarchive, darwin, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "fwup";
+ version = "1.5.2";
+
+ src = fetchFromGitHub {
+ owner = "fhunleth";
+ repo = "fwup";
+ rev = "v${version}";
+ sha256 = "05sjdlh450hk474a44yr6kz9dzx72jfxpi1krxbd0pdizlmfypsg";
+ };
+
+ doCheck = true;
+ patches = lib.optional stdenv.isDarwin [ ./fix-testrunner-darwin.patch ];
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook makeWrapper ];
+ buildInputs = [ zlib lzma bzip2 libconfuse libsodium libarchive ]
+ ++ lib.optionals stdenv.isDarwin [
+ darwin.apple_sdk.frameworks.DiskArbitration
+ ];
+ propagatedBuildInputs = [ zip unzip mtools dosfstools coreutils ];
+
+ meta = with stdenv.lib; {
+ description = "Configurable embedded Linux firmware update creator and runner";
+ homepage = "https://github.com/fhunleth/fwup";
+ license = licenses.asl20;
+ maintainers = [ maintainers.georgewhewell ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/fix-testrunner-darwin.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/fix-testrunner-darwin.patch
new file mode 100644
index 000000000000..b04b436ff5b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fwup/fix-testrunner-darwin.patch
@@ -0,0 +1,25 @@
+diff --git a/tests/common-orig.sh b/tests/common.sh
+index 1f2673f..79dcf74 100755
+--- a/tests/common-orig.sh
++++ b/tests/common.sh
+@@ -21,20 +21,6 @@ else
+ fi
+
+ case "$HOST_OS" in
+- Darwin)
+- # BSD stat
+- STAT_FILESIZE_FLAGS="-f %z"
+-
+- # Not -d?
+- BASE64_DECODE=-D
+-
+- READLINK=/usr/local/bin/greadlink
+- [ -e $READLINK ] || ( echo "Please run 'brew install coreutils' to install greadlink"; exit 1 )
+- [ -e /usr/local/bin/mdir ] || ( echo "Please run 'brew install mtools' to install mdir"; exit 1 )
+-
+- FSCK_FAT=fsck_msdos
+- TIMEOUT=gtimeout
+- ;;
+ FreeBSD|NetBSD|OpenBSD|DragonFly)
+ # BSD stat
+ STAT_FILESIZE_FLAGS="-f %z"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fx_cast/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
new file mode 100644
index 000000000000..d24ff0e05161
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchurl, dpkg }:
+
+stdenv.mkDerivation rec {
+ pname = "fx_cast_bridge";
+ version = "0.0.7";
+
+ src = fetchurl {
+ url = "https://github.com/hensm/fx_cast/releases/download/v${version}/${pname}-${version}-x64.deb";
+ sha256 = "0kd58vzsq1qzl7qsh1qv25ylxvr5y37li03gjb48x4vhd85slzz5";
+ };
+
+ nativeBuildInputs = [ dpkg ];
+
+ unpackPhase = ''
+ runHook preUnpack
+ dpkg-deb -xv $src ./
+ runHook postUnpack
+ '';
+
+ dontBuild = true;
+ dontPatchELF = true;
+
+ installPhase = ''
+ install -DT {opt/fx_cast,$out/bin}/${pname}
+ install -DT {usr,$out}/lib/mozilla/native-messaging-hosts/${pname}.json
+
+ substituteInPlace $out/lib/mozilla/native-messaging-hosts/${pname}.json \
+ --replace {/opt/fx_cast,$out/bin}/${pname}
+ '';
+
+ # See now-cli/default.nix
+ dontStrip = true;
+ preFixup = let
+ libPath = stdenv.lib.makeLibraryPath [stdenv.cc.cc stdenv.cc.libc];
+ bin = "$out/bin/${pname}";
+ in ''
+
+ orig_size=$(stat --printf=%s ${bin})
+
+ patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" ${bin}
+ patchelf --set-rpath ${libPath} ${bin}
+ chmod +x ${bin}
+
+ new_size=$(stat --printf=%s ${bin})
+
+ ###### zeit-pkg fixing starts here.
+ # we're replacing plaintext js code that looks like
+ # PAYLOAD_POSITION = '1234 ' | 0
+ # [...]
+ # PRELUDE_POSITION = '1234 ' | 0
+ # ^-----20-chars-----^^------22-chars------^
+ # ^-- grep points here
+ #
+ # var_* are as described above
+ # shift_by seems to be safe so long as all patchelf adjustments occur
+ # before any locations pointed to by hardcoded offsets
+
+ var_skip=20
+ var_select=22
+ shift_by=$(expr $new_size - $orig_size)
+
+ function fix_offset {
+ # $1 = name of variable to adjust
+ location=$(grep -obUam1 "$1" ${bin} | cut -d: -f1)
+ location=$(expr $location + $var_skip)
+
+ value=$(dd if=${bin} iflag=count_bytes,skip_bytes skip=$location \
+ bs=1 count=$var_select status=none)
+ value=$(expr $shift_by + $value)
+
+ echo -n $value | dd of=${bin} bs=1 seek=$location conv=notrunc
+ }
+
+ fix_offset PAYLOAD_POSITION
+ fix_offset PRELUDE_POSITION
+
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Implementation of the Chrome Sender API (Chromecast) within Firefox";
+ homepage = "https://hensm.github.io/fx_cast/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/default.nix
new file mode 100644
index 000000000000..112f6a9f2328
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchzip, substituteAll, dpkg, autoPatchelfHook, cups, tcl, tk, xorg, makeWrapper }:
+let
+ debPlatform =
+ if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+ else if stdenv.hostPlatform.system == "i686-linux" then "i386"
+ else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+in
+stdenv.mkDerivation rec {
+ pname = "fxlinuxprintutil";
+ version = "1.1.1-1";
+
+ src = fetchzip {
+ url = "https://onlinesupport.fujixerox.com/driver_downloads/fxlinuxpdf112119031.zip";
+ sha256 = "1mv07ch6ysk9bknfmjqsgxb803sj6vfin29s9knaqv17jvgyh0n3";
+ curlOpts = "--user-agent Mozilla/5.0"; # HTTP 410 otherwise
+ };
+
+ patches = [
+ # replaces references to “path/to/fxlputil” via $0 that are broken by our wrapProgram
+ # with /nix/store/fxlinuxprintutil/bin/fxlputil
+ ./fxlputil.patch
+
+ # replaces the code that looks for Tcl packages in the working directory and /usr/lib
+ # or /usr/lib64 with /nix/store/fxlinuxprintutil/lib
+ ./fxlputil.tcl.patch
+
+ # replaces the code that looks for X11’s locale.alias in /usr/share/X11/locale or
+ # /usr/lib/X11/locale with /nix/store/libX11/share/X11/locale
+ (substituteAll {
+ src = ./fxlocalechk.tcl.patch;
+ inherit (xorg) libX11;
+ })
+ ];
+
+ nativeBuildInputs = [ dpkg autoPatchelfHook makeWrapper ];
+ buildInputs = [ cups tcl tk ];
+
+ sourceRoot = ".";
+ unpackCmd = "dpkg-deb -x $curSrc/${pname}_${version}_${debPlatform}.deb .";
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out
+ mv usr/bin $out
+ mv usr/lib $out
+
+ wrapProgram $out/bin/fxlputil --prefix PATH : ${lib.makeBinPath [ tcl tk ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Optional configuration tool for fxlinuxprint";
+ homepage = "https://onlinesupport.fujixerox.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ delan ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch
new file mode 100644
index 000000000000..fbf211065e9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch
@@ -0,0 +1,18 @@
+diff --git a/usr/bin/fxlocalechk.tcl b/usr/bin/fxlocalechk.tcl
+index f0ebc6c..c3486fe 100755
+--- a/usr/bin/fxlocalechk.tcl
++++ b/usr/bin/fxlocalechk.tcl
+@@ -12,12 +12,7 @@
+ #THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #i18N
+-#---- check locale with environment variable
+-set locale_alias_path /usr/share/X11/locale
+-
+-if {[file exists $locale_alias_path/locale.alias] != 1} {
+- set locale_alias_path /usr/lib/X11/locale
+-}
++set locale_alias_path @libX11@/share/X11/locale
+
+ proc conv_locale {alias} {
+ global env envL locale_alias_path
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch
new file mode 100644
index 000000000000..972152b2cc3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch
@@ -0,0 +1,28 @@
+diff --git a/usr/bin/fxlputil b/usr/bin/fxlputil
+index cdac66d..aa86d02 100755
+--- a/usr/bin/fxlputil
++++ b/usr/bin/fxlputil
+@@ -7,17 +7,19 @@
+ # TCL=`which fxlputil`
+ #fi
+
++wrapper=$(dirname $0)/fxlputil
++
+ #set LC_ALL
+-locale=`tclsh $0lo.tcl`
++locale=`tclsh ${wrapper}lo.tcl`
+
+ case $locale in
+ "ja")
+- env LC_ALL=ja_JP.UTF-8 wish $0.tcl $1
++ env LC_ALL=ja_JP.UTF-8 wish ${wrapper}.tcl $1
+ ;;
+ "en")
+- env LC_ALL=en_US.ISO8859-1 wish $0.tcl $1
++ env LC_ALL=en_US.ISO8859-1 wish ${wrapper}.tcl $1
+ ;;
+ *)
+- env LC_ALL=C wish $0.tcl $1
++ env LC_ALL=C wish ${wrapper}.tcl $1
+ ;;
+ esac
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch
new file mode 100644
index 000000000000..2bfbab450cb0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch
@@ -0,0 +1,21 @@
+diff --git a/usr/bin/fxlputil.tcl b/usr/bin/fxlputil.tcl
+index 02eeaf6..788ed5a 100755
+--- a/usr/bin/fxlputil.tcl
++++ b/usr/bin/fxlputil.tcl
+@@ -25,14 +25,8 @@ catch {namespace import combobox::*}
+
+
+
+-lappend auto_path $cwd
+-
+-if {[lsearch $auto_path /usr/lib] == -1} {
+- lappend auto_path /usr/lib
+-}
+-if {[lsearch $auto_path /usr/lib64] == -1} {
+- lappend auto_path /usr/lib64
+-}
++# https://stackoverflow.com/a/23287132
++lappend auto_path [file join [file dirname [file dirname [info script]]] lib]
+
+ package require fxlputil
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fzf/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fzf/default.nix
new file mode 100644
index 000000000000..88000c0ba2c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -0,0 +1,71 @@
+{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, perl }:
+
+buildGoModule rec {
+ pname = "fzf";
+ version = "0.23.1";
+
+ src = fetchFromGitHub {
+ owner = "junegunn";
+ repo = pname;
+ rev = version;
+ sha256 = "1x55y96i4b3gk9l2zlwb6ifsk8nxzfny3b73ly89g7kifwkb543k";
+ };
+
+ vendorSha256 = "0bd4fk15i292377mv5w57gzxjp21f0rcf1py9gd6v99rx1pviq66";
+
+ outputs = [ "out" "man" ];
+
+ fishHook = writeText "load-fzf-keybindings.fish" "fzf_key_bindings";
+
+ buildInputs = [ ncurses ];
+
+ # The vim plugin expects a relative path to the binary; patch it to abspath.
+ patchPhase = ''
+ sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/fzf.vim
+
+ if ! grep -q $out plugin/fzf.vim; then
+ echo "Failed to replace vim base_dir path with $out"
+ exit 1
+ fi
+
+ # Has a sneaky dependency on perl
+ # Include first args to make sure we're patching the right thing
+ substituteInPlace shell/key-bindings.zsh \
+ --replace " perl -ne " " ${perl}/bin/perl -ne "
+ substituteInPlace shell/key-bindings.bash \
+ --replace " perl -n " " ${perl}/bin/perl -n "
+ '';
+
+ preInstall = ''
+ mkdir -p $out/share/fish/{vendor_functions.d,vendor_conf.d}
+ cp shell/key-bindings.fish $out/share/fish/vendor_functions.d/fzf_key_bindings.fish
+ cp ${fishHook} $out/share/fish/vendor_conf.d/load-fzf-key-bindings.fish
+ '';
+
+ postInstall = ''
+ cp bin/fzf-tmux $out/bin
+
+ mkdir -p $man/share/man
+ cp -r man/man1 $man/share/man
+
+ mkdir -p $out/share/vim-plugins/${pname}
+ cp -r plugin $out/share/vim-plugins/${pname}
+
+ cp -R shell $out/share/fzf
+ cat <<SCRIPT > $out/bin/fzf-share
+ #!${runtimeShell}
+ # Run this script to find the fzf shared folder where all the shell
+ # integration scripts are living.
+ echo $out/share/fzf
+ SCRIPT
+ chmod +x $out/bin/fzf-share
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/junegunn/fzf";
+ description = "A command-line fuzzy finder written in Go";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ma27 zowoq ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/fzy/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/fzy/default.nix
new file mode 100644
index 000000000000..90042d632b79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/fzy/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "fzy";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "jhawthorn";
+ repo = "fzy";
+ rev = version;
+ sha256 = "1gkzdvj73f71388jvym47075l9zw61v6l8wdv2lnc0mns6dxig0k";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A better fuzzy finder";
+ homepage = "https://github.com/jhawthorn/fzy";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dywedir ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/g933-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
new file mode 100644
index 000000000000..3da98301346f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, udev, pkgconfig }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "g933-utils";
+ version = "unstable-2019-08-04";
+
+ src = fetchFromGitHub {
+ owner = "ashkitten";
+ repo = "g933-utils";
+ rev = "b80cfd59fc41ae5d577c147311376dd7f7882493";
+ sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
+ };
+
+ cargoSha256 = "16xgk4rc36d6lylh2dzv63ryq9s7fli3h2qva1m1p6f0gpasnk7w";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ udev ];
+
+ meta = with stdenv.lib; {
+ description = "An application to configure Logitech wireless G933/G533 headsets";
+ homepage = "https://github.com/ashkitten/g933-utils";
+ license = licenses.mit;
+ maintainers = with maintainers; [ seqizz ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gammy/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gammy/default.nix
new file mode 100644
index 000000000000..a5da79950210
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gammy/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, qmake, libXxf86vm, wrapQtAppsHook }:
+
+let
+ pname = "gammy";
+ version = "0.9.58a";
+in
+
+stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchFromGitHub {
+ owner = "Fushko";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "02kwfzh7h2dbsfb6b3qlsc7zga1hq21qvg45wf22vm03mahc28za";
+ };
+
+ nativeBuildInputs = [ qmake wrapQtAppsHook ];
+
+ buildInputs = [ libXxf86vm ];
+
+ meta = with stdenv.lib; {
+ description = "GUI tool for manual- of auto-adjusting of brightness/temperature";
+ homepage = "https://github.com/Fushko/gammy";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ atemu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gams/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gams/default.nix
new file mode 100644
index 000000000000..0723735228a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gams/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, unzip, file, licenseFile ? null, optgamsFile ? null}:
+
+assert licenseFile != null;
+
+stdenv.mkDerivation rec {
+ version = "25.0.2";
+ pname = "gams";
+ src = fetchurl {
+ url = "https://d37drm4t2jghv5.cloudfront.net/distributions/${version}/linux/linux_x64_64_sfx.exe";
+ sha256 = "4f95389579f33ff7c2586838a2c19021aa0746279555cbb51aa6e0efd09bd297";
+ };
+ unpackCmd = "unzip $src";
+ buildInputs = [ unzip file ];
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p "$out/bin" "$out/share/gams"
+ cp -a * "$out/share/gams"
+
+ cp ${licenseFile} $out/share/gams/gamslice.txt
+ '' + stdenv.lib.optionalString (optgamsFile != null) ''
+ cp ${optgamsFile} $out/share/gams/optgams.def
+ ln -s $out/share/gams/optgams.def $out/bin/optgams.def
+ '';
+
+ postFixup = ''
+ for f in $out/share/gams/*; do
+ if [[ -x $f ]] && [[ -f $f ]] && [[ ! $f =~ .*\.so$ ]]; then
+ if patchelf \
+ --set-rpath "$out/share/gams" \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $f; then
+ ln -s $f $out/bin/$(basename $f)
+ fi
+ fi
+ done
+ '';
+
+ meta = with stdenv.lib;{
+ description = "General Algebraic Modeling System";
+ longDescription = ''
+ The General Algebraic Modeling System is a high-level modeling system for mathematical optimization.
+ GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems.
+ '';
+ homepage = "https://www.gams.com/";
+ license = licenses.unfree;
+ maintainers = [ maintainers.Scriptkiddi ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/default.nix
new file mode 100644
index 000000000000..2856dd485595
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+with builtins;
+
+buildGoPackage rec {
+ pname = "gawp";
+ version = "20160121-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "5db2d8faa220e8d6eaf8677354bd197bf621ff7f";
+
+ goPackagePath = "github.com/martingallagher/gawp";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/martingallagher/gawp";
+ sha256 = "0bbmbb1xxdgvqvg1ssn9d4j213li7bbbx3y42iz4fs10xv7x4r0c";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = {
+ homepage = "https://github.com/martingallagher/gawp";
+ description = "A simple, configurable, file watching, job execution tool";
+ license = stdenv.lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/deps.nix
new file mode 100644
index 000000000000..cf577a30354c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gawp/deps.nix
@@ -0,0 +1,29 @@
+[
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "d9157a9621b69ad1d8d77a1933590c416593f24f";
+ sha256 = "1asdbp7rj1j1m1aar1a022wpcwbml6zih6cpbxaw7b2m8v8is931";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/fsnotify.v1";
+ rev = "96c060f6a6b7e0d6f75fddd10efeaca3e5d1bcb0";
+ sha256 = "1308z1by82fbymcra26wjzw7lpjy91kbpp2skmwqcq4q1iwwzvk2";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "a83829b6f1293c91addabc89d0571c246397bbf4";
+ sha256 = "1m4dsmk90sbi17571h6pld44zxz7jc4lrnl4f27dpd1l8g5xvjhh";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/Makefile.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/Makefile.patch
new file mode 100644
index 000000000000..9c437deca07c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/Makefile.patch
@@ -0,0 +1,15 @@
+diff --git "a/Makefile.in" "b/Makefile.in"
+index b482958..472b8da 100644
+--- "a/Makefile.in"
++++ "b/Makefile.in"
+@@ -27,9 +27,7 @@ MKINSTALLDIRS = ./mkinstalldirs
+ CC = @CC@
+ CFLAGS = @XX_CFLAGS@ @CFLAGS@
+
+-DEFINES = @DEFINES@ -DG_DISABLE_DEPRECATED \
+- -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED \
+- -DGTK_DISABLE_DEPRECATED
++DEFINES = @DEFINES@
+
+ SRCS = bdf.c \
+ bdfcons.c \
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/default.nix
new file mode 100644
index 000000000000..e5dc243ede11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gbdfed/default.nix
@@ -0,0 +1,32 @@
+ { stdenv, fetchurl, pkgconfig, freetype, gtk }:
+
+stdenv.mkDerivation rec {
+ version = "1.6";
+ pname = "gbdfed";
+
+ src = fetchurl {
+ url = "http://sofia.nmsu.edu/~mleisher/Software/gbdfed/${pname}-${version}.tar.bz2";
+ sha256 = "0g09k6wim58hngxncq2brr7mwjm92j3famp0vs4b3p48wr65vcjx";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ freetype gtk ];
+
+ patches = [ ./Makefile.patch ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ description = "Bitmap Font Editor";
+ longDescription = ''
+ gbdfed lets you interactively create new bitmap font files or modify existing ones.
+ It allows editing multiple fonts and multiple glyphs,
+ it allows cut and paste operations between fonts and glyphs and editing font properties.
+ The editor works natively with BDF fonts.
+ '';
+ homepage = "http://sofia.nmsu.edu/~mleisher/Software/gbdfed/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.linquize ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/geekbench/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/geekbench/default.nix
new file mode 100644
index 000000000000..4d9434e9fb50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/geekbench/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, makeWrapper, ocl-icd, vulkan-loader, linuxPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "geekbench";
+ version = "5.2.3";
+
+ src = fetchurl {
+ url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
+ sha256 = "03hasbibw79vbcrpdf2fnm42i2mxc0ia7k96xv012wn6d4dfvr4w";
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib
+ cp -r geekbench.plar geekbench5 geekbench_x86_64 $out/bin
+
+ # needed for compute benchmark
+ ln -s ${linuxPackages.nvidia_x11}/lib/libcuda.so $out/lib/
+ ln -s ${ocl-icd}/lib/libOpenCL.so $out/lib/
+ ln -s ${ocl-icd}/lib/libOpenCL.so.1 $out/lib/
+ ln -s ${vulkan-loader}/lib/libvulkan.so $out/lib/
+ ln -s ${vulkan-loader}/lib/libvulkan.so.1 $out/lib/
+
+ for f in geekbench5 geekbench_x86_64 ; do
+ patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $out/bin/$f
+ wrapProgram $out/bin/$f --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$out/lib/"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cross-platform benchmark";
+ homepage = "https://geekbench.com/";
+ license = licenses.unfree;
+ maintainers = [ maintainers.michalrus ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/geteltorito/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/geteltorito/default.nix
new file mode 100644
index 000000000000..cee93ae29910
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/geteltorito/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, perl, ronn, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "geteltorito";
+ version = "0.6";
+
+ src = fetchurl {
+ url = "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/geteltorito-${version}.tar.gz";
+ sha256 = "1gkbm9ahj2mgqrkrfpibzclsriqgsbsvjh19fr815vpd9f6snkxv";
+ };
+
+ buildInputs = [ perl ronn ];
+
+ unpackCmd = "";
+ dontBuild = true;
+ configurePhase = "";
+ installPhase = ''
+ # reformat README to ronn markdown
+ cat > README.new <<EOF
+ geteltorito -- ${meta.description}
+ ===========
+
+ ## SYNOPSIS
+
+ EOF
+
+ # skip the first two lines
+ # -e reformat function call
+ # -e reformat example
+ # -e make everything else (that is no code) that contains `: ` a list item
+ tail -n +3 README | sed \
+ -e 's/^\(call:\s*\)\(getelt.*\)$/\1`\2`/' \
+ -e 's/^\(example:\s*\)\(getelt.*\)$/\1 `\2`/' \
+ -e 's/^\(.*: \)/- \1/g' \
+ >> README.new
+ mkdir -p $out/man/man1
+ ronn --roff README.new --pipe > $out/man/man1/geteltorito.1
+ install -vD geteltorito $out/bin/geteltorito
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Extract the initial/default boot image from a CD image if existent";
+ homepage = "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/";
+ maintainers = [ maintainers.Profpatsch ];
+ license = licenses.gpl2;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/getopt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/getopt/default.nix
new file mode 100644
index 000000000000..f94d6eeff4ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/getopt/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ pname = "getopt";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh";
+ };
+
+ makeFlags = [
+ "WITHOUT_GETTEXT=1"
+ "LIBCGETOPT=0"
+ "prefix=${placeholder "out"}"
+ "CC:=$(CC)"
+ ];
+
+ meta = {
+ platforms = stdenv.lib.platforms.unix;
+ homepage = "http://frodo.looijaard.name/project/getopt";
+ description = "Parses command-line arguments from shell scripts";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gh-ost/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gh-ost/default.nix
new file mode 100644
index 000000000000..82ff74a04192
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gh-ost/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gh-ost";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "github";
+ repo = "gh-ost";
+ rev = "v${version}";
+ sha256 = "0laj5nmf10qn01mqn0flipmhankgvrcfbdl3bc76wa14qkkg722m";
+ };
+
+ goPackagePath = "github.com/github/gh-ost";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.AppVersion=${version} -X main.BuildDescribe=${src.rev}" ];
+
+ meta = with stdenv.lib; {
+ description = "Triggerless online schema migration solution for MySQL";
+ homepage = "https://github.com/github/gh-ost";
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gibo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gibo/default.nix
new file mode 100644
index 000000000000..abee4950d879
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gibo/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, coreutils, findutils, git }:
+
+stdenv.mkDerivation rec {
+ pname = "gibo";
+ version = "1.0.6";
+
+ src = fetchFromGitHub {
+ owner = "simonwhitaker";
+ repo = "gibo";
+ rev = version;
+ sha256 = "07j3sv9ar9l074krajw8nfmsfmdp836irsbd053dbqk2v880gfm6";
+ };
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/etc/bash_completion.d
+ cp gibo $out/bin
+ cp gibo-completion.bash $out/etc/bash_completion.d
+
+ sed -e 's|\<git |${git}/bin/git |g' \
+ -e 's|\<basename |${coreutils}/bin/basename |g' \
+ -i "$out/bin/gibo"
+ sed -e 's|\<find |${findutils}/bin/find |g' \
+ -i "$out/etc/bash_completion.d/gibo-completion.bash"
+ '';
+
+ meta = {
+ homepage = "https://github.com/simonwhitaker/gibo";
+ license = stdenv.lib.licenses.publicDomain;
+ description = "A shell script for easily accessing gitignore boilerplates";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gif-for-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gif-for-cli/default.nix
new file mode 100644
index 000000000000..fed22e518937
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gif-for-cli/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, python3Packages, ffmpeg_3, zlib, libjpeg }:
+
+python3Packages.buildPythonApplication {
+ pname = "gif-for-cli";
+ version = "unstable-2018-08-14";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "gif-for-cli";
+ rev = "9696f25fea2e38499b7c248a3151030c3c68bb00";
+ sha256 = "1rj8wjfsabn27k1ds7a5fdqgf2r28zpz4lvhbzssjfj1yf0mfh7s";
+ };
+
+ checkInputs = [ python3Packages.coverage ];
+ buildInputs = [ ffmpeg_3 zlib libjpeg ];
+ propagatedBuildInputs = with python3Packages; [ pillow requests x256 ];
+
+ meta = with stdenv.lib; {
+ description = "Render gifs as ASCII art in your cli";
+ longDescription = "Takes in a GIF, short video, or a query to the Tenor GIF API and converts it to animated ASCII art.";
+ homepage = "https://github.com/google/gif-for-cli";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Scriptkiddi ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/git-fire/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/git-fire/default.nix
new file mode 100644
index 000000000000..0b5deccaa904
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/git-fire/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ name = "git-fire-unstable-2017-08-27";
+
+ src = fetchFromGitHub {
+ owner = "qw3rtman";
+ repo = "git-fire";
+ rev = "d72b68ed356f726c77c60294f9220275f16c9931";
+ sha256 = "1hdwkhyjjx31y0lpjkhbb4f5y9f7g70fnd4c2246cmk2rbsvj5b2";
+ };
+
+ installPhase = ''
+ install -D -m755 $src/git-fire $out/bin/git-fire
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ Push ALL changes in a git repository
+ '';
+ longDescription = ''
+ In the event of an emergency (fire, etc.), automatically commit all changes/files in a repository, pushing to all known remotes all commits and stashes.
+ '';
+ homepage = "https://github.com/qw3rtman/git-fire";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.swflint ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/git-town/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/git-town/default.nix
new file mode 100644
index 000000000000..ab9f1907a8e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/git-town/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "git-town";
+ version = "7.4.0";
+
+ goPackagePath = "github.com/git-town/git-town";
+ src = fetchFromGitHub {
+ owner = "git-town";
+ repo = "git-town";
+ rev = "v${version}";
+ sha256 = "05s2hp4xn0bs3y6rgqkpgz0k8q8yfpwkw5m8vwim95hk6n41ps18";
+ };
+
+ buildFlagsArray = [ "-ldflags=-X github.com/git-town/git-town/src/cmd.version=v${version} -X github.com/git-town/git-town/src/cmd.buildDate=nix" ];
+
+ meta = with stdenv.lib; {
+ description = "Generic, high-level git support for git-flow workflows";
+ homepage = "https://www.git-town.com/";
+ maintainers = [ maintainers.allonsy maintainers.blaggacao ];
+ license = licenses.mit;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gnokii/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gnokii/default.nix
new file mode 100644
index 000000000000..25c316661917
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gnokii/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, intltool, perl, gettext, libusb-compat-0_1, pkgconfig, bluez
+, readline, pcsclite, libical, gtk2, glib, libXpm }:
+
+stdenv.mkDerivation rec {
+ pname = "gnokii";
+ version = "0.6.31";
+
+ src = fetchurl {
+ sha256 = "0sjjhm40662bj6j0jh3sd25b8nww54nirpwamz618rg6pb5hjwm8";
+ url = "https://www.gnokii.org/download/gnokii/${pname}-${version}.tar.gz";
+ };
+
+ buildInputs = [
+ perl intltool gettext libusb-compat-0_1
+ glib gtk2 pkgconfig bluez readline
+ libXpm pcsclite libical
+ ];
+
+ meta = {
+ description = "Cellphone tool";
+ homepage = "http://www.gnokii.org";
+ maintainers = [ stdenv.lib.maintainers.raskin ];
+ platforms = stdenv.lib.platforms.linux;
+ broken = true; # 2018-04-10
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gnuvd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gnuvd/default.nix
new file mode 100644
index 000000000000..0c4929622704
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gnuvd/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+ name = "gnuvd-1.0.12";
+
+ src = fetchurl {
+ url = "https://www.djcbsoftware.nl/code/gnuvd/gnuvd-1.0.12.tar.gz";
+ sha256 = "0mpy76a0pxy62zjiihlzmvl4752hiwxhfs8rm1v5zgdr78acxyxz";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Command-line dutch dictionary application";
+ homepage = "https://www.djcbsoftware.nl/code/gnuvd/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/go.rice/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/go.rice/default.nix
new file mode 100644
index 000000000000..33e6975bb02d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/go.rice/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go.rice";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "GeertJohan";
+ repo = "go.rice";
+ rev = "v${version}";
+ sha256 = "0m1pkqnx9glf3mlx5jdaby9yxccbl02jpjgpi4m7x1hb4s2gn6vx";
+ };
+
+ vendorSha256 = "0cb5phyl2zm1xnkhvisv0lzgknsi93yzmpayg30w7jc6z4icwnw7";
+
+ doCheck = false;
+
+ subPackages = [ "." "rice" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/GeertJohan/go.rice";
+ description = "A Go package that makes working with resources such as html, js, css, images, templates very easy";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ blaggacao ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/goaccess/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/goaccess/default.nix
new file mode 100644
index 000000000000..1906c9d56656
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/goaccess/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, ncurses, glib, libmaxminddb }:
+
+stdenv.mkDerivation rec {
+ version = "1.4";
+ pname = "goaccess";
+
+ src = fetchurl {
+ url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
+ sha256 = "1gkpjg39f3afdwm9128jqjsfap07p8s027czzlnxfmi5hpzvkyz8";
+ };
+
+ configureFlags = [
+ "--enable-geoip=mmdb"
+ "--enable-utf8"
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libmaxminddb
+ ncurses
+ glib
+ ];
+
+ meta = {
+ description = "Real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems";
+ homepage = "https://goaccess.io";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ maintainers = with stdenv.lib.maintainers; [ ederoyd46 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/godu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/godu/default.nix
new file mode 100644
index 000000000000..37511d2e847c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/godu/default.nix
@@ -0,0 +1,24 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "godu";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "viktomas";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fp8iq4x0qiswksznnd6qh7c6g5pwglzz6ga11a7vgic0201wsvb";
+ };
+
+ patches = [ ./go-mod.patch ];
+
+ vendorSha256 = "1zq7b0zn24cbrjssk4g03i90szp1ms7ila4khwcm7hp9n1py245s";
+
+ meta = with lib; {
+ description = "Utility helping to discover large files/folders";
+ homepage = "https://github.com/viktomas/godu";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rople380 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/godu/go-mod.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/godu/go-mod.patch
new file mode 100644
index 000000000000..2b3efe6be604
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/godu/go-mod.patch
@@ -0,0 +1,33 @@
+diff --git a/go.mod b/go.mod
+index cf8f2fb..e405e03 100644
+--- a/go.mod
++++ b/go.mod
+@@ -5,5 +5,6 @@ go 1.14
+ require (
+ github.com/gdamore/tcell v1.1.1
+ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd
++ github.com/mattn/go-isatty v0.0.12 // indirect
+ github.com/stretchr/testify v1.3.0
+ )
+diff --git a/go.sum b/go.sum
+index 23c1232..e25c87e 100644
+--- a/go.sum
++++ b/go.sum
+@@ -8,6 +8,8 @@ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd h1:1e+0Z+T4t1mKL5xxv
+ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08 h1:5MnxBC15uMxFv5FY/J/8vzyaBiArCOkMdFT9Jsw78iY=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4=
++github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
++github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
+ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+@@ -16,6 +18,8 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 h1:FVCohIoYO7IJoDDVpV2pdq7SgrMH6wHnuTyrdrxJNoY= \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/default.nix
new file mode 100644
index 000000000000..bd53529a5d25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "gosu";
+ version = "2017-05-09";
+ rev = "e87cf95808a7b16208515c49012aa3410bc5bba8";
+
+ goPackagePath = "github.com/tianon/gosu";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/tianon/gosu";
+ sha256 = "1qp1cfx0hrr4qlnh7rhjb4xlxv9697flmgzzl6jcdkrpk1f0bz8m";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = {
+ description= "Tool that avoids TTY and signal-forwarding behavior of sudo and su";
+ homepage = "https://github.com/tianon/gosu";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/deps.nix
new file mode 100644
index 000000000000..9bdfa3923401
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gosu/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/opencontainers/runc";
+ fetch = {
+ type = "git";
+ url = "https://github.com/opencontainers/runc";
+ rev = "5274430fee9bc930598cfd9c9dbd33213f79f96e";
+ sha256 = "149057gm2y1mc45s7bh43c1ngjg1m54jkpaxw534ir9v5mb1zsxx";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
new file mode 100644
index 000000000000..36a7055f875c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
@@ -0,0 +1,32 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "gotify-cli";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "gotify";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "0hgh1i8rdmf12qmk66cgksv8hz5qzkfbfb6cfmrkhbq765xkm4ir";
+ };
+
+ vendorSha256 = "1l47s0h0v4cgqcsm5008cknvfa4vnv6f7n43d8ga0xq5ikqqzmja";
+
+ doCheck = false;
+
+ postInstall = ''
+ mv $out/bin/cli $out/bin/gotify
+ '';
+
+ buildFlagsArray = [
+ "-ldflags=-X main.Version=${version} -X main.Commit=${version} -X main.BuildDate=1970-01-01"
+ ];
+
+ meta = with lib; {
+ license = licenses.mit;
+ homepage = "https://github.com/gotify/cli";
+ description = "A command line interface for pushing messages to gotify/server";
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/default.nix
new file mode 100644
index 000000000000..6292fb4a7227
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, intltool, gettext, makeWrapper, coreutils, gnused, gnome3
+, gnugrep, parted, glib, libuuid, pkgconfig, gtkmm3, libxml2
+, gpart, hdparm, procps, utillinux, polkit, wrapGAppsHook, substituteAll
+}:
+
+stdenv.mkDerivation rec {
+ name = "gparted-1.1.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gparted/${name}.tar.gz";
+ sha256 = "092rgwjh1825fal6v3yafq2wr0i61hh0a2n0j4296zn0zdx7pzp2";
+ };
+
+ # Tries to run `pkexec --version` to get version.
+ # however the binary won't be suid so it returns
+ # an error preventing the program from detection
+ patches = [
+ (substituteAll {
+ src = ./polkit.patch;
+ polkit_version = polkit.version;
+ })
+ ];
+
+ configureFlags = [ "--disable-doc" ];
+
+ buildInputs = [ parted glib libuuid gtkmm3 libxml2 polkit.bin gnome3.adwaita-icon-theme ];
+ nativeBuildInputs = [ intltool gettext pkgconfig wrapGAppsHook ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${stdenv.lib.makeBinPath [ gpart hdparm utillinux procps coreutils gnused gnugrep ]}"
+ )
+ '';
+
+ # Doesn't get installed automaticallly if PREFIX != /usr
+ postInstall = ''
+ install -D -m0644 org.gnome.gparted.policy \
+ $out/share/polkit-1/actions/org.gnome.gparted.policy
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical disk partitioning tool";
+ longDescription = ''
+ GNOME Partition Editor for creating, reorganizing, and deleting disk
+ partitions. GParted enables you to change the partition organization
+ while preserving the partition contents.
+ '';
+ homepage = "https://gparted.org";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/polkit.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/polkit.patch
new file mode 100644
index 000000000000..a42ed785de94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gparted/polkit.patch
@@ -0,0 +1,12 @@
+diff -ru old/gparted-1.0.0/configure gparted-1.0.0/configure
+--- old/gparted-1.0.0/configure 2019-05-29 12:02:13.000000000 -0400
++++ gparted-1.0.0/configure 2019-08-08 18:09:52.792795781 -0400
+@@ -16145,7 +16145,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkexec >= $PKEXEC_REQUIRED_VERSION" >&5
+ $as_echo_n "checking for pkexec >= $PKEXEC_REQUIRED_VERSION... " >&6; }
+ PKEXEC_REQUIRED_INT=`echo "$PKEXEC_REQUIRED_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
+-PKEXEC_VERSION_OUTPUT=`pkexec --version 2> /dev/null` ||
++PKEXEC_VERSION_OUTPUT='pkexec version @polkit_version@' ||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ $as_echo "not found" >&6; }
+ if test "x$PKEXEC_VERSION_OUTPUT" != 'x'; then
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/default.nix
new file mode 100644
index 000000000000..503b9bcd411a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, makeWrapper, jre_headless, nixosTests }:
+
+stdenv.mkDerivation rec {
+ pname = "graylog";
+ version = "3.3.8";
+
+ src = fetchurl {
+ url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
+ sha256 = "0y5c7sgdswh2p50plv78vkva0wwlyh2vh3qy3mymq48nqpzrbirp";
+ };
+
+ dontBuild = true;
+ dontStrip = true;
+
+ buildInputs = [ makeWrapper ];
+ makeWrapperArgs = [ "--prefix" "PATH" ":" "${jre_headless}/bin" ];
+
+ passthru.tests = { inherit (nixosTests) graylog; };
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r {graylog.jar,lib,bin,plugin} $out
+ wrapProgram $out/bin/graylogctl $makeWrapperArgs
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open source log management solution";
+ homepage = "https://www.graylog.org/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.fadenb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/plugins.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
new file mode 100644
index 000000000000..0499011cd111
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
@@ -0,0 +1,270 @@
+{ pkgs, stdenv, fetchurl, unzip, graylog }:
+
+with pkgs.lib;
+
+let
+ glPlugin = a@{
+ pluginName,
+ version,
+ installPhase ? ''
+ mkdir -p $out/bin
+ cp $src $out/bin/${pluginName}-${version}.jar
+ '',
+ ...
+ }:
+ stdenv.mkDerivation (a // {
+ inherit installPhase;
+ dontUnpack = true;
+ buildInputs = [ unzip ];
+ meta = a.meta // {
+ platforms = graylog.meta.platforms;
+ maintainers = (a.meta.maintainers or []) ++ [ maintainers.fadenb ];
+ };
+ });
+in {
+ aggregates = glPlugin rec {
+ name = "graylog-aggregates-${version}";
+ pluginName = "graylog-plugin-aggregates";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://github.com/cvtienhoven/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1c48almnjr0b6nvzagnb9yddqbcjs7yhrd5yc5fx9q7w3vxi50zp";
+ };
+ meta = {
+ homepage = "https://github.com/cvtienhoven/graylog-plugin-aggregates";
+ description = "A plugin that enables users to execute term searches and get notified when the given criteria are met";
+ };
+ };
+ auth_sso = glPlugin rec {
+ name = "graylog-auth-sso-${version}";
+ pluginName = "graylog-plugin-auth-sso";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://github.com/Graylog2/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1g47hlld8vzicd47b5i9n2816rbrhv18vjq8gp765c7mdg4a2jn8";
+ };
+ meta = {
+ homepage = "https://github.com/Graylog2/graylog-plugin-auth-sso";
+ description = "SSO support for Graylog through trusted HTTP headers set by load balancers or authentication proxies";
+ };
+ };
+ dnsresolver = glPlugin rec {
+ name = "graylog-dnsresolver-${version}";
+ pluginName = "graylog-plugin-dnsresolver";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "0djlyd4w4mrrqfbrs20j1xw0fygqsb81snz437v9bf80avmcyzg1";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-dnsresolver";
+ description = "Message filter plugin can be used to do DNS lookups for the source field in Graylog messages";
+ };
+ };
+ enterprise-integrations = glPlugin rec {
+ name = "graylog-enterprise-integrations-${version}";
+ pluginName = "graylog-plugin-enterprise-integrations";
+ version = "3.3.8";
+ src = fetchurl {
+ url = "https://downloads.graylog.org/releases/graylog-enterprise-integrations/graylog-enterprise-integrations-plugins-${version}.tgz";
+ sha256 = "1567q2pwgcwxvaa0qmbhgvnr9f9v3w7vgvnv8kvfvjhxlvm78g1q";
+ };
+ installPhase = ''
+ mkdir -p $out/bin
+ tar --strip-components=2 -xf $src
+ cp ${pluginName}-${version}.jar $out/bin/${pluginName}-${version}.jar
+ '';
+ meta = {
+ homepage = "https://docs.graylog.org/en/3.3/pages/integrations.html#enterprise";
+ description = "Integrations are tools that help Graylog work with external systems (unfree enterprise integrations)";
+ license = stdenv.lib.licenses.unfree;
+ };
+ };
+ filter-messagesize = glPlugin rec {
+ name = "graylog-filter-messagesize-${version}";
+ pluginName = "graylog-plugin-filter-messagesize";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1vx62yikd6d3lbwsfiyf9j6kx8drvn4xhffwv27fw5jzhfqr61ji";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-filter-messagesize";
+ description = "Prints out all messages that have an estimated size crossing a configured threshold during processing";
+ };
+ };
+ integrations = glPlugin rec {
+ name = "graylog-integrations-${version}";
+ pluginName = "graylog-plugin-integrations";
+ version = "3.3.8";
+ src = fetchurl {
+ url = "https://downloads.graylog.org/releases/graylog-integrations/graylog-integrations-plugins-${version}.tgz";
+ sha256 = "00ax3r24inzicak0dd77737qpfas455w5vmj980yfsz40vwnqlr2";
+ };
+ installPhase = ''
+ mkdir -p $out/bin
+ tar --strip-components=2 -xf $src
+ cp ${pluginName}-${version}.jar $out/bin/${pluginName}-${version}.jar
+ '';
+ meta = {
+ homepage = https://github.com/Graylog2/graylog-plugin-integrations;
+ description = "A collection of open source Graylog integrations that will be released together";
+ };
+ };
+ internal-logs = glPlugin rec {
+ name = "graylog-internal-logs-${version}";
+ pluginName = "graylog-plugin-internal-logs";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1jyy0wkjapv3xv5q957xxv2pcnd4n1yivkvkvg6cx7kv1ip75xwc";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-internal-logs";
+ description = "Graylog plugin to record internal logs of Graylog efficiently instead of sending them over the network";
+ };
+ };
+ ipanonymizer = glPlugin rec {
+ name = "graylog-ipanonymizer-${version}";
+ pluginName = "graylog-plugin-ipanonymizer";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "0hd66751hp97ddkn29s1cmjmc2h1nrp431bq7d2wq16iyxxlygri";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-ipanonymizer";
+ description = "A graylog-server plugin that replaces the last octet of IP addresses in messages with xxx";
+ };
+ };
+ jabber = glPlugin rec {
+ name = "graylog-jabber-${version}";
+ pluginName = "graylog-plugin-jabber";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "0zy27q8y0bv7i5nypsfxad4yiw121sbwzd194jsz2w08jhk3skl5";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-jabber";
+ description = "Jabber Alarmcallback Plugin for Graylog";
+ };
+ };
+ metrics = glPlugin rec {
+ name = "graylog-metrics-${version}";
+ pluginName = "graylog-plugin-metrics";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1v1yzmqp43kxigh3fymdwki7pn21sk2ym3kk4nn4qv4zzkhz59vp";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-metrics";
+ description = "An output plugin for integrating Graphite, Ganglia and StatsD with Graylog";
+ };
+ };
+ mongodb-profiler = glPlugin rec {
+ name = "graylog-mongodb-profiler-${version}";
+ pluginName = "graylog-plugin-mongodb-profiler";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1hadxyawdz234lal3dq5cy3zppl7ixxviw96iallyav83xyi23i8";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-mongodb-profiler";
+ description = "Graylog input plugin that reads MongoDB profiler data";
+ };
+ };
+ pagerduty = glPlugin rec {
+ name = "graylog-pagerduty-${version}";
+ pluginName = "graylog-plugin-pagerduty";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "0xhcwfwn7c77giwjilv7k7aijnj9azrjbjgd0r3p6wdrw970f27r";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-pagerduty";
+ description = "An alarm callback plugin for integrating PagerDuty into Graylog";
+ };
+ };
+ redis = glPlugin rec {
+ name = "graylog-redis-${version}";
+ pluginName = "graylog-plugin-redis";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "0dfgh6w293ssagas5y0ixwn0vf54i5iv61r5p2q0rbv2da6xvhbw";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-redis";
+ description = "Redis plugin for Graylog";
+ };
+ };
+ slack = glPlugin rec {
+ name = "graylog-slack-${version}";
+ pluginName = "graylog-plugin-slack";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "067p8g94b007gypwyyi8vb6qhwdanpk8ah57abik54vv14jxg94k";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-slack";
+ description = "Can notify Slack or Mattermost channels about triggered alerts in Graylog (Alarm Callback)";
+ };
+ };
+ snmp = glPlugin rec {
+ name = "graylog-snmp-${version}";
+ pluginName = "graylog-plugin-snmp";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1hkaklwzcsvqq45b98chwqxqdgnnbj4dg68agsll13yq4zx37qpp";
+ };
+ meta = {
+ homepage = https://github.com/graylog-labs/graylog-plugin-snmp;
+ description = "Graylog plugin to receive SNMP traps";
+ };
+ };
+ spaceweather = glPlugin rec {
+ name = "graylog-spaceweather-${version}";
+ pluginName = "graylog-plugin-spaceweather";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/spaceweather-input.jar";
+ sha256 = "1mwqy3fhyy4zdwyrzvbr565xwf96xs9d3l70l0khmrm848xf8wz4";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-spaceweather";
+ description = "Correlate proton density to the response time of your app and the ion temperature to your exception rate.";
+ };
+ };
+ twiliosms = glPlugin rec {
+ name = "graylog-twiliosms-${version}";
+ pluginName = "graylog-plugin-twiliosms";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "0kwfv1zfj0fmxh9i6413bcsaxrn1vdwrzb6dphvg3dx27wxn1j1a";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-twiliosms";
+ description = "An alarm callback plugin for integrating the Twilio SMS API into Graylog";
+ };
+ };
+ twitter = glPlugin rec {
+ name = "graylog-twitter-${version}";
+ pluginName = "graylog-plugin-twitter";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+ sha256 = "1pi34swy9nzq35a823zzvqrjhb6wsg302z31vk2y656sw6ljjxyh";
+ };
+ meta = {
+ homepage = "https://github.com/graylog-labs/graylog-plugin-twitter";
+ description = "Graylog input plugin that reads Twitter messages based on keywords in realtime";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grc/default.nix
new file mode 100644
index 000000000000..1900764604b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grc/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "grc";
+ version = "1.11.3";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "garabik";
+ repo = "grc";
+ rev = "v${version}";
+ sha256 = "0b3wx9zr7l642hizk93ysbdss7rfymn22b2ykj4kpkf1agjkbv35";
+ };
+
+ postPatch = ''
+ for f in grc grcat; do
+ substituteInPlace $f \
+ --replace /usr/local/ $out/
+ done
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ ./install.sh "$out" "$out"
+ install -Dm444 -t $out/share/zsh/vendor-completions _grc
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Yet another colouriser for beautifying your logfiles or output of commands";
+ homepage = "http://korpus.juls.savba.sk/~garabik/software/grc.html";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lovek323 AndersonTorres peterhoeg ];
+ platforms = platforms.unix;
+
+ longDescription = ''
+ Generic Colouriser is yet another colouriser (written in Python) for
+ beautifying your logfiles or output of commands.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grex/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grex/default.nix
new file mode 100644
index 000000000000..c4f1c8ea9c77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grex/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, rustPlatform
+, darwin
+, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "grex";
+ version = "1.1.0";
+
+ cargoSha256 = "0kf2n2j7kfrfzid1h2gd0qf53fah0hpyrrlh2k5vrhd0panv3bwc";
+
+ src = fetchFromGitHub {
+ owner = "pemistahl";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1viph7ki6f2akc5mpbgycacndmxnv088ybfji2bfdbi5jnpyavvs";
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/grex --help > /dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A command-line tool for generating regular expressions from user-provided test cases";
+ homepage = "https://github.com/pemistahl/grex";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/default.nix
new file mode 100644
index 000000000000..05e5e9b64cf0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl,
+ bison, re2c, sconsPackages,
+ libcxx
+}:
+
+let
+ version = "4.5.4";
+in
+
+stdenv.mkDerivation {
+ pname = "gringo";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/potassco/gringo/${version}/gringo-${version}-source.tar.gz";
+ sha256 = "16k4pkwyr2mh5w8j91vhxh9aff7f4y31npwf09w6f8q63fxvpy41";
+ };
+
+ buildInputs = [ bison re2c sconsPackages.scons_3_1_2 ];
+
+ patches = [
+ ./gringo-4.5.4-cmath.patch
+ ./gringo-4.5.4-to_string.patch
+ ];
+
+ postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace ./SConstruct \
+ --replace \
+ "env['CXX'] = 'g++'" \
+ "env['CXX'] = '$CXX'"
+
+ substituteInPlace ./SConstruct \
+ --replace \
+ "env['CPPPATH'] = []" \
+ "env['CPPPATH'] = ['${libcxx}/include/c++/v1']"
+
+ substituteInPlace ./SConstruct \
+ --replace \
+ "env['LIBPATH'] = []" \
+ "env['LIBPATH'] = ['${libcxx}/lib']"
+ '';
+
+ buildPhase = ''
+ scons WITH_PYTHON= --build-dir=release
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp build/release/gringo $out/bin/gringo
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Converts input programs with first-order variables to equivalent ground programs";
+ homepage = "http://potassco.sourceforge.net/";
+ platforms = platforms.all;
+ maintainers = [ maintainers.hakuch ];
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch
new file mode 100644
index 000000000000..7b5510e2344b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch
@@ -0,0 +1,11 @@
+--- gringo/libgringo/src/term.cc~ 2016-07-12 23:56:10.593577749 -0400
++++ gringo/libgringo/src/term.cc 2016-07-12 23:52:35.169968338 -0400
+@@ -22,6 +22,8 @@
+ #include "gringo/logger.hh"
+ #include "gringo/graph.hh"
+
++#include <cmath>
++
+ namespace Gringo {
+
+ // {{{ definition of Defines
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-to_string.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-to_string.patch
new file mode 100644
index 000000000000..b81eab4cd678
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gringo/gringo-4.5.4-to_string.patch
@@ -0,0 +1,11 @@
+--- gringo/libgringo/gringo/bug.hh~ 2014-03-10 12:19:26.000000000 -0400
++++ gringo/libgringo/gringo/bug.hh 2016-11-12 07:51:55.288563663 -0500
+@@ -32,7 +32,7 @@
+ #define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter)
+ #define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) std::make_move_iterator(_Iter)
+
+-#ifdef MISSING_STD_TO_STRING
++#if 0
+
+ #include <sstream>
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/2.0x.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
new file mode 100644
index 000000000000..63cdb61dd336
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
@@ -0,0 +1,134 @@
+{ stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
+, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkgconfig
+, fuse # only needed for grub-mount
+, zfs ? null
+, efiSupport ? false
+, zfsSupport ? true
+, xenSupport ? false
+}:
+
+with stdenv.lib;
+let
+ pcSystems = {
+ i686-linux.target = "i386";
+ x86_64-linux.target = "i386";
+ };
+
+ efiSystemsBuild = {
+ i686-linux.target = "i386";
+ x86_64-linux.target = "x86_64";
+ aarch64-linux.target = "aarch64";
+ };
+
+ # For aarch64, we need to use '--target=aarch64-efi' when building,
+ # but '--target=arm64-efi' when installing. Insanity!
+ efiSystemsInstall = {
+ i686-linux.target = "i386";
+ x86_64-linux.target = "x86_64";
+ aarch64-linux.target = "arm64";
+ };
+
+ canEfi = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) efiSystemsBuild);
+ inPCSystems = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) pcSystems);
+
+ version = "2.04";
+
+in (
+
+assert efiSupport -> canEfi;
+assert zfsSupport -> zfs != null;
+assert !(efiSupport && xenSupport);
+
+stdenv.mkDerivation rec {
+ pname = "grub";
+ inherit version;
+
+ src = fetchgit {
+ url = "git://git.savannah.gnu.org/grub.git";
+ rev = "${pname}-${version}";
+ sha256 = "02gly3xw88pj4zzqjniv1fxa1ilknbq1mdk30bj6qy8n44g90i8w";
+ };
+
+ patches = [
+ ./fix-bash-completion.patch
+ ];
+
+ nativeBuildInputs = [ bison flex python3 pkgconfig autoconf automake ];
+ buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 fuse libtool ]
+ ++ optional doCheck qemu
+ ++ optional zfsSupport zfs;
+
+ hardeningDisable = [ "all" ];
+
+ # Work around a bug in the generated flex lexer (upstream flex bug?)
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ preConfigure =
+ '' for i in "tests/util/"*.in
+ do
+ sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g'
+ done
+
+ # Apparently, the QEMU executable is no longer called
+ # `qemu-system-i386', even on i386.
+ #
+ # In addition, use `-nodefaults' to avoid errors like:
+ #
+ # chardev: opening backend "stdio" failed
+ # qemu: could not open serial device 'stdio': Invalid argument
+ #
+ # See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
+ sed -i "tests/util/grub-shell.in" \
+ -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
+
+ unset CPP # setting CPP intereferes with dependency calculation
+
+ patchShebangs .
+
+ ./bootstrap --no-git --gnulib-srcdir=${gnulib}
+
+ substituteInPlace ./configure --replace '/usr/share/fonts/unifont' '${unifont}/share/fonts'
+ '';
+
+ configureFlags = [ "--enable-grub-mount" ] # dep of os-prober
+ ++ optional zfsSupport "--enable-libzfs"
+ ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}" "--program-prefix=" ]
+ ++ optionals xenSupport [ "--with-platform=xen" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}"];
+
+ # save target that grub is compiled for
+ grubTarget = if efiSupport
+ then "${efiSystemsInstall.${stdenv.hostPlatform.system}.target}-efi"
+ else if inPCSystems
+ then "${pcSystems.${stdenv.hostPlatform.system}.target}-pc"
+ else "";
+
+ doCheck = false;
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ # Avoid a runtime reference to gcc
+ sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GNU GRUB, the Grand Unified Boot Loader (2.x beta)";
+
+ longDescription =
+ '' GNU GRUB is a Multiboot boot loader. It was derived from GRUB, GRand
+ Unified Bootloader, which was originally designed and implemented by
+ Erich Stefan Boleyn.
+
+ Briefly, the boot loader is the first software program that runs when a
+ computer starts. It is responsible for loading and transferring
+ control to the operating system kernel software (such as the Hurd or
+ the Linux). The kernel, in turn, initializes the rest of the
+ operating system (e.g., GNU).
+ '';
+
+ homepage = "https://www.gnu.org/software/grub/";
+
+ license = licenses.gpl3Plus;
+
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/buggybios.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/buggybios.patch
new file mode 100644
index 000000000000..1453a8adaa00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/buggybios.patch
@@ -0,0 +1,11 @@
+Taken from: http://savannah.gnu.org/bugs/?func=detailitem&item_id=10433
+--- grub-0.95.orig/stage2/bios.c 2004-03-27 17:34:04.000000000 +0100
++++ grub-0.95/stage2/bios.c 2005-03-02 01:02:29.192582200 +0100
+@@ -147,6 +147,7 @@
+ grub_memset (&cdrp, 0, sizeof (cdrp));
+ cdrp.size = sizeof (cdrp) - sizeof (cdrp.dummy);
+ err = biosdisk_int13_extensions (0x4B01, drive, &cdrp);
++ err = 0; /* really ugly hack to circumvent faulty BIOS versions like Acer 292LMi */
+ if (! err && cdrp.drive_no == drive)
+ {
+ if ((cdrp.media_type & 0x0F) == 0)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/default.nix
new file mode 100644
index 000000000000..e657431429cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, autoreconfHook, texinfo, buggyBiosCDSupport ? true }:
+
+stdenv.mkDerivation {
+ name = "grub-0.97-73";
+
+ src = fetchurl {
+ url = "https://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz";
+ sha256 = "02r6b52r0nsp6ryqfiqchnl7r1d9smm80sqx24494gmx5p8ia7af";
+ };
+
+ patches = [
+ # Properly handle the case of symlinks such as
+ # /dev/disk/by-label/bla. The symlink resolution code in
+ # grub-install isn't smart enough.
+ ./symlink.patch
+ ]
+ ++ (stdenv.lib.optional buggyBiosCDSupport ./buggybios.patch)
+ ++ map fetchurl (import ./grub1.patches.nix)
+ ;
+
+ # autoreconfHook required for the splashimage patch.
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ texinfo ];
+
+ hardeningDisable = [ "format" "stackprotector" ];
+
+ passthru.grubTarget = "";
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.gnu.org/software/grub";
+ description = "GRand Unified Bootloader";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/fix-bash-completion.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/fix-bash-completion.patch
new file mode 100644
index 000000000000..97cecdce373f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/fix-bash-completion.patch
@@ -0,0 +1,24 @@
+diff -ubr grub-2.00-orig/util/bash-completion.d/grub-completion.bash.in grub-2.00/util/bash-completion.d/grub-completion.bash.in
+--- grub-2.00-orig/util/bash-completion.d/grub-completion.bash.in 2012-10-16 19:02:36.342733957 +0200
++++ grub-2.00/util/bash-completion.d/grub-completion.bash.in 2012-10-16 19:04:48.262733941 +0200
+@@ -17,6 +17,12 @@
+ # along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ # bash completion for grub
+
++have()
++{
++ unset -v have
++ _have $1 && have=yes
++}
++
+ __grub_dir() {
+ local i c=1 boot_dir
+
+@@ -479,6 +485,7 @@
+ have ${__grub_script_check_program} && \
+ complete -F _grub_script_check -o filenames ${__grub_script_check_program}
+
++unset -f have
+
+ # Local variables:
+ # mode: shell-script
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.nix
new file mode 100644
index 000000000000..5ee8722b5eca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.nix
@@ -0,0 +1,34 @@
+# Generated by grub1-patches.sh
+let
+ prefix = "https://salsa.debian.org/grub-team/grub-legacy/raw/1dad5507d74ef97fdd3c6cf2a028084f6f2850c3/debian/patches";
+in
+[
+{ url = "${prefix}/snapshot.patch"; sha256 = "0ixymrn5w1dq0kkxnzdjwwvhjchgyrlivfvnrfncxcv30v84xzna"; }
+{ url = "${prefix}/menu.lst_gnu-hurd.patch"; sha256 = "0mz8dvgmxlyrl28dza1ncfq1xipihxgymw4aw688bgg7xxmw7jbs"; }
+{ url = "${prefix}/graphics.patch"; sha256 = "1v9kp832f3rhncfdrd28djhw0zfrznfmiadch33mclnkcxprcqcs"; }
+{ url = "${prefix}/raid.patch"; sha256 = "0cq6dz5s7m48g76frvbf296bv4pvqkxqcbydsvs43ymqdsary7hj"; }
+{ url = "${prefix}/raid_cciss.patch"; sha256 = "0sy5xvzjsllgbn26nykkq4b69lp1fcwjkjs2kmxq38sk3dzadjfl"; }
+{ url = "${prefix}/xfs_freeze.patch"; sha256 = "1wqgj8ar4x4zwa37bj4a7kldiz5v92msigy3cv879nnk6sz4rmhg"; }
+{ url = "${prefix}/2gb_limit.patch"; sha256 = "06f9lfl4va3alz87wzli0df5ay0xxlqj2akr2dcay6jr27z6ks29"; }
+{ url = "${prefix}/grub-special_device_names.patch"; sha256 = "098608xh20sqdjqf42fm2z23r8xd9ify1v0vmy1j9qhrhk3g9qyz"; }
+{ url = "${prefix}/grub-xvd_drives.patch"; sha256 = "13k0m1c1w5d1d4qd1bshjc8kp7qba4agk2j64gb7mg8vfzjd35bj"; }
+{ url = "${prefix}/initrd_max_address.patch"; sha256 = "05q90rxdnyncpanhbkrknshkk7g8ff4v8fpk7wj4sg8666d9llg3"; }
+{ url = "${prefix}/splashimage_help.patch"; sha256 = "1lj3xh56wf1pdcf0fg585vmggrz7qqfzbhg91qv0rf4snf3ybfvr"; }
+{ url = "${prefix}/grub-install_addsyncs.patch"; sha256 = "1dzcpxi806kw3j8mx4amyy4ibc0ir3qhqyyyxz3w43741p351r65"; }
+{ url = "${prefix}/grub-install_regexp.patch"; sha256 = "0ph9lb63x858019c25aa3fpsm8rzn00ad8fp88yqqvq0xq2jxq69"; }
+{ url = "${prefix}/grub-install_aoe_support.patch"; sha256 = "19szmvg13h2hhijrwbgdszldg26iz7vjnagvajxb7nav7vca6k3n"; }
+{ url = "${prefix}/grub-install_xvd.patch"; sha256 = "1cgh731nhs0chj2r2dzh5dcfj5xmap34i3fk0i0aq59j83cwflgz"; }
+{ url = "${prefix}/geometry-26kernel.patch"; sha256 = "01vka7jrxrwlj9m1d6schygyh964a3k1rdrm3j9x910xkz74i13n"; }
+{ url = "${prefix}/print_func.patch"; sha256 = "0dvrcy1i58fgrv2x1qniqfr5az9b834hm5l94k0cy8ii2nfvk27g"; }
+{ url = "${prefix}/mprotect.patch"; sha256 = "0ahgnhgw2b86j024ajs6m3h2fy2shqdssjzz0ahk8ny9f4mnvns6"; }
+{ url = "${prefix}/savedefault.patch"; sha256 = "1l6x1s9mxkrf3k4j9dpg7qhvrk816vs70sw073iiisvqspnrz2j3"; }
+{ url = "${prefix}/find-grub-dir.patch"; sha256 = "1vkgig4dylji03jflwikhap87lz8l470ck1bhmcy8jh0slg6ndbf"; }
+{ url = "${prefix}/intelmac.patch"; sha256 = "04l9mk9xm9ml8vdlpbv3qbj7gbaa0g5k4dl7xp8wm7kmqwxd9l3m"; }
+{ url = "${prefix}/crossreference_manpages.patch"; sha256 = "0kd12ck4s4bg414fmllgvq8n4b58i3kgdhmcx6riaz43gg2g2b9p"; }
+{ url = "${prefix}/ext3_256byte_inode.patch"; sha256 = "0ay9svbdj7mw8p1ld0iiryg6nhd9hc1xpmr9rqg9990xzmg2h4pi"; }
+{ url = "${prefix}/objcopy-absolute.patch"; sha256 = "0hkmicjli7bsmc56kr40ls21v6x3yd188xpwc08dvqxnb0763077"; }
+{ url = "${prefix}/no-reorder-functions.patch"; sha256 = "0gmv0nzkqim2901hd0an90kwnr83155qp2zjp52biznad2p415gw"; }
+{ url = "${prefix}/modern-automake.patch"; sha256 = "08l3y6cbk6gfj63kpqlpzrlain7nmvki7jjjxq86n7himj078znj"; }
+{ url = "${prefix}/no-combine-stack-adjustments.patch"; sha256 = "0h4di8zja0rg45rs02x9qm8q1vxly1bcl6ms08wgdl5ywn6849nr"; }
+{ url = "${prefix}/no-pie.patch"; sha256 = "0kshdsclza7lsd31apd28qq04arv42nd6wsj2v6q6jx7f8bgdaqw"; }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh
new file mode 100755
index 000000000000..d3b138ad3577
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix -i bash --pure
+
+# Does like `maintainers/scripts/debian-patches.sh`, but specialized for
+# grub1 patches, and using the new salsa service.
+
+# Most common usage: `pkgs/tools/misc/grub/grub1.patches.sh pkgs/tools/misc/grub/grub1.patches.nix`
+# That is, after updating the script with the new list from the series file,
+# removing (by commenting) patches as required.
+
+set -e
+set -u
+
+# https://salsa.debian.org/grub-team/grub-legacy/tree/master/debian/patches
+SERIES=(
+ snapshot.patch
+ menu.lst_gnu-hurd.patch
+ graphics.patch
+ raid.patch
+ raid_cciss.patch
+ xfs_freeze.patch
+ 2gb_limit.patch
+ grub-special_device_names.patch
+ grub-xvd_drives.patch
+ initrd_max_address.patch
+ splashimage_help.patch
+ grub-install_addsyncs.patch
+ grub-install_regexp.patch
+ grub-install_aoe_support.patch
+ grub-install_xvd.patch
+ geometry-26kernel.patch
+ print_func.patch
+ mprotect.patch
+ savedefault.patch
+ find-grub-dir.patch
+ intelmac.patch
+ crossreference_manpages.patch
+ ext3_256byte_inode.patch
+ # Breaks on NixOS.
+ #use_grub-probe_in_grub-install.patch
+ objcopy-absolute.patch
+ no-reorder-functions.patch
+
+ # We aren't building amd64 binaries, see #244498
+ #fix_amd64_compile.patch
+ modern-automake.patch
+ no-combine-stack-adjustments.patch
+ no-pie.patch
+)
+
+# Revision mapping to current tip of the 0.97-73 branch.
+rev="1dad5507d74ef97fdd3c6cf2a028084f6f2850c3"
+prefix="https://salsa.debian.org/grub-team/grub-legacy/raw/${rev}/debian/patches"
+FILE="$1"
+shift
+
+cat <<EOF > "$FILE"
+# Generated by grub1-patches.sh
+let
+ prefix = "${prefix}";
+in
+[
+EOF
+
+for PATCH in "${SERIES[@]}"; do
+ URL="$prefix/$PATCH"
+ HASH="$(nix-prefetch-url "$URL")"
+ echo "{ url = \"\${prefix}/$PATCH\"; sha256 = \"$HASH\"; }" >> "$FILE"
+done
+echo "]" >> "$FILE"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub-bootstrap.cfg b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub-bootstrap.cfg
new file mode 100644
index 000000000000..e9883149ab5d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub-bootstrap.cfg
@@ -0,0 +1 @@
+normal (memdisk)/grub.cfg
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub.cfg b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub.cfg
new file mode 100644
index 000000000000..69115b7101c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/configs/grub.cfg
@@ -0,0 +1,10 @@
+# The parentheses around ${root} here to match Grub's config file syntax
+if search -s -f /boot/grub/grub.cfg ; then
+ echo "Reading (${root})/boot/grub/grub.cfg"
+ configfile /boot/grub/grub.cfg
+fi
+
+if search -s -f /grub/grub.cfg ; then
+ echo "Reading (${root})/grub/grub.cfg"
+ configfile /grub/grub.cfg
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/default.nix
new file mode 100644
index 000000000000..6b796dedb0ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/pvgrub_image/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, grub2_xen }:
+
+with stdenv.lib;
+let
+ efiSystemsBuild = {
+ i686-linux.target = "i386";
+ x86_64-linux.target = "x86_64";
+ aarch64-linux.target = "aarch64";
+ };
+
+in (
+
+stdenv.mkDerivation rec {
+ name = "pvgrub-image";
+
+ configs = ./configs;
+
+ buildInputs = [ grub2_xen ];
+
+ buildCommand = ''
+ cp "${configs}"/* .
+ tar -cf memdisk.tar grub.cfg
+ # We include all modules except all_video.mod as otherwise grub will fail printing "no symbol table"
+ # if we include it.
+ grub-mkimage -O "${efiSystemsBuild.${stdenv.hostPlatform.system}.target}-xen" -c grub-bootstrap.cfg \
+ -m memdisk.tar -o "grub-${efiSystemsBuild.${stdenv.hostPlatform.system}.target}-xen.bin" \
+ $(ls "${grub2_xen}/lib/grub/${efiSystemsBuild.${stdenv.hostPlatform.system}.target}-xen/" |grep 'mod''$'|grep -v '^all_video\.mod''$')
+ mkdir -p "$out/lib/grub-xen"
+ cp "grub-${efiSystemsBuild.${stdenv.hostPlatform.system}.target}-xen.bin" $out/lib/grub-xen/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "PvGrub image for use for booting PV Xen guests";
+
+ longDescription =
+ '' This package provides a PvGrub image for booting Para-Virtualized (PV)
+ Xen guests
+ '';
+
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/symlink.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/symlink.patch
new file mode 100644
index 000000000000..ac38be046188
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/symlink.patch
@@ -0,0 +1,37 @@
+diff -rc grub-0.97-orig/util/grub-install.in grub-0.97/util/grub-install.in
+*** grub-0.97-orig/util/grub-install.in 2008-09-18 11:32:13.000000000 +0200
+--- grub-0.97/util/grub-install.in 2008-09-18 11:36:40.000000000 +0200
+***************
+*** 194,217 ****
+ # Usage: resolve_symlink file
+ # Find the real file/device that file points at
+ resolve_symlink () {
+! tmp_fname=$1
+! # Resolve symlinks
+! while test -L $tmp_fname; do
+! tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
+! if test -z "$tmp_new_fname"; then
+! echo "Unrecognized ls output" 2>&1
+! exit 1
+! fi
+!
+! # Convert relative symlinks
+! case $tmp_new_fname in
+! /*) tmp_fname="$tmp_new_fname"
+! ;;
+! *) tmp_fname="`echo $tmp_fname | sed 's%/[^/]*$%%'`/$tmp_new_fname"
+! ;;
+! esac
+! done
+! echo "$tmp_fname"
+ }
+
+ # Usage: find_device file
+--- 194,200 ----
+ # Usage: resolve_symlink file
+ # Find the real file/device that file points at
+ resolve_symlink () {
+! readlink -f $1
+ }
+
+ # Usage: find_device file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/trusted.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/trusted.nix
new file mode 100644
index 000000000000..f14758a3ae75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub/trusted.nix
@@ -0,0 +1,100 @@
+{ stdenv, fetchurl, fetchgit, autogen, flex, bison, python, autoconf, automake
+, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2
+, for_HP_laptop ? false
+}:
+
+with stdenv.lib;
+let
+ pcSystems = {
+ i686-linux.target = "i386";
+ x86_64-linux.target = "i386";
+ };
+
+ inPCSystems = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) pcSystems);
+
+ version = if for_HP_laptop then "1.2.1" else "1.2.0";
+
+ unifont_bdf = fetchurl {
+ url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
+ sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
+ };
+
+ po_src = fetchurl {
+ name = "grub-2.02-beta2.tar.gz";
+ url = "https://alpha.gnu.org/gnu/grub/grub-2.02~beta2.tar.gz";
+ sha256 = "1lr9h3xcx0wwrnkxdnkfjwy08j7g7mdlmmbdip2db4zfgi69h0rm";
+
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "trustedGRUB2";
+ inherit version;
+
+ src = if for_HP_laptop
+ then fetchgit {
+ url = "https://github.com/Sirrix-AG/TrustedGRUB2";
+ rev = "ab483d389bda3115ca0ae4202fd71f2e4a31ad41";
+ sha256 = "1760d9hsnqkdvlag9nn8f613mqhnsxmidgvdkpmb37b0yi7p6lhz";
+ }
+ else fetchgit {
+ url = "https://github.com/Sirrix-AG/TrustedGRUB2";
+ rev = "1ff54a5fbe02ea01df5a7de59b1e0201e08d4f76";
+ sha256 = "0yrfwx67gpg9gij5raq0cfbx3jj769lkg3diqgb7i9n86hgcdh4k";
+ };
+
+ nativeBuildInputs = [ autogen flex bison python autoconf automake ];
+ buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 ]
+ ++ optional doCheck qemu;
+
+ hardeningDisable = [ "stackprotector" "pic" ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error"; # generated code redefines yyfree
+
+ preConfigure =
+ '' for i in "tests/util/"*.in
+ do
+ sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g'
+ done
+
+ # Apparently, the QEMU executable is no longer called
+ # `qemu-system-i386', even on i386.
+ #
+ # In addition, use `-nodefaults' to avoid errors like:
+ #
+ # chardev: opening backend "stdio" failed
+ # qemu: could not open serial device 'stdio': Invalid argument
+ #
+ # See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
+ sed -i "tests/util/grub-shell.in" \
+ -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
+ '';
+
+ prePatch =
+ '' tar zxf ${po_src} grub-2.02~beta2/po
+ rm -rf po
+ mv grub-2.02~beta2/po po
+ sh autogen.sh
+ gunzip < "${unifont_bdf}" > "unifont.bdf"
+ sed -i "configure" \
+ -e "s|/usr/src/unifont.bdf|$PWD/unifont.bdf|g"
+ '';
+
+ patches = [ ./fix-bash-completion.patch ];
+
+ # save target that grub is compiled for
+ grubTarget = if inPCSystems
+ then "${pcSystems.${stdenv.hostPlatform.system}.target}-pc"
+ else "";
+
+ doCheck = false;
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "GRUB 2.0 extended with TCG (TPM) support for integrity measured boot process (trusted boot)";
+ homepage = "https://github.com/Sirrix-AG/TrustedGRUB2";
+ license = licenses.gpl3Plus;
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/grub4dos/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub4dos/default.nix
new file mode 100644
index 000000000000..24548b4d209b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/grub4dos/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, nasm }:
+
+let arch =
+ if stdenv.isi686 then "i386"
+ else if stdenv.isx86_64 then "x86_64"
+ else throw "Unknown architecture";
+in stdenv.mkDerivation {
+ pname = "grub4dos";
+ version = "0.4.6a-2019-05-12";
+
+ src = fetchFromGitHub {
+ owner = "chenall";
+ repo = "grub4dos";
+ rev = "e8224a2d20760139ffaeafa07838e2c3c54de783";
+ sha256 = "0i7n71za43qnlsxfvjrv1z5g1w5jl9snpbnas7rw97rry7cgyswf";
+ };
+
+ nativeBuildInputs = [ nasm ];
+
+ hardeningDisable = [ "stackprotector" ];
+
+ configureFlags = [ "--host=${arch}-pc-linux-gnu" ];
+
+ postInstall = ''
+ mv $out/lib/grub/${arch}-pc/* $out/lib/grub
+ rmdir $out/lib/grub/${arch}-pc
+ chmod +x $out/lib/grub/bootlace.com
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ # make[2]: *** No rule to make target 'pre_stage2_fullsize', needed by 'all-am'. Stop.
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://grub4dos.chenall.net/";
+ description = "GRUB for DOS is the dos extension of GRUB";
+ maintainers = with maintainers; [ abbradar ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix
new file mode 100644
index 000000000000..2e85448bde82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix
@@ -0,0 +1,43 @@
+{ fetchurl, stdenv, smartmontools, autoreconfHook, gettext, gtkmm3, pkgconfig, wrapGAppsHook, pcre-cpp, gnome3 }:
+
+stdenv.mkDerivation rec {
+ version="1.1.3";
+ pname = "gsmartcontrol";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gsmartcontrol/gsmartcontrol-${version}.tar.bz2";
+ sha256 = "1a8j7dkml9zvgpk83xcdajfz7g6mmpmm5k86dl5sjc24zb7n4kxn";
+ };
+
+ patches = [
+ ./fix-paths.patch
+ ];
+
+ nativeBuildInputs = [ autoreconfHook gettext pkgconfig wrapGAppsHook ];
+ buildInputs = [ gtkmm3 pcre-cpp gnome3.adwaita-icon-theme ];
+
+ enableParallelBuilding = true;
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${stdenv.lib.makeBinPath [ smartmontools ]}"
+ )
+ '';
+
+ meta = {
+ description = "Hard disk drive health inspection tool";
+ longDescription = ''
+ GSmartControl is a graphical user interface for smartctl (from
+ smartmontools package), which is a tool for querying and controlling
+ SMART (Self-Monitoring, Analysis, and Reporting Technology) data on
+ modern hard disk drives.
+
+ It allows you to inspect the drive's SMART data to determine its health,
+ as well as run various tests on it.
+ '';
+ homepage = "https://gsmartcontrol.sourceforge.io/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [qknight];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/fix-paths.patch
new file mode 100644
index 000000000000..905b63bee0c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gsmartcontrol/fix-paths.patch
@@ -0,0 +1,58 @@
+diff --git a/configure.ac b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
+@@ -475,6 +475,7 @@
+
+
+ AC_CONFIG_FILES([ data/gsmartcontrol.desktop data/gsmartcontrol.appdata.xml \
++ data/org.gsmartcontrol.policy \
+ data/nsis/distribution.txt data/nsis/gsmartcontrol.nsi \
+ debian.dist/changelog \
+ src/gsc_winres.rc src/gsmartcontrol.exe.manifest \
+diff --git a/data/gsmartcontrol-root.in b/data/gsmartcontrol-root.in
+--- a/data/gsmartcontrol-root.in
++++ b/data/gsmartcontrol-root.in
+@@ -8,7 +8,7 @@
+ # Run gsmartcontrol with root, asking for root password first.
+ # export GSMARTCONTROL_SU to override a su command (e.g. "kdesu -c").
+
+-EXEC_BIN="@prefix@/sbin/gsmartcontrol";
++EXEC_BIN="@prefix@/bin/gsmartcontrol";
+ prog_name="gsmartcontrol"
+
+
+@@ -118,7 +118,7 @@
+ # Add @prefix@/sbin as well (freebsd seems to require it).
+ # Note that beesu won't show a GUI login box if /usr/sbin is before /usr/bin,
+ # so add it first as well.
+-EXTRA_PATHS="/usr/bin:/usr/sbin:/usr/local/sbin:@prefix@/sbin";
++EXTRA_PATHS="/usr/bin:/usr/sbin:/usr/local/sbin:@prefix@/bin";
+ export PATH="$EXTRA_PATHS:$PATH"
+
+
+diff --git a/data/org.gsmartcontrol.policy b/data/org.gsmartcontrol.policy.in
+rename from data/org.gsmartcontrol.policy
+rename to data/org.gsmartcontrol.policy.in
+--- a/data/org.gsmartcontrol.policy
++++ b/data/org.gsmartcontrol.policy.in
+@@ -12,7 +12,7 @@
+ <allow_inactive>auth_admin</allow_inactive>
+ <allow_active>auth_admin</allow_active>
+ </defaults>
+- <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gsmartcontrol</annotate>
++ <annotate key="org.freedesktop.policykit.exec.path">@prefix@/bin/gsmartcontrol</annotate>
+ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
+ </action>
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -24,7 +24,7 @@
+ # endif
+
+
+-sbin_PROGRAMS = gsmartcontrol
++bin_PROGRAMS = gsmartcontrol
+
+ gsmartcontrol_LDADD = $(top_builddir)/src/applib/libapplib.a \
+ $(top_builddir)/src/libdebug/libdebug.a \
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/gti/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/gti/default.nix
new file mode 100644
index 000000000000..9c2e65676c2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/gti/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "gti";
+ version = "1.7.0";
+
+ src = fetchFromGitHub {
+ owner = "rwos";
+ repo = "gti";
+ rev = "v${version}";
+ sha256 = "1jivnjswlhwjfg5v9nwfg3vfssvqbdxxf9znwmfb5dgfblg9wxw9";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man6
+ cp gti $out/bin
+ cp gti.6 $out/share/man/man6
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://r-wos.org/hacks/gti";
+ license = licenses.mit;
+ description = "Humorous typo-based git runner; drives a car over the terminal";
+ maintainers = with maintainers; [ fadenb ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/h/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/h/default.nix
new file mode 100644
index 000000000000..9a80945097b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/h/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, makeWrapper, ruby }:
+
+stdenv.mkDerivation rec {
+ pname = "h";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "zimbatm";
+ repo = "h";
+ rev = "v${version}";
+ sha256 = "10y42nn9lgkwdjia74qfyf937nam4md3pkyfjinj7jybvcran4bj";
+ };
+
+ buildInputs = [ ruby ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp h $out/bin/h
+ cp up $out/bin/up
+ '';
+
+ meta = with stdenv.lib; {
+ description = "faster shell navigation of projects";
+ homepage = "https://github.com/zimbatm/h";
+ license = licenses.mit;
+ maintainers = [ maintainers.zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/h5utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/h5utils/default.nix
new file mode 100644
index 000000000000..f5c01c83a48a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/h5utils/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, lib
+, hdf5, libpng, libjpeg
+, hdf4 ? null
+, libmatheval ? null
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.13.1";
+ pname = "h5utils";
+
+ # fetchurl is used instead of fetchFromGitHub because the git repo version requires
+ # additional tools to build compared to the tarball release; see the README for details.
+ src = fetchurl {
+ url = "https://github.com/stevengj/h5utils/releases/download/${version}/h5utils-${version}.tar.gz";
+ sha256 = "0rbx3m8p5am8z5m0f3sryryfc41541hjpkixb1jkxakd9l36z9y5";
+ };
+
+ # libdf is an alternative name for libhdf (hdf4)
+ preConfigure = lib.optionalString (hdf4 != null)
+ ''
+ substituteInPlace configure \
+ --replace "-ldf" "-lhdf" \
+ '';
+
+ preBuild = lib.optionalString hdf5.mpiSupport "export CC=${hdf5.mpi}/bin/mpicc";
+
+ buildInputs = with lib; [ hdf5 libjpeg libpng ] ++ optional hdf5.mpiSupport hdf5.mpi
+ ++ optional (hdf4 != null) hdf4
+ ++ optional (libmatheval != null) libmatheval;
+
+ meta = with lib; {
+ description = "A set of utilities for visualization and conversion of scientific data in the free, portable HDF5 format";
+ homepage = "https://github.com/stevengj/h5utils";
+ license = with licenses; [ mit gpl2 ];
+ maintainers = with maintainers; [ sfrijters ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hackertyper/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hackertyper/default.nix
new file mode 100644
index 000000000000..4b5973e7eeca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hackertyper/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation {
+ pname = "hackertyper";
+ version = "2.1";
+
+ src = fetchFromGitHub {
+ owner = "Hurricane996";
+ repo = "Hackertyper";
+ rev = "8d08e3200c65817bd8c5bd0baa5032919315853b";
+ sha256 = "0shri0srihw9fk027k61qkxr9ikwkn28aaamrhps6lg0vpbqpx2w";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+ buildInputs = [ ncurses ];
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/hackertyper -v
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A C rewrite of hackertyper.net";
+ homepage = "https://github.com/Hurricane996/Hackertyper";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.marius851000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hacksaw/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
new file mode 100644
index 000000000000..a0e884e82d90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, libXrandr, libX11, python3 }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "hacksaw";
+ version = "1.0.4";
+
+ nativeBuildInputs = [ pkg-config python3 ];
+
+ buildInputs = [ libXrandr libX11 ];
+
+ src = fetchCrate {
+ inherit pname version;
+ sha256 = "1l6i91xb81p1li1j2jm0r2rx8dbzl2yh468cl3dw0lqpqy4i65hx";
+ };
+
+ cargoSha256 = "01draql3x71h7xl2xcc69dv7vpi3smnajhrvaihs5vij81pyfrzk";
+
+ meta = with lib; {
+ description = "Lightweight selection tool for usage in screenshot scripts etc";
+ homepage = "https://github.com/neXromancers/hacksaw";
+ license = with licenses; [ mpl20 ];
+ maintainers = with maintainers; [ TethysSvensson ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hakuneko/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
new file mode 100644
index 000000000000..6389d41cdfed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
@@ -0,0 +1,85 @@
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, udev
+, stdenv
+, lib
+, wrapGAppsHook
+}:
+let
+ desktopItem = makeDesktopItem {
+ desktopName = "HakuNeko Desktop";
+ genericName = "Manga & Anime Downloader";
+ categories = "Network;FileTransfer;";
+ exec = "hakuneko";
+ icon = "hakuneko-desktop";
+ name = "hakuneko-desktop";
+ type = "Application";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "hakuneko";
+ version = "6.1.7";
+
+ src = {
+ "x86_64-linux" = fetchurl {
+ url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_amd64.deb";
+ sha256 = "06bb17d7a06bb0601053eaaf423f9176f06ff3636cc43ffc024438e1962dcd02";
+ };
+ "i686-linux" = fetchurl {
+ url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_i386.deb";
+ sha256 = "32017d26bafffaaf0a83dd6954d3926557014af4022a972371169c56c0e3d98b";
+ };
+ }."${stdenv.hostPlatform.system}";
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+ dontWrapGApps = true;
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = atomEnv.packages;
+
+ unpackPhase = ''
+ # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+ dpkg --fsys-tarfile $src | tar --extract
+ '';
+
+ installPhase = ''
+ cp -R usr "$out"
+ # Overwrite existing .desktop file.
+ cp "${desktopItem}/share/applications/hakuneko-desktop.desktop" \
+ "$out/share/applications/hakuneko-desktop.desktop"
+ '';
+
+ runtimeDependencies = [
+ (lib.getLib udev)
+ ];
+
+ postFixup = ''
+ makeWrapper $out/lib/hakuneko-desktop/hakuneko $out/bin/hakuneko \
+ "''${gappsWrapperArgs[@]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Manga & Anime Downloader";
+ homepage = "https://sourceforge.net/projects/hakuneko/";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [
+ nloomans
+ ];
+ platforms = [
+ "x86_64-linux"
+ "i686-linux"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hashit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hashit/default.nix
new file mode 100644
index 000000000000..e33201c706ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hashit/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkgconfig, vala, pantheon, python3, libgee, gtk3, desktop-file-utils, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "hashit";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "artemanufrij";
+ repo = pname;
+ rev = version;
+ sha256 = "1s8fbzg1z2ypn55xg1pfm5xh15waq55fkp49j8rsqiq8flvg6ybf";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libgee
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple app for checking usual checksums - Designed for elementary OS";
+ homepage = "https://github.com/artemanufrij/hashit";
+ license = licenses.gpl2Plus;
+ maintainers = pantheon.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hdaps-gl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdaps-gl/default.nix
new file mode 100644
index 000000000000..79f4d067b108
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdaps-gl/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, freeglut, libGL, libGLU }:
+
+let version = "0.0.7"; in
+stdenv.mkDerivation {
+ pname = "hdaps-gl";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "linux-thinkpad";
+ repo = "hdaps-gl";
+ rev = version;
+ sha256 = "0jywsrcr1wzkjig5cvz014c3r026sbwscbkv7zh1014lkjm0kyyh";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ freeglut libGL libGLU ];
+
+ meta = with stdenv.lib; {
+ description = "GL-based laptop model that rotates in real-time via hdaps";
+ homepage = "https://github.com/linux-thinkpad/hdaps-gl";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/byteswap.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/byteswap.patch
new file mode 100644
index 000000000000..7b0dddc2ae47
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/byteswap.patch
@@ -0,0 +1,28 @@
+diff -Nuar --exclude '*~' hddtemp-0.3-beta15.orig/src/sata.c hddtemp-0.3-beta15/src/sata.c
+--- hddtemp-0.3-beta15.orig/src/sata.c 2006-05-14 02:09:55.579437498 -0700
++++ hddtemp-0.3-beta15/src/sata.c 2006-05-14 02:06:08.495948437 -0700
+@@ -88,7 +88,9 @@
+ return strdup(_("unknown"));
+ else
+ {
++ //fprintf(stderr,"sata_model1=%s\n",identify + 54);
+ sata_fixstring(identify + 54, 24);
++ //fprintf(stderr,"sata_model2=%s\n",identify + 54);
+ return strdup(identify + 54);
+ }
+ }
+diff -Nuar --exclude '*~' hddtemp-0.3-beta15.orig/src/satacmds.c hddtemp-0.3-beta15/src/satacmds.c
+--- hddtemp-0.3-beta15.orig/src/satacmds.c 2006-05-14 02:09:40.983470339 -0700
++++ hddtemp-0.3-beta15/src/satacmds.c 2006-05-14 02:09:02.319557333 -0700
+@@ -98,7 +98,10 @@
+ /* convert from big-endian to host byte order */
+ for (p = end ; p != s;) {
+ unsigned short *pp = (unsigned short *) (p -= 2);
+- *pp = ntohs(*pp);
++ char tmp = p[0];
++ p[0] = p[1];
++ p[1] = tmp;
++ //*pp = ntohs(*pp);
+ }
+
+ /* strip leading blanks */
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/default.nix
new file mode 100644
index 000000000000..1f3fbd2381ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "hddtemp-0.3_beta15";
+
+ db = fetchurl{
+ url = "mirror://savannah/hddtemp/hddtemp.db";
+ sha256 = "1fr6qgns6qv7cr40lic5yqwkkc7yjmmgx8j0z6d93csg3smzhhya";
+ };
+
+ src = fetchurl {
+ url = "mirror://savannah/hddtemp/hddtemp-0.3-beta15.tar.bz2";
+ sha256 = "0nzgg4nl8zm9023wp4dg007z6x3ir60rwbcapr9ks2al81c431b1";
+ };
+
+ # from Gentoo
+ patches = [ ./byteswap.patch ./dontwake.patch ./execinfo.patch ./satacmds.patch ];
+
+ configurePhase =
+ ''
+ mkdir -p $out/nix-support
+ cp $db $out/nix-support/hddtemp.db
+ ./configure --prefix=$out --with-db-path=$out/nix-support/hddtemp.db
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool for displaying hard disk temperature";
+ homepage = "https://savannah.nongnu.org/projects/hddtemp/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/dontwake.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/dontwake.patch
new file mode 100644
index 000000000000..969da7a70e40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/dontwake.patch
@@ -0,0 +1,20 @@
+--- hddtemp-0.3-beta15/src/sata.c 2012-07-01 16:35:01.681708074 +0200
++++ hddtemp-0.3-beta15/src/sata.c 2012-07-01 16:33:58.172109699 +0200
+@@ -125,6 +125,17 @@
+ dsk->fd = -1;
+ return GETTEMP_NOSENSOR;
+ }
++
++ switch(ata_get_powermode(dsk->fd)) {
++ case PWM_STANDBY:
++ case PWM_SLEEPING:
++ if (!wakeup)
++ return GETTEMP_DRIVE_SLEEP;
++ case PWM_UNKNOWN:
++ case PWM_ACTIVE: /* active or idle */
++ default:
++ break;
++ }
+
+ /* get SMART values */
+ if(sata_enable_smart(dsk->fd) != 0) {
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/execinfo.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/execinfo.patch
new file mode 100644
index 000000000000..1e7239535d4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/execinfo.patch
@@ -0,0 +1,21 @@
+--- hddtemp-0.3-beta15/configure.in~ 2005-10-17 19:14:19 +0000
++++ hddtemp-0.3-beta15/configure.in 2006-12-11 18:23:22 +0000
+@@ -18,6 +18,7 @@
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h)
+ AC_CHECK_HEADERS(netinet/in.h)
++AC_CHECK_HEADERS(execinfo.h)
+ AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
+
+ # Checks for typedefs, structures, and compiler characteristics.
+--- hddtemp-0.3-beta15/src/backtrace.c-orig 2006-12-11 18:20:41 +0000
++++ hddtemp-0.3-beta15/src/backtrace.c 2006-12-11 18:23:28 +0000
+@@ -18,7 +18,7 @@
+
+ #include <features.h>
+
+-#if defined(__i386__) && defined(__GLIBC__)
++#ifdef HAS_EXECINFO_H
+
+ #include <execinfo.h>
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/satacmds.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/satacmds.patch
new file mode 100644
index 000000000000..d67e0681f33f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hddtemp/satacmds.patch
@@ -0,0 +1,26 @@
+diff -Naurp hddtemp-0.3-beta15-orig/src/satacmds.c hddtemp-0.3-beta15/src/satacmds.c
+--- hddtemp-0.3-beta15-orig/src/satacmds.c 2007-02-10 14:25:15.000000000 +0100
++++ hddtemp-0.3-beta15/src/satacmds.c 2007-02-10 14:26:53.000000000 +0100
+@@ -54,7 +54,6 @@ int sata_pass_thru(int device, unsigned
+ unsigned char cdb[16];
+ unsigned char sense[32];
+ int dxfer_direction;
+- int ret;
+
+ memset(cdb, 0, sizeof(cdb));
+ cdb[0] = ATA_16;
+@@ -78,13 +77,7 @@ int sata_pass_thru(int device, unsigned
+ cdb[6] = cmd[1];
+ cdb[14] = cmd[0];
+
+- ret = scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
+-
+- /* Verify SATA magics */
+- if (sense[0] != 0x72 || sense[7] != 0x0e || sense[9] != 0x0e || sense[10] != 0x00)
+- return 1;
+- else
+- return ret;
++ return scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
+ }
+
+ void sata_fixstring(unsigned char *s, int bytecount)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf4/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf4/default.nix
new file mode 100644
index 000000000000..5e5154111dc9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf4/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, fetchpatch
+, fetchurl
+, cmake
+, libjpeg
+, zlib
+, szip ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "hdf";
+ version = "4.2.15";
+ src = fetchurl {
+ url = "https://support.hdfgroup.org/ftp/HDF/releases/HDF${version}/src/hdf-${version}.tar.bz2";
+ sha256 = "04nbgfxyj5jg4d6sr28162cxbfwqgv0sa7vz1ayzvm8wbbpkbq5x";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ];
+
+ buildInputs = [
+ libjpeg
+ szip
+ zlib
+ ];
+
+ preConfigure = stdenv.lib.optionalString (szip != null) "export SZIP_INSTALL=${szip}";
+
+ cmakeFlags = [
+ "-DBUILD_SHARED_LIBS=ON"
+ "-DHDF4_BUILD_TOOLS=ON"
+ "-DHDF4_BUILD_UTILS=ON"
+ "-DHDF4_BUILD_WITH_INSTALL_NAME=OFF"
+ "-DHDF4_ENABLE_JPEG_LIB_SUPPORT=ON"
+ "-DHDF4_ENABLE_NETCDF=OFF"
+ "-DHDF4_ENABLE_Z_LIB_SUPPORT=ON"
+ "-DHDF4_BUILD_FORTRAN=OFF"
+ "-DJPEG_DIR=${libjpeg}"
+ ] ++ stdenv.lib.optionals (szip != null) [
+ "-DHDF4_ENABLE_SZIP_ENCODING=ON"
+ "-DHDF4_ENABLE_SZIP_SUPPORT=ON"
+ ];
+
+ doCheck = true;
+
+ preCheck = ''
+ export LD_LIBRARY_PATH=$(pwd)/bin
+ '' + stdenv.lib.optionalString (stdenv.isDarwin) ''
+ export DYLD_LIBRARY_PATH=$(pwd)/bin
+ '';
+
+ excludedTests = stdenv.lib.optionals stdenv.isDarwin [
+ "MFHDF_TEST-hdftest"
+ "MFHDF_TEST-hdftest-shared"
+ "HDP-dumpsds-18"
+ "NC_TEST-nctest"
+ ];
+
+ checkPhase = let excludedTestsRegex = if (excludedTests != [])
+ then "(" + (stdenv.lib.concatStringsSep "|" excludedTests) + ")"
+ else ""; in ''
+ runHook preCheck
+ ctest -E "${excludedTestsRegex}" --output-on-failure
+ runHook postCheck
+ '';
+
+ outputs = [ "bin" "dev" "out" ];
+
+ postInstall = ''
+ moveToOutput bin "$bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Data model, library, and file format for storing and managing data";
+ homepage = "https://support.hdfgroup.org/products/hdf4/";
+ maintainers = with maintainers; [ knedlsepp ];
+ platforms = platforms.unix;
+ license = licenses.bsdOriginal;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/bin-mv.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/bin-mv.patch
new file mode 100644
index 000000000000..45649977e566
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/bin-mv.patch
@@ -0,0 +1,30 @@
+diff -rc hdf5-1.8.5/configure hdf5-1.8.5-new/configure
+*** hdf5-1.8.5/configure 2010-06-04 20:26:04.000000000 +0200
+--- hdf5-1.8.5-new/configure 2010-08-02 10:30:26.000000000 +0200
+***************
+*** 30587,30598 ****
+ sed 's/#define /#define H5_/' <src/H5config.h |\
+ sed 's/#undef /#undef H5_/' >pubconf
+ if test ! -f src/H5pubconf.h; then
+! /bin/mv -f pubconf src/H5pubconf.h
+ elif (diff pubconf src/H5pubconf.h >/dev/null); then
+ rm -f pubconf
+ echo "src/H5pubconf.h is unchanged"
+ else
+! /bin/mv -f pubconf src/H5pubconf.h
+ fi
+ echo "Post process src/libhdf5.settings"
+ sed '/^#/d' < src/libhdf5.settings > libhdf5.settings.TMP
+--- 30587,30598 ----
+ sed 's/#define /#define H5_/' <src/H5config.h |\
+ sed 's/#undef /#undef H5_/' >pubconf
+ if test ! -f src/H5pubconf.h; then
+! mv -f pubconf src/H5pubconf.h
+ elif (diff pubconf src/H5pubconf.h >/dev/null); then
+ rm -f pubconf
+ echo "src/H5pubconf.h is unchanged"
+ else
+! mv -f pubconf src/H5pubconf.h
+ fi
+ echo "Post process src/libhdf5.settings"
+ sed '/^#/d' < src/libhdf5.settings > libhdf5.settings.TMP
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/default.nix
new file mode 100644
index 000000000000..e56108767aba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdf5/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchurl
+, removeReferencesTo
+, cpp ? false
+, gfortran ? null
+, zlib ? null
+, szip ? null
+, mpi ? null
+, enableShared ? true
+}:
+
+# cpp and mpi options are mutually exclusive
+# (--enable-unsupported could be used to force the build)
+assert !cpp || mpi == null;
+
+let inherit (stdenv.lib) optional optionals; in
+
+stdenv.mkDerivation rec {
+ version = "1.10.6";
+ pname = "hdf5";
+ src = fetchurl {
+ url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/${pname}-${version}/src/${pname}-${version}.tar.bz2";
+ sha256 = "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9";
+ };
+
+ passthru = {
+ mpiSupport = (mpi != null);
+ inherit mpi;
+ };
+
+ outputs = [ "out" "dev" ];
+
+ nativeBuildInputs = [ removeReferencesTo ];
+
+ buildInputs = []
+ ++ optional (gfortran != null) gfortran
+ ++ optional (szip != null) szip;
+
+ propagatedBuildInputs = []
+ ++ optional (zlib != null) zlib
+ ++ optional (mpi != null) mpi;
+
+ configureFlags = []
+ ++ optional cpp "--enable-cxx"
+ ++ optional (gfortran != null) "--enable-fortran"
+ ++ optional (szip != null) "--with-szlib=${szip}"
+ ++ optionals (mpi != null) ["--enable-parallel" "CC=${mpi}/bin/mpicc"]
+ ++ optional enableShared "--enable-shared";
+
+ patches = [
+ ./bin-mv.patch
+ ];
+
+ postInstall = ''
+ find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
+ moveToOutput 'bin/h5cc' "''${!outputDev}"
+ moveToOutput 'bin/h5c++' "''${!outputDev}"
+ moveToOutput 'bin/h5fc' "''${!outputDev}"
+ moveToOutput 'bin/h5pcc' "''${!outputDev}"
+ '';
+
+ meta = {
+ description = "Data model, library, and file format for storing and managing data";
+ longDescription = ''
+ HDF5 supports an unlimited variety of datatypes, and is designed for flexible and efficient
+ I/O and for high volume and complex data. HDF5 is portable and is extensible, allowing
+ applications to evolve in their use of HDF5. The HDF5 Technology suite includes tools and
+ applications for managing, manipulating, viewing, and analyzing data in the HDF5 format.
+ '';
+ license = stdenv.lib.licenses.bsd3; # Lawrence Berkeley National Labs BSD 3-Clause variant
+ homepage = "https://www.hdfgroup.org/HDF5/";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hdfjava/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdfjava/default.nix
new file mode 100644
index 000000000000..7ee843998313
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdfjava/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake, javac }:
+
+stdenv.mkDerivation rec {
+ pname = "hdf-java";
+ version = "3.3.2";
+
+ src = fetchurl {
+ url = "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-${version}/src/CMake-hdfjava-${version}.tar.gz";
+ sha256 = "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr";
+ };
+
+ nativeBuildInputs = [ cmake javac ];
+
+ dontConfigure = true;
+ buildPhase = "./build-hdfjava-unix.sh";
+ installPhase = ''
+ mkdir -p $out
+ cp -r build/_CPack_Packages/Linux/TGZ/HDFJava-3.3.2-Linux/HDF_Group/HDFJava/${version}/* $out/
+ '';
+
+ meta = {
+ description = "A Java package that implements HDF4 and HDF5 data objects in an object-oriented form";
+ license = stdenv.lib.licenses.free; # BSD-like
+ homepage = "https://support.hdfgroup.org/products/java/index.html";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hdfview/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdfview/default.nix
new file mode 100644
index 000000000000..0125bfa73696
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hdfview/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, ant, javac, hdf_java }:
+
+stdenv.mkDerivation rec {
+ pname = "hdfview";
+ version = "2.14";
+
+ src = fetchurl {
+ url = "https://support.hdfgroup.org/ftp/HDF5/hdf-java/current/src/${pname}-${version}.tar.gz";
+ sha256 = "0lv9djfm7hnp14mcyzbiax3xjb8vkbzhh7bdl6cvgy53pc08784p";
+ };
+
+ nativeBuildInputs = [ ant javac ];
+
+ HDFLIBS = hdf_java;
+
+ buildPhase = ''
+ ant run
+ ant package
+ '';
+
+ installPhase = ''
+ mkdir $out
+ # exclude jre
+ cp -r build/HDF_Group/HDFView/*/{lib,share} $out/
+ mkdir $out/bin
+ cp -r build/HDF_Group/HDFView/*/hdfview.sh $out/bin/hdfview
+ chmod +x $out/bin/hdfview
+ substituteInPlace $out/bin/hdfview \
+ --replace "@JAVABIN@" "${javac}/bin/" \
+ --replace "@INSTALLDIR@" "$out"
+ '';
+
+ meta = {
+ description = "A visual tool for browsing and editing HDF4 and HDF5 files";
+ license = stdenv.lib.licenses.free; # BSD-like
+ homepage = "https://support.hdfgroup.org/products/java/index.html";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/heatseeker/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
new file mode 100644
index 000000000000..207788ed61d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rustPlatform, coreutils }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "heatseeker";
+ version = "1.7.1";
+
+ src = fetchFromGitHub {
+ owner = "rschmitt";
+ repo = "heatseeker";
+ rev = "v${version}";
+ sha256 = "1x7mdyf1m17s55f6yjdr1j510kb7a8f3zkd7lb2kzdc7nd3vgaxg";
+ };
+
+ cargoSha256 = "0jnlcm7v29m4nc318qgf7r7jvs80s7n04fw83imm506vwr9rxbx9";
+
+ # https://github.com/rschmitt/heatseeker/issues/42
+ # I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
+ # as a substitution, and this works since we have the path to coreutils stty.
+ patchPhase = ''
+ substituteInPlace src/screen/unix.rs --replace "/bin/stty" "${coreutils}/bin/stty"
+ '';
+
+ # some tests require a tty, this variable turns them off for Travis CI,
+ # which we can also make use of
+ TRAVIS = "true";
+
+ meta = with stdenv.lib; {
+ description = "A general-purpose fuzzy selector";
+ homepage = "https://github.com/rschmitt/heatseeker";
+ license = licenses.mit;
+ maintainers = [ maintainers.michaelpj ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hebcal/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hebcal/default.nix
new file mode 100644
index 000000000000..96c958484403
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hebcal/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ version = "4.21";
+ pname = "hebcal";
+
+ src = fetchFromGitHub {
+ owner = "hebcal";
+ repo = "hebcal";
+ rev = "v${version}";
+ sha256 = "0gqjhl5i0hvnpvsg6cfc2z5ckrs66h3jlrdgim62azn3hh5bday2";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://hebcal.github.io";
+ description = "A perpetual Jewish Calendar";
+ longDescription = "Hebcal is a program which prints out the days in the Jewish calendar for a given Gregorian year. Hebcal is fairly flexible in terms of which events in the Jewish calendar it displays.";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.hhm ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/heimdall/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/heimdall/default.nix
new file mode 100644
index 000000000000..bd99fa7024c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/heimdall/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, zlib, libusb1
+, enableGUI ? false, qtbase ? null
+}:
+
+let version = "1.4.2"; in
+
+mkDerivation {
+ name = "heimdall-${if enableGUI then "gui-" else ""}${version}";
+
+ src = fetchFromGitHub {
+ owner = "Benjamin-Dobell";
+ repo = "Heimdall";
+ rev = "v${version}";
+ sha256 = "1ygn4snvcmi98rgldgxf5hwm7zzi1zcsihfvm6awf9s6mpcjzbqz";
+ };
+
+ buildInputs = [
+ zlib libusb1
+ ] ++ stdenv.lib.optional enableGUI qtbase;
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [
+ "-DDISABLE_FRONTEND=${if enableGUI then "OFF" else "ON"}"
+ "-DLIBUSB_LIBRARY=${libusb1}"
+ ];
+
+ preConfigure = ''
+ # Give ownership of the Galaxy S USB device to the logged in user.
+ substituteInPlace heimdall/60-heimdall.rules --replace 'MODE="0666"' 'TAG+="uaccess"'
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace libpit/CMakeLists.txt --replace "-std=gnu++11" ""
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/doc/heimdall,lib/udev/rules.d}
+ install -m755 -t $out/bin bin/*
+ install -m644 -t $out/lib/udev/rules.d ../heimdall/60-heimdall.rules
+ install -m644 ../Linux/README $out/share/doc/heimdall/README.linux
+ install -m644 ../OSX/README.txt $out/share/doc/heimdall/README.osx
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.glassechidna.com.au/products/heimdall/";
+ description = "A cross-platform tool suite to flash firmware onto Samsung Galaxy S devices";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hexd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hexd/default.nix
new file mode 100644
index 000000000000..0c0c56c52713
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hexd/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "hexd";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "FireyFly";
+ repo = "hexd";
+ rev = "v${version}";
+ sha256 = "1lm0mj5c71id5kpqar8n44023s1kymb3q45nsz0hjh9v7p8libp0";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "Colourful, human-friendly hexdump tool";
+ homepage = "https://github.com/FireyFly/hexd";
+ maintainers = [ maintainers.FireyFly ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hexyl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hexyl/default.nix
new file mode 100644
index 000000000000..d9bed8c607d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hexyl/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "hexyl";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0aj2sysl0spf5zlcd5kfzlw97w7dzf9x93pv0d1v9blnbd1rz7lm";
+ };
+
+ cargoSha256 = "1am9vs7l2wzgwqakrsl27x1y7jpn9xaqa4kr48wwqzka401h6j4m";
+
+ meta = with stdenv.lib; {
+ changelog = "https://github.com/sharkdp/hexyl/releases/tag/v${version}";
+ description = "A command-line hex viewer";
+ longDescription = ''
+ `hexyl` is a simple hex viewer for the terminal. It uses a colored
+ output to distinguish different categories of bytes (NULL bytes,
+ printable ASCII characters, ASCII whitespace characters, other ASCII
+ characters and non-ASCII).
+ '';
+ homepage = "https://github.com/sharkdp/hexyl";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ dywedir ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hhpc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hhpc/default.nix
new file mode 100644
index 000000000000..4b1b0d0c7623
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hhpc/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchFromGitHub, xorg, pkgconfig}:
+
+stdenv.mkDerivation rec {
+ pname = "hhpc";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "aktau";
+ repo = "hhpc";
+ rev = "v${version}";
+ sha256 = "1djsw1r38mh6zx0rbyn2cfa931hyddib4fl3i27c4z7xinl709ss";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ xorg.libX11 ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp hhpc $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Hides the mouse pointer in X11";
+ maintainers = with maintainers; [ nico202 ];
+ platforms = platforms.unix;
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hid-listen/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hid-listen/default.nix
new file mode 100644
index 000000000000..afc7c5741fd4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hid-listen/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+stdenv.mkDerivation rec {
+ pname = "hid-listen";
+ version = "1.01";
+
+ src = fetchzip {
+ name = "hid_listen_${version}";
+ url = "https://www.pjrc.com/teensy/hid_listen_${version}.zip";
+ sha256 = "0sd4dvi39fl4vy880mg531ryks5zglfz5mdyyqr7x6qv056ffx9w";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv ./hid_listen $out/bin/hid_listen
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool thats prints debugging information from usb HID devices";
+ homepage = "https://www.pjrc.com/teensy/hid_listen.html";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ tomsmeets ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile
new file mode 100644
index 000000000000..fb1d6a5584f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "homesick"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile.lock
new file mode 100644
index 000000000000..accc917e240f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ homesick (1.1.6)
+ thor (>= 0.14.0)
+ thor (0.20.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ homesick
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/default.nix
new file mode 100644
index 000000000000..5cd11bc48d1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/default.nix
@@ -0,0 +1,28 @@
+{ lib, bundlerEnv, bundlerUpdateScript, git }:
+bundlerEnv {
+ pname = "homesick";
+
+ gemdir = ./.;
+
+ # Cannot use `wrapProgram` because the the help is aware of the file name.
+ postInstall = ''
+ rm $out/bin/thor
+ sed 1a'ENV["PATH"] = "${git}/bin:#{ENV["PATH"] ? ":#{ENV["PATH"]}" : "" }"' -i $out/bin/homesick
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "homesick";
+
+ meta = with lib; {
+ description = "Your home directory is your castle. Don't leave your dotfiles behind";
+ longDescription =
+ ''
+ Homesick is sorta like rip, but for dotfiles. It uses git to clone a repository containing
+ dotfiles, and saves them in ~/.homesick. It then allows you to symlink all the dotfiles into
+ place with a single command.
+ '';
+ homepage = "https://github.com/technicalpickles/homesick";
+ license = licenses.mit;
+ maintainers = with maintainers; [ aaronschif nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/gemset.nix
new file mode 100644
index 000000000000..f51448276802
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/homesick/gemset.nix
@@ -0,0 +1,19 @@
+{
+ homesick = {
+ dependencies = ["thor"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lxvnp4ncbx0irlblfxbd1f8h4hl11hgmyiy35q79w137r3prxml";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ thor = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmqpyj642sk4g16nkbq6pj856adpv91lp4krwhqkh2iw63aszdl";
+ type = "gem";
+ };
+ version = "0.20.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hostsblock/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hostsblock/default.nix
new file mode 100644
index 000000000000..0346c81c66db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hostsblock/default.nix
@@ -0,0 +1,73 @@
+{ lib, coreutils, curl, fetchFromGitHub, unzip, p7zip, gnused, gnugrep, stdenv
+, blacklist ? [ "adwords.google.com" ]
+, whitelist ? [
+ ".dropbox.com"
+ " www.malwaredomainlists.com"
+ " www.arcamax.com"
+ " www.instructables.com"
+ " goo.gl"
+ " www.reddit.com"
+ " t.co"
+ " bit.ly"
+ " www.viddler.com"
+ " viddler.com"
+ " tinyurl.com"
+ " ompldr.org"
+ " www.ompldr.org"
+ "login.yahoo.com"
+ " l.yimg.com"
+ ".bp.blogspot.com"
+] }:
+
+stdenv.mkDerivation {
+ pname = "hostsblock";
+ version = "20161213";
+
+ src = fetchFromGitHub {
+ owner = "gaenserich";
+ repo = "hostsblock";
+ rev = "91cacbdfbfb5e7ae9ba3babf8de41e135270c310";
+ sha256 = "1w91fbgf8v2nn0a6m8l6kd455km2j1lvpvqil4yxhrg018aigax0";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -Dm744 src/hostsblock.sh $out/bin/hostsblock
+ install -Dm744 src/hostsblock-urlcheck.sh $out/bin/hostsblock-urlcheck
+
+ mkdir -p $out/lib
+ install -Dm644 src/hostsblock-common.sh $out/lib/
+
+ mkdir -p $out/etc
+ install -Dm644 conf/hostsblock.conf $out/etc/
+ ${lib.concatMapStrings (d: "echo ${d} >> $out/etc/black.list\n") blacklist}
+ ${lib.concatMapStrings (d: "echo ${d} >> $out/etc/white.list\n") whitelist}
+ install -Dm644 conf/hosts.head $out/etc/
+
+ for f in $out/bin/* $out/lib/* $out/etc/hostsblock.conf; do
+ substituteInPlace $f --replace "/dev/shm" "/tmp"
+ substituteInPlace $f --replace "/usr/lib/" "$out/lib/"
+ substituteInPlace $f --replace "/etc/hostsblock/" "$out/etc/"
+ sed --in-place --regexp-extended "s|([\` ])curl |\1${curl}/bin/curl |g" $f
+ substituteInPlace $f --replace grep ${gnugrep}/bin/grep
+ substituteInPlace $f --replace " sed " " ${gnused}/bin/sed "
+ sed --in-place --regexp-extended "s|([^_])unzip |\1${unzip}/bin/unzip |" $f
+ sed --in-place --regexp-extended "s|7za([^,])|${p7zip}/bin/7za\1|g" $f
+ done
+
+ echo "postprocess(){ ${coreutils}/bin/true; }" >> $out/etc/hostsblock.conf
+
+ mkdir -p $out/share/dbus-1/system-services
+ install -Dm644 systemd/hostsblock.service $out/share/dbus-1/system-services
+ install -Dm644 systemd/hostsblock.timer $out/share/dbus-1/system-services
+ '';
+
+ meta = with lib; {
+ description = "An ad- and malware-blocking script for Linux";
+ homepage = "http://gaenserich.github.io/hostsblock/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.nicknovitski ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hpcg/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hpcg/default.nix
new file mode 100644
index 000000000000..6274178c266a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hpcg/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, openmpi } :
+
+stdenv.mkDerivation rec {
+ pname = "hpcg";
+ version = "3.1";
+
+ src = fetchurl {
+ url = "http://www.hpcg-benchmark.org/downloads/${pname}-${version}.tar.gz";
+ sha256 = "197lw2nwmzsmfsbvgvi8z7kj69n374kgfzzp8pkmk7mp2vkk991k";
+ };
+
+ dontConfigure = true;
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ openmpi ];
+
+ makeFlags = [ "arch=Linux_MPI" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/hpcg
+
+ cp bin/xhpcg $out/bin
+ cp bin/hpcg.dat $out/share/hpcg
+ '';
+
+ meta = with stdenv.lib; {
+ description = "HPC conjugate gradient benchmark";
+ homepage = "https://www.hpcg-benchmark.org";
+ platforms = platforms.linux;
+ license = licenses.bsd3;
+ maintainers = [ maintainers.markuskowa ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hpl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hpl/default.nix
new file mode 100644
index 000000000000..d688f3adf30e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hpl/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, blas, lapack, mpi } :
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation rec {
+ pname = "hpl";
+ version = "2.3";
+
+ src = fetchurl {
+ url = "http://www.netlib.org/benchmark/hpl/${pname}-${version}.tar.gz";
+ sha256 = "0c18c7fzlqxifz1bf3izil0bczv3a7nsv0dn6winy3ik49yw3i9j";
+ };
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ # only contains the static lib
+ rm -r $out/lib
+
+ install -D testing/ptest/HPL.dat $out/share/hpl/HPL.dat
+ '';
+
+ buildInputs = [ blas lapack mpi ];
+
+ meta = with stdenv.lib; {
+ description = "Portable Implementation of the Linpack Benchmark for Distributed-Memory Computers";
+ homepage = "http://www.netlib.org/benchmark/hpl/";
+ platforms = platforms.unix;
+ license = licenses.bsdOriginal;
+ maintainers = [ maintainers.markuskowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile
new file mode 100644
index 000000000000..a7c369cc6804
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'html-proofer'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
new file mode 100644
index 000000000000..489fa555c5de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -0,0 +1,37 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ ethon (0.12.0)
+ ffi (>= 1.3.0)
+ ffi (1.13.1)
+ html-proofer (3.16.0)
+ addressable (~> 2.3)
+ mercenary (~> 0.3)
+ nokogumbo (~> 2.0)
+ parallel (~> 1.3)
+ rainbow (~> 3.0)
+ typhoeus (~> 1.3)
+ yell (~> 2.0)
+ mercenary (0.4.0)
+ mini_portile2 (2.4.0)
+ nokogiri (1.10.10)
+ mini_portile2 (~> 2.4.0)
+ nokogumbo (2.0.2)
+ nokogiri (~> 1.8, >= 1.8.4)
+ parallel (1.19.2)
+ public_suffix (4.0.6)
+ rainbow (3.0.0)
+ typhoeus (1.4.0)
+ ethon (>= 0.9.0)
+ yell (2.2.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ html-proofer
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/default.nix
new file mode 100644
index 000000000000..ba136b06b8a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/default.nix
@@ -0,0 +1,18 @@
+{ bundlerEnv, ruby, lib }:
+
+bundlerEnv rec {
+ name = "${pname}-${version}";
+ pname = "html-proofer";
+ version = (import ./gemset.nix).html-proofer.version;
+
+ inherit ruby;
+ gemdir = ./.;
+
+ meta = with lib; {
+ description = "A tool to validate HTML files";
+ homepage = "https://github.com/gjtorikian/html-proofer";
+ license = licenses.mit;
+ maintainers = with maintainers; [ primeos ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
new file mode 100644
index 000000000000..bdd0bbc20c9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
@@ -0,0 +1,138 @@
+{
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ ethon = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ html-proofer = {
+ dependencies = ["addressable" "mercenary" "nokogumbo" "parallel" "rainbow" "typhoeus" "yell"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18s8l3nys0lvdkqpfg3c1rd84c5j4dmlx503wnksw9skbzn7l93m";
+ type = "gem";
+ };
+ version = "3.16.0";
+ };
+ mercenary = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ nokogumbo = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sxjnpjvrn10gdmfw2dimhch861lz00f28hvkkz0b1gc2rb65k9s";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ parallel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17b127xxmm2yqdz146qwbs57046kn0js1h8synv01dwqz2z1kp2l";
+ type = "gem";
+ };
+ version = "1.19.2";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+ type = "gem";
+ };
+ version = "4.0.6";
+ };
+ rainbow = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ typhoeus = {
+ dependencies = ["ethon"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ yell = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g16kcdhdfvczn7x81jiq6afg3bdxmb73skqjyjlkp5nqcy6y5hx";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hyperfine/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
new file mode 100644
index 000000000000..ff9250a2bf66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "hyperfine";
+ version = "1.10.0";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = pname;
+ rev = "refs/tags/v${version}";
+ sha256 = "0389lmyipmm4irrl39zw2748f2sdddfzwms4i4763xdykdvi8b57";
+ };
+
+ cargoSha256 = "06scvp7x1yixdadarsm461hbc256spx4aqhmjjn72x7hxn22h9cg";
+
+ nativeBuildInputs = [ installShellFiles ];
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ postInstall = ''
+ installManPage doc/hyperfine.1
+
+ installShellCompletion \
+ $releaseDir/build/hyperfine-*/out/hyperfine.{bash,fish} \
+ --zsh $releaseDir/build/hyperfine-*/out/_hyperfine
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line benchmarking tool";
+ homepage = "https://github.com/sharkdp/hyperfine";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = [ maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/hyperledger-fabric/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/hyperledger-fabric/default.nix
new file mode 100644
index 000000000000..e782d793dab8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/hyperledger-fabric/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "hyperledger-fabric";
+ version = "1.3.0";
+
+ goPackagePath = "github.com/hyperledger/fabric";
+
+ # taken from https://github.com/hyperledger/fabric/blob/v1.3.0/Makefile#L108
+ subPackages = [
+ "common/tools/configtxgen"
+ "common/tools/configtxlator"
+ "common/tools/cryptogen"
+ "common/tools/idemixgen"
+ "cmd/discover"
+ "peer"
+ "orderer"
+ ];
+
+ src = fetchFromGitHub {
+ owner = "hyperledger";
+ repo = "fabric";
+ rev = "v${version}";
+ sha256 = "08qrrxzgkqg9v7n3y8f2vggyqx9j65wisxi17hrabz5mzaq299xs";
+ };
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "An implementation of blockchain technology, leveraging familiar and proven technologies";
+ homepage = "https://wiki.hyperledger.org/projects/Fabric";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/default.nix
new file mode 100644
index 000000000000..bc934c424f30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "i3cat";
+ version = "20150321-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "b9ba886a7c769994ccd8d4627978ef4b51fcf576";
+
+ goPackagePath = "github.com/vincent-petithory/i3cat";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/vincent-petithory/i3cat";
+ sha256 = "1xlm5c9ajdb71985nq7hcsaraq2z06przbl6r4ykvzi8w2lwgv72";
+ };
+
+ goDeps = ./deps.nix;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/deps.nix
new file mode 100644
index 000000000000..01e85cbd824d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/i3cat/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/vincent-petithory/structfield";
+ fetch = {
+ type = "git";
+ url = "https://github.com/vincent-petithory/structfield";
+ rev = "01a738558a47fbf16712994d1737fb31c77e7d11";
+ sha256 = "1kyx71z13mf6hc8ly0j0b9zblgvj5lzzvgnc3fqh61wgxrsw24dw";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/i3minator/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/i3minator/default.nix
new file mode 100644
index 000000000000..ad9c41d47052
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/i3minator/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pythonPackages, glibcLocales }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "i3minator";
+ version = "0.0.4";
+
+ src = fetchFromGitHub {
+ owner = "carlesso";
+ repo = "i3minator";
+ rev = version;
+ sha256 = "07dic5d2m0zw0psginpl43xn0mpxw7wilj49d02knz69f7c416lm";
+ };
+
+ LC_ALL = "en_US.UTF-8";
+ buildInputs = [ glibcLocales ];
+ propagatedBuildInputs = [ pythonPackages.pyyaml pythonPackages.i3-py ];
+
+ # No tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "i3 project manager similar to tmuxinator";
+ longDescription = ''
+ A simple "workspace manager" for i3. It allows to quickly
+ manage workspaces defining windows and their layout. The
+ project is inspired by tmuxinator and uses i3-py.
+ '';
+ homepage = "https://github.com/carlesso/i3minator";
+ license = stdenv.lib.licenses.wtfpl;
+ maintainers = with maintainers; [ domenkozar ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/default.nix
new file mode 100644
index 000000000000..bcba352d6d36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, buildGoPackage}:
+
+buildGoPackage rec {
+ pname = "ical2org";
+ version="1.1.5";
+
+ goPackagePath = "github.com/rjhorniii/ical2org";
+
+ src = fetchFromGitHub {
+ owner = "rjhorniii";
+ repo = "ical2org";
+ rev = "v.${version}";
+ sha256 = "0hdx2j2innjh0z4kxcfzwdl2d54nv0g9ai9fyacfiagjhnzgf7cm";
+ fetchSubmodules = true;
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Convert an iCal file to org agenda format, optionally deduplicating entries";
+ homepage = "https://github.com/rjhorniii/ical2org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ swflint ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/deps.nix
new file mode 100644
index 000000000000..b948fac3d116
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ical2org/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/rjhorniii/ics-golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/rjhorniii/ics-golang";
+ rev = "da66d6f502fac65073773ea3779cae2959545cb2";
+ sha256 = "1mm5rssvyjk29n1gq4l5xw26gm8bhvbzrs5c059i41zh9af121px";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ideviceinstaller/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ideviceinstaller/default.nix
new file mode 100644
index 000000000000..4046d775a542
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ideviceinstaller/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, usbmuxd, libzip, libimobiledevice }:
+
+stdenv.mkDerivation rec {
+ pname = "ideviceinstaller";
+ version = "2018-10-01";
+
+ src = fetchFromGitHub {
+ owner = "libimobiledevice";
+ repo = pname;
+ rev = "f14def7cd9303a0fe622732fae9830ae702fdd7c";
+ sha256 = "1biwhbldvgdhn8ygp7w79ca0rivzdjpykr76pyhy7r2fa56mrwq8";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig usbmuxd libimobiledevice libzip ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/libimobiledevice/ideviceinstaller";
+ description = "List/modify installed apps of iOS devices";
+ longDescription = ''
+ ideviceinstaller is a tool to interact with the installation_proxy
+ of an iOS device allowing to install, upgrade, uninstall, archive, restore
+ and enumerate installed or archived apps.
+ '';
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ aristid infinisil ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix
new file mode 100644
index 000000000000..5a6064114419
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, curl
+, libimobiledevice
+, libirecovery
+, libzip
+, libusbmuxd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "idevicerestore";
+ version = "2019-12-26";
+
+ src = fetchFromGitHub {
+ owner = "libimobiledevice";
+ repo = pname;
+ rev = "8207daaa2ac3cb3a5107aae6aefee8ecbe39b6d4";
+ sha256 = "1jz72bzk1fh12bs65pv06l85135hgfz1aqnbb084bvqcpj4gl40h";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ buildInputs = [
+ curl
+ libimobiledevice
+ libirecovery
+ libzip
+ libusbmuxd
+ # Not listing other dependencies specified in
+ # https://github.com/libimobiledevice/idevicerestore/blob/8a882038b2b1e022fbd19eaf8bea51006a373c06/README#L20
+ # because they are inherited `libimobiledevice`.
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/libimobiledevice/idevicerestore";
+ description = "Restore/upgrade firmware of iOS devices";
+ longDescription = ''
+ The idevicerestore tool allows to restore firmware files to iOS devices.
+
+ It is a full reimplementation of all granular steps which are performed during
+ restore of a firmware to a device.
+
+ In general, upgrades and downgrades are possible, however subject to
+ availability of SHSH blobs from Apple for signing the firmare files.
+
+ To restore a device to some firmware, simply run the following:
+ $ sudo idevicerestore -l
+
+ This will download and restore a device to the latest firmware available.
+ '';
+ license = licenses.lgpl21Plus;
+ # configure.ac suggests it should work for darwin and mingw as well but not tried yet
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ nh2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/default.nix
new file mode 100644
index 000000000000..9afb92791340
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/default.nix
@@ -0,0 +1,55 @@
+{ fetchurl, stdenv, emacs }:
+
+stdenv.mkDerivation rec {
+ name = "idutils-4.6";
+
+ src = fetchurl {
+ url = "mirror://gnu/idutils/${name}.tar.xz";
+ sha256 = "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1";
+ };
+
+ preConfigure =
+ ''
+ # Fix for building on Glibc 2.16. Won't be needed once the
+ # gnulib in idutils is updated.
+ sed -i '/gets is a security hole/d' lib/stdio.in.h
+ '';
+
+ buildInputs = stdenv.lib.optional stdenv.isLinux emacs;
+
+ doCheck = !stdenv.isDarwin;
+
+ patches = [ ./nix-mapping.patch ];
+
+ meta = {
+ description = "Text searching utility";
+
+ longDescription = ''
+ An "ID database" is a binary file containing a list of file
+ names, a list of tokens, and a sparse matrix indicating which
+ tokens appear in which files.
+
+ With this database and some tools to query it, many
+ text-searching tasks become simpler and faster. For example,
+ you can list all files that reference a particular `\#include'
+ file throughout a huge source hierarchy, search for all the
+ memos containing references to a project, or automatically
+ invoke an editor on all files containing references to some
+ function or variable. Anyone with a large software project to
+ maintain, or a large set of text files to organize, can benefit
+ from the ID utilities.
+
+ Although the name `ID' is short for `identifier', the ID
+ utilities handle more than just identifiers; they also treat
+ other kinds of tokens, most notably numeric constants, and the
+ contents of certain character strings.
+ '';
+
+ homepage = "https://www.gnu.org/software/idutils/";
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.all;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/nix-mapping.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/nix-mapping.patch
new file mode 100644
index 000000000000..6f92ffa07b52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/idutils/nix-mapping.patch
@@ -0,0 +1,12 @@
+Recognize `.nix' files as text files.
+
+--- idutils-4.5/libidu/id-lang.map 2009-05-17 16:38:42.000000000 +0200
++++ idutils-4.5/libidu/id-lang.map 2010-07-04 15:52:48.000000000 +0200
+@@ -88,6 +88,7 @@ GNUmakefile make
+ *.doc text
+ *.txt text
+ *.org text
++*.nix text
+
+ *.m4 m4
+ *.ac m4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ili2c/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ili2c/default.nix
new file mode 100644
index 000000000000..2bda116e66ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ili2c/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, jdk8, ant, makeWrapper, jre8 }:
+
+let jdk = jdk8; jre = jre8; in
+stdenv.mkDerivation rec {
+ pname = "ili2c";
+ version = "5.0.8";
+
+ nativeBuildInputs = [ ant jdk makeWrapper ];
+
+ src = fetchFromGitHub {
+ owner = "claeis";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "1yhsyh940kb33y2n6xl7zhf0f6q0nrxbyg6c4g5n2imllpn54sgi";
+ };
+
+ buildPhase = "ant jar";
+
+ installPhase =
+ ''
+ mkdir -p $out/share/${pname}
+ cp $build/build/source/build/jar/ili2c.jar $out/share/${pname}
+
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/ili2c \
+ --add-flags "-jar $out/share/${pname}/ili2c.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The INTERLIS Compiler";
+ longDescription = ''
+ Checks the syntactical correctness of an INTERLIS data model.
+ '';
+ homepage = "https://www.interlis.ch/downloads/ili2c";
+ license = licenses.lgpl21Plus;
+ maintainers = [ maintainers.das-g ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/intermodal/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/intermodal/default.nix
new file mode 100644
index 000000000000..fe5d724e696b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/intermodal/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "intermodal";
+ version = "0.1.11";
+
+ src = fetchFromGitHub {
+ owner = "casey";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1wqf227ljfys16jfbxi6mlkgdczgqrh15ixl9vi6higlxfi2wsj2";
+ };
+
+ cargoSha256 = "0lx8y1y5mf8ga7iz74dnfyf2b9jx15wishw0khfxknmh96h2y99h";
+
+ # include_hidden test tries to use `chflags` on darwin
+ checkFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--skip=subcommand::torrent::create::tests::include_hidden" ];
+
+ meta = with stdenv.lib; {
+ description = "User-friendly and featureful command-line BitTorrent metainfo utility";
+ homepage = "https://github.com/casey/intermodal";
+ license = licenses.cc0;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ipad_charge/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ipad_charge/default.nix
new file mode 100644
index 000000000000..981d9f2dc6cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ipad_charge/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, libusb1 }:
+
+stdenv.mkDerivation rec {
+ pname = "ipad_charge";
+ version = "2015-02-03";
+
+ src = fetchFromGitHub {
+ sha256 = "0f40hqx1dbqpwrhyf42h5982jwqv8j5zp5hwwakz6600hyqvnnz7";
+ rev = "bb24e1c3a79016cfdffb9d28189485766d655ec6";
+ repo = "ipad_charge";
+ owner = "mkorenkov";
+ };
+
+ buildInputs = [ libusb1 ];
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace " -o root -g root" "" \
+ --replace "/usr" "$out" \
+ --replace "/etc/udev" "$out/lib/udev"
+ substituteInPlace *.rules \
+ --replace "/usr" "$out"
+ '';
+
+ enableParallelBuilding = true;
+
+ preInstall = ''
+ mkdir -p $out/{bin,lib/udev/rules.d}
+ '';
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Apple device USB charging utility for Linux";
+ longDescription = ''
+ USB charging control utility used to enable/disable charging of an Apple
+ device connected to USB port. For a list of supported devices, see
+ https://github.com/mkorenkov/ipad_charge#supported-devices.
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ipbt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ipbt/default.nix
new file mode 100644
index 000000000000..e523dd198d42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ipbt/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, perl, ncurses }:
+
+stdenv.mkDerivation rec {
+ version = "20190601.d1519e0";
+ pname = "ipbt";
+
+ src = fetchurl {
+ url = "https://www.chiark.greenend.org.uk/~sgtatham/ipbt/ipbt-${version}.tar.gz";
+ sha256 = "1aj8pajdd81vq2qw6vzfm27i0aj8vfz9m7k3sda30pnsrizm06d5";
+ };
+
+ nativeBuildInputs = [ perl ];
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "A high-tech ttyrec player for Unix";
+ homepage = "https://www.chiark.greenend.org.uk/~sgtatham/ipbt/";
+ license = licenses.mit;
+ maintainers = [ maintainers.tckmn ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ipxe/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ipxe/default.nix
new file mode 100644
index 000000000000..87b26f223bc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ipxe/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, lib, fetchFromGitHub, perl, cdrkit, syslinux, xz, openssl, gnu-efi, mtools
+, embedScript ? null
+, additionalTargets ? {}
+}:
+
+let
+ targets = additionalTargets // lib.optionalAttrs stdenv.isx86_64 {
+ "bin-x86_64-efi/ipxe.efi" = null;
+ "bin-x86_64-efi/ipxe.efirom" = null;
+ "bin-x86_64-efi/ipxe.usb" = "ipxe-efi.usb";
+ } // {
+ "bin/ipxe.dsk" = null;
+ "bin/ipxe.usb" = null;
+ "bin/ipxe.iso" = null;
+ "bin/ipxe.lkrn" = null;
+ "bin/undionly.kpxe" = null;
+ };
+in
+
+stdenv.mkDerivation rec {
+ pname = "ipxe";
+ version = "1.20.1";
+
+ nativeBuildInputs = [ perl cdrkit syslinux xz openssl gnu-efi mtools ];
+
+ src = fetchFromGitHub {
+ owner = "ipxe";
+ repo = "ipxe";
+ rev = "v${version}";
+ sha256 = "0w7h7y97gj9nqvbmsg1zp6zj5mpbbpckqbbx7bpp6k3ahy5fk8zp";
+ };
+
+ # not possible due to assembler code
+ hardeningDisable = [ "pic" "stackprotector" ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ makeFlags =
+ [ "ECHO_E_BIN_ECHO=echo" "ECHO_E_BIN_ECHO_E=echo" # No /bin/echo here.
+ "ISOLINUX_BIN_LIST=${syslinux}/share/syslinux/isolinux.bin"
+ "LDLINUX_C32=${syslinux}/share/syslinux/ldlinux.c32"
+ ] ++ lib.optional (embedScript != null) "EMBED=${embedScript}";
+
+
+ enabledOptions = [
+ "PING_CMD"
+ "IMAGE_TRUST_CMD"
+ "DOWNLOAD_PROTO_HTTP"
+ "DOWNLOAD_PROTO_HTTPS"
+ ];
+
+ configurePhase = ''
+ runHook preConfigure
+ for opt in $enabledOptions; do echo "#define $opt" >> src/config/general.h; done
+ sed -i '/cp \''${ISOLINUX_BIN}/s/$/ --no-preserve=mode/' src/util/geniso
+ substituteInPlace src/Makefile.housekeeping --replace '/bin/echo' echo
+ runHook postConfigure
+ '';
+
+ preBuild = "cd src";
+
+ buildFlags = lib.attrNames targets;
+
+ installPhase = ''
+ mkdir -p $out
+ ${lib.concatStringsSep "\n" (lib.mapAttrsToList (from: to:
+ if to == null
+ then "cp -v ${from} $out"
+ else "cp -v ${from} $out/${to}") targets)}
+
+ # Some PXE constellations especially with dnsmasq are looking for the file with .0 ending
+ # let's provide it as a symlink to be compatible in this case.
+ ln -s undionly.kpxe $out/undionly.kpxe.0
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib;
+ { description = "Network boot firmware";
+ homepage = "https://ipxe.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ehmry ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.nix
new file mode 100644
index 000000000000..3529324b30ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "ised";
+ version = "2.7.1";
+ src = fetchurl {
+ url = "mirror://sourceforge/project/ised/${pname}-${version}.tar.bz2";
+ sha256 = "0fhha61whkkqranqdxg792g0f5kgp5m3m6z1iqcvjh2c34rczbmb";
+ };
+
+ meta = {
+ description = "A numeric sequence editor";
+ maintainers = with stdenv.lib.maintainers; [ raskin ];
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.upstream b/infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.upstream
new file mode 100644
index 000000000000..6539bf477e54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ised/default.upstream
@@ -0,0 +1,4 @@
+url http://ised.sourceforge.net/web_nav.html
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ix/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ix/default.nix
new file mode 100644
index 000000000000..cedaa13b74a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ix/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, makeWrapper, curl }:
+
+stdenv.mkDerivation {
+ pname = "ix";
+ version = "20190815";
+
+ src = fetchurl {
+ url = "http://ix.io/client";
+ sha256 = "0xc2s4s1aq143zz8lgkq5k25dpf049dw253qxiav5k7d7qvzzy57";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ phases = [ "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ install -Dm +x $src $out/bin/ix
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/ix --prefix PATH : "${stdenv.lib.makeBinPath [ curl ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://ix.io";
+ description = "Command line pastebin";
+ maintainers = with maintainers; [ asymmetric ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
new file mode 100644
index 000000000000..5e6c0bdd5968
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, unzip, jre, makeDesktopItem }:
+
+let
+ desktopItem = makeDesktopItem {
+ desktopName = "JDiskReport";
+ genericName = "A graphical utility to visualize disk usage";
+ categories = "Utility;";
+ exec = "jdiskreport";
+ name = "jdiskreport";
+ type = "Application";
+ };
+in
+stdenv.mkDerivation {
+ name = "jdiskreport-1.4.1";
+
+ src = fetchurl {
+ url = "http://www.jgoodies.com/download/jdiskreport/jdiskreport-1_4_1.zip";
+ sha256 = "0d5mzkwsbh9s9b1vyvpaawqc09b0q41l2a7pmwf7386b1fsx6d58";
+ };
+
+ buildInputs = [ unzip ];
+ inherit jre;
+
+ installPhase = ''
+ source $stdenv/setup
+
+ unzip $src
+
+ jar=$(ls */*.jar)
+
+ mkdir -p $out/share/java
+ mv $jar $out/share/java
+
+ mkdir -p $out/bin
+ cat > $out/bin/jdiskreport <<EOF
+ #! $SHELL -e
+ exec $jre/bin/java -jar $out/share/java/$(basename $jar)
+ EOF
+ chmod +x $out/bin/jdiskreport
+
+ ${desktopItem.buildCommand}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.jgoodies.com/freeware/jdiskreport/";
+ description = "A graphical utility to visualize disk usage";
+ license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ kylesferrazza ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/jdupes/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/jdupes/default.nix
new file mode 100644
index 000000000000..7d559a1468e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/jdupes/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "jdupes";
+ version = "1.18.2";
+
+ src = fetchFromGitHub {
+ owner = "jbruchon";
+ repo = "jdupes";
+ rev = "v${version}";
+ sha256 = "1gaqdcz0s31qncar9dzlr8izv50zlk4y6dgdm9xjk6as2g8b0fkk";
+ # Unicode file names lead to different checksums on HFS+ vs. other
+ # filesystems because of unicode normalisation. The testdir
+ # directories have such files and will be removed.
+ extraPostFetch = "rm -r $out/testdir";
+ };
+
+ dontConfigure = true;
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ ] ++ stdenv.lib.optionals stdenv.isLinux [
+ "ENABLE_DEDUPE=1"
+ "STATIC_DEDUPE_H=1"
+ ] ++ stdenv.lib.optionals stdenv.cc.isGNU [
+ "HARDEN=1"
+ ];
+
+ enableParallelBuilding = true;
+
+ doCheck = false; # broken Makefile, the above also removes tests
+
+ postInstall = ''
+ install -Dm444 -t $out/share/doc/jdupes CHANGES LICENSE README.md
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A powerful duplicate file finder and an enhanced fork of 'fdupes'";
+ longDescription = ''
+ jdupes is a program for identifying and taking actions upon
+ duplicate files. This fork known as 'jdupes' is heavily modified
+ from and improved over the original.
+ '';
+ homepage = "https://github.com/jbruchon/jdupes";
+ license = licenses.mit;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/journaldriver/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/journaldriver/default.nix
new file mode 100644
index 000000000000..77df7ab6908a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/journaldriver/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, rustPlatform, pkgconfig, openssl, systemd }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "journaldriver";
+ version = "1.1.0";
+ cargoSha256 = "1vyc9pglppfz5idahvcj01wpmmm6jw043zk896wdksywa5zcqn28";
+
+ src = fetchFromGitHub {
+ owner = "tazjin";
+ repo = "journaldriver";
+ rev = "v${version}";
+ sha256 = "0672iq6s9klb1p37hciyl7snbjgjw98kwrbfkypv07lplc5qcnrf";
+ };
+
+ buildInputs = [ openssl systemd ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with lib; {
+ description = "Log forwarder from journald to Stackdriver Logging";
+ homepage = "https://github.com/tazjin/journaldriver";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.tazjin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix
new file mode 100644
index 000000000000..32c45b31a17d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, jre, makeWrapper, ant, jdk }:
+stdenv.mkDerivation rec {
+ version = "1.2.1";
+ name = "jugglinglab";
+ src = fetchFromGitHub {
+ owner = "jkboyce";
+ repo = "jugglinglab";
+ rev = "1908012682d8c39a9b92248a20f285455104c510"; # v1.2.1 does not have a tag on Github
+ sha256 = "0dvcyjwynvapqbjchrln59vdskrm3w6kh0knxcn4bx61vcz3171z";
+ };
+ buildInputs = [ jre ];
+ nativeBuildInputs = [ ant jdk makeWrapper ];
+ buildPhase = "ant";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/lib"
+ cp bin/JugglingLab.jar $out/lib/
+
+ makeWrapper ${jre}/bin/java $out/bin/jugglinglab \
+ --add-flags "-jar $out/lib/JugglingLab.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A program to visualize different juggling pattens";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ wnklmnn ];
+ platforms = platforms.all;
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
new file mode 100644
index 000000000000..1c2d7ab6717b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, darwin, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "kak-lsp";
+ version = "8.0.0";
+
+ src = fetchFromGitHub {
+ owner = "ul";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0nka51szivwhlfkimjiyzj67nxh75m784c28ass6ihlfax631w9m";
+ };
+
+ cargoSha256 = "174qy50m9487vv151vm8q6sby79dq3gbqjbz6h4326jwsc9wwi8c";
+
+ buildInputs = lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+ meta = with lib; {
+ description = "Kakoune Language Server Protocol Client";
+ homepage = "https://github.com/ul/kak-lsp";
+ license = with licenses; [ unlicense /* or */ mit ];
+ maintainers = [ maintainers.spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kanshi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kanshi/default.nix
new file mode 100644
index 000000000000..0cb20315f66c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kanshi/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config, scdoc, wayland }:
+
+stdenv.mkDerivation rec {
+ pname = "kanshi";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "emersion";
+ repo = "kanshi";
+ rev = "v${version}";
+ sha256 = "0nbpgm8qnn7ljsg9vgs35kl8l4rrk542vdcbx8wrn9r909ld3x92";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config scdoc ];
+ buildInputs = [ wayland ];
+
+ meta = with stdenv.lib; {
+ description = "Dynamic display configuration tool";
+ longDescription = ''
+ kanshi allows you to define output profiles that are automatically enabled
+ and disabled on hotplug. For instance, this can be used to turn a laptop's
+ internal screen off when docked.
+
+ kanshi can be used on Wayland compositors supporting the
+ wlr-output-management protocol.
+ '';
+ homepage = "https://github.com/emersion/kanshi";
+ downloadPage = "https://github.com/emersion/kanshi";
+ license = licenses.mit;
+ maintainers = with maintainers; [ balsoft ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kargo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kargo/default.nix
new file mode 100644
index 000000000000..ac40eb762d50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kargo/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ version = "0.4.8";
+ pname = "kargo";
+
+ src = fetchurl {
+ url = "mirror://pypi/k/kargo/${pname}-${version}.tar.gz";
+ sha256 = "1iq3vrmglag9gpsir03yz7556m0bz99nwb2mf594378cqzbr6db3";
+ };
+
+ propagatedBuildInputs = [
+ ansible
+ boto
+ cffi
+ cryptography
+ libcloud
+ markupsafe
+ netaddr
+ pyasn1
+ requests
+ setuptools
+ ];
+
+ checkPhase = ''
+ HOME=$TMPDIR $out/bin/kargo -v
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/kubespray/kargo-cli";
+ description = "A tool helps to deploy a kubernetes cluster with Ansible";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kepubify/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kepubify/default.nix
new file mode 100644
index 000000000000..7446b061e0d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kepubify/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "kepubify";
+ version = "3.1.5";
+
+ src = fetchFromGitHub {
+ owner = "pgaskin";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "047pwn7yzm456cs175vgqk2pd6i3iqn8zxp38px3ah15vym2yjnp";
+ };
+
+ vendorSha256 = "0jzx5midawvzims9ghh8fbslvwcdczvlpf0k6a9q0bdf4wlp2z5n";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ excludedPackages = [ "kobotest" ];
+
+ meta = with lib; {
+ description = "EPUB to KEPUB converter";
+ homepage = "https://pgaskin.net/kepubify";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kermit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kermit/default.nix
new file mode 100644
index 000000000000..f81d9b7266b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kermit/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, ncurses, glibc }:
+
+stdenv.mkDerivation {
+ name = "kermit-9.0.302";
+
+ src = fetchurl {
+ url = "ftp://ftp.kermitproject.org/kermit/archives/cku302.tar.gz";
+ sha256 = "0487mh6s99ijqf1pfmbm302pa5i4pzmm8s439hdl1ffs5g8jqpqd";
+ };
+
+ buildInputs = [ ncurses glibc ];
+
+ unpackPhase = ''
+ mkdir -p src
+ pushd src
+ tar xvzf $src
+ '';
+
+ patchPhase = ''
+ sed -i -e 's@-I/usr/include/ncurses@@' \
+ -e 's@/usr/local@'"$out"@ makefile
+ '';
+
+ buildPhase = "make -f makefile linux LNKFLAGS='-lcrypt -lresolv'";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/man/man1
+ make -f makefile install
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.kermitproject.org/ck90.html";
+ description = "Portable Scriptable Network and Serial Communication Software";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/keychain/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/keychain/default.nix
new file mode 100644
index 000000000000..a65d408fa6b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/keychain/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub, makeWrapper, coreutils, openssh, gnupg
+, perl, procps, gnugrep, gawk, findutils, gnused }:
+
+stdenv.mkDerivation rec {
+ pname = "keychain";
+ version = "2.8.5";
+
+ src = fetchFromGitHub {
+ owner = "funtoo";
+ repo = "keychain";
+ rev = version;
+ sha256 = "1bkjlg0a2bbdjhwp37ci1rwikvrl4s3xlbf2jq2z4azc96dr83mj";
+ };
+
+ buildInputs = [ makeWrapper perl ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/man/man1}
+ cp keychain $out/bin/keychain
+ cp keychain.1 $out/share/man/man1
+ wrapProgram $out/bin/keychain \
+ --prefix PATH ":" "${coreutils}/bin" \
+ --prefix PATH ":" "${openssh}/bin" \
+ --prefix PATH ":" "${gnupg}/bin" \
+ --prefix PATH ":" "${gnugrep}/bin" \
+ --prefix PATH ":" "${gnused}/bin" \
+ --prefix PATH ":" "${findutils}/bin" \
+ --prefix PATH ":" "${gawk}/bin" \
+ --prefix PATH ":" "${procps}/bin"
+ '';
+
+ meta = {
+ description = "Keychain management tool";
+ homepage = "https://www.funtoo.org/Keychain";
+ license = stdenv.lib.licenses.gpl2;
+ # other platforms are untested (AFAIK)
+ platforms =
+ with stdenv.lib;
+ platforms.linux ++ platforms.darwin;
+ maintainers = with stdenv.lib.maintainers; [ sigma ];
+ longDescription = ''
+ Keychain helps you to manage SSH and GPG keys in a convenient and secure
+ manner. It acts as a frontend to ssh-agent and ssh-add, but allows you
+ to easily have one long running ssh-agent process per system, rather
+ than the norm of one ssh-agent per login session.
+
+ This dramatically reduces the number of times you need to enter your
+ passphrase. With keychain, you only need to enter a passphrase once
+ every time your local machine is rebooted. Keychain also makes it easy
+ for remote cron jobs to securely "hook in" to a long-running ssh-agent
+ process, allowing your scripts to take advantage of key-based logins.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kisslicer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kisslicer/default.nix
new file mode 100644
index 000000000000..c6ec5f3103fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kisslicer/default.nix
@@ -0,0 +1,58 @@
+{ fetchzip
+, libX11
+, libGLU, libGL
+, makeWrapper
+, stdenv
+}:
+
+let
+
+ libPath = stdenv.lib.makeLibraryPath [
+ libGLU libGL
+ stdenv.cc.cc
+ libX11
+ ];
+
+ inidir = "\\\${XDG_CONFIG_HOME:-\\$HOME/.config}/kisslicer";
+
+in
+
+stdenv.mkDerivation {
+ name = "kisslicer-1.6.3";
+
+ src = fetchzip {
+ url = "http://www.kisslicer.com/uploads/1/5/3/8/15381852/kisslicer_linux64_1.6.3_release.zip";
+ sha256 = "1xmywj5jrcsqv1d5x3mphhvafs4mfm9l12npkhk7l03qxbwg9j82";
+ stripRoot = false;
+ };
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ buildInputs = [
+ makeWrapper
+ libGLU libGL
+ libX11
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -p * $out/bin
+ '';
+
+ fixupPhase = ''
+ chmod 755 $out/bin/KISSlicer
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath} $out/bin/KISSlicer
+ wrapProgram $out/bin/KISSlicer \
+ --add-flags "-inidir ${inidir}" \
+ --run "mkdir -p ${inidir}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Convert STL files into Gcode";
+ homepage = "http://www.kisslicer.com";
+ license = licenses.unfree;
+ maintainers = [ maintainers.cransom ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix
new file mode 100644
index 000000000000..37eed61008b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, makeWrapper, curl, bash, jq, youtube-dl, gnome3 }:
+
+stdenv.mkDerivation rec {
+ pname = "kodi-cli";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "nawar";
+ repo = pname;
+ rev = version;
+ sha256 = "0f9wdq2fg8hlpk3qbjfkb3imprxkvdrhxfkcvr3dwfma0j2yfwam";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a kodi-cli $out/bin
+ wrapProgram $out/bin/kodi-cli --prefix PATH : ${stdenv.lib.makeBinPath [ curl bash ]}
+ cp -a playlist_to_kodi $out/bin
+ wrapProgram $out/bin/playlist_to_kodi --prefix PATH : ${stdenv.lib.makeBinPath [ curl bash gnome3.zenity jq youtube-dl ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/nawar/kodi-cli";
+ description = "Kodi/XBMC bash script to send Kodi commands using JSON RPC. It also allows sending YouTube videos to Kodi";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.pstn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kronometer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kronometer/default.nix
new file mode 100644
index 000000000000..632001f6329a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kronometer/default.nix
@@ -0,0 +1,24 @@
+{
+ mkDerivation, fetchurl, lib,
+ extra-cmake-modules, kdoctools, wrapGAppsHook,
+ kconfig, kcrash, kinit
+}:
+
+mkDerivation rec {
+ pname = "kronometer";
+ version = "2.2.3";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "05hs8729a3aqjpwmn2xdf2sriacrll4sj4ax3lm4s1ravj09n9bm";
+ };
+
+ meta = with lib; {
+ homepage = "https://kde.org/applications/utilities/kronometer/";
+ description = "A stopwatch application";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [ kconfig kcrash kinit ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/kt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/kt/default.nix
new file mode 100644
index 000000000000..9664759cf5a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/kt/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "kt";
+ version = "12.1.0";
+
+ src = fetchFromGitHub {
+ owner = "fgeller";
+ repo = "kt";
+ rev = "v${version}";
+ sha256 = "014q39bg88vg1xdq1bz6wj982zb148sip3a42hbrinh8qj41y4yg";
+ };
+
+ goPackagePath = "github.com/fgeller/kt";
+
+ meta = with stdenv.lib; {
+ description = "Kafka command line tool";
+ homepage = "https://github.com/fgeller/kt";
+ maintainers = with maintainers; [ utdemir ];
+ platforms = with platforms; unix;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/latex2html/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/latex2html/default.nix
new file mode 100644
index 000000000000..33ecdb8cd8e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/latex2html/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, ghostscript, netpbm, perl }:
+# TODO: withTex
+
+stdenv.mkDerivation rec {
+ pname = "latex2html";
+ version = "2020.2";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm";
+ };
+
+ buildInputs = [ ghostscript netpbm perl ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ configurePhase = ''
+ ./configure \
+ --prefix="$out" \
+ --without-mktexlsr \
+ --with-texpath=$out/share/texmf/tex/latex/html
+ '';
+
+ postInstall = ''
+ for p in $out/bin/{latex2html,pstoimg}; do \
+ wrapProgram $p --add-flags '--tmp="''${TMPDIR:-/tmp}"'
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "LaTeX-to-HTML translator";
+ longDescription = ''
+ A Perl program that translates LaTeX into HTML (HyperText Markup
+ Language), optionally creating separate HTML files corresponding to each
+ unit (e.g., section) of the document. LaTeX2HTML proceeds by interpreting
+ LaTeX (to the best of its abilities). It contains definitions from a wide
+ variety of classes and packages, and users may add further definitions by
+ writing Perl scripts that provide information about class/package
+ commands.
+ '';
+
+ homepage = "https://www.ctan.org/pkg/latex2html";
+
+ license = licenses.gpl2;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ yurrriq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lazydocker/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lazydocker/default.nix
new file mode 100644
index 000000000000..d0c4d71c58a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lazydocker/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "lazydocker";
+ version = "0.9";
+
+ src = fetchFromGitHub {
+ owner = "jesseduffield";
+ repo = "lazydocker";
+ rev = "v${version}";
+ sha256 = "08j2qp632fdmswnb92wxa9lhnal4mrmq6gmxaxngnxiqgkfx37zy";
+ };
+
+ goPackagePath = "github.com/jesseduffield/lazydocker";
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ description = "A simple terminal UI for both docker and docker-compose";
+ homepage = "https://github.com/jesseduffield/lazydocker";
+ license = licenses.mit;
+ maintainers = with maintainers; [ das-g filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/add-methods-to-rc.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/add-methods-to-rc.patch
new file mode 100644
index 000000000000..d388467559a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/add-methods-to-rc.patch
@@ -0,0 +1,11 @@
+--- a/lbdb.rc.in
++++ b/lbdb.rc.in
+@@ -40,7 +40,7 @@
+ # - m_vcf search a vcard (according to RFC2426) file.
+ # - m_khard search a CardDAV address book via khard
+
+-METHODS="m_inmail m_passwd m_finger"
++METHODS="@MODULES@"
+
+
+ #
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/default.nix
new file mode 100644
index 000000000000..976e87ba2d8b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lbdb/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, fetchpatch, perl, perlPackages, finger_bsd, makeWrapper
+, abook ? null
+, gnupg ? null
+, goobook ? null
+, khard ? null
+, mu ? null
+}:
+
+let
+ version = "0.48.1";
+in
+with stdenv.lib;
+with perlPackages;
+stdenv.mkDerivation {
+ pname = "lbdb";
+ inherit version;
+ src = fetchurl {
+ url = "https://www.spinnaker.de/lbdb/download/lbdb_${version}.tar.gz";
+ sha256 = "1gr5l2fr9qbdccga8bhsrpvz6jxigvfkdxrln9wyf2xpps5cdjxh";
+ };
+
+ buildInputs = [ goobook makeWrapper perl ConvertASN1 perlldap AuthenSASL ]
+ ++ optional (!stdenv.isDarwin) finger_bsd
+ ++ optional (abook != null) abook
+ ++ optional (gnupg != null) gnupg
+ ++ optional (goobook != null) goobook
+ ++ optional (khard != null) khard
+ ++ optional (mu != null) mu;
+ configureFlags = [ ]
+ ++ optional (abook != null) "--with-abook"
+ ++ optional (gnupg != null) "--with-gpg"
+ ++ optional (goobook != null) "--with-goobook"
+ ++ optional (khard != null) "--with-khard"
+ ++ optional (mu != null) "--with-mu";
+
+ patches = [ ./add-methods-to-rc.patch
+ # fix undefined exec_prefix. Remove with the next release
+ (fetchpatch {
+ url = "https://github.com/RolandRosenfeld/lbdb/commit/60b7bae255011f59212d96adfbded459d6a27129.patch";
+ sha256 = "129zg086glmlalrg395jq8ljcp787dl3rxjf9v7apsd8mqfdkl2v";
+ excludes = [ "debian/changelog" ];
+ })
+ ];
+ postFixup = "wrapProgram $out/lib/mutt_ldap_query --prefix PERL5LIB : "
+ + "${AuthenSASL}/${perl.libPrefix}"
+ + ":${ConvertASN1}/${perl.libPrefix}"
+ + ":${perlldap}/${perl.libPrefix}";
+
+ meta = {
+ homepage = "https://www.spinnaker.de/lbdb/";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ description = "The Little Brother's Database";
+ maintainers = [ maintainers.kaiha maintainers.bfortz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lcdf-typetools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lcdf-typetools/default.nix
new file mode 100644
index 000000000000..44f6768fd3bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lcdf-typetools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "lcdf-typetools";
+ version = "2.108";
+
+ src = fetchFromGitHub {
+ owner = "kohler";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0a6jqaqwq43ldjjjlnsh6mczs2la9363qav7v9fyrfzkfj8kw9ad";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ configureFlags = [ "--without-kpathsea" ];
+
+ meta = with stdenv.lib; {
+ description = "Utilities for manipulating OpenType, PostScript Type 1, and Multiple Master fonts";
+ homepage = "https://www.lcdf.org/type";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ldapvi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ldapvi/default.nix
new file mode 100644
index 000000000000..52e6b0c6a30a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ldapvi/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, openldap, openssl, popt, glib, ncurses, readline, pkgconfig, cyrus_sasl, autoconf, automake }:
+
+stdenv.mkDerivation {
+ pname = "ldapvi";
+ version = "0lz1sb5r0y9ypy8d7hm0l2wfa8l69f8ll0i5c78c0apz40nyjqkg";
+
+ # use latest git, it includes some important patches since 2007 release
+ src = fetchgit {
+ url = "http://www.lichteblau.com/git/ldapvi.git";
+ sha256 = "3ef3103030ecb04d7fe80180e3fd490377cf81fb2af96782323fddabc3225030";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openldap openssl popt glib ncurses readline cyrus_sasl autoconf automake ];
+
+ preConfigure = ''
+ cd ldapvi
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Interactive LDAP client for Unix terminals";
+ longDescription = ''
+ ldapvi is an interactive LDAP client for Unix terminals. Using it, you
+ can update LDAP entries with a text editor.
+ '';
+ homepage = "http://www.lichteblau.com/ldapvi/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ domenkozar ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ldmtool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ldmtool/default.nix
new file mode 100644
index 000000000000..9c9751d35c32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ldmtool/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, gtk-doc, pkgconfig, libuuid,
+ libtool, readline, gobject-introspection, json-glib, lvm2, libxslt, docbook_xsl
+, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "ldmtool";
+ version = "0.2.4";
+
+ src = fetchFromGitHub {
+ owner = "mdbooth";
+ repo = "libldm";
+ rev = "libldm-${version}";
+ sha256 = "1fy5wbmk8kwl86lzswq0d1z2j5y023qzfm2ppm8knzv9c47kniqk";
+ };
+
+ patches = [
+ # Remove useage of deprecrated G_PARAM_PRIVATE
+ (fetchpatch {
+ url = "https://github.com/mdbooth/libldm/commit/ee1b37a034038f09d61b121cc8b3651024acc46f.patch";
+ sha256 = "02y34kbcpcpffvy1n9yqngvdldmxmvdkha1v2xjqvrnclanpigcp";
+ })
+ ];
+
+ preConfigure = ''
+ sed -i docs/reference/ldmtool/Makefile.am \
+ -e 's|-nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl|--nonet ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl|g'
+ '';
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ configureScript = "sh autogen.sh";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ autoconf automake gtk-doc lvm2 libxslt.bin
+ libtool readline gobject-introspection json-glib libuuid
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Tool and library for managing Microsoft Windows Dynamic Disks";
+ homepage = "https://github.com/mdbooth/libldm";
+ maintainers = with maintainers; [ jensbin ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/less/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/less/default.nix
new file mode 100644
index 000000000000..9b1aa0dc5906
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/less/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, ncurses, lessSecure ? false }:
+
+stdenv.mkDerivation rec {
+ pname = "less";
+ version = "551";
+
+ src = fetchurl {
+ url = "http://www.greenwoodsoftware.com/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "0ggyjl3yzn7c450zk1rixi9ls6asdhgqynhk34zsd0ckhmsm45pz";
+ };
+
+ configureFlags = [ "--sysconfdir=/etc" ] # Look for ‘sysless’ in /etc.
+ ++ stdenv.lib.optional lessSecure [ "--with-secure" ];
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.greenwoodsoftware.com/less/";
+ description = "A more advanced file pager than ‘more’";
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ eelco dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/default.nix
new file mode 100644
index 000000000000..8a13ef5dfd8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, substituteAll, perl, file, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "lesspipe";
+ version = "1.85";
+
+ buildInputs = [ perl ];
+ preConfigure = "patchShebangs .";
+
+ src = fetchFromGitHub {
+ owner = "wofr06";
+ repo = "lesspipe";
+ rev = version;
+ sha256 = "1v1jdkdq1phc93gdr6mjlk98gipxrkkq4bj8kks0kfdvjgdwkdaa";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ file = "${file}/bin/file";
+ tput = "${ncurses}/bin/tput";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A preprocessor for less";
+ longDescription = ''
+ Usually lesspipe.sh is called as an input filter to less. With the help
+ of that filter less will display the uncompressed contents of compressed
+ (gzip, bzip2, compress, rar, 7-zip, lzip, xz or lzma) files. For files
+ containing archives and directories, a table of contents will be
+ displayed (e.g tar, ar, rar, jar, rpm and deb formats). Other supported
+ formats include nroff, pdf, ps, dvi, shared library, MS word, OASIS
+ (e.g. Openoffice), NetCDF, html, mp3, jpg, png, iso images, MacOSX bom,
+ plist and archive formats, perl storable data and gpg encrypted files.
+ This does require additional helper programs being installed.
+ '';
+ homepage = "https://github.com/wofr06/lesspipe";
+ platforms = platforms.all;
+ license = licenses.gpl2;
+ maintainers = [ maintainers.martijnvermaat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/fix-paths.patch
new file mode 100644
index 000000000000..1bffcf53c827
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lesspipe/fix-paths.patch
@@ -0,0 +1,22 @@
+--- a/lesspipe.sh.in
++++ b/lesspipe.sh.in
+@@ -48,8 +48,8 @@ if [[ "$LESS_ADVANCED_PREPROCESSOR" = '' ]]; then
+ fi
+
+ filecmd() {
+- file -L -s "$@"
+- file -L -s -i "$@" 2> /dev/null | sed -n 's/.*charset=/;/p' | tr a-z A-Z
++ @file@ -L -s "$@"
++ @file@ -L -s -i "$@" 2> /dev/null | sed -n 's/.*charset=/;/p' | tr a-z A-Z
+ }
+
+ sep=: # file name separator
+@@ -546,7 +546,7 @@ isfinal() {
+
+ # color requires -r or -R when calling less
+ typeset COLOR
+- if [[ $(tput colors) -ge 8 && ("$LESS" = *-*r* || "$LESS" = *-*R*) ]]; then
++ if [[ $(@tput@ colors) -ge 8 && ("$LESS" = *-*r* || "$LESS" = *-*R*) ]]; then
+ COLOR="--color=always"
+ fi
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lf/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lf/default.nix
new file mode 100644
index 000000000000..da6fa0a338ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lf/default.nix
@@ -0,0 +1,40 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+
+buildGoModule rec {
+ pname = "lf";
+ version = "17";
+
+ src = fetchFromGitHub {
+ owner = "gokcehan";
+ repo = "lf";
+ rev = "r${version}";
+ sha256 = "0hs70hbbwz9kbbf13l2v32yv70n4aw8sz7rky82qdcqcpnpisjq8";
+ };
+
+ vendorSha256 = "1xjanlq67b6n07pha6ljgnl3n2ks4x3albvca317l68cvjiw3shs";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.gVersion=r${version}" ];
+
+ postInstall = ''
+ install -D --mode=444 lf.desktop $out/share/applications/lf.desktop
+ installManPage lf.1
+ installShellCompletion etc/lf.{zsh,fish}
+ '';
+
+ meta = with lib; {
+ description = "A terminal file manager written in Go and heavily inspired by ranger";
+ longDescription = ''
+ lf (as in "list files") is a terminal file manager written in Go. It is
+ heavily inspired by ranger with some missing and extra features. Some of
+ the missing features are deliberately omitted since it is better if they
+ are handled by external tools.
+ '';
+ homepage = "https://godoc.org/github.com/gokcehan/lf";
+ changelog = "https://github.com/gokcehan/lf/releases/tag/r${version}";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
new file mode 100644
index 000000000000..bad820c15069
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+, boost, libbitcoin, libbitcoin-protocol }:
+
+let
+ pname = "libbitcoin-client";
+ version = "3.5.0";
+
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "libbitcoin";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0a9c00f1pfi8wczbfd1djkvr7di3iw1ynak6if910w01dkhbm6v4";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ propagatedBuildInputs = [ libbitcoin libbitcoin-protocol ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-tests=no"
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Bitcoin client query library";
+ homepage = "https://github.com/libbitcoin/libbitcoin-client";
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ chris-martin ];
+
+ # AGPL with a lesser clause
+ license = licenses.agpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
new file mode 100644
index 000000000000..93d8ceed2b47
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+, boost, libbitcoin-client, libbitcoin-network }:
+
+let
+ pname = "libbitcoin-explorer";
+ version = "3.5.0";
+
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "libbitcoin";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "033nrdzrha4kypxk4biixjsbjd16r4m2mjvpid4gdj5hzbbj1p93";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libbitcoin-client libbitcoin-network ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-tests=no"
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ "--with-bash-completiondir=$out/share/bash-completion/completions"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Bitcoin command line tool";
+ homepage = "https://github.com/libbitcoin/libbitcoin-explorer";
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ chris-martin asymmetric ];
+
+ # AGPL with a lesser clause
+ license = licenses.agpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
new file mode 100644
index 000000000000..fc660687ffc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+, boost, libbitcoin, zeromq }:
+
+let
+ pname = "libbitcoin-network";
+ version = "3.5.0";
+
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "libbitcoin";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vqg3i40kwmbys4lyp82xvg2nx3ik4qhc66gcm8k66a86wpj9ji6";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libbitcoin zeromq ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-tests=no"
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Bitcoin P2P Network Library";
+ homepage = "https://libbitcoin.org/";
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ asymmetric ];
+
+ # AGPL with a lesser clause
+ license = licenses.agpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
new file mode 100644
index 000000000000..a5467fdcbd7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+, boost, libbitcoin, secp256k1, zeromq }:
+
+let
+ pname = "libbitcoin-protocol";
+ version = "3.5.0";
+
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "libbitcoin";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ln9r04hlnc7qmv17rakyhrnzw1a541pg5jc1sw3ccn90a5x6cfv";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libbitcoin secp256k1 ];
+ propagatedBuildInputs = [ zeromq ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-tests=no"
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Bitcoin Blockchain Query Protocol";
+ homepage = "https://libbitcoin.org/";
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ asymmetric ];
+
+ # AGPL with a lesser clause
+ license = licenses.agpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
new file mode 100644
index 000000000000..e68635585d0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+, boost, secp256k1 }:
+
+let
+ pname = "libbitcoin";
+ version = "3.6.0";
+
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1rppyp3zpb6ymwangjpblwf6qh4y3d1hczrjx8aavmrq7hznnrhq";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ propagatedBuildInputs = [ secp256k1 ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-tests=no"
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "C++ library for building bitcoin applications";
+ homepage = "https://libbitcoin.org/";
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ chris-martin ];
+
+ # AGPL with a lesser clause
+ license = licenses.agpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
new file mode 100644
index 000000000000..873399c185bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "libcpuid";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "anrieff";
+ repo = "libcpuid";
+ rev = "v${version}";
+ sha256 = "13v5x8gyka2v4kx52khwalb6ai328z7kk9jlipbbbys63p6nyddr";
+ };
+
+ patches = [
+ # Work around https://github.com/anrieff/libcpuid/pull/102.
+ ./stdint.patch
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://libcpuid.sourceforge.net/";
+ description = "A small C library for x86 CPU detection and feature extraction";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ orivej artuuge ];
+ platforms = platforms.x86;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/stdint.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/stdint.patch
new file mode 100644
index 000000000000..beb8890c5a28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libcpuid/stdint.patch
@@ -0,0 +1,5 @@
+--- a/libcpuid/libcpuid.h
++++ b/libcpuid/libcpuid.h
+@@ -88 +88 @@
+-#include "libcpuid_types.h"
++#include <stdint.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix
new file mode 100644
index 000000000000..26627500e8b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+buildGoModule rec {
+ pname = "libgen-cli";
+ version = "1.0.7";
+
+ src = fetchFromGitHub {
+ owner = "ciehanski";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "15nzdwhmgpm36dqx7an5rjl5sw2r4p66qn2y3jzl6fc0y7224ns1";
+ };
+
+ vendorSha256 = "0smb83mq711b2pby57ijcllccn7y2l10zb4fbf779xibb2g09608";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/libgen-cli completion $shell > libgen-cli.$shell || :
+ installShellCompletion libgen-cli.$shell
+ done
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/ciehanski/libgen-cli";
+ description =
+ "A CLI tool used to access the Library Genesis dataset; written in Go";
+ longDescription = ''
+ libgen-cli is a command line interface application which allows users to
+ quickly query the Library Genesis dataset and download any of its
+ contents.
+ '';
+ license = licenses.asl20;
+ maintainers = with maintainers; [ zaninime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lice/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lice/default.nix
new file mode 100644
index 000000000000..2d96819e8778
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lice/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+
+ version = "0.4";
+ name = "lice-${version}";
+
+ src = fetchFromGitHub {
+ owner = "licenses";
+ repo = "lice";
+ rev = version;
+ sha256 = "0yxf70fi8ds3hmwjply2815k466r99k8n22r0ppfhwjvp3rn60qx";
+ fetchSubmodules = true;
+ };
+
+ meta = with stdenv.lib; {
+ description = "Print license based on selection and user options";
+ homepage = "https://github.com/licenses/lice";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ swflint ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/licensor/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/licensor/default.nix
new file mode 100644
index 000000000000..3a87e0a1bb89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/licensor/default.nix
@@ -0,0 +1,27 @@
+{ lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "licensor";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "raftario";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0zr8hcq7crmhrdhwcclc0nap68wvg5kqn5l93ha0vn9xgjy8z11p";
+ };
+
+ patches = [ (fetchpatch {
+ url = "https://github.com/raftario/licensor/commit/77ae1ea6d9b6de999ee7590d9dbd3c8465d70bb6.patch";
+ sha256 = "0kfyg06wa2v7swm7hs9kkazjg34mircd4nm4qmljyzjh2yh8icg3";
+ })];
+
+ cargoSha256 = "1z2r8nfizifj8sk1ghppyqk5r65sgmbk47fiq95pnwpadm5drvqa";
+
+ meta = with lib; {
+ description = "Write licenses to stdout";
+ homepage = "https://github.com/raftario/licensor";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/linuxquota/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/linuxquota/default.nix
new file mode 100644
index 000000000000..b6b722379da8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/linuxquota/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, e2fsprogs, openldap, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ version = "4.05";
+ pname = "quota";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/linuxquota/quota-${version}.tar.gz";
+ sha256 = "1fbsrxhhf1ls7i025db7p66yzjr0bqa2c63cni217v8l21fmnfzg";
+ };
+
+ outputs = [ "out" "dev" "doc" "man" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ e2fsprogs openldap ];
+
+ meta = with stdenv.lib; {
+ description = "Tools to manage kernel-level quotas in Linux";
+ homepage = "https://sourceforge.net/projects/linuxquota/";
+ license = licenses.gpl2; # With some files being BSD as an exception
+ platforms = platforms.linux;
+ maintainers = [ maintainers.dezgeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lnav/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lnav/default.nix
new file mode 100644
index 000000000000..9e5fad269886
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lnav/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, pcre-cpp, sqlite, ncurses
+, readline, zlib, bzip2, autoconf, automake, curl }:
+
+stdenv.mkDerivation rec {
+
+ name = "lnav-${meta.version}";
+
+ src = fetchFromGitHub {
+ owner = "tstack";
+ repo = "lnav";
+ rev = "v${meta.version}";
+ sha256 = "1frdrr3yjlk2fns3ny0qbr30rpswhwlvv3kyhdl3l6a0q5cqaqsg";
+ inherit name;
+ };
+
+ buildInputs = [
+ autoconf
+ automake
+ zlib
+ bzip2
+ ncurses
+ pcre-cpp
+ readline
+ sqlite
+ curl
+ ];
+
+ postPatch = ''
+ sed -ie '/DUMP_INTERNALS/d' src/Makefile.am
+ '';
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tstack/lnav";
+ description = "The Logfile Navigator";
+ longDescription = ''
+ The log file navigator, lnav, is an enhanced log file viewer that takes
+ advantage of any semantic information that can be gleaned from the files
+ being viewed, such as timestamps and log levels. Using this extra
+ semantic information, lnav can do things like interleaving messages from
+ different files, generate histograms of messages over time, and providing
+ hotkeys for navigating through the file. It is hoped that these features
+ will allow the user to quickly and efficiently zero in on problems.
+ '';
+ downloadPage = "https://github.com/tstack/lnav/releases";
+ license = licenses.bsd2;
+ version = "0.9.0";
+ maintainers = with maintainers; [ dochang ma27 ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lnch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lnch/default.nix
new file mode 100644
index 000000000000..51b9b94ef70d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lnch/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "lnch";
+ version = "2017-02-16";
+
+ goPackagePath = "github.com/oem/${pname}";
+
+ src = fetchFromGitHub {
+ owner = "oem";
+ repo = pname;
+ rev = "f24eed5392f01d2c8a9cfe9cdf70dcfbbf4b6b36";
+ sha256 = "0skzrjnbxq1yj7y64cq7angp4wqnrgw1xp9v8vw9zp8f8zwmpy0y";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/oem/lnch";
+ description = "A small go app that launches a process and moves it out of the process group";
+ license = licenses.publicDomain; # really I don't know
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix
new file mode 100644
index 000000000000..d33f6d8610af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix
@@ -0,0 +1,31 @@
+{ cabextract, fetchFromGitHub, readline, stdenv_32bit }:
+
+# stdenv_32bit is needed because the program depends upon 32-bit libraries and does not have
+# support for 64-bit yet: it requires libc6-dev:i386, libreadline-dev:i386.
+
+stdenv_32bit.mkDerivation rec {
+ name = "loadlibrary-${version}";
+ version = "20170525-${stdenv_32bit.lib.strings.substring 0 7 rev}";
+ rev = "721b084c088d779075405b7f20c77c2578e2a961";
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "taviso";
+ repo = "loadlibrary";
+ sha256 = "01hb7wzfh1s5b8cvmrmr1gqknpq5zpzj9prq3wrpsgg129jpsjkb";
+ };
+
+ buildInputs = [ cabextract readline ];
+
+ installPhase = ''
+ mkdir -p $out/bin/
+ cp mpclient $out/bin/
+ '';
+
+ meta = with stdenv_32bit.lib; {
+ homepage = "https://github.com/taviso/loadlibrary";
+ description = "Porting Windows Dynamic Link Libraries to Linux";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eleanor ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lockfile-progs/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lockfile-progs/default.nix
new file mode 100644
index 000000000000..e30b36919b77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lockfile-progs/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, liblockfile }:
+
+stdenv.mkDerivation rec {
+ _name = "lockfile-progs";
+ version = "0.1.18";
+ name = "${_name}-${version}";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/l/${_name}/${_name}_${version}.tar.gz";
+ sha256 = "1rjwn3fh2hy8hmpr66y8yp7v5i3325v1mk0gr7pqhqbyp6j9aad4";
+ };
+
+ buildInputs = [ liblockfile ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/man/man1
+ install -s bin/* $out/bin
+ install man/*.1 $out/man/man1
+ '';
+
+ meta = {
+ description = "Programs for locking and unlocking files and mailboxes";
+ homepage = "http://packages.debian.org/sid/lockfile-progs";
+ license = stdenv.lib.licenses.gpl2;
+
+ maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/6.x.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
new file mode 100644
index 000000000000..ec8106e922ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
@@ -0,0 +1,53 @@
+{ elk6Version
+, enableUnfree ? true
+, stdenv
+, fetchurl
+, makeWrapper
+, jre
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = elk6Version;
+ name = "logstash-${optionalString (!enableUnfree) "oss-"}${version}";
+
+ src = fetchurl {
+ url = "https://artifacts.elastic.co/downloads/logstash/${name}.tar.gz";
+ sha256 =
+ if enableUnfree
+ then "00pwi7clgdflzzg15bh3y30gzikvvy7p5fl88fww7xhhy47q8053"
+ else "0spxgqsyh72n0l0xh6rljp0lbqz46xmr02sqz25ybycr4qkxdhgk";
+ };
+
+ dontBuild = true;
+ dontPatchELF = true;
+ dontStrip = true;
+ dontPatchShebangs = true;
+
+ buildInputs = [
+ makeWrapper jre
+ ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r {Gemfile*,modules,vendor,lib,bin,config,data,logstash-core,logstash-core-plugin-api} $out
+
+ patchShebangs $out/bin/logstash
+ patchShebangs $out/bin/logstash-plugin
+
+ wrapProgram $out/bin/logstash \
+ --set JAVA_HOME "${jre}"
+
+ wrapProgram $out/bin/logstash-plugin \
+ --set JAVA_HOME "${jre}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
+ homepage = "https://www.elastic.co/products/logstash";
+ license = if enableUnfree then licenses.elastic else licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ wjlroe offline basvandijk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/7.x.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
new file mode 100644
index 000000000000..e7872b0c4061
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
@@ -0,0 +1,53 @@
+{ elk7Version
+, enableUnfree ? true
+, stdenv
+, fetchurl
+, makeWrapper
+, jre
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = elk7Version;
+ name = "logstash-${optionalString (!enableUnfree) "oss-"}${version}";
+
+ src = fetchurl {
+ url = "https://artifacts.elastic.co/downloads/logstash/${name}.tar.gz";
+ sha256 =
+ if enableUnfree
+ then "01l6alwgsq6yf0z9d08i0hi8g708nph1vm78nl4xbpg8h964bybj"
+ else "0nlwgaw6rmhp5b68zpp1pzsjs30b0bjzdg8f7xy6rarpk338s8yb";
+ };
+
+ dontBuild = true;
+ dontPatchELF = true;
+ dontStrip = true;
+ dontPatchShebangs = true;
+
+ buildInputs = [
+ makeWrapper jre
+ ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r {Gemfile*,modules,vendor,lib,bin,config,data,logstash-core,logstash-core-plugin-api} $out
+
+ patchShebangs $out/bin/logstash
+ patchShebangs $out/bin/logstash-plugin
+
+ wrapProgram $out/bin/logstash \
+ --set JAVA_HOME "${jre}"
+
+ wrapProgram $out/bin/logstash-plugin \
+ --set JAVA_HOME "${jre}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
+ homepage = "https://www.elastic.co/products/logstash";
+ license = if enableUnfree then licenses.elastic else licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ wjlroe offline basvandijk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/contrib.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/contrib.nix
new file mode 100644
index 000000000000..d03e031b7aee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/logstash/contrib.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchzip }:
+
+# Note that plugins are supposed to be installed as:
+# $path/logstash/{inputs,codecs,filters,outputs}/*.rb
+stdenv.mkDerivation rec {
+ version = "1.4.2";
+ pname = "logstash-contrib";
+
+ src = fetchzip {
+ url = "https://download.elasticsearch.org/logstash/logstash/logstash-contrib-${version}.tar.gz";
+ sha256 = "1yj8sf3b526gixh3c6zhgkfpg4f0c72p1lzhfhdx8b3lw7zjkj0k";
+ };
+
+ dontBuild = true;
+ dontPatchELF = true;
+ dontStrip = true;
+ dontPatchShebangs = true;
+
+ installPhase = ''
+ mkdir -p $out/logstash
+ cp -r lib/* $out
+ '';
+
+ meta = with lib; {
+ description = "Community-maintained logstash plugins";
+ homepage = "https://github.com/elasticsearch/logstash-contrib";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/logtop/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/logtop/default.nix
new file mode 100644
index 000000000000..a7b2f6282fd9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/logtop/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, ncurses, uthash, pkg-config }:
+
+stdenv.mkDerivation {
+ name = "logtop-0.7";
+
+ src = fetchFromGitHub {
+ rev = "a0935ab2e7056feb3e8a90f5129990c9b335a587";
+ owner = "JulienPalard";
+ repo ="logtop";
+ sha256 = "1f8vk9gybldxvc0kwz38jxmwvzwangsvlfslpsx8zf04nvbkqi12";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ ncurses uthash ];
+
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ postConfigure = ''
+ substituteInPlace Makefile --replace /usr ""
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Displays a real-time count of strings received from stdin";
+ longDescription = ''
+ logtop displays a real-time count of strings received from stdin.
+ It can be useful in some cases, like getting the IP flooding your
+ server or the top buzzing article of your blog
+ '';
+ license = licenses.bsd2;
+ homepage = "https://github.com/JulienPalard/logtop";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.starcraft66 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
new file mode 100644
index 000000000000..19dafb4cef12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "lokalise2-cli";
+ version = "2.6.0";
+
+ src = fetchFromGitHub {
+ owner = "lokalise";
+ repo = "lokalise-cli-2-go";
+ rev = "v${version}";
+ sha256 = "15lwy2rrb5d5r0asa51bgjr42pcknk6znx6qirw9s924i8dbzp6s";
+ };
+
+ vendorSha256 = "06y1v0v1kkbd5vxa8h0qvasm9ibwwhz0v4x03k3nb5xlwn0x9jx8";
+
+ doCheck = false;
+
+ postInstall = ''
+ mv $out/bin/lokalise-cli-2-go $out/bin/lokalise2
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Translation platform for developers. Upload language files, translate, integrate via API";
+ homepage = "https://lokalise.com";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ timstott ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile
new file mode 100644
index 000000000000..ea1216e2405d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile
@@ -0,0 +1,2 @@
+source "https://rubygems.org"
+gem "lolcat"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock
new file mode 100644
index 000000000000..d98402b0a599
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ lolcat (100.0.1)
+ manpages (~> 0.6.1)
+ optimist (~> 3.0.1)
+ paint (~> 2.2.0)
+ manpages (0.6.1)
+ optimist (3.0.1)
+ paint (2.2.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ lolcat
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/default.nix
new file mode 100644
index 000000000000..f62be23108eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/default.nix
@@ -0,0 +1,16 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "lolcat";
+ gemdir = ./.;
+ exes = [ "lolcat" ];
+
+ passthru.updateScript = bundlerUpdateScript "lolcat";
+
+ meta = with lib; {
+ description = "A rainbow version of cat";
+ homepage = "https://github.com/busyloop/lolcat";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ StillerHarpo manveru nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix
new file mode 100644
index 000000000000..421e1874db7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix
@@ -0,0 +1,43 @@
+{
+ lolcat = {
+ dependencies = ["manpages" "optimist" "paint"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13p8i08vdqfg2bqyjkl8jsp7gw8cf6r68i8plp9zqavlqadqlg4q";
+ type = "gem";
+ };
+ version = "100.0.1";
+ };
+ manpages = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11p6ilnfda6af15ks3xiz2pr0hkvdvadnk1xm4ahqlf84dld3fnd";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ optimist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ paint = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "014b5rkbg6qri0cwkq972bfi93zvqdgswgvphjrgjl0pr6hywlkl";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/loop/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/loop/default.nix
new file mode 100644
index 000000000000..3cc0466d80ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/loop/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage {
+ pname = "loop";
+ version = "unstable-2020-07-08";
+
+ src = fetchFromGitHub {
+ owner = "Miserlou";
+ repo = "Loop";
+ rev = "944df766ddecd7a0d67d91cc2dfda8c197179fb0";
+ sha256 = "0v61kahwk1kdy8pb40rjnzcxby42nh02nyg9jqqpx3vgdrpxlnix";
+ };
+
+ cargoSha256 = "0a3l580ca23vx8isd1qff870ci3p7wf4qrm53jl7nhfjh7rg5a4w";
+
+ meta = with stdenv.lib; {
+ description = "UNIX's missing `loop` command";
+ homepage = "https://github.com/Miserlou/Loop";
+ maintainers = with maintainers; [ koral ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/default.nix
new file mode 100644
index 000000000000..99ac31f6a0b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, pkgs
+, fetchFromGitHub
+, rustPlatform
+ # Updater script
+, runtimeShell
+, writers
+ # Tests
+, nixosTests
+ # Apple dependencies
+, CoreServices
+, Security
+}:
+
+let
+ # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
+ version = "1.2";
+ gitRev = "43a260c221d5dac4a44fd82271736c8444474eec";
+ sha256 = "0g6zq27dpr8bdan5xrqchybpbqwnhhc7x8sxbfygigbqd3xv9i6n";
+ cargoSha256 = "1zmlp14v7av0znmjyy2aq83lc74503p6r0l11l9iw7s3xad8rda4";
+
+in (rustPlatform.buildRustPackage rec {
+ pname = "lorri";
+ inherit version;
+
+ meta = with stdenv.lib; {
+ description = "Your project's nix-env";
+ homepage = "https://github.com/target/lorri";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ grahamc Profpatsch ];
+ };
+
+ src = fetchFromGitHub {
+ owner = "target";
+ repo = pname;
+ rev = gitRev;
+ inherit sha256;
+ };
+
+ outputs = [ "out" "man" "doc" ];
+
+ inherit cargoSha256;
+ doCheck = false;
+
+ BUILD_REV_COUNT = src.revCount or 1;
+ RUN_TIME_CLOSURE = pkgs.callPackage ./runtime.nix {};
+
+ nativeBuildInputs = with pkgs; [ rustPackages.rustfmt ];
+ buildInputs =
+ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
+
+ # copy the docs to the $man and $doc outputs
+ postInstall = ''
+ install -Dm644 lorri.1 $man/share/man/man1/lorri.1
+ install -Dm644 -t $doc/share/doc/lorri/ \
+ README.md \
+ CONTRIBUTING.md \
+ LICENSE \
+ MAINTAINERS.md
+ cp -r contrib/ $doc/share/doc/lorri/contrib
+ '';
+
+ passthru = {
+ updater = writers.writeBash "copy-runtime-nix.sh" ''
+ set -euo pipefail
+ cp ${src}/nix/runtime.nix ${toString ./runtime.nix}
+ cp ${src}/nix/runtime-closure.nix.template ${toString ./runtime-closure.nix.template}
+ '';
+ tests = {
+ nixos = nixosTests.lorri;
+ };
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime-closure.nix.template b/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime-closure.nix.template
new file mode 100644
index 000000000000..2cb2ec4bbb9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime-closure.nix.template
@@ -0,0 +1,37 @@
+# Nix with sandboxing requires every path used at build time be
+# explicitly declared. If we simply passed in the paths, they
+# would be copied in as sources. Using builtins.storePath we're
+# able to tell Nix that, no, in fact, treat these not as sources
+# to copy, but instead of a regular store path.
+#
+# Include the explicit closure, too, otherwise we'll get mysterious
+# "file not found" errors due to the glibc interpreter being
+# missing.
+let
+ # Magic inspired by Nix's config.nix:
+ # https://github.com/NixOS/nix/blob/f9a2ea44867cd1dbb408bca4df0ced806137b7f7/corepkgs/config.nix.in#L23
+ #
+ # If the dependency is in the Nix store we're using, refer to
+ # it as a literal store path. If it isn't, refer to it "normally".
+ #
+ # This makes sandboxing happy when in a nix-build, and the
+ # evaluation happy when in a «cargo build».
+ tools_build_host = @tools_build_host@;
+
+ # Compare the stringified version of the tools_build_host Nix store
+ # path to the evaluator's stringified Nix store path. Otherwise,
+ # Nix will read the sources in to the /nix/store, and, well,
+ # you can only copy the /nix/store in to the /nix/store so many
+ # times before you run out of disk space.
+ dep = if ("${toString (dirOf tools_build_host)}" == "${toString builtins.storeDir}")
+ then (builtins.trace "using storePath" builtins.storePath)
+ else (builtins.trace "using toString" toString) # assume we have no sandboxing
+ ;
+
+ tools = dep tools_build_host;
+
+in {
+ path = "${tools}/bin";
+ builder = "${tools}/bin/bash";
+ closure = import @runtime_closure_list@ { inherit dep; };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime.nix
new file mode 100644
index 000000000000..96b14b26e82c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lorri/runtime.nix
@@ -0,0 +1,38 @@
+{
+ # Plumbing tools:
+ closureInfo
+, runCommand
+, writeText
+, buildEnv
+, # Actual dependencies to propagate:
+ bash
+, coreutils
+}:
+let
+ tools = buildEnv {
+ name = "lorri-runtime-tools";
+ paths = [ coreutils bash ];
+ };
+
+ runtimeClosureInfo = closureInfo {
+ rootPaths = [ tools ];
+ };
+
+ closureToNix = runCommand "closure.nix" {}
+ ''
+ (
+ echo '{ dep, ... }: ['
+ sed -E 's/^(.*)$/ (dep \1)/' ${runtimeClosureInfo}/store-paths
+ echo ']'
+ ) > $out
+ '';
+
+ runtimeClosureInfoAsNix = runCommand "runtime-closure.nix" {
+ runtime_closure_list = closureToNix;
+ tools_build_host = tools;
+ }
+ ''
+ substituteAll ${./runtime-closure.nix.template} $out
+ '';
+in
+runtimeClosureInfoAsNix
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix
new file mode 100644
index 000000000000..bf2a68df702a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, libpng, rlottie, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "LottieConverter";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "sot-tech";
+ repo = pname;
+ rev = "r${version}";
+ hash = "sha256-lAGzh6B2js2zDuN+1U8CZnse09RJGZRXbtmsheGKuYU=";
+ };
+
+ buildInputs = [ libpng rlottie zlib ];
+ makeFlags = [ "CONF=Release" ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ cp -v dist/Release/GNU-Linux/lottieconverter $out/bin/
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sot-tech/LottieConverter/";
+ description = "Lottie converter utility";
+ license = licenses.lgpl21Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ CRTified ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lrzsz/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lrzsz/default.nix
new file mode 100644
index 000000000000..112a14f55f24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lrzsz/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "lrzsz-0.12.20";
+
+ src = fetchurl {
+ url = "https://ohse.de/uwe/releases/${name}.tar.gz";
+ sha256 = "1wcgfa9fsigf1gri74gq0pa7pyajk12m4z69x7ci9c6x9fqkd2y2";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags = [ "--program-transform-name=s/^l//" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://ohse.de/uwe/software/lrzsz.html";
+ description = "Communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/lsd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/lsd/default.nix
new file mode 100644
index 000000000000..db8c40b6ffeb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/lsd/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "lsd";
+ version = "0.18.0";
+
+ src = fetchFromGitHub {
+ owner = "Peltoche";
+ repo = pname;
+ rev = version;
+ sha256 = "006fy87jrb77cpa6bywchcvq1p74vlpy151q1j4nsj8npbr02krj";
+ };
+
+ cargoSha256 = "0mrvcca9y0vylcrbfxxba45v05qxd8z91vb4in88px60xah0dy3q";
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ installShellCompletion $releaseDir/build/lsd-*/out/{_lsd,lsd.{bash,fish}}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Peltoche/lsd";
+ description = "The next gen ls command";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ filalex77 marsam zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ltunify/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ltunify/default.nix
new file mode 100644
index 000000000000..e345f86e0212
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ltunify/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+# Although we copy in the udev rules here, you probably just want to use logitech-udev-rules instead of
+# adding this to services.udev.packages on NixOS
+
+stdenv.mkDerivation {
+ pname = "ltunify";
+ version = "unstable-20180330";
+
+ src = fetchFromGitHub {
+ owner = "Lekensteyn";
+ repo = "ltunify";
+ rev = "f664d1d41d5c4beeac5b81e485c3498f13109db7";
+ sha256 = "07sqhih9jmm7vgiwqsjzihd307cj7l096sxjl25p7nwr1q4180wv";
+ };
+
+ makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ];
+
+ meta = with stdenv.lib; {
+ description = "Tool for working with Logitech Unifying receivers and devices";
+ homepage = "https://lekensteyn.nl/logitech-unifying.html";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ abbradar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/makebootfat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/makebootfat/default.nix
new file mode 100644
index 000000000000..dc66976720d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/makebootfat/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "makebootfat-1.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/advancemame/${name}.tar.gz";
+ sha256 = "0v0g1xax0y6hmw2x10nfhchp9n7vqyvgc33gcxqax8jdq2pxm1q2";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Create bootable USB disks using the FAT filesystem and syslinux";
+ homepage = "http://advancemame.sourceforge.net/boot-readme.html";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.ehmry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/default.nix
new file mode 100644
index 000000000000..68e1aaa4d613
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, pkgconfig, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
+
+stdenv.mkDerivation rec {
+ name = "man-db-2.9.3";
+
+ src = fetchurl {
+ url = "mirror://savannah/man-db/${name}.tar.xz";
+ sha256 = "1f4palf5bdyf3f8sa0981cqxn9cjcr2pz53ngrrsybb9n0da2nps";
+ };
+
+ outputs = [ "out" "doc" ];
+ outputMan = "out"; # users will want `man man` to work
+
+ nativeBuildInputs = [ pkgconfig makeWrapper groff ];
+ buildInputs = [ libpipeline db groff ]; # (Yes, 'groff' is both native and build input)
+ checkInputs = [ libiconv /* for 'iconv' binary */ ];
+
+ patches = [ ./systemwide-man-db-conf.patch ];
+
+ postPatch = ''
+ # Remove all mandatory manpaths. Nixpkgs makes no requirements on
+ # these directories existing.
+ sed -i 's/^MANDATORY_MANPATH/# &/' src/man_db.conf.in
+
+ # Add Nix-related manpaths
+ echo "MANPATH_MAP /nix/var/nix/profiles/default/bin /nix/var/nix/profiles/default/share/man" >> src/man_db.conf.in
+
+ # Add mandb locations for the above
+ echo "MANDB_MAP /nix/var/nix/profiles/default/share/man /var/cache/man/nixpkgs" >> src/man_db.conf.in
+ '';
+
+ configureFlags = [
+ "--disable-setuid"
+ "--disable-cache-owner"
+ "--localstatedir=/var"
+ "--with-config-file=${placeholder "out"}/etc/man_db.conf"
+ "--with-systemdtmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
+ "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+ "--with-pager=less"
+ ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin [
+ "ac_cv_func__set_invalid_parameter_handler=no"
+ "ac_cv_func_posix_fadvise=no"
+ "ac_cv_func_mempcpy=no"
+ ];
+
+ preConfigure = ''
+ configureFlagsArray+=("--with-sections=1 n l 8 3 0 2 5 4 9 6 7")
+ '';
+
+ postInstall = ''
+ # apropos/whatis uses program name to decide whether to act like apropos or whatis
+ # (multi-call binary). `apropos` is actually just a symlink to whatis. So we need to
+ # make sure that we don't wrap symlinks (since that changes argv[0] to the -wrapped name)
+ find "$out/bin" -type f | while read file; do
+ wrapProgram "$file" --prefix PATH : "${groff}/bin"
+ done
+ '';
+
+ postFixup = stdenv.lib.optionalString (buildPackages.groff != groff) ''
+ # Check to make sure none of the outputs depend on build-time-only groff:
+ for outName in $outputs; do
+ out=''${!outName}
+ echo "Checking $outName(=$out) for references to build-time groff..."
+ if grep -r '${buildPackages.groff}' $out; then
+ echo "Found an erroneous dependency on groff ^^^" >&2
+ exit 1
+ fi
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ doCheck = !stdenv.hostPlatform.isMusl /* iconv binary */ && !stdenv.hostPlatform.isDarwin;
+
+ meta = with stdenv.lib; {
+ homepage = "http://man-db.nongnu.org";
+ description = "An implementation of the standard Unix documentation system accessed using the man command";
+ license = licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch
new file mode 100644
index 000000000000..2d4477776bb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch
@@ -0,0 +1,39 @@
+commit 9089291006a4258c39c75a920ad536b61504251a
+Author: rnhmjoj <rnhmjoj@inventati.org>
+Date: Fri May 1 19:32:15 2020 +0200
+
+ check for systemwide man_db.conf before the bundled one
+
+diff --git a/src/manp.c b/src/manp.c
+index 5441339..0bbf566 100644
+--- a/src/manp.c
++++ b/src/manp.c
+@@ -841,18 +841,24 @@ void read_config_file (bool optional)
+ }
+
+ if (getenv ("MAN_TEST_DISABLE_SYSTEM_CONFIG") == NULL) {
+- config_file = fopen (CONFIG_FILE, "r");
++ const char *config_filepath;
++ if (access ("/etc/man_db.conf", F_OK) != -1) {
++ config_filepath = "/etc/man_db.conf";
++ } else {
++ config_filepath = CONFIG_FILE;
++ }
++ config_file = fopen (config_filepath, "r");
+ if (config_file == NULL) {
+ if (optional)
+ debug ("can't open %s; continuing anyway\n",
+- CONFIG_FILE);
++ config_filepath);
+ else
+ error (FAIL, 0,
+ _("can't open the manpath "
+ "configuration file %s"),
+- CONFIG_FILE);
++ config_filepath);
+ } else {
+- debug ("From the config file %s:\n", CONFIG_FILE);
++ debug ("From the config file %s:\n", config_filepath);
+
+ add_to_dirlist (config_file, 0);
+ fclose (config_file);
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/default.nix
new file mode 100644
index 000000000000..82fc1dee00c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "mandoc";
+ version = "1.14.5";
+
+ src = fetchurl {
+ url = "https://mandoc.bsd.lv/snapshots/mandoc-${version}.tar.gz";
+ sha256 = "1xyqllxpjj1kimlipx11pzyywf5c25i4wmv0lqm7ph3gnlnb86c2";
+ };
+
+ buildInputs = [ zlib ];
+
+ configureLocal = ''
+ HAVE_WCHAR=1
+ MANPATH_DEFAULT="/run/current-system/sw/share/man"
+ OSNAME="NixOS"
+ PREFIX="$out"
+ HAVE_MANPATH=1
+ LD_OHASH="-lutil"
+ BUILD_DB=0
+ CC=${stdenv.cc.targetPrefix}cc
+ '';
+
+ patches = [
+ ./remove-broken-cc-check.patch
+ ];
+
+ preConfigure = ''
+ echo $configureLocal > configure.local
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://mandoc.bsd.lv/";
+ description = "suite of tools compiling mdoc and man";
+ downloadPage = "http://mandoc.bsd.lv/snapshots/";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ bb010g ramkromberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch
new file mode 100644
index 000000000000..580226d165bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch
@@ -0,0 +1,11 @@
+--- mandoc-1.14.4.org/configure 2018-08-08 15:51:51.000000000 +0100
++++ mandoc-1.14.4/configure 2018-08-27 08:19:40.391912427 +0100
+@@ -40,7 +40,7 @@
+ OSNAME=
+ UTF8_LOCALE=
+
+-CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -`
++CC=
+ CFLAGS=
+ LDADD=
+ LDFLAGS=
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/marlin-calc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/marlin-calc/default.nix
new file mode 100644
index 000000000000..c7222f696c99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/marlin-calc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "marlin-calc";
+ version = "2019-10-17";
+
+ src = fetchFromGitHub {
+ owner = "eyal0";
+ repo = "Marlin";
+ rev = "3d5a5c86bea35a2a169eb56c70128bf2d070feef";
+ sha256 = "14sqajm361gnrcqv84g7kbmyqm8pppbhqsabszc4j2cn7vbwkdg5";
+ };
+
+ buildPhase = ''
+ cd Marlin/src
+ c++ module/planner.cpp module/calc.cpp feature/fwretract.cpp \
+ -O2 -Wall -std=gnu++11 -o marlin-calc
+ '';
+
+ installPhase = ''
+ install -Dm0755 {,$out/bin/}marlin-calc
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/eyal0/Marlin";
+ description = "Marlin 3D printer timing simulator";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/massren/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/massren/default.nix
new file mode 100644
index 000000000000..4c9d5a6da8a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/massren/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "massren";
+ version = "1.5.4";
+
+ src = fetchFromGitHub {
+ owner = "laurent22";
+ repo = "massren";
+ rev = "v${version}";
+ sha256 = "1bn6qy30kpxi3rkr3bplsc80xnhj0hgfl0qaczbg3zmykfmsl3bl";
+ };
+
+ goPackagePath = "github.com/laurent22/massren";
+
+ meta = with lib; {
+ description = "Easily rename multiple files using your text editor";
+ license = licenses.mit;
+ homepage = "https://github.com/laurent22/massren";
+ maintainers = with maintainers; [ andrew-d ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mbuffer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
new file mode 100644
index 000000000000..d86f824b87fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl,
+ openssl,
+ } :
+
+stdenv.mkDerivation rec {
+ version = "20200505";
+ pname = "mbuffer";
+
+ src = fetchurl {
+ url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
+ sha256 = "02qzy3appah0llg6aa71isl2a5nc93bkzy5r4d682lcy2j1n216c";
+ };
+
+ buildInputs = [ openssl ];
+
+ # The mbuffer configure scripts fails to recognize the correct
+ # objdump binary during cross-building for foreign platforms.
+ # The correct objdump is exposed via the environment variable
+ # $OBJDUMP, which should be used in such cases.
+ preConfigure = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ substituteInPlace configure --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
+ '';
+ doCheck = true;
+
+ meta = {
+ homepage = "http://www.maier-komor.de/mbuffer.html";
+ description = "A tool for buffering data streams with a large set of unique features";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ tokudan ];
+ platforms = stdenv.lib.platforms.linux; # Maybe other non-darwin Unix
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mc/default.nix
new file mode 100644
index 000000000000..fb279f313b4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mc/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, glib
+, gpm
+, file
+, e2fsprogs
+, libX11
+, libICE
+, perl
+, zip
+, unzip
+, gettext
+, slang
+, libssh2
+, openssl
+, coreutils
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mc";
+ version = "4.8.25";
+
+ src = fetchurl {
+ url = "https://www.midnight-commander.org/downloads/${pname}-${version}.tar.xz";
+ sha256 = "12jlnabnc91xsm35g99g2wnh96jmznvrhffd18rj7fqfy8brdhgz";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+ buildInputs = [
+ file
+ gettext
+ glib
+ libICE
+ libX11
+ libssh2
+ openssl
+ perl
+ slang
+ unzip
+ zip
+ ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ e2fsprogs gpm ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [ "--enable-vfs-smb" ];
+
+ postPatch = ''
+ substituteInPlace src/filemanager/ext.c \
+ --replace /bin/rm ${coreutils}/bin/rm
+ '';
+
+ postFixup = ''
+ # remove unwanted build-dependency references
+ sed -i -e "s!PKG_CONFIG_PATH=''${PKG_CONFIG_PATH}!PKG_CONFIG_PATH=$(echo "$PKG_CONFIG_PATH" | sed -e 's/./0/g')!" $out/bin/mc
+ '';
+
+ meta = with stdenv.lib; {
+ description = "File Manager and User Shell for the GNU Project";
+ downloadPage = "https://www.midnight-commander.org/downloads/";
+ homepage = "https://www.midnight-commander.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ sander ];
+ platforms = with platforms; linux ++ darwin;
+ repositories.git = "https://github.com/MidnightCommander/mc.git";
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcfly/default.nix
new file mode 100644
index 000000000000..39f9b47f4653
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcfly/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "mcfly";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "cantino";
+ repo = "mcfly";
+ rev = "v${version}";
+ sha256 = "155x745jakfcpr6kmp24cy8xwdhv81jdfjjhd149bnw5ilg0z037";
+ };
+
+ postInstall = ''
+ substituteInPlace mcfly.bash --replace '$(which mcfly)' $out/bin/mcfly
+ substituteInPlace mcfly.zsh --replace '$(which mcfly)' $out/bin/mcfly
+ substituteInPlace mcfly.fish --replace '(which mcfly)' $out/bin/mcfly
+ install -Dm644 -t $out/share/mcfly mcfly.bash
+ install -Dm644 -t $out/share/mcfly mcfly.zsh
+ install -Dm644 -t $out/share/mcfly mcfly.fish
+ '';
+
+ cargoSha256 = "0y6sjbzg5qqqip9sc9ajyd5ra3n2wwvarj6nhpzjhh05kqz3qja4";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/cantino/mcfly";
+ description = "An upgraded ctrl-r for Bash whose history results make sense for what you're working on right now";
+ license = licenses.mit;
+ maintainers = [ maintainers.melkor333 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/default.nix
new file mode 100644
index 000000000000..afbe811e7f2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, libmcrypt, libmhash }:
+
+stdenv.mkDerivation rec {
+ version = "2.6.8";
+ pname = "mcrypt";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mcrypt/MCrypt/${version}/${pname}-${version}.tar.gz";
+ sha256 = "5145aa844e54cca89ddab6fb7dd9e5952811d8d787c4f4bf27eb261e6c182098";
+ };
+
+ patches = [
+ ./format-string_CVE-2012-4426.patch
+ ./overflow_CVE-2012-4409.patch
+ ./segv.patch
+ ./sprintf_CVE-2012-4527.patch
+ ];
+
+ buildInputs = [ libmcrypt libmhash ];
+
+ meta = {
+ description = "Replacement for old UNIX crypt(1)";
+ longDescription = ''
+ mcrypt, and the accompanying libmcrypt, are intended to be replacements
+ for the old Unix crypt, except that they are under the GPL and support an
+ ever-wider range of algorithms and modes.
+ '';
+ homepage = "http://mcrypt.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = [ stdenv.lib.maintainers.qknight ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/format-string_CVE-2012-4426.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/format-string_CVE-2012-4426.patch
new file mode 100644
index 000000000000..322ab473811f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/format-string_CVE-2012-4426.patch
@@ -0,0 +1,31 @@
+--- mcrypt-2.6.8/src/errors.c
++++ mcrypt-2.6.8/src/errors.c
+@@ -25,24 +25,24 @@
+
+ void err_quit(char *errmsg)
+ {
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ exit(-1);
+ }
+
+ void err_warn(char *errmsg)
+ {
+ if (quiet <= 1)
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ }
+
+ void err_info(char *errmsg)
+ {
+ if (quiet == 0)
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ }
+
+ void err_crit(char *errmsg)
+ {
+ if (quiet <= 2)
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/overflow_CVE-2012-4409.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/overflow_CVE-2012-4409.patch
new file mode 100644
index 000000000000..bf747a58266a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/overflow_CVE-2012-4409.patch
@@ -0,0 +1,24 @@
+From 3efb40e17ce4f76717ae17a1ce1e1f747ddf59fd Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 22 Dec 2012 22:37:06 +0200
+Subject: [PATCH] cleanup: buffer overflow
+
+---
+ mcrypt-2.6.8/src/extra.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/mcrypt-2.6.8/src/extra.c b/mcrypt-2.6.8/src/extra.c
+index 3082f82..c7a1ac0 100644
+--- a/src/extra.c
++++ b/src/extra.c
+@@ -241,6 +241,8 @@ int check_file_head(FILE * fstream, char *algorithm, char *mode,
+ if (m_getbit(6, flags) == 1) { /* if the salt bit is set */
+ if (m_getbit(0, sflag) != 0) { /* if the first bit is set */
+ *salt_size = m_setbit(0, sflag, 0);
++ if (*salt_size > sizeof(tmp_buf))
++ err_quit(_("Salt is too long\n"));
+ if (*salt_size > 0) {
+ fread(tmp_buf, 1, *salt_size,
+ fstream);
+--
+1.7.8.6
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/segv.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/segv.patch
new file mode 100644
index 000000000000..6796163418f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/segv.patch
@@ -0,0 +1,39 @@
+From 5bee29fae8f0e936ad4c957aef6035d09532a57a Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 22 Dec 2012 22:04:27 +0200
+Subject: [PATCH] cleanup: fixup segv on buffer access
+
+use exact buffer size instead of guess.
+
+do not copy out of source buffer.
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ mcrypt-2.6.8/src/rfc2440.c | 5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/mcrypt-2.6.8/src/rfc2440.c b/mcrypt-2.6.8/src/rfc2440.c
+index 5a1f296..929b9ab 100644
+--- a/src/rfc2440.c
++++ b/src/rfc2440.c
+@@ -497,7 +497,7 @@ plaintext_encode(const USTRING dat)
+ time_t t;
+
+ assert(dat->len > 0);
+- result = make_ustring( NULL, 2 * dat->len); /* xxx */
++ result = make_ustring( NULL, dat->len + 12); /* xxx */
+ newdat = (USTRING)dat;
+ result->d[pos++] = (0x80 | 0x40 | PKT_PLAINTEXT);
+
+@@ -810,7 +810,8 @@ encrypted_encode(const USTRING pt, const DEK *dek)
+ _mcrypt_encrypt(dek->hd, rndpref, dek->blocklen + 2, NULL, 0);
+ _mcrypt_sync(dek->hd, rndpref, dek->blocklen);
+
+- ct = make_ustring( rndpref, 2 * pt->len); /* xxx */
++ ct = make_ustring( NULL, dek->blocklen + 2 + pt->len + 12); /* xxx */
++ memcpy(ct->d, rndpref, dek->blocklen + 2);
+ pos = dek->blocklen + 2;
+
+ _mcrypt_encrypt(dek->hd, ct->d + pos, pt->len, pt->d, pt->len);
+--
+1.7.8.6
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/sprintf_CVE-2012-4527.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/sprintf_CVE-2012-4527.patch
new file mode 100644
index 000000000000..1c9ade807778
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mcrypt/sprintf_CVE-2012-4527.patch
@@ -0,0 +1,108 @@
+Description: [CVE-2012-4527] Stack-based buffer overflow with long file names
+ .
+ A buffer overflow in mcrypt version 2.6.8 and earlier due to long filenames.
+ If a user were tricked into attempting to encrypt/decrypt specially crafted
+ long filename(s), this flaw would cause a stack-based buffer overflow that
+ could potentially lead to arbitrary code execution.
+ .
+ Note that this is caught by FORTIFY_SOURCE, which makes this a crash-only
+ bug on wheezy.
+Author: Attila Bogar, Jean-Michel Vourgère <jmv_deb@nirgal.com>
+Origin: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-4527
+Bug: CVE-2012-4527
+Bug-Debian: http://bugs.debian.org/690924
+Forwarded: no
+Last-Update: 2012-11-01
+Index: mcrypt-2.6.8/src/mcrypt.c
+===================================================================
+--- mcrypt-2.6.8.orig/src/mcrypt.c
++++ mcrypt-2.6.8/src/mcrypt.c
+@@ -41,4 +41,6 @@
+
++/* Temporary error message can contain one file name and 1k of text */
++#define ERRWIDTH ((PATH_MAX)+1024)
+-char tmperr[128];
++char tmperr[ERRWIDTH];
+ unsigned int stream_flag = FALSE;
+ char *keymode = NULL;
+ char *mode = NULL;
+@@ -482,7 +485,7 @@
+ #ifdef HAVE_STAT
+ if (stream_flag == FALSE) {
+ if (is_normal_file(file[i]) == FALSE) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: %s is not a regular file. Skipping...\n"),
+ program_name, file[i]);
+@@ -501,7 +504,7 @@
+ dinfile = file[i];
+ if ((isatty(fileno((FILE *) (stdin))) == 1)
+ && (stream_flag == TRUE) && (force == 0)) { /* not a tty */
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: Encrypted data will not be read from a terminal.\n"),
+ program_name);
+@@ -520,7 +523,7 @@
+ einfile = file[i];
+ if ((isatty(fileno((FILE *) (stdout))) == 1)
+ && (stream_flag == TRUE) && (force == 0)) { /* not a tty */
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: Encrypted data will not be written to a terminal.\n"),
+ program_name);
+@@ -544,7 +547,7 @@
+ strcpy(outfile, einfile);
+ /* if file has already the .nc ignore it */
+ if (strstr(outfile, ".nc") != NULL) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: file %s has the .nc suffix... skipping...\n"),
+ program_name, outfile);
+@@ -590,10 +593,10 @@
+
+ if (x == 0) {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr, _("File %s was decrypted.\n"), dinfile);
++ snprintf(tmperr, ERRWIDTH, _("File %s was decrypted.\n"), dinfile);
+ err_warn(tmperr);
+ } else {
+- sprintf(tmperr, _("Stdin was decrypted.\n"));
++ snprintf(tmperr, ERRWIDTH, _("Stdin was decrypted.\n"));
+ err_warn(tmperr);
+ }
+ #ifdef HAVE_STAT
+@@ -610,7 +613,7 @@
+
+ } else {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("File %s was NOT decrypted successfully.\n"),
+ dinfile);
+@@ -636,10 +639,10 @@
+
+ if (x == 0) {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr, _("File %s was encrypted.\n"), einfile);
++ snprintf(tmperr, ERRWIDTH, _("File %s was encrypted.\n"), einfile);
+ err_warn(tmperr);
+ } else {
+- sprintf(tmperr, _("Stdin was encrypted.\n"));
++ snprintf(tmperr, ERRWIDTH, _("Stdin was encrypted.\n"));
+ err_warn(tmperr);
+ }
+ #ifdef HAVE_STAT
+@@ -655,7 +658,7 @@
+
+ } else {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("File %s was NOT encrypted successfully.\n"),
+ einfile);
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mdbtools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
new file mode 100644
index 000000000000..aedaa3648887
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, glib, readline
+, bison, flex, pkgconfig, autoreconfHook, libxslt, makeWrapper
+, txt2man, which
+# withUi currently doesn't work. It compiles but fails to run.
+, withUi ? false, gtk2, gnome2
+}:
+
+let
+ uiDeps = [ gtk2 ] ++ (with gnome2; [ GConf libglade libgnomeui gnome-doc-utils ]);
+
+in
+stdenv.mkDerivation rec {
+ pname = "mdbtools";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "cyberemissary";
+ repo = "mdbtools";
+ rev = version;
+ sha256 = "12rhf6rgnws6br5dn1l2j7i77q9p4l6ryga10jpax01vvzhr26qc";
+ };
+
+ configureFlags = [ "--disable-scrollkeeper" ];
+
+ nativeBuildInputs = [
+ pkgconfig bison flex autoreconfHook txt2man which
+ ] ++ lib.optional withUi libxslt;
+
+ buildInputs = [ glib readline ] ++ lib.optionals withUi uiDeps;
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = ".mdb (MS Access) format tools";
+ license = with licenses; [ gpl2 lgpl2 ];
+ maintainers = with maintainers; [ ];
+ platforms = platforms.unix;
+ inherit (src.meta) homepage;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
new file mode 100644
index 000000000000..d224ad1dcc5d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub }:
+
+buildPythonPackage rec {
+ pname = "me_cleaner";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "corna";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1bdj2clm13ir441vn7sv860xsc5gh71ja5lc2wn0gggnff0adxj4";
+ };
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Tool for partial deblobbing of Intel ME/TXE firmware images";
+ longDescription = ''
+ me_cleaner is a Python script able to modify an Intel ME firmware image
+ with the final purpose of reducing its ability to interact with the system.
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ gnidorah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/megacli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/megacli/default.nix
new file mode 100644
index 000000000000..e202cc7ae469
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/megacli/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, rpmextract, ncurses5, patchelf, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+ pname = "megacli";
+ version = "8.07.14";
+
+ src = fetchurl {
+ url = "https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/${builtins.replaceStrings ["."] ["-"] version}_MegaCLI.zip";
+ sha256 = "1sdn58fbmd3fj4nzbajq3gcyw71ilgdh45r5p4sa6xmb7np55cfr";
+ };
+
+ buildInputs = [rpmextract ncurses5 unzip];
+ libPath =
+ stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc stdenv.cc.libc ncurses5 ];
+
+ buildCommand = ''
+ unzip ${src}
+ rpmextract Linux/MegaCli-${version}-1.noarch.rpm
+
+ mkdir -p $out/{bin,share/MegaRAID/MegaCli}
+ cp -r opt $out
+ cp ${version}_MegaCLI.txt $out/share/MegaRAID/MegaCli
+
+ ${patchelf}/bin/patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib \
+ $out/opt/MegaRAID/MegaCli/MegaCli64
+
+ ln -s $out/opt/MegaRAID/MegaCli/MegaCli64 $out/bin/MegaCli64
+ eval fixupPhase
+ '';
+
+ meta = {
+ description = "CLI program for LSI MegaRAID cards, which also works with some Dell PERC RAID cards";
+ license = stdenv.lib.licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86+/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86+/default.nix
new file mode 100644
index 000000000000..57cf5bb97e2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86+/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+ pname = "memtest86+";
+ version = "5.01-coreboot-002";
+
+ src = fetchgit {
+ url = "https://review.coreboot.org/memtest86plus.git";
+ rev = "v002";
+ sha256 = "0cwx20yja24bfknqh1rjb5rl2c0kwnppzsisg1dibbak0l8mxchk";
+ };
+
+ NIX_CFLAGS_COMPILE = "-I. -std=gnu90";
+
+ hardeningDisable = [ "all" ];
+
+ buildFlags = [ "memtest.bin" ];
+
+ doCheck = false; # fails
+
+ installPhase = ''
+ install -Dm0444 -t $out/ memtest.bin
+ '';
+
+ meta = {
+ homepage = "http://www.memtest.org/";
+ description = "A tool to detect memory errors";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
new file mode 100644
index 000000000000..c33aa074404f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, lib
+, fetchzip
+, utillinux
+, jq
+, mtools
+}:
+
+stdenv.mkDerivation rec {
+ pname = "memtest86-efi";
+ version = "8.3";
+
+ src = fetchzip {
+ # TODO: We're using the previous version of memtest86 because the
+ # company developing memtest86 has stopped providing a versioned download
+ # link for the latest version:
+ #
+ # https://www.passmark.com/forum/memtest86/44494-version-8-1-distribution-file-is-not-versioned?p=44505#post44505
+ #
+ # However, versioned links for the previous version are available, so that
+ # is what is being used.
+ #
+ # It does look like redistribution is okay, so if we had somewhere to host
+ # binaries that we make sure to version, then we could probably keep up
+ # with the latest versions released by the company.
+ url = "https://www.memtest86.com/downloads/memtest86-${version}-usb.zip";
+ sha256 = "0aldz7rvnfnzb4h447q10k9c9p5ghwzdyn7f6g5lrxiv5vxf3x96";
+ stripRoot = false;
+ };
+
+ nativeBuildInputs = [
+ utillinux
+ jq
+ mtools
+ ];
+
+ installPhase = ''
+ # memtest86 is distributed as a bootable USB image. It contains the actual
+ # memtest86 EFI app.
+ #
+ # The following uses sfdisk to calculate the offset of the FAT EFI System
+ # Partition in the disk image, and mcopy to extract the actual EFI app from
+ # the filesystem so that it can be installed directly on the hard drive.
+ IMG=$src/memtest86-usb.img
+ ESP_OFFSET=$(sfdisk --json $IMG | jq -r '
+ # Partition type GUID identifying EFI System Partitions
+ def ESP_GUID: "C12A7328-F81F-11D2-BA4B-00A0C93EC93B";
+ .partitiontable |
+ .sectorsize * (.partitions[] | select(.type == ESP_GUID) | .start)
+ ')
+ mkdir $out
+ mcopy -vsi $IMG@@$ESP_OFFSET ::'/EFI/BOOT/*' $out/
+ '';
+
+ meta = with lib; {
+ homepage = "http://memtest86.com/";
+ downloadPage = "https://www.memtest86.com/download.htm";
+ description = "A tool to detect memory errors, to be run from a bootloader";
+ longDescription = ''
+ A UEFI app that is able to detect errors in RAM. It can be run from a
+ bootloader. Released under a proprietary freeware license.
+ '';
+ # The Memtest86 License for the Free Edition states,
+ # "MemTest86 Free Edition is free to download with no restrictions on usage".
+ # However the source code for Memtest86 does not appear to be available.
+ #
+ # https://www.memtest86.com/license.htm
+ license = licenses.unfreeRedistributable;
+ maintainers = with maintainers; [ cdepillabout ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mht2htm/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mht2htm/default.nix
new file mode 100644
index 000000000000..31f645e48ceb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mht2htm/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, unzip, fpc, lazarus }:
+
+let
+ date = "07.apr.2016";
+
+in stdenv.mkDerivation rec {
+ pname = "mht2mht";
+ version = "1.8.1.35";
+
+ src = fetchurl {
+ # there is a disconnect between the directory name date and file name date
+ # you should verify if that is still then case when the next version is released
+ url = "mirror://sourceforge/mht2htm/mht2htm/1.8.1%20%2805.apr.2016%29/mht2htmcl-${version}_${date}.source.zip";
+ sha256 = "16r6zkihp84yqllp2hyaf0nvymdn9ji3g30mc5scfwycdfanja6f";
+ };
+
+ sourceRoot = ".";
+
+ buildInputs = [ fpc lazarus ];
+
+ nativeBuildInputs = [ unzip ];
+
+ buildPhase = ''
+ runHook preBuild
+ lazbuild --lazarusdir=${lazarus}/share/lazarus mht2htmcl.lpi
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 -t $out/bin mht2htmcl
+ install -Dm644 -t $out/share/doc/mht2htm CHANGELOG COPYING README
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Convert .mht files to .html";
+ homepage = "http://pgm.bpalanka.com/mht2htm.html";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ broken = true; # 2018-04-11
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mimeo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mimeo/default.nix
new file mode 100644
index 000000000000..55cc9717688a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mimeo/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, desktop-file-utils, file, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mimeo";
+ version = "2019.7";
+
+ src = fetchurl {
+ url = "https://xyne.archlinux.ca/projects/mimeo/src/${pname}-${version}.tar.xz";
+ sha256 = "0nzn7qvmpbb17d6q16llnhz1qdmyg718q59ic4gw2rq23cd6q47r";
+ };
+
+ buildInputs = [ file desktop-file-utils ];
+
+ propagatedBuildInputs = [ python3Packages.pyxdg ];
+
+ preConfigure = ''
+ substituteInPlace Mimeo.py \
+ --replace "EXE_UPDATE_DESKTOP_DATABASE = 'update-desktop-database'" \
+ "EXE_UPDATE_DESKTOP_DATABASE = '${desktop-file-utils}/bin/update-desktop-database'" \
+ --replace "EXE_FILE = 'file'" \
+ "EXE_FILE = '${file}/bin/file'"
+ '';
+
+ installPhase = "install -Dm755 Mimeo.py $out/bin/mimeo";
+
+ meta = with stdenv.lib; {
+ description = "Open files by MIME-type or file name using regular expressions";
+ homepage = "http://xyne.archlinux.ca/projects/mimeo/";
+ license = [ licenses.gpl2 ];
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/default.nix
new file mode 100644
index 000000000000..35c04faf4592
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchgit, autoreconfHook, makeWrapper, pkgconfig
+, lrzsz, ncurses, libiconv }:
+
+stdenv.mkDerivation {
+ pname = "minicom";
+ version = "2.7.1";
+
+ # The repository isn't tagged properly, so we need to use commit refs
+ src = fetchgit {
+ url = "https://salsa.debian.org/minicom-team/minicom.git";
+ rev = "6ea8033b6864aa35d14fb8b87e104e4f783635ce";
+ sha256 = "0j95727xni4r122dalp09963gvc1nqa18l1d4wzz8746kw5s2rrb";
+ };
+
+ buildInputs = [ ncurses ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--sysconfdir=/etc"
+ "--enable-lock-dir=/var/lock"
+ ];
+
+ patches = [ ./xminicom_terminal_paths.patch ];
+
+ preConfigure = ''
+ # Have `configure' assume that the lock directory exists.
+ substituteInPlace configure \
+ --replace 'test -d $UUCPLOCK' true
+ '';
+
+ postInstall = ''
+ for f in $out/bin/*minicom ; do
+ wrapProgram $f \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ lrzsz ]}:$out/bin
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Modem control and terminal emulation program";
+ homepage = "https://salsa.debian.org/minicom-team/minicom";
+ license = licenses.gpl2;
+ longDescription = ''
+ Minicom is a menu driven communications program. It emulates ANSI
+ and VT102 terminals. It has a dialing directory and auto zmodem
+ download.
+ '';
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch
new file mode 100644
index 000000000000..18535253d9f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch
@@ -0,0 +1,79 @@
+diff --git a/src/xminicom b/src/xminicom
+index a59aa08..cef153b 100755
+--- a/src/xminicom
++++ b/src/xminicom
+@@ -7,57 +7,39 @@
+ #
+ # version $Id: xminicom,v 1.4 2008-06-09 20:48:35 al-guest Exp $
+
+-findcmd()
+-{
+- IFS=:
+- for i in $PATH
+- do
+- if [ -x $i\/$1 ]
+- then
+- result=$i\/$1
+- IFS=
+- return 0
+- fi
+- done
+- result=
+- IFS=
+- return 1
++findcmd() {
++ result=$(command -v $1)
+ }
+
+-if findcmd x-terminal-emulator
+-then
++if findcmd x-terminal-emulator ; then
+ exec $result -T minicom -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+ exit 1
+ fi
+
+-if findcmd color_xterm
+-then
++if findcmd konsole ; then
++ exec $result -T minicom -geometry 80x25 -e minicom -m -c on "$@"
++ exit 1
++fi
++
++if findcmd gnome-terminal ; then
++ exec $result -T minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
++ exit 1
++fi
++
++if findcmd color_xterm ; then
+ exec $result -T minicom -bg black -fg grey -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+ exit 1
+ fi
+
+-if findcmd rxvt
+-then
++if findcmd rxvt ; then
+ exec $result -bg black -fg grey -n minicom -T minicom -sl 0 -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+ exit 1
+ fi
+
+-if findcmd kterm
+-then
++if findcmd xterm ; then
+ exec $result -T minicom -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+ exit 1
+ fi
+
+-if findcmd xterm
+-then
+- if [ -f /etc/debian_version ]
+- then
+- exec $result -T minicom -n minicom -bg black -fg grey -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+- else
+- exec $result -T minicom -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+- fi
+- exit 1
+-fi
+-
+-echo "xminicom: rxvt, color_xterm or xterm NOT found!" 1>&2
++echo "xminicom: konsole, gnome-terminal, rxvt, color_xterm or xterm NOT found!" 1>&2
+ exit 1
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/miniserve/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/miniserve/default.nix
new file mode 100644
index 000000000000..71d20c015d0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/miniserve/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, zlib
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "miniserve";
+ version = "0.10.0";
+
+ src = fetchFromGitHub {
+ owner = "svenstaro";
+ repo = "miniserve";
+ rev = "v${version}";
+ sha256 = "01nsviw5nc5lb6z3j2yiymiwhiq719nwqpvqbyb5p65s98sph7yh";
+ };
+
+ cargoSha256 = "098p4645air5402shqignc57zdm6755shahhby17nqv1s27gfinc";
+
+ RUSTC_BOOTSTRAP = 1;
+
+ nativeBuildInputs = [ pkg-config zlib ];
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ # Remove after https://github.com/NixOS/nixpkgs/pull/97000 lands into master
+ preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+ unset SDKROOT
+ '';
+
+ meta = with stdenv.lib; {
+ description = "For when you really just want to serve some files over HTTP right now!";
+ homepage = "https://github.com/svenstaro/miniserve";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ zowoq ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ministat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ministat/default.nix
new file mode 100644
index 000000000000..dfc2e2c624ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ministat/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+ pname = "ministat";
+ version = "20150715-1";
+
+ src = fetchgit {
+ url = "https://git.decadent.org.uk/git/ministat.git";
+ rev = "refs/tags/debian/${version}";
+ sha256 = "1p4g0yqgsy4hiqhr8gqp8d38zxzrss5qz70s0bw3i2pg4w668k6f";
+ };
+
+ postPatch = ''
+ patch -p1 < debian/patches/fix-ctype-usage.patch
+ patch -p1 < debian/patches/not-bsd
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+ cp ministat $out/bin
+ cp ministat.1 $out/share/man/man1/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple tool for statistical comparison of data sets";
+ homepage = "https://git.decadent.org.uk/gitweb/?p=ministat.git";
+ license = licenses.beerware;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mktorrent/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mktorrent/default.nix
new file mode 100644
index 000000000000..485c3403cff7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mktorrent/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchFromGitHub, openssl}:
+
+stdenv.mkDerivation rec {
+ pname = "mktorrent";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "Rudde";
+ repo = "mktorrent";
+ rev = "v${version}";
+ sha256 = "17pdc5mandl739f8q26n5is8ga56s83aqcrwhlnnplbxwx2inidr";
+ };
+
+ makeFlags = [ "USE_PTHREADS=1" "USE_OPENSSL=1" "USE_LONG_OPTIONS=1" ]
+ ++ stdenv.lib.optional stdenv.isi686 "USE_LARGE_FILES=1"
+ ++ stdenv.lib.optional stdenv.isLinux "CFLAGS=-lgcc_s";
+
+ installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ buildInputs = [ openssl ];
+
+ meta = {
+ homepage = "http://mktorrent.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ description = "Command line utility to create BitTorrent metainfo files";
+ maintainers = with stdenv.lib.maintainers; [Profpatsch];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mlocate/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mlocate/default.nix
new file mode 100644
index 000000000000..d3f406c53552
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mlocate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, config }:
+
+let
+ dbfile = stdenv.lib.attrByPath [ "locate" "dbfile" ] "/var/cache/locatedb" config;
+in stdenv.mkDerivation rec {
+ pname = "mlocate";
+ version = "0.26";
+
+ src = fetchurl {
+ url = "https://releases.pagure.org/mlocate/${pname}-${version}.tar.xz";
+ sha256 = "0gi6y52gkakhhlnzy0p6izc36nqhyfx5830qirhvk3qrzrwxyqrh";
+ };
+
+ buildInputs = [ ];
+ makeFlags = [ "dbfile=${dbfile}" ];
+
+ meta = with stdenv.lib; {
+ description = "Merging locate is an utility to index and quickly search for files";
+ homepage = "https://pagure.io/mlocate";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/default.nix
new file mode 100644
index 000000000000..a761530a0a00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "mmake";
+ version = "1.2.0";
+
+ goPackagePath = "github.com/tj/mmake";
+
+ src = fetchFromGitHub {
+ owner = "tj";
+ repo = "mmake";
+ rev = "v${version}";
+ sha256 = "1pyqgk04v0f7a28cwq9c40bd2cgrkrv4wqcijdzpgn4bqhrqab4f";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tj/mmake";
+ description = "A small program which wraps make to provide additional functionality";
+ longDescription = ''
+ Mmake is a small program which wraps make to provide additional
+ functionality, such as user-friendly help output, remote
+ includes, and eventually more. It otherwise acts as a
+ pass-through to standard make.
+ '';
+ license = licenses.mit;
+ maintainers = [ maintainers.gabesoft ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/deps.nix
new file mode 100644
index 000000000000..0721ad0af608
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mmake/deps.nix
@@ -0,0 +1,30 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/apex/log";
+ fetch = {
+ type = "git";
+ url = "https://github.com/apex/log";
+ rev = "0296d6eb16bb28f8a0c55668affcf4876dc269be";
+ sha256 = "067px84y73h60bai1yy6xqf2l05gq6zsp64fn58d4fwzk04aa16v";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "c605e284fe17294bda444b34710735b29d1a9d90";
+ sha256 = "1izjk4msnc6wn1mclg0ypa6i31zfwb1r3032k8q4jfbd57hp0bz6";
+ };
+ }
+ {
+ goPackagePath = "github.com/segmentio/go-env";
+ fetch = {
+ type = "git";
+ url = "https://github.com/segmentio/go-env";
+ rev = "ea0600a7760cd15ccca9057be4a87d68e95ee876";
+ sha256 = "0rgclbi0na5042cirr52lriwyb5a2rdpqx211zfwyrrvc3zq4lwq";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mmv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mmv/default.nix
new file mode 100644
index 000000000000..48c3b3932628
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mmv/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "mmv";
+ version = "1.01b";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/m/mmv/mmv_${version}.orig.tar.gz";
+ sha256 = "0399c027ea1e51fd607266c1e33573866d4db89f64a74be8b4a1d2d1ff1fdeef";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ patches = [
+ # Use Debian patched version, as upstream is no longer maintained and it
+ # contains a _lot_ of fixes.
+ (fetchurl {
+ url = "mirror://debian/pool/main/m/mmv/mmv_${version}-15.diff.gz";
+ sha256 = "9ad3e3d47510f816b4a18bae04ea75913588eec92248182f85dd09bc5ad2df13";
+ })
+ ];
+
+ postPatch = ''
+ sed -i \
+ -e 's/^\s*LDFLAGS\s*=\s*-s\s*-N/LDFLAGS = -s/' \
+ -e "s|/usr/bin|$out/bin|" \
+ -e "s|/usr/man|$out/share/man|" \
+ Makefile
+ '';
+
+ preInstall = ''
+ mkdir -p "$out/bin" "$out/share/man/man1"
+ '';
+
+ postInstall = ''
+ for variant in mcp mad mln
+ do
+ ln -s mmv "$out/bin/$variant"
+ ln -s mmv.1 "$out/share/man/man1/$variant.1"
+ done
+ '';
+
+ meta = {
+ homepage = "http://linux.maruhn.com/sec/mmv.html";
+ description = "Utility for wildcard renaming, copying, etc";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
new file mode 100644
index 000000000000..ec6be6eba28b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
@@ -0,0 +1,101 @@
+{ stdenv, fetchurl, dpkg
+, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
+, gnome2, gnome3, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
+
+let
+ version = "1.22.1";
+
+ rpath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
+ cups
+ curl
+ dbus
+ expat
+ fontconfig
+ freetype
+ glib
+ gnome2.GConf
+ gnome2.gdk_pixbuf
+ gnome3.gtk
+ gnome2.pango
+ libnotify
+ libsecret
+ libuuid
+ libxcb
+ nspr
+ nss
+ stdenv.cc.cc
+ systemd
+
+ xorg.libxkbfile
+ xorg.libX11
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libXScrnSaver
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
+ sha256 = "1wbjj2w4dii644lprvmwnlval53yqh4y0f58cad657jjw8101rd9";
+ }
+ else
+ throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
+
+in stdenv.mkDerivation {
+ pname = "mongodb-compass";
+ inherit version;
+
+ inherit src;
+
+ buildInputs = [ dpkg wrapGAppsHook gnome3.gtk ];
+ dontUnpack = true;
+
+ buildCommand = ''
+ IFS=$'\n'
+
+ # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+ dpkg --fsys-tarfile $src | tar --extract
+
+ mkdir -p $out
+ mv usr/* $out
+
+ # cp -av $out/usr/* $out
+ rm -rf $out/share/lintian
+
+ # The node_modules are bringing in non-linux files/dependencies
+ find $out -name "*.app" -exec rm -rf {} \; || true
+ find $out -name "*.dll" -delete
+ find $out -name "*.exe" -delete
+
+ # Otherwise it looks "suspicious"
+ chmod -R g-w $out
+
+ for file in `find $out -type f -perm /0111 -o -name \*.so\*`; do
+ echo "Manipulating file: $file"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+ patchelf --set-rpath ${rpath}:$out/lib/mongodb-compass "$file" || true
+ done
+
+ wrapGAppsHook $out/bin/mongodb-compass
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The GUI for MongoDB";
+ homepage = "https://www.mongodb.com/products/compass";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix
new file mode 100644
index 000000000000..c3e9a0dc2ff2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, buildGoPackage
+, fetchFromGitHub
+, openssl
+, pkgconfig
+, libpcap
+}:
+
+let
+ tools = [
+ "bsondump"
+ "mongoimport"
+ "mongoexport"
+ "mongodump"
+ "mongorestore"
+ "mongostat"
+ "mongofiles"
+ "mongotop"
+ "mongoreplay"
+ ];
+ version = "4.2.0";
+
+in buildGoPackage {
+ pname = "mongo-tools";
+ inherit version;
+
+ goPackagePath = "github.com/mongodb/mongo-tools";
+ subPackages = tools;
+
+ src = fetchFromGitHub {
+ rev = "r${version}";
+ owner = "mongodb";
+ repo = "mongo-tools";
+ sha256 = "0mjwvx0cxvb6zam6jyr3753xjnwcygxcjzqhhlsq0b3xnwws9yh7";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl libpcap ];
+
+ # Mongodb incorrectly names all of their binaries main
+ # Let's work around this with our own installer
+ buildPhase = ''
+ # move vendored codes so nixpkgs go builder could find it
+ runHook preBuild
+
+ ${stdenv.lib.concatMapStrings (t: ''
+ go build -o "$out/bin/${t}" -tags ssl -ldflags "-s -w" $goPackagePath/${t}/main
+ '') tools}
+
+ runHook postBuild
+ '';
+
+ meta = {
+ homepage = "https://github.com/mongodb/mongo-tools";
+ description = "Tools for the MongoDB";
+ license = lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mons/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mons/default.nix
new file mode 100644
index 000000000000..c1dbfa0aa49a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mons/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub, help2man, xrandr }:
+
+stdenv.mkDerivation rec {
+ pname = "mons";
+ version = "20200107";
+
+ src = fetchFromGitHub {
+ owner = "Ventto";
+ repo = pname;
+ rev = "0c9e1a1dddff23a0525ed8e4ec9af8f9dd8cad4c";
+ sha256 = "02c41mw3g1mgl91hhpz1n45iaqk9s7mdk1ixm8yv6sv17hy8rr4w";
+ fetchSubmodules = true;
+ };
+
+ # PR: https://github.com/Ventto/mons/pull/36
+ preConfigure = ''sed -i 's/usr\///' Makefile'';
+
+ nativeBuildInputs = [ help2man ];
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with lib; {
+ description = "POSIX Shell script to quickly manage 2-monitors display";
+ homepage = "https://github.com/Ventto/mons.git";
+ license = licenses.mit;
+ maintainers = [ maintainers.mschneider ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/moreutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/moreutils/default.nix
new file mode 100644
index 000000000000..92402797d112
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/moreutils/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, libxml2, libxslt, docbook-xsl, docbook_xml_dtd_44, perlPackages, makeWrapper, darwin }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "moreutils";
+ version = "0.63";
+
+ src = fetchgit {
+ url = "git://git.joeyh.name/moreutils";
+ rev = "refs/tags/${version}";
+ sha256 = "17sszmcdck4w01hgcq7vd25p2iw3yzvjwx1yf20jg85gzs1dplrd";
+ };
+
+ preBuild = ''
+ substituteInPlace Makefile --replace /usr/share/xml/docbook/stylesheet/docbook-xsl ${docbook-xsl}/xml/xsl/docbook
+ '';
+
+ buildInputs = [ libxml2 libxslt docbook-xsl docbook_xml_dtd_44 makeWrapper ]
+ ++ optional stdenv.isDarwin darwin.cctools;
+
+ propagatedBuildInputs = with perlPackages; [ perl IPCRun TimeDate TimeDuration ];
+
+ buildFlags = [ "CC=cc" ];
+ installFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/chronic --prefix PERL5LIB : $PERL5LIB
+ wrapProgram $out/bin/ts --prefix PERL5LIB : $PERL5LIB
+ '';
+
+ meta = {
+ description = "Growing collection of the unix tools that nobody thought to write long ago when unix was young";
+ homepage = "https://joeyh.name/code/moreutils/";
+ maintainers = with maintainers; [ koral pSub ];
+ platforms = platforms.all;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/most/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/most/default.nix
new file mode 100644
index 000000000000..7adac5ee2ee6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/most/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, slang, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "most";
+ version = "5.1.0";
+
+ src = fetchurl {
+ url = "https://www.jedsoft.org/releases/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "008537ns659pw2aag15imwjrxj73j26aqq90h285is6kz8gmv06v";
+ };
+
+ outputs = [ "out" "doc" ];
+
+ makeFlags = [
+ "DOC_DIR=${placeholder "doc"}/share/doc/most"
+ ];
+
+ preConfigure = ''
+ sed -i -e "s|-ltermcap|-lncurses|" configure
+ sed -i autoconf/Makefile.in src/Makefile.in \
+ -e "s|/bin/cp|cp|" \
+ -e "s|/bin/rm|rm|"
+ '';
+
+ configureFlags = [ "--with-slang=${slang.dev}" ];
+
+ buildInputs = [ slang ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "A terminal pager similar to 'more' and 'less'";
+ longDescription = ''
+ MOST is a powerful paging program for Unix, VMS, MSDOS, and win32
+ systems. Unlike other well-known paging programs most supports multiple
+ windows and can scroll left and right. Why settle for less?
+ '';
+ homepage = "https://www.jedsoft.org/most/index.html";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix
new file mode 100644
index 000000000000..b3665bb6dcf1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, meson, ninja, pkgconfig, boost, libgcrypt, systemd, mpd_clientlib, curl }:
+
+stdenv.mkDerivation rec {
+ pname = "mpdscribble";
+ version = "0.23";
+
+ src = fetchurl {
+ url =
+ "https://www.musicpd.org/download/mpdscribble/${version}/mpdscribble-${version}.tar.xz";
+ sha256 = "0s66zqscb44p88cl3kcv5jkjcqsskcnrv7xgrjhzrchf2kcpwf53";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+ buildInputs = [ mpd_clientlib curl boost libgcrypt systemd ];
+
+ meta = with stdenv.lib; {
+ description = "A Music Player Daemon (MPD) client which submits information about tracks being played to a scrobbler (e.g. last.fm)";
+ homepage = "https://www.musicpd.org/clients/mpdscribble/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.sohalt ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mprime/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mprime/default.nix
new file mode 100644
index 000000000000..3189e41de8d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mprime/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, lib, fetchurl, unzip, curl, hwloc, gmp }:
+
+let
+ throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ srcDir = {
+ x86_64-linux = "linux64";
+ i686-linux = "linux";
+ x86_64-darwin = "macosx64";
+ }."${stdenv.hostPlatform.system}" or throwSystem;
+
+ gwnum = {
+ x86_64-linux = "make64";
+ i686-linux = "makefile";
+ x86_64-darwin = "makemac";
+ }."${stdenv.hostPlatform.system}" or throwSystem;
+in
+
+stdenv.mkDerivation rec {
+ pname = "mprime";
+ version = "29.8b7";
+
+ src = fetchurl {
+ url = "https://www.mersenne.org/ftp_root/gimps/p95v${lib.replaceStrings ["."] [""] version}.source.zip";
+ sha256 = "0x5dk2dcppfnq17n79297lmn6p56rd66cbwrh1ds4l8r4hmwsjaj";
+ };
+
+ postPatch = ''
+ sed -i ${srcDir}/makefile \
+ -e 's/^LFLAGS =.*//'
+ substituteInPlace ${srcDir}/makefile \
+ --replace '-Wl,-Bstatic' "" \
+ --replace '-Wl,-Bdynamic' ""
+ '';
+
+ sourceRoot = ".";
+
+ nativeBuildInputs = [ unzip ];
+
+ buildInputs = [ curl hwloc gmp ];
+
+ enableParallelBuilding = true;
+
+ buildPhase = ''
+ make -C gwnum -f ${gwnum}
+ make -C ${srcDir}
+ '';
+
+ installPhase = ''
+ install -Dm555 -t $out/bin ${srcDir}/mprime
+ '';
+
+ meta = with lib; {
+ description = "Mersenne prime search / System stability tester";
+ longDescription = ''
+ MPrime is the Linux command-line interface version of Prime95, to be run
+ in a text terminal or in a terminal emulator window as a remote shell
+ client. It is identical to Prime95 in functionality, except it lacks a
+ graphical user interface.
+ '';
+ homepage = "https://www.mersenne.org/";
+ # Unfree, because of a license requirement to share prize money if you find
+ # a suitable prime. http://www.mersenne.org/legal/#EULA
+ license = licenses.unfree;
+ # Untested on linux-32 and osx. Works in theory.
+ platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mrtg/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mrtg/default.nix
new file mode 100644
index 000000000000..047cd87308f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mrtg/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, perl, gd, rrdtool }:
+
+stdenv.mkDerivation rec {
+
+ version = "2.17.7";
+ pname = "mrtg";
+
+ src = fetchurl {
+ url = "https://oss.oetiker.ch/mrtg/pub/${pname}-${version}.tar.gz";
+ sha256 = "1hrjqfi290i936nblwpfzjn6v8d8p69frcrvml206nxiiwkcp54v";
+ };
+
+ buildInputs = [
+ perl gd rrdtool
+ ];
+
+ meta = {
+ description = "The Multi Router Traffic Grapher";
+ homepage = "https://oss.oetiker.ch/mrtg/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.robberer ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/default.nix
new file mode 100644
index 000000000000..315dbce74070
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "ms-sys";
+ version = "2.6.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ms-sys/${pname}-${version}.tar.gz";
+ sha256 = "06xqpm2s9cg8fj7a1822wmh3p4arii0sifssazg1gr6i7xg7kbjz";
+ };
+ # TODO: Remove with next release, see https://sourceforge.net/p/ms-sys/patches/8/
+ patches = [ ./manpages-without-build-timestamps.patch ];
+
+ nativeBuildInputs = [ gettext ];
+
+ enableParallelBuilding = true;
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A program for writing Microsoft-compatible boot records";
+ homepage = "http://ms-sys.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch
new file mode 100644
index 000000000000..7b031cb34f1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch
@@ -0,0 +1,12 @@
+diff -u ms-sys-2.6.0/Makefile ms-sys-2.6.0-fixed/Makefile
+--- ms-sys-2.6.0/Makefile 2015-09-27 20:39:45.000000000 +0200
++++ ms-sys-2.6.0-fixed/Makefile2020-01-06 16:43:55.181477511 +0100
+@@ -121,7 +121,7 @@
+
+ $(DESTDIR)$(MANDIR)/%: $(MAN)/$(dir $(*D))/$(*F)
+ install -D -m 644 $(MAN)/$(dir $(*D))$(*F) $@
+- gzip -f $@
++ gzip -n -f $@
+
+ #$(DESTDIR)$(MANDIR)/%: $(MAN)/$(*F)
+ # echo t: $<
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mstflint/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mstflint/default.nix
new file mode 100644
index 000000000000..20d7110944d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mstflint/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, autoreconfHook, fetchFromGitHub, zlib, libibmad, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "mstflint";
+ version = "4.14.0-3";
+
+ src = fetchFromGitHub {
+ owner = "Mellanox";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0zy9npyzf7dkxlfl9mx6997aa61mk23ixpjb01ckb1wvav5k6z82";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ zlib libibmad openssl ];
+
+ hardeningDisable = [ "format" ];
+
+ dontDisableStatic = true; # the build fails without this. should probably be reported upstream
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Mellanox/mstflint";
+ license = with licenses; [ gpl2 bsd2 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mtm/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mtm/default.nix
new file mode 100644
index 000000000000..5b45c0b712bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mtm/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "mtm";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "deadpixi";
+ repo = pname;
+ rev = version;
+ sha256 = "0b2arkmbmabxmrqxlpvvvhll2qx0xgj7r4r6p0ymnm9p70idris4";
+ };
+
+ buildInputs = [ ncurses ];
+
+ preBuild = ''
+ substituteInPlace Makefile --replace "strip -s mtm" ""
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin mtm
+ install -Dm644 -t $out/share/man/man1 mtm.1
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Perhaps the smallest useful terminal multiplexer in the world";
+ homepage = "https://github.com/deadpixi/mtm";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/multitail/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/multitail/default.nix
new file mode 100644
index 000000000000..eef53769f06d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/multitail/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, ncurses, pkg-config }:
+
+stdenv.mkDerivation rec {
+ version = "6.5.0";
+ pname = "multitail";
+
+ src = fetchurl {
+ url = "https://www.vanheusden.com/multitail/${pname}-${version}.tgz";
+ sha256 = "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ ncurses ];
+
+ makeFlags = stdenv.lib.optionals stdenv.isDarwin [ "-f" "makefile.macosx" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp multitail $out/bin
+ '';
+
+ meta = {
+ homepage = "http://www.vanheusden.com/multitail/";
+ description = "tail on Steroids";
+ maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/multitime/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/multitime/default.nix
new file mode 100644
index 000000000000..a46ee2b7c9c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/multitime/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "multitime";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "ltratt";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "1p6m4gyy6dw7nxnpsk32qiijagmiq9vwch0fbc25qvmybwqp8qc0";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = {
+ description = "Time command execution over multiple executions";
+
+ longDescription = ''
+ Unix's `time` utility is a simple and often effective way of measuring
+ how long a command takes to run. Unfortunately, running a command once
+ can give misleading timings: the process may create a cache on its first
+ execution, running faster subsequently; other processes may cause the
+ command to be starved of CPU or IO time; etc. It is common to see people
+ run `time` several times and take whichever values they feel most
+ comfortable with. Inevitably, this causes problems.
+
+ `multitime` is, in essence, a simple extension to time which runs a
+ command multiple times and prints the timing means (with confidence
+ intervals), standard deviations, minimums, medians, and maximums having
+ done so. This can give a much better understanding of the command's
+ performance.
+ '';
+
+ license = stdenv.lib.licenses.mit;
+ homepage = "https://tratt.net/laurie/src/multitime/";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mutagen/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mutagen/default.nix
new file mode 100644
index 000000000000..ca75bf34dd13
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mutagen/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "mutagen";
+ version = "0.11.7";
+
+ src = fetchFromGitHub {
+ owner = "mutagen-io";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "11wp94khj9bzmadij0nq6i6q0x9z6h0zy4a6fhf322y5nxsmvcgy";
+ };
+
+ vendorSha256 = "0szs9yc49fyh55ra1wf8zj76kdah0x49d45cgivk3gqh2hl17j6l";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
+
+ meta = with lib; {
+ description = "Make remote development work with your local tools";
+ homepage = "https://mutagen.io/";
+ changelog = "https://github.com/mutagen-io/mutagen/releases/tag/v${version}";
+ maintainers = [ maintainers.marsam ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mysql2pgsql/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mysql2pgsql/default.nix
new file mode 100644
index 000000000000..e3f05e1a761c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mysql2pgsql/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, perl }:
+
+# The homepage says this script is mature..
+stdenv.mkDerivation {
+ name = "mysql2pgsql-0.0.1a";
+
+ src = fetchurl {
+ url = "http://ftp.plusline.de/ftp.postgresql.org/projects/gborg/mysql2psql/devel/mysql2psql-0.0.1a.tgz";
+ sha256 = "0dpbxf3kdvpihz9cisx6wi3zzd0cnifaqvjxavrbwm4k4sz1qamp";
+ };
+
+ buildInputs = [ perl ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv {,$out/bin/}mysql2psql
+ '';
+
+ meta = {
+ description = "Convert MySQL dump files to PostgreSQL-loadable files";
+ homepage = "https://pgfoundry.org/projects/mysql2pgsql/";
+ license = stdenv.lib.licenses.bsdOriginal;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
new file mode 100644
index 000000000000..2f7889111b0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "mysqltuner";
+ version = "1.7.17";
+
+ src = fetchFromGitHub {
+ owner = "major";
+ repo = "MySQLTuner-perl";
+ rev = version;
+ sha256 = "0wjdqraa6r6kd6rsgrn177dq6xsnnr1sgnbs9whknjbs4fn3wwl5";
+ };
+
+ buildInputs = [ perl ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -m0755 mysqltuner.pl $out/bin/mysqltuner
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Make recommendations for increased performance and stability of MariaDB/MySQL";
+ homepage = "http://mysqltuner.com";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nagstamon/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nagstamon/default.nix
new file mode 100644
index 000000000000..9b063947a449
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nagstamon/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "nagstamon";
+ version = "3.2.1";
+
+ src = fetchurl {
+ url = "https://nagstamon.ifw-dresden.de/files/stable/Nagstamon-${version}.tar.gz";
+ sha256 = "1048x55g3nlyyggn6a36xmj24w4hv08llg58f4hzc0fwg074cd58";
+ };
+
+ # Test assumes darwin
+ doCheck = false;
+
+ propagatedBuildInputs = with pythonPackages; [ configparser pyqt5 psutil requests
+ beautifulsoup4 keyring requests-kerberos kerberos lxml ];
+
+ meta = with stdenv.lib; {
+ description = "A status monitor for the desktop";
+ homepage = "https://nagstamon.ifw-dresden.de/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nbench/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nbench/default.nix
new file mode 100644
index 000000000000..950f3883f8f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nbench/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "nbench-byte";
+ version = "2.2.3";
+
+ src = fetchurl {
+ url = "http://www.math.utah.edu/~mayer/linux/${pname}-${version}.tar.gz";
+ sha256 = "1b01j7nmm3wd92ngvsmn2sbw43sl9fpx4xxmkrink68fz1rx0gbj";
+ };
+
+ buildInputs = [ stdenv.cc.libc.static ];
+ prePatch = ''
+ substituteInPlace nbench1.h --replace '"NNET.DAT"' "\"$out/NNET.DAT\""
+ '';
+ preBuild = ''
+ makeFlagsArray=(CC=$CC)
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp nbench $out/bin
+ cp NNET.DAT $out
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.math.utah.edu/~mayer/linux/bmark.html";
+ description = "A synthetic computing benchmark program";
+ platforms = platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ bennofs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ncdu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ncdu/default.nix
new file mode 100644
index 000000000000..2d56ab9c09bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ncdu/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "ncdu";
+ version = "1.15.1";
+
+ src = fetchurl {
+ url = "https://dev.yorhel.nl/download/${pname}-${version}.tar.gz";
+ sha256 = "1c1zxalm5asyhn4p1hd51h7khw17515gbqmvdz63kc8xpx6xqbdh";
+ };
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "Disk usage analyzer with an ncurses interface";
+ homepage = "https://dev.yorhel.nl/ncdu";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
new file mode 100644
index 000000000000..4473f869a380
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "neo-cowsay";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "Code-Hex";
+ repo = "Neo-cowsay";
+ rev = "v${version}";
+ sha256 = "0c6lygdqi26mczij41sn8ckc3g6qaakkkh3iasf10a4d07amxci1";
+ };
+
+ vendorSha256 = "1clar59x2dvn7yj4fbylby9nrzy8kdixi48hkbmrv8g5l8n0wdl2";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/cowsay" "cmd/cowthink" ];
+
+ meta = with lib; {
+ description = "Cowsay reborn, written in Go";
+ homepage = "https://github.com/Code-Hex/Neo-cowsay";
+ license = with licenses; [artistic1 /* or */ gpl3];
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/neofetch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/neofetch/default.nix
new file mode 100644
index 000000000000..f08e3828325a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/neofetch/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "neofetch";
+ version = "7.1.0";
+
+ src = fetchFromGitHub {
+ owner = "dylanaraps";
+ repo = "neofetch";
+ rev = version;
+ sha256 = "0i7wpisipwzk0j62pzaigbiq42y1mn4sbraz4my2jlz6ahwf00kv";
+ };
+
+ dontBuild = true;
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "SYSCONFDIR=${placeholder "out"}/etc"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fast, highly customizable system info script";
+ homepage = "https://github.com/dylanaraps/neofetch";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ alibabzo konimex ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nginx-config-formatter/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nginx-config-formatter/default.nix
new file mode 100644
index 000000000000..c9726d7e0403
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nginx-config-formatter/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, python3 }:
+
+stdenv.mkDerivation {
+ version = "2019-02-13";
+ pname = "nginx-config-formatter";
+
+ src = fetchFromGitHub {
+ owner = "1connect";
+ repo = "nginx-config-formatter";
+ rev = "4ea6bbc1bdeb1d28419548aeca90f323e64e0e05";
+ sha256 = "0h6pj9i0wim9pzkafi92l1nhlnl2a530vnm7qqi3n2ra8iwfyw4f";
+ };
+
+ buildInputs = [ python3 ];
+
+ doCheck = true;
+ checkPhase = ''
+ python3 $src/test_nginxfmt.py
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -m 0755 $src/nginxfmt.py $out/bin/nginxfmt
+ '';
+
+ meta = with stdenv.lib; {
+ description = "nginx config file formatter";
+ maintainers = with maintainers; [ Baughn ];
+ license = licenses.asl20;
+ homepage = "https://github.com/1connect/nginx-config-formatter";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
new file mode 100644
index 000000000000..d92f2346563c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gnugrep, nix }:
+
+stdenv.mkDerivation rec {
+ pname = "nix-direnv";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "nix-community";
+ repo = "nix-direnv";
+ rev = "${version}";
+ sha256 = "sha256-xMz6e0OLeB3eltGrLV3Hew0lMjH5LSgqJ1l7JT2Ho/M=";
+ };
+
+ # Substitute instead of wrapping because the resulting file is
+ # getting sourced, not executed:
+ postPatch = ''
+ substituteInPlace direnvrc \
+ --replace "grep" "${gnugrep}/bin/grep" \
+ --replace "nix-shell" "${nix}/bin/nix-shell" \
+ --replace "nix-instantiate" "${nix}/bin/nix-instantiate"
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -m500 -D direnvrc $out/share/nix-direnv/direnvrc
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A fast, persistent use_nix implementation for direnv";
+ homepage = "https://github.com/nix-community/nix-direnv";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nms/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nms/default.nix
new file mode 100644
index 000000000000..0005ffe824b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nms/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "nms";
+ version = "0.3.3";
+
+ src = fetchFromGitHub {
+ owner = "bartobri";
+ repo = "no-more-secrets";
+ rev = "v${version}";
+ sha256 = "1zfv4qabikf8w9winsr4brxrdvs3f0d7xvydksyx8bydadsm2v2h";
+ };
+
+ buildFlags = [ "nms" "sneakers" ];
+ installFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/bartobri/no-more-secrets";
+ description = ''
+ A command line tool that recreates the famous data decryption
+ effect seen in the 1992 movie Sneakers.
+ '';
+ license = licenses.gpl3;
+ maintainers = [ maintainers.infinisil ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nncp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nncp/default.nix
new file mode 100644
index 000000000000..3322ed0c8a46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nncp/default.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, go
+, fetchurl
+, curl
+, perl
+, genericUpdater
+, writeShellScript
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nncp";
+ version = "5.3.3";
+
+ src = fetchurl {
+ url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
+ sha256 = "1l35ndzrvpfim29jn1p0bwmc8w892z44nsrdnay28k229r9dhz3h";
+ };
+
+ nativeBuildInputs = [ go ];
+
+ preConfigure = ''
+ export GOCACHE=$PWD/.cache
+ '';
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "CFGPATH=/etc/nncp.hjson"
+ "SENDMAIL=/run/wrappers/bin/sendmail"
+ ];
+
+ passthru.updateScript = genericUpdater {
+ inherit pname version;
+ versionLister = writeShellScript "nncp-versionLister" ''
+ echo "# Versions for $1:" >> "$2"
+ ${curl}/bin/curl -s http://www.nncpgo.org/Tarballs.html | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ description = "Secure UUCP-like store-and-forward exchanging";
+ longDescription = ''
+ This utilities are intended to help build up small size (dozens of
+ nodes) ad-hoc friend-to-friend (F2F) statically routed darknet
+ delay-tolerant networks for fire-and-forget secure reliable files,
+ file requests, Internet mail and commands transmission. All
+ packets are integrity checked, end-to-end encrypted, explicitly
+ authenticated by known participants public keys. Onion encryption
+ is applied to relayed packets. Each node acts both as a client and
+ server, can use push and poll behaviour model.
+
+ Out-of-box offline sneakernet/floppynet, dead drops, sequential
+ and append-only CD-ROM/tape storages, air-gapped computers
+ support. But online TCP daemon with full-duplex resumable data
+ transmission exists.
+ '';
+ homepage = "http://www.nncpgo.org/";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.woffs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/noteshrink/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/noteshrink/default.nix
new file mode 100644
index 000000000000..b934b1288703
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/noteshrink/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, python3, imagemagick }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "noteshrink";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "mzucker";
+ repo = "noteshrink";
+ rev = version;
+ sha256 = "0xhrvg3d8ffnbbizsrfppcd2y98znvkgxjdmvbvin458m2rwccka";
+ };
+
+ propagatedBuildInputs = [ numpy scipy imagemagick pillow ];
+
+ meta = with stdenv.lib; {
+ description = "Convert scans of handwritten notes to beautiful, compact PDFs";
+ homepage = "https://mzucker.github.io/2016/09/20/noteshrink.html";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/noti/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/noti/default.nix
new file mode 100644
index 000000000000..9bfc7e259d5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/noti/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub
+, Cocoa ? null }:
+
+buildGoPackage rec {
+ pname = "noti";
+ version = "3.5.0";
+
+ src = fetchFromGitHub {
+ owner = "variadico";
+ repo = "noti";
+ rev = version;
+ sha256 = "12r9wawwl6x0rfv1kahwkamfa0pjq24z60az9pn9nsi2z1rrlwkd";
+ };
+
+ buildInputs = lib.optional stdenv.isDarwin Cocoa;
+
+ goPackagePath = "github.com/variadico/noti";
+
+ preBuild = ''
+ buildFlagsArray+=("-ldflags" "-X ${goPackagePath}/internal/command.Version=${version}")
+ '';
+
+ postInstall = ''
+ install -Dm444 -t $out/share/man/man1 $src/docs/man/*.1
+ install -Dm444 -t $out/share/man/man5 $src/docs/man/*.5
+ '';
+
+ meta = with lib; {
+ description = "Monitor a process and trigger a notification";
+ longDescription = ''
+ Monitor a process and trigger a notification.
+
+ Never sit and wait for some long-running process to finish. Noti can alert you when it's done. You can receive messages on your computer or phone.
+ '';
+ homepage = "https://github.com/variadico/noti";
+ license = licenses.mit;
+ maintainers = with maintainers; [ stites marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/notify-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/notify-desktop/default.nix
new file mode 100644
index 000000000000..61aa2c41c4fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/notify-desktop/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, dbus, pkgconfig }:
+
+stdenv.mkDerivation {
+ pname = "notify-desktop";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "nowrep";
+ repo = "notify-desktop";
+ rev = "9863919fb4ce7820810ac14a09a46ee73c3d56cc";
+ sha256 = "1brcvl2fx0yzxj9mc8hzfl32zdka1f1bxpzsclcsjplyakyinr1a";
+ };
+
+ buildInputs = [ dbus pkgconfig ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -m 755 bin/notify-desktop $out/bin/notify-desktop
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Little application that lets you send desktop notifications with one command";
+ longDescription = ''
+ It's basically clone of notify-send from libnotify,
+ but it supports reusing notifications on screen by passing its ID.
+ It also does not use any external dependencies (except from libdbus of course).
+ '';
+ homepage = "https://github.com/nowrep/notify-desktop";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ylwghst ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ntfy/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ntfy/default.nix
new file mode 100644
index 000000000000..593a8cfc637d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ntfy/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "ntfy";
+ version = "2.7.0";
+
+ src = fetchFromGitHub {
+ owner = "dschep";
+ repo = "ntfy";
+ rev = "v${version}";
+ sha256 = "09f02cn4i1l2aksb3azwfb70axqhn7d0d0vl2r6640hqr74nc1cv";
+ };
+
+ checkInputs = with python3Packages; [
+ mock
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ requests ruamel_yaml appdirs
+ sleekxmpp dns
+ emoji
+ psutil
+ matrix-client
+ dbus-python
+ ];
+
+ checkPhase = ''
+ HOME=$(mktemp -d) ${python3Packages.python.interpreter} setup.py test
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A utility for sending notifications, on demand and when commands finish";
+ homepage = "http://ntfy.rtfd.org/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jfrankenau kamilchm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/nyancat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/nyancat/default.nix
new file mode 100644
index 000000000000..d4092c237df7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/nyancat/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "nyancat";
+ version = "1.5.2";
+
+ src = fetchFromGitHub {
+ owner = "klange";
+ repo = "nyancat";
+ rev = version;
+ sha256 = "1mg8nm5xzcq1xr8cvx24ym2vmafkw53rijllwcdm9miiz0p5ky9k";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace /usr/bin "$out/bin" \
+ --replace /usr/share "$out/share"
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Nyancat in your terminal, rendered through ANSI escape sequences";
+ homepage = "https://nyancat.dakko.us";
+ license = licenses.ncsa;
+ maintainers = with maintainers; [ midchildan ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/oci-image-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/oci-image-tool/default.nix
new file mode 100644
index 000000000000..8cac6d1c3f5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/oci-image-tool/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "oci-image-tool";
+ version = "1.0.0-rc1";
+
+ goPackagePath = "github.com/opencontainers/image-tools";
+ subPackages = [ "cmd/oci-image-tool" ];
+
+ src = fetchFromGitHub {
+ owner = "opencontainers";
+ repo = "image-tools";
+ rev = "v${version}";
+ sha256 = "0c4n69smqlkf0r6khy9gbg5f810qh9g8jqsl9kibb0dyswizr14r";
+ };
+
+ meta = {
+ description = "A collection of tools for working with the OCI image format specification";
+ homepage = "https://github.com/opencontainers/image-tools";
+ license = lib.licenses.asl20;
+ maintainers = with lib.maintainers; [ nzhang-zh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix
new file mode 100644
index 000000000000..00926663a6c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, xorg, freetype, fontconfig, libGLU, libGL, glibc, makeWrapper }:
+
+let
+ system = if stdenv.hostPlatform.system == "x86_64-linux" then "linux64" else "linux32";
+in
+stdenv.mkDerivation rec {
+ pname = "ocz-ssd-guru";
+ version = "1.0.1170";
+
+ src = fetchurl {
+ url = "http://ocz.com/consumer/download/ssd-guru/SSDGuru_${version}.tar.gz";
+ sha256 = "0ri7qmpc1xpy12lpzl6k298c641wcibcwrzz8jn75wdg4rr176r5";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ libPath = stdenv.lib.makeLibraryPath [
+ xorg.libX11
+ xorg.libxcb
+ freetype
+ fontconfig
+ xorg.libXext
+ xorg.libXi
+ xorg.libXrender
+ stdenv.cc.cc
+ glibc
+ libGLU libGL
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ${system}/SSDGuru $out/bin/
+ rm -rf linux{32,64}
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath $libPath:$out \
+ $out/bin/SSDGuru
+
+ wrapProgram $out/bin/SSDGuru --prefix LD_LIBRARY_PATH : $libPath
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = {
+ homepage = "http://ocz.com/ssd-guru";
+ description = "SSD Management Tool for OCZ disks";
+ license = stdenv.lib.licenses.unfree;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ jagajaga ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/odroid-xu3-bootloader/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/odroid-xu3-bootloader/default.nix
new file mode 100644
index 000000000000..3896ca77a166
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/odroid-xu3-bootloader/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, coreutils, ubootOdroidXU3, runtimeShell }:
+
+stdenv.mkDerivation {
+ name = "odroid-xu3-bootloader-2015-12-04";
+
+ src = fetchFromGitHub {
+ owner = "hardkernel";
+ repo = "u-boot";
+ rev = "fe2f831fd44a4071f58a42f260164544697aa666";
+ sha256 = "1h5yvawzla0vqhkk98gxcwc824bhc936bh6j77qkyspvqcw761fr";
+ };
+
+ buildCommand = ''
+ install -Dm644 -t $out/lib/sd_fuse-xu3 $src/sd_fuse/hardkernel_1mb_uboot/{bl2,tzsw}.*
+ install -Dm644 -t $out/lib/sd_fuse-xu3 $src/sd_fuse/hardkernel/bl1.*
+ ln -sf ${ubootOdroidXU3}/u-boot-dtb.bin $out/lib/sd_fuse-xu3/u-boot-dtb.bin
+
+ install -Dm755 $src/sd_fuse/hardkernel_1mb_uboot/sd_fusing.1M.sh $out/bin/sd_fuse-xu3
+ sed -i \
+ -e '1i#!${runtimeShell}' \
+ -e '1iPATH=${lib.makeBinPath [ coreutils ]}:$PATH' \
+ -e '/set -x/d' \
+ -e 's,.\/sd_fusing\.sh,sd_fuse-xu3,g' \
+ -e "s,\./,$out/lib/sd_fuse-xu3/,g" \
+ $out/bin/sd_fuse-xu3
+ '';
+
+ meta = with stdenv.lib; {
+ platforms = platforms.linux;
+ license = licenses.unfreeRedistributableFirmware;
+ description = "Secure boot enabled boot loader for ODROID-XU{3,4}";
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/odyssey/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/odyssey/default.nix
new file mode 100644
index 000000000000..f736184ea50e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/odyssey/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, cmake, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "odyssey";
+ version = "1.0rc1";
+
+ src = fetchFromGitHub {
+ owner = "yandex";
+ repo = pname;
+ rev = version;
+ sha256 = "0p9zzazx3bhwz7sz8l757lwdj8qx0ij2k3g0d12prs0xfi1qhcmz";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ openssl ];
+
+ installPhase = ''
+ install -Dm755 -t $out/bin sources/odyssey
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Scalable PostgreSQL connection pooler";
+ homepage = "https://github.com/yandex/odyssey";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.marsam ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/onefetch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/onefetch/default.nix
new file mode 100644
index 000000000000..518ce223ed04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/onefetch/default.nix
@@ -0,0 +1,26 @@
+{ fetchFromGitHub, rustPlatform, stdenv, fetchpatch
+, CoreFoundation, libiconv, libresolv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "onefetch";
+ version = "2.4.0";
+
+ src = fetchFromGitHub {
+ owner = "o2sh";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-3bERQ480SuvrjyqlBd9wnE4iIJAbN8HODUj0X+Uxrvs=";
+ };
+
+ cargoSha256 = "sha256-Bq2ytwbdhYeXIUM4tYSfUamhckraH5w34sAQ96ayJxI=";
+
+ buildInputs = with stdenv;
+ lib.optionals isDarwin [ CoreFoundation libiconv libresolv Security ];
+
+ meta = with stdenv.lib; {
+ description = "Git repository summary on your terminal";
+ homepage = "https://github.com/o2sh/onefetch";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix
new file mode 100644
index 000000000000..11df20b3b827
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, libusb1, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = "OpenCorsairLink-${version}";
+ version = "2019-12-23";
+
+ buildInputs = [ libusb1 ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ src = fetchFromGitHub {
+ owner = "audiohacked";
+ repo = "OpenCorsairLink";
+ rev = "46dbf206e19a40d6de6bd73142ed93bdb26c5c1a";
+ sha256 = "1nizicl0mc9pslc6065mnrs0fnn8sh7ca8iiw7w9ix57zrhabpld";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Linux and Mac OS support for the CorsairLink Devices ";
+ homepage = "https://github.com/audiohacked/OpenCorsairLink";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = [ stdenv.lib.maintainers.expipiplus1 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/opentimestamps-client/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/opentimestamps-client/default.nix
new file mode 100644
index 000000000000..4d65a406e53a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/opentimestamps-client/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonApplication, fetchFromGitHub, isPy3k
+, opentimestamps, appdirs, GitPython, pysocks, fetchpatch, git
+}:
+
+buildPythonApplication rec {
+ pname = "opentimestamps-client";
+ version = "0.7.0";
+ disabled = (!isPy3k);
+
+ # We can't use the pypi source because it doesn't include README.md which is
+ # needed in setup.py
+ src = fetchFromGitHub {
+ owner = "opentimestamps";
+ repo = "opentimestamps-client";
+ rev = "opentimestamps-client-v${version}";
+ sha256 = "1aiq9cwr40md54swzm7wkwj0h65psxmvj2japvw79s9x0pp8iwqs";
+ };
+
+ propagatedBuildInputs = [ opentimestamps appdirs GitPython pysocks ];
+
+ meta = {
+ description = "Command-line tool to create and verify OpenTimestamps proofs";
+ homepage = "https://github.com/opentimestamps/opentimestamps-client";
+ license = lib.licenses.lgpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/opentsdb/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
new file mode 100644
index 000000000000..5429ecea2c65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, autoconf, automake, curl, fetchurl, jdk8, makeWrapper, nettools
+, python, git
+}:
+
+let jdk = jdk8; jre = jdk8.jre; in
+
+stdenv.mkDerivation rec {
+ pname = "opentsdb";
+ version = "2.4.0";
+
+ src = fetchurl {
+ url = "https://github.com/OpenTSDB/opentsdb/releases/download/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "0b0hilqmgz6n1q7irp17h48v8fjpxhjapgw1py8kyav1d51s7mm2";
+ };
+
+ buildInputs = [ autoconf automake curl jdk makeWrapper nettools python git ];
+
+ preConfigure = ''
+ patchShebangs ./build-aux/
+ ./bootstrap
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/tsdb \
+ --set JAVA_HOME "${jre}" \
+ --set JAVA "${jre}/bin/java"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Time series database with millisecond precision";
+ homepage = "http://opentsdb.net";
+ license = licenses.lgpl21Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ maintainers.ocharles ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
new file mode 100644
index 000000000000..e44999d1c348
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+ pname = "oppai-ng";
+ version = "3.3.0";
+
+ src = fetchFromGitHub {
+ owner = "Francesco149";
+ repo = pname;
+ rev = version;
+ sha256 = "0ymprwyv92pr58851wzryymhfznnpwcbg4m1yri0c9cyzvabwmfk";
+ };
+
+ buildPhase = ''
+ ./build
+ ./libbuild
+ '';
+
+ installPhase = ''
+ install -D oppai $out/bin/oppai
+ install -D oppai.c $out/include/oppai.c
+ install -D liboppai.so $out/lib/liboppai.so
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Difficulty and pp calculator for osu!";
+ homepage = "https://github.com/Francesco149/oppai-ng";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ tadeokondrak ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/os-prober/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/os-prober/default.nix
new file mode 100644
index 000000000000..9b2afed0a9a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/os-prober/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchFromGitLab, makeWrapper, nixosTests,
+# optional dependencies, the command(s) they provide
+coreutils, # mktemp
+grub2, # grub-mount and grub-probe
+cryptsetup, # cryptsetup
+libuuid, # blkid and blockdev
+udev, # udevadm udevinfo
+ntfs3g, # ntfs3g
+dmraid, # dmraid
+lvm2 # lvs
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.77";
+ pname = "os-prober";
+ src = fetchFromGitLab {
+ domain = "salsa.debian.org";
+ owner = "installer-team";
+ repo = pname;
+ rev = version;
+ sha256 = "05sji756xdl67pp2sf7rk0ih9h6f6kgk9nvxlyv1bzbmcizlh2d2";
+ };
+
+ buildInputs = [ makeWrapper ];
+ installPhase = ''
+ # executables
+ install -Dt $out/bin os-prober linux-boot-prober
+ install -Dt $out/lib newns
+ install -Dt $out/share common.sh
+
+ # probes
+ case "${stdenv.hostPlatform.system}" in
+ i686*|x86_64*) ARCH=x86;;
+ powerpc*) ARCH=powerpc;;
+ arm*) ARCH=arm;;
+ *) ARCH=other;;
+ esac;
+ for probes in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do
+ install -Dt $out/lib/$probes $probes/common/*;
+ if [ -e "$probes/$ARCH" ]; then
+ mkdir -p $out/lib/$probes
+ cp -r $probes/$ARCH/* $out/lib/$probes;
+ fi;
+ done
+ if [ $ARCH = "x86" ]; then
+ cp -r os-probes/mounted/powerpc/20macosx $out/lib/os-probes/mounted;
+ fi;
+ '';
+ postFixup = ''
+ for file in $(find $out -type f ! -name newns) ; do
+ substituteInPlace $file \
+ --replace /usr/share/os-prober/ $out/share/ \
+ --replace /usr/lib/os-probes/ $out/lib/os-probes/ \
+ --replace /usr/lib/linux-boot-probes/ $out/lib/linux-boot-probes/ \
+ --replace /usr/lib/os-prober/ $out/lib/
+ done;
+ for file in $out/bin/*; do
+ wrapProgram $file \
+ --suffix PATH : ${stdenv.lib.makeBinPath [ grub2 udev coreutils cryptsetup libuuid ntfs3g lvm2 dmraid ]} \
+ --run "[ -d /var/lib/os-prober ] || mkdir /var/lib/os-prober"
+ done;
+ '';
+
+ passthru.tests = {
+ os-prober = nixosTests.os-prober;
+ };
+ meta = with stdenv.lib; {
+ description = "Utility to detect other OSs on a set of drives";
+ homepage = "http://packages.debian.org/source/sid/os-prober";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
new file mode 100644
index 000000000000..c0921a496cc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, glib, libxml2, perl, python3
+, libxslt, libarchive, bzip2, lzma, json-glib, libsoup
+}:
+
+stdenv.mkDerivation rec {
+ pname = "osinfo-db-tools";
+ version = "1.8.0";
+
+ src = fetchurl {
+ url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
+ sha256 = "038q3gzdbkfkhpicj0755mw1q4gbvn57pslpw8n2dp3lds9im0g9";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig gettext perl python3 ];
+ buildInputs = [ glib json-glib libxml2 libxslt libarchive bzip2 lzma libsoup ];
+
+ meta = with stdenv.lib; {
+ description = "Tools for managing the osinfo database";
+ homepage = "https://libosinfo.org/";
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix
new file mode 100644
index 000000000000..ebe99eca8cf9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, expat
+, proj
+, bzip2
+, zlib
+, boost
+, postgresql
+, withLuaJIT ? false
+, lua
+, luajit
+, libosmium
+, protozero
+}:
+
+stdenv.mkDerivation rec {
+ pname = "osm2pgsql";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "openstreetmap";
+ repo = pname;
+ rev = version;
+ sha256 = "1dsyhcifixmcw05qxjald02pml0zfdij81pgy9yh8p00v0rqq57x";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ expat proj bzip2 zlib boost postgresql libosmium protozero ]
+ ++ stdenv.lib.optional withLuaJIT luajit
+ ++ stdenv.lib.optional (!withLuaJIT) lua;
+
+ cmakeFlags = [ "-DEXTERNAL_LIBOSMIUM=ON" "-DEXTERNAL_PROTOZERO=ON" ]
+ ++ stdenv.lib.optional withLuaJIT "-DWITH_LUAJIT:BOOL=ON";
+
+ NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
+
+ meta = with stdenv.lib; {
+ description = "OpenStreetMap data to PostgreSQL converter";
+ homepage = "https://github.com/openstreetmap/osm2pgsql";
+ license = licenses.gpl2;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ jglukasik das-g ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
new file mode 100644
index 000000000000..a6b7af5f1c79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
@@ -0,0 +1,270 @@
+From 977fdfad2ceba7232b4f78144b20640d7fd0aedb Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Tue, 19 Jun 2018 09:34:18 -0400
+Subject: [PATCH] Drop "ostree trivial-httpd" CLI, move to tests directory
+
+See https://github.com/ostreedev/ostree/issues/1593
+
+Basically this makes it easier for people packaging, as the trivial-httpd
+is only for tests, and this way the binary will live with the tests.
+
+Also at this point nothing should depend on `ostree trivial-httpd`.
+---
+ Makefile-man.am | 6 --
+ Makefile-ostree.am | 7 ---
+ Makefile-tests.am | 7 +++
+ configure.ac | 9 ---
+ man/ostree-trivial-httpd.xml | 118 -----------------------------------
+ src/ostree/main.c | 5 --
+ tests/libtest.sh | 13 ++--
+ 7 files changed, 12 insertions(+), 153 deletions(-)
+ delete mode 100644 man/ostree-trivial-httpd.xml
+
+diff --git a/Makefile-man.am b/Makefile-man.am
+index bc58103b..bcfde285 100644
+--- a/Makefile-man.am
++++ b/Makefile-man.am
+@@ -34,12 +34,6 @@ ostree-init.1 ostree-log.1 ostree-ls.1 ostree-prune.1 ostree-pull-local.1 \
+ ostree-pull.1 ostree-refs.1 ostree-remote.1 ostree-reset.1 \
+ ostree-rev-parse.1 ostree-show.1 ostree-summary.1 \
+ ostree-static-delta.1
+-if USE_LIBSOUP
+-man1_files += ostree-trivial-httpd.1
+-else
+-# We still want to distribute the source, even if we are not building it
+-EXTRA_DIST += man/ostree-trivial-httpd.xml
+-endif
+
+ if BUILDOPT_FUSE
+ man1_files += rofiles-fuse.1
+diff --git a/Makefile-ostree.am b/Makefile-ostree.am
+index f861afe4..497d99b0 100644
+--- a/Makefile-ostree.am
++++ b/Makefile-ostree.am
+@@ -144,13 +144,6 @@ ostree_SOURCES += src/ostree/ot-builtin-pull.c
+ endif
+
+ if USE_LIBSOUP
+-# Eventually once we stop things from using this, we should support disabling this
+-ostree_SOURCES += src/ostree/ot-builtin-trivial-httpd.c
+-pkglibexec_PROGRAMS += ostree-trivial-httpd
+-ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
+-ostree_trivial_httpd_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
+-ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS)
+-
+ if !USE_CURL
+ # This is necessary for the cookie jar bits
+ ostree_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS)
+diff --git a/Makefile-tests.am b/Makefile-tests.am
+index fc2f2d91..7343b63f 100644
+--- a/Makefile-tests.am
++++ b/Makefile-tests.am
+@@ -263,6 +263,13 @@ _installed_or_uninstalled_test_programs += \
+ $(NULL)
+ endif
+
++if USE_LIBSOUP
++test_extra_programs += ostree-trivial-httpd
++ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
++ostree_trivial_httpd_CFLAGS = $(common_tests_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
++ostree_trivial_httpd_LDADD = $(common_tests_ldadd) $(OT_INTERNAL_SOUP_LIBS)
++endif
++
+ if USE_AVAHI
+ test_programs += tests/test-repo-finder-avahi
+ endif
+diff --git a/configure.ac b/configure.ac
+index 46a900f5..2f91cdec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -190,14 +190,6 @@ if test x$with_soup != xno; then OSTREE_FEATURES="$OSTREE_FEATURES libsoup"; fi
+ AM_CONDITIONAL(USE_LIBSOUP, test x$with_soup != xno)
+ AM_CONDITIONAL(HAVE_LIBSOUP_CLIENT_CERTS, test x$have_libsoup_client_certs = xyes)
+
+-AC_ARG_ENABLE(trivial-httpd-cmdline,
+- [AS_HELP_STRING([--enable-trivial-httpd-cmdline],
+- [Continue to support "ostree trivial-httpd" [default=no]])],,
+- enable_trivial_httpd_cmdline=no)
+-AS_IF([test x$enable_trivial_httpd_cmdline = xyes],
+- [AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])]
+-)
+-
+ AS_IF([test x$with_curl = xyes && test x$with_soup = xno], [
+ AC_MSG_WARN([Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)])
+ ])
+@@ -617,7 +609,6 @@ echo "
+ Rust (internal oxidation): $rust_debug_release
+ rofiles-fuse: $enable_rofiles_fuse
+ HTTP backend: $fetcher_backend
+- \"ostree trivial-httpd\": $enable_trivial_httpd_cmdline
+ SELinux: $with_selinux
+ cryptographic checksums: $with_crypto
+ systemd: $have_libsystemd
+diff --git a/man/ostree-trivial-httpd.xml b/man/ostree-trivial-httpd.xml
+deleted file mode 100644
+index d03c12be..00000000
+--- a/man/ostree-trivial-httpd.xml
++++ /dev/null
+@@ -1,118 +0,0 @@
+-<?xml version='1.0'?> <!--*-nxml-*-->
+-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+-
+-<!--
+-Copyright 2011,2013 Colin Walters <walters@verbum.org>
+-
+-SPDX-License-Identifier: LGPL-2.0+
+-
+-This library is free software; you can redistribute it and/or
+-modify it under the terms of the GNU Lesser General Public
+-License as published by the Free Software Foundation; either
+-version 2 of the License, or (at your option) any later version.
+-
+-This library is distributed in the hope that it will be useful,
+-but WITHOUT ANY WARRANTY; without even the implied warranty of
+-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-Lesser General Public License for more details.
+-
+-You should have received a copy of the GNU Lesser General Public
+-License along with this library; if not, write to the
+-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+-Boston, MA 02111-1307, USA.
+--->
+-
+-<refentry id="ostree">
+-
+- <refentryinfo>
+- <title>ostree trivial-httpd</title>
+- <productname>OSTree</productname>
+-
+- <authorgroup>
+- <author>
+- <contrib>Developer</contrib>
+- <firstname>Colin</firstname>
+- <surname>Walters</surname>
+- <email>walters@verbum.org</email>
+- </author>
+- </authorgroup>
+- </refentryinfo>
+-
+- <refmeta>
+- <refentrytitle>ostree trivial-httpd</refentrytitle>
+- <manvolnum>1</manvolnum>
+- </refmeta>
+-
+- <refnamediv>
+- <refname>ostree-trivial-httpd</refname>
+- <refpurpose>Simple webserver</refpurpose>
+- </refnamediv>
+-
+- <refsynopsisdiv>
+- <cmdsynopsis>
+- <command>ostree trivial-httpd</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">DIR</arg>
+- </cmdsynopsis>
+- </refsynopsisdiv>
+-
+-<!-- Don't entirely understand this command. Needs details, better content-->
+- <refsect1>
+- <title>Description</title>
+-
+- <para>
+- This runs a simple webserver and keeps it running until killed. If DIR is not specified, it defaults to the current directory.
+- </para>
+- </refsect1>
+-
+- <refsect1>
+- <title>Options</title>
+-
+- <variablelist>
+- <varlistentry>
+- <term><option>--daemonize</option>,<option>-d</option></term>
+-
+- <listitem><para>
+- Fork into background when ready.
+- </para></listitem>
+- </varlistentry>
+-
+- <varlistentry>
+- <term><option>--autoexit</option></term>
+-
+- <listitem><para>
+- Automatically exit when directory is deleted.
+- </para></listitem>
+- </varlistentry>
+-
+- <varlistentry>
+- <term><option>--port-file</option>,<option>-p</option>="PATH"</term>
+-
+- <listitem><para>
+- Write port number to PATH (- for standard output).
+- </para></listitem>
+- </varlistentry>
+-
+- <varlistentry>
+- <term><option>--port</option>,<option>-P</option></term>
+-
+- <listitem><para>
+- Use the specified TCP port to listen on.
+- </para></listitem>
+- </varlistentry>
+-
+- <varlistentry>
+- <term><option>--force-range-requests</option></term>
+-
+- <listitem><para>
+- Force range requests by only serving half of files.
+- </para></listitem>
+- </varlistentry>
+- </variablelist>
+- </refsect1>
+-
+-<!-- NEED EXAMPLE OUTPUT HERE!-->
+- <refsect1>
+- <title>Example</title>
+- <para><command>$ ostree trivial-httpd</command></para>
+- </refsect1>
+-</refentry>
+diff --git a/src/ostree/main.c b/src/ostree/main.c
+index a523ff9a..61ea742d 100644
+--- a/src/ostree/main.c
++++ b/src/ostree/main.c
+@@ -118,11 +118,6 @@ static OstreeCommand commands[] = {
+ { "summary", OSTREE_BUILTIN_FLAG_NONE,
+ ostree_builtin_summary,
+ "Manage summary metadata" },
+-#if defined(HAVE_LIBSOUP) && defined(BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE)
+- { "trivial-httpd", OSTREE_BUILTIN_FLAG_NONE,
+- ostree_builtin_trivial_httpd,
+- NULL },
+-#endif
+ { NULL }
+ };
+
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index 3f5fd931..eacd96de 100755
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -160,15 +160,12 @@ fi
+ if test -n "${OSTREE_UNINSTALLED:-}"; then
+ OSTREE_HTTPD=${OSTREE_UNINSTALLED}/ostree-trivial-httpd
+ else
+- # trivial-httpd is now in $libexecdir by default, which we don't
+- # know at this point. Fortunately, libtest.sh is also in
+- # $libexecdir, so make an educated guess. If it's not found, assume
+- # it's still runnable as "ostree trivial-httpd".
+- if [ -x "${test_srcdir}/../../libostree/ostree-trivial-httpd" ]; then
+- OSTREE_HTTPD="${CMD_PREFIX} ${test_srcdir}/../../libostree/ostree-trivial-httpd"
+- else
+- OSTREE_HTTPD="${CMD_PREFIX} ostree trivial-httpd"
++ # trivial-httpd is now the test directory.
++ OSTREE_HTTPD="${G_TEST_BUILDDIR}/ostree-trivial-httpd"
++ if ! [ -x "${OSTREE_HTTPD}" ]; then
++ fatal "Failed to find ${OSTREE_HTTPD}"
+ fi
++ OSTREE_HTTPD="${CMD_PREFIX} ${OSTREE_HTTPD}"
+ fi
+
+ files_are_hardlinked() {
+--
+2.25.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix
new file mode 100644
index 000000000000..fd1bfc7f8c79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, substituteAll
+, pkg-config
+, gtk-doc
+, gobject-introspection
+, gjs
+, nixosTests
+, glib
+, systemd
+, xz
+, e2fsprogs
+, libsoup
+, gpgme
+, which
+, makeWrapper
+, autoconf
+, automake
+, libtool
+, fuse
+, utillinuxMinimal
+, libselinux
+, libsodium
+, libarchive
+, libcap
+, bzip2
+, yacc
+, libxslt
+, docbook-xsl-nons
+, docbook_xml_dtd_42
+, openssl
+, python3
+}:
+
+let
+ testPython = (python3.withPackages (p: with p; [
+ pyyaml
+ ]));
+in stdenv.mkDerivation rec {
+ pname = "ostree";
+ version = "2020.5";
+
+ outputs = [ "out" "dev" "man" "installedTests" ];
+
+ src = fetchurl {
+ url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
+ sha256 = "1k92177hjalbdpmg45ymwwrni68vh9rs5x9zvy5fzl9lng12fgpb";
+ };
+
+ patches = [
+ # Tests access the helper using relative path
+ # https://github.com/ostreedev/ostree/issues/1593
+ # Patch from https://github.com/ostreedev/ostree/pull/1633
+ ./01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
+
+ # Workarounds for https://github.com/ostreedev/ostree/issues/1592
+ ./fix-1592.patch
+
+ # Hard-code paths in tests
+ (substituteAll {
+ src = ./fix-test-paths.patch;
+ python3 = testPython.interpreter;
+ openssl = "${openssl}/bin/openssl";
+ })
+ ];
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ libtool
+ pkg-config
+ gtk-doc
+ gobject-introspection
+ which
+ makeWrapper
+ yacc
+ libxslt
+ docbook-xsl-nons
+ docbook_xml_dtd_42
+ ];
+
+ buildInputs = [
+ glib
+ systemd
+ e2fsprogs
+ libsoup
+ gpgme
+ fuse
+ libselinux
+ libsodium
+ libcap
+ libarchive
+ bzip2
+ xz
+ utillinuxMinimal # for libmount
+
+ # for installed tests
+ testPython
+ gjs
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+ "--with-systemdsystemgeneratordir=${placeholder "out"}/lib/systemd/system-generators"
+ "--enable-installed-tests"
+ "--with-ed25519-libsodium"
+ ];
+
+ makeFlags = [
+ "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/libostree"
+ "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree"
+ ];
+
+ preConfigure = ''
+ env NOCONFIGURE=1 ./autogen.sh
+ '';
+
+ postFixup = let
+ typelibPath = stdenv.lib.makeSearchPath "/lib/girepository-1.0" [
+ (placeholder "out")
+ gobject-introspection
+ ];
+ in ''
+ for test in $installedTests/libexec/installed-tests/libostree/*.js; do
+ wrapProgram "$test" --prefix GI_TYPELIB_PATH : "${typelibPath}"
+ done
+ '';
+
+ passthru = {
+ tests = {
+ installedTests = nixosTests.installed-tests.ostree;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Git for operating system binaries";
+ homepage = "https://ostree.readthedocs.io/en/latest/";
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ copumpkin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-1592.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-1592.patch
new file mode 100644
index 000000000000..1eccd74bfa7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-1592.patch
@@ -0,0 +1,138 @@
+diff --git a/tests/pull-test.sh b/tests/pull-test.sh
+index a8bc49a9..4a08ebb5 100644
+--- a/tests/pull-test.sh
++++ b/tests/pull-test.sh
+@@ -275,7 +275,7 @@
+ if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo 2>err.txt; then
+ fatal "pull with mixed refs succeeded?"
+ fi
+-assert_file_has_content err.txt "error: Invalid ref name origin:main"
++assert_file_has_content err.txt "Invalid ref name origin:main"
+ ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo localbranch
+ ${CMD_PREFIX} ostree --repo=mirrorrepo-local rev-parse localbranch
+ ${CMD_PREFIX} ostree --repo=mirrorrepo-local fsck
+@@ -286,7 +286,7 @@
+ fatal "pulled nonexistent branch"
+ fi
+ # So true
+-assert_file_has_content_literal err.txt "error: Refspec 'nosuchbranch' not found"
++assert_file_has_content_literal err.txt "Refspec 'nosuchbranch' not found"
+ echo "ok pull-local nonexistent branch"
+
+ cd ${test_tmpdir}
+@@ -593,5 +593,5 @@
+ if ${CMD_PREFIX} ostree --repo=repo pull origin main 2>err.txt; then
+ fatal "pull of invalid ref succeeded"
+ fi
+-assert_file_has_content_literal err.txt 'error: Fetching checksum for ref ((empty), main): Invalid rev lots of html here lots of html here lots of html here lots of'
++assert_file_has_content_literal err.txt 'Fetching checksum for ref ((empty), main): Invalid rev lots of html here lots of html here lots of html here lots of'
+ echo "ok pull got HTML for a ref"
+diff --git a/tests/test-config.sh b/tests/test-config.sh
+index 7e913d32..69d1675d 100755
+--- a/tests/test-config.sh
++++ b/tests/test-config.sh
+@@ -46,7 +46,7 @@
+ if ${CMD_PREFIX} ostree config --repo=repo get --group=core lock-timeout-secs extra 2>err.txt; then
+ assert_not_reached "ostree config get should error out if too many arguments are given"
+ fi
+-assert_file_has_content err.txt "error: Too many arguments given"
++assert_file_has_content err.txt "Too many arguments given"
+ echo "ok config get"
+
+ ${CMD_PREFIX} ostree config --repo=repo set core.mode bare-user-only
+@@ -63,7 +63,7 @@
+ if ${CMD_PREFIX} ostree config --repo=repo set --group=core lock-timeout-secs 120 extra 2>err.txt; then
+ assert_not_reached "ostree config set should error out if too many arguments are given"
+ fi
+-assert_file_has_content err.txt "error: Too many arguments given"
++assert_file_has_content err.txt "Too many arguments given"
+ echo "ok config set"
+
+ # Check that "ostree config unset" works
+@@ -78,7 +78,7 @@
+ fi
+ # Check for any character where quotation marks would be as they appear differently in the Fedora and Debian
+ # test suites (“” and '' respectively). See: https://github.com/ostreedev/ostree/pull/1839
+-assert_file_has_content err.txt "error: Key file does not have key .lock-timeout-secs. in group .core."
++assert_file_has_content err.txt "Key file does not have key .lock-timeout-secs. in group .core."
+
+ # Check that it's idempotent
+ ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs
+@@ -95,5 +95,5 @@
+ if ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs extra 2>err.txt; then
+ assert_not_reached "ostree config unset should error out if too many arguments are given"
+ fi
+-assert_file_has_content err.txt "error: Too many arguments given"
++assert_file_has_content err.txt "Too many arguments given"
+ echo "ok config unset"
+diff --git a/tests/test-fsck-collections.sh b/tests/test-fsck-collections.sh
+index dc6bcfeb..4a5eef55 100755
+--- a/tests/test-fsck-collections.sh
++++ b/tests/test-fsck-collections.sh
+@@ -100,7 +100,7 @@
+ if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
+ assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
+ fi
+-assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref1’)"
++assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+
+ echo "ok 3 fsck detects missing ref bindings"
+@@ -113,7 +113,7 @@
+ if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
+ assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
+ fi
+-assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref1’)"
++assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+ assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
+
+@@ -127,7 +127,7 @@
+ if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
+ assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
+ fi
+-assert_file_has_content fsck-error "Commit has collection ID ‘org\.example\.Collection’ in collection binding metadata, while the remote it came from has collection ID ‘org\.example\.Collection2’"
++assert_file_has_content fsck-error "Commit has collection ID .org\.example\.Collection. in collection binding metadata, while the remote it came from has collection ID .org\.example\.Collection2."
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+ assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
+
+@@ -147,7 +147,7 @@
+ if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
+ assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
+ fi
+-assert_file_has_content fsck-error "Collection–ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist"
++assert_file_has_content fsck-error 'Collection.ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist'
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+ assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
+
+@@ -186,7 +186,7 @@
+ if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
+ assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
+ fi
+-assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref3’, ‘ref4’)"
++assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref3., .ref4.)"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+
+ echo "ok 9 fsck detects missing ref bindings"
+@@ -205,7 +205,7 @@
+ if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
+ assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
+ fi
+-assert_file_has_content fsck-error "Ref ‘ref3’ in bindings for commit .* does not exist"
++assert_file_has_content fsck-error 'Ref .ref3. in bindings for commit .* does not exist'
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+
+ echo "ok 11 fsck ignores unreferenced ref bindings"
+diff --git a/tests/test-remote-add.sh b/tests/test-remote-add.sh
+index bb7eae89..62a3bcd7 100755
+--- a/tests/test-remote-add.sh
++++ b/tests/test-remote-add.sh
+@@ -83,7 +83,7 @@
+ if $OSTREE remote delete nosuchremote 2>err.txt; then
+ assert_not_reached "Deleting remote unexpectedly succeeded"
+ fi
+-assert_file_has_content err.txt "error: "
++assert_file_has_content err.txt "not found"
+
+ $OSTREE remote delete --if-exists nosuchremote
+ echo "ok"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch
new file mode 100644
index 000000000000..3e5b7e06999e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch
@@ -0,0 +1,55 @@
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index ca457fa2..c0a529ff 100755
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -709,12 +709,12 @@ gen_ed25519_keys ()
+ {
+ # Generate private key in PEM format
+ pemfile="$(mktemp -p ${test_tmpdir} ed25519_XXXXXX.pem)"
+- openssl genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
++ @openssl@ genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
+
+ # Based on: http://openssl.6102.n7.nabble.com/ed25519-key-generation-td73907.html
+ # Extract the private and public parts from generated key.
+- ED25519PUBLIC="$(openssl pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
+- ED25519SEED="$(openssl pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
++ ED25519PUBLIC="$(@openssl@ pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
++ ED25519SEED="$(@openssl@ pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
+ # Secret key is concantination of SEED and PUBLIC
+ ED25519SECRET="$(echo ${ED25519SEED}${ED25519PUBLIC} | base64 -d | base64 -w 0)"
+
+@@ -725,7 +725,7 @@ gen_ed25519_keys ()
+
+ gen_ed25519_random_public()
+ {
+- openssl genpkey -algorithm ED25519 | openssl pkey -outform DER | tail -c 32 | base64
++ @openssl@ genpkey -algorithm ED25519 | @openssl@ pkey -outform DER | tail -c 32 | base64
+ }
+
+ is_bare_user_only_repo () {
+diff --git a/tests/test-basic-user-only.sh b/tests/test-basic-user-only.sh
+index f65094fd..105be893 100755
+--- a/tests/test-basic-user-only.sh
++++ b/tests/test-basic-user-only.sh
+@@ -29,7 +29,7 @@ extra_basic_tests=5
+ . $(dirname $0)/basic-test.sh
+
+ $CMD_PREFIX ostree --version > version.yaml
+-python3 -c 'import yaml; yaml.safe_load(open("version.yaml"))'
++@python3@ -c 'import yaml; yaml.safe_load(open("version.yaml"))'
+ echo "ok yaml version"
+
+ # Reset things so we don't inherit a lot of state from earlier tests
+diff --git a/tests/test-remote-headers.sh b/tests/test-remote-headers.sh
+index a41d087a..77b34c90 100755
+--- a/tests/test-remote-headers.sh
++++ b/tests/test-remote-headers.sh
+@@ -26,7 +26,7 @@ echo '1..2'
+ . $(dirname $0)/libtest.sh
+
+ V=$($CMD_PREFIX ostree --version | \
+- python3 -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])')
++ @python3@ -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])')
+
+ setup_fake_remote_repo1 "archive" "" \
+ --expected-header foo=bar \
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/default.nix
new file mode 100644
index 000000000000..dc7e3effe0a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, premake5 }:
+
+stdenv.mkDerivation rec {
+ pname = "otfcc";
+ version = "0.10.4";
+
+ src = fetchFromGitHub {
+ owner = "caryll";
+ repo = "otfcc";
+ rev = "v${version}";
+ sha256 = "1nrkzpqklfpqsccji4ans40rj88l80cv7dpxwx4g577xrvk13a0f";
+ };
+
+ nativeBuildInputs = [ premake5 ];
+
+ patches = [
+ ./fix-aarch64.patch
+ ./move-makefiles.patch
+ ];
+
+ buildFlags = stdenv.lib.optional stdenv.isAarch64 [ "config=release_arm" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/release-*/otfcc* $out/bin/
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Optimized OpenType builder and inspector";
+ homepage = "https://github.com/caryll/otfcc";
+ license = licenses.asl20;
+ platforms = [ "aarch64-linux" "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ jfrankenau ttuegel ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch
new file mode 100644
index 000000000000..80fcb625658f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch
@@ -0,0 +1,22 @@
+diff --git a/premake5.lua b/premake5.lua
+index 997fd79..54a20a0 100644
+--- a/premake5.lua
++++ b/premake5.lua
+@@ -49,7 +49,7 @@ end
+ workspace "otfcc"
+ configurations { "release", "debug" }
+
+- platforms { "x64", "x86" }
++ platforms { "x64", "x86", "arm" }
+ filter "action:xcode4"
+ platforms { "x64" }
+ filter {}
+@@ -67,6 +67,8 @@ workspace "otfcc"
+ architecture "x86"
+ filter "platforms:x64"
+ architecture "x64"
++ filter "platforms:arm"
++ architecture "arm"
+ filter {}
+
+ filter "action:vs2017"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch
new file mode 100644
index 000000000000..961c47b3b45a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch
@@ -0,0 +1,13 @@
+diff --git a/premake5.lua b/premake5.lua
+index 997fd79..54a20a0 100644
+--- a/premake5.lua
++++ b/premake5.lua
+@@ -88,7 +90,7 @@ workspace "otfcc"
+ flags { "StaticRuntime" }
+ includedirs { "dep/polyfill-msvc" }
+ filter "action:gmake"
+- location "build/gmake"
++ location "."
+ filter "action:xcode4"
+ location "build/xcode"
+ filter {}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/page/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/page/default.nix
new file mode 100644
index 000000000000..c93084a16d7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/page/default.nix
@@ -0,0 +1,31 @@
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "page";
+ version = "2.3.4";
+
+ src = fetchFromGitHub {
+ owner = "I60R";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0xcbnl8fbdfdmcbv5d7v830aa3vfhg7nlf768rbrfd5a0970pllh";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ completions_dir=$(find "target" -name "shell_completions" -type d -printf "%T+\t%p\n" | sort | awk 'NR==1{print $2}')
+
+ installShellCompletion --bash $completions_dir/page.bash
+ installShellCompletion --fish $completions_dir/page.fish
+ installShellCompletion --zsh $completions_dir/_page
+ '';
+
+ cargoSha256 = "0ckfmqi6jvbvj99vbdp798mmy6gc54254n32br0ri842b04i26qf";
+
+ meta = with lib; {
+ description = "Use neovim as pager";
+ homepage = "https://github.com/I60R/page";
+ license = licenses.mit;
+ maintainers = [ maintainers.s1341 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pal/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pal/default.nix
new file mode 100644
index 000000000000..c285dc2463bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pal/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, glib, gettext, readline, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = "pal-0.4.3";
+ src = fetchurl {
+ url = "mirror://sourceforge/palcal/${name}.tgz";
+ sha256 = "072mahxvd7lcvrayl32y589w4v3vh7bmlcnhiksjylknpsvhqiyf";
+ };
+
+ patchPhase = ''
+ sed -i -e 's/-o root//' -e 's,ESTDIR}/etc,ESTDIR}'$out/etc, src/Makefile
+ sed -i -e 's,/etc/pal\.conf,'$out/etc/pal.conf, src/input.c
+ '';
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib gettext readline ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ homepage = "http://palcal.sourceforge.net/";
+ description = "Command-line calendar program that can keep track of events";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-imagine/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-imagine/default.nix
new file mode 100644
index 000000000000..67e27da960fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-imagine/default.nix
@@ -0,0 +1,28 @@
+{ fetchFromGitHub, buildPythonApplication, lib, pandocfilters, six }:
+
+buildPythonApplication rec {
+ pname = "pandoc-imagine";
+ version = "0.1.6";
+
+ src = fetchFromGitHub {
+ repo = "imagine";
+ owner = "hertogp";
+ rev = version;
+ sha256 = "1wpnckc7qyrf6ga5xhr6gv38k1anpy9nx888n7n3rh6nixzcz2dw";
+ };
+
+ propagatedBuildInputs = [ pandocfilters six ];
+
+ # No tests in archive
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = src.meta.homepage;
+ description = ''
+ A pandoc filter that will turn code blocks tagged with certain classes
+ into images or ASCII art
+ '';
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ synthetica ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
new file mode 100644
index 000000000000..cdf0ab862df4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonApplication
+, fetchPypi
+, pandocfilters
+, lib
+}:
+
+buildPythonApplication rec {
+ pname = "pandoc-plantuml-filter";
+ version = "0.1.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "08673mfwxsw6s52mgglbdz7ybb68svqyr3s9w97d7rifbwvvc9ia";
+ };
+
+ propagatedBuildInputs = [
+ pandocfilters
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/timofurrer/pandoc-plantuml-filter";
+ description = "Pandoc filter which converts PlantUML code blocks to PlantUML images";
+ license = licenses.mit;
+ maintainers = with maintainers; [ cmcdragonkai ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/paps/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/paps/default.nix
new file mode 100644
index 000000000000..8084f49f1b38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/paps/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub
+, autoconf, automake, pkgconfig, intltool, pango }:
+
+stdenv.mkDerivation rec {
+ pname = "paps";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "dov";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "129wpm2ayxs6qfh2761d4x9c034ivb2bcmmcnl56qs4448qb9495";
+ };
+
+ nativeBuildInputs = [ autoconf automake pkgconfig intltool ];
+ buildInputs = [ pango ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Pango to PostScript converter";
+ homepage = "https://github.com/dov/paps";
+ license = licenses.lgpl2;
+ maintainers = with maintainers; [ etu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/default.nix
new file mode 100644
index 000000000000..e99f2aa12d5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/default.nix
@@ -0,0 +1,47 @@
+{ fetchurl, stdenv, perl, makeWrapper, procps }:
+
+stdenv.mkDerivation rec {
+ name = "parallel-20200822";
+
+ src = fetchurl {
+ url = "mirror://gnu/parallel/${name}.tar.bz2";
+ sha256 = "02dy46g6f05p7s2qs8h6yg20p1zl3flxxf77n5jw74l3h1m24m4n";
+ };
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perl procps ];
+
+ postInstall = ''
+ wrapProgram $out/bin/parallel \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ procps perl ]}"
+ '';
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Shell tool for executing jobs in parallel";
+ longDescription =
+ '' GNU Parallel is a shell tool for executing jobs in parallel. A job
+ is typically a single command or a small script that has to be run
+ for each of the lines in the input. The typical input is a list of
+ files, a list of hosts, a list of users, or a list of tables.
+
+ If you use xargs today you will find GNU Parallel very easy to use.
+ If you write loops in shell, you will find GNU Parallel may be able
+ to replace most of the loops and make them run faster by running
+ jobs in parallel. If you use ppss or pexec you will find GNU
+ Parallel will often make the command easier to read.
+
+ GNU Parallel makes sure output from the commands is the same output
+ as you would get had you run the commands sequentially. This makes
+ it possible to use output from GNU Parallel as input for other
+ programs.
+ '';
+ homepage = "https://www.gnu.org/software/parallel/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub vrthra tomberek ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/wrapper.nix
new file mode 100644
index 000000000000..b85dfc56f3d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/parallel/wrapper.nix
@@ -0,0 +1,13 @@
+{ parallel, makeWrapper , runCommand
+, perlPackages
+, extraPerlPackages ?
+ with perlPackages; [ DBI DBDPg DBDSQLite DBDCSV TextCSV ]
+}:
+
+runCommand "parallel-full" {
+ nativeBuildInputs = [ makeWrapper ];
+ } ''
+ mkdir -p $out/bin
+ makeWrapper ${parallel}/bin/parallel $out/bin/parallel \
+ --set PERL5LIB "${perlPackages.makeFullPerlPath extraPerlPackages}"
+ ''
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/parcellite/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/parcellite/default.nix
new file mode 100644
index 000000000000..97c67f59b084
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/parcellite/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, autoreconfHook
+, gtk2, hicolor-icon-theme, intltool, pkgconfig
+, which, wrapGAppsHook, xdotool }:
+
+stdenv.mkDerivation rec {
+ pname = "parcellite";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "rickyrockrat";
+ repo = "parcellite";
+ rev = version;
+ sha256 = "19q4x6x984s6gxk1wpzaxawgvly5vnihivrhmja2kcxhzqrnfhiy";
+ };
+
+ nativeBuildInputs = [ autoreconfHook intltool pkgconfig wrapGAppsHook ];
+ buildInputs = [ gtk2 hicolor-icon-theme ];
+ NIX_LDFLAGS = "-lgio-2.0";
+
+ preFixup = ''
+ # Need which and xdotool on path to fix auto-pasting.
+ gappsWrapperArgs+=(--prefix PATH : "${which}/bin:${xdotool}/bin")
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Lightweight GTK clipboard manager";
+ homepage = "https://github.com/rickyrockrat/parcellite";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/parted/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/parted/default.nix
new file mode 100644
index 000000000000..808b0382f321
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/parted/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, lvm2
+, libuuid
+, gettext
+, readline
+, dosfstools
+, e2fsprogs
+, perl
+, python2
+, utillinux
+, check
+, enableStatic ? false
+}:
+
+stdenv.mkDerivation rec {
+ name = "parted-3.3";
+
+ src = fetchurl {
+ url = "mirror://gnu/parted/${name}.tar.xz";
+ sha256 = "0i1xp367wpqw75b20c3jnism3dg3yqj4a7a22p2jb1h1hyyv9qjp";
+ };
+
+ outputs = [ "out" "dev" "man" "info" ];
+
+ postPatch = ''
+ patchShebangs tests
+ '';
+
+ buildInputs = [ libuuid ]
+ ++ stdenv.lib.optional (readline != null) readline
+ ++ stdenv.lib.optional (gettext != null) gettext
+ ++ stdenv.lib.optional (lvm2 != null) lvm2;
+
+ configureFlags =
+ (if (readline != null)
+ then [ "--with-readline" ]
+ else [ "--without-readline" ])
+ ++ stdenv.lib.optional (lvm2 == null) "--disable-device-mapper"
+ ++ stdenv.lib.optional enableStatic "--enable-static";
+
+ # Tests were previously failing due to Hydra running builds as uid 0.
+ # That should hopefully be fixed now.
+ doCheck = !stdenv.hostPlatform.isMusl; /* translation test */
+ checkInputs = [ check dosfstools e2fsprogs perl python2 utillinux ];
+
+ meta = {
+ description = "Create, destroy, resize, check, and copy partitions";
+
+ longDescription = ''
+ GNU Parted is an industrial-strength package for creating, destroying,
+ resizing, checking and copying partitions, and the file systems on
+ them. This is useful for creating space for new operating systems,
+ reorganising disk usage, copying data on hard disks and disk imaging.
+
+ It contains a library, libparted, and a command-line frontend, parted,
+ which also serves as a sample implementation and script backend.
+ '';
+
+ homepage = "https://www.gnu.org/software/parted/";
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ maintainers = [
+ # Add your name here!
+ ];
+
+ # GNU Parted requires libuuid, which is part of util-linux-ng.
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/partition-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/partition-manager/default.nix
new file mode 100644
index 000000000000..1b5f7dbdbece
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/partition-manager/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, fetchurl, lib
+, extra-cmake-modules, kdoctools, wrapGAppsHook, wrapQtAppsHook
+, kconfig, kcrash, kinit, kpmcore
+, eject, libatasmart , utillinux, qtbase
+}:
+
+let
+ pname = "partitionmanager";
+in mkDerivation rec {
+ name = "${pname}-${version}";
+ version = "3.3.1";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+ sha256 = "0jhggb4xksb0k0mj752n6pz0xmccnbzlp984xydqbz3hkigra1si";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook wrapQtAppsHook ];
+
+ # refer to kpmcore for the use of eject
+ buildInputs = [ eject libatasmart utillinux ];
+ propagatedBuildInputs = [ kconfig kcrash kinit kpmcore ];
+
+ meta = with lib; {
+ description = "KDE Partition Manager";
+ license = licenses.gpl2;
+ homepage = "https://www.kde.org/applications/system/kdepartitionmanager/";
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pastebinit/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pastebinit/default.nix
new file mode 100644
index 000000000000..a3134f57397c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pastebinit/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, python3 }:
+
+stdenv.mkDerivation rec {
+ version = "1.5";
+ pname = "pastebinit";
+
+ src = fetchurl {
+ url = "https://launchpad.net/pastebinit/trunk/${version}/+download/${pname}-${version}.tar.bz2";
+ sha256 = "0mw48fgm9lyh9d3pw997fccmglzsjccf2y347gxjas74wx6aira2";
+ };
+
+ buildInputs = [ python3 ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/etc
+ cp -a pastebinit $out/bin
+ cp -a pastebin.d $out/etc
+ substituteInPlace $out/bin/pastebinit --replace "'/etc/pastebin.d" "'$out/etc/pastebin.d"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://launchpad.net/pastebinit";
+ description = "A software that lets you send anything you want directly to a pastebin from the command line";
+ maintainers = with maintainers; [ lethalman ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/patdiff/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/patdiff/default.nix
new file mode 100644
index 000000000000..e0b54e56081d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/patdiff/default.nix
@@ -0,0 +1,12 @@
+{ ocamlPackages }:
+
+with ocamlPackages;
+
+janePackage {
+ pname = "patdiff";
+ hash = "1yqvxdmkgcwgx3npgncpdqwkpdxiqr1q41wci7589s8z7xi5nwyz";
+ buildInputs = [ core_extended expect_test_helpers patience_diff ocaml_pcre shell ];
+ meta = {
+ description = "File Diff using the Patience Diff algorithm";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pazi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pazi/default.nix
new file mode 100644
index 000000000000..cc7e7b043e0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pazi/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, rustPlatform, darwin }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "pazi";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "euank";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0z8x70mwg0mvz6iap92gil37d4kpg5dizlyfx3zk7984ynycgap8";
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+ cargoSha256 = "0sja0q9i0b1zb3a0a6z561yg9lqykylwr3iwin4r6cmi7j2sw5j6";
+
+ meta = with stdenv.lib; {
+ description = "An autojump \"zap to directory\" helper";
+ homepage = "https://github.com/euank/pazi";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ bbigras ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pb_cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pb_cli/default.nix
new file mode 100644
index 000000000000..858422b85328
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pb_cli/default.nix
@@ -0,0 +1,39 @@
+{ screenshots ? true, video ? false, clipboard ? true
+, stdenv, jq, curl, fetchFromGitHub, makeWrapper, maim ? null, xclip ? null, capture ? null }:
+
+assert screenshots -> maim != null;
+assert video -> capture != null;
+assert clipboard -> xclip != null;
+
+stdenv.mkDerivation rec {
+ pname = "pb_cli-unstable";
+ version = "2019-03-10";
+
+ src = fetchFromGitHub {
+ owner = "ptpb";
+ repo = "pb_cli";
+ rev = "6b9ce1ee45fe651d06d7c479a20026a173dd328b";
+ sha256 = "0w6a789zffvz4ixsb92q45n5s4xyx7s2l2f07972i3dajaaai8z7";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ liveDeps = [ jq curl ] ++ stdenv.lib.optional screenshots maim
+ ++ stdenv.lib.optional video capture
+ ++ stdenv.lib.optional clipboard xclip;
+
+ installPhase = ''
+ install -Dm755 src/pb.sh $out/bin/pb
+
+ patchShebangs $out/bin/pb
+ wrapProgram $out/bin/pb \
+ --prefix PATH : '${stdenv.lib.makeBinPath liveDeps}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A no bullshit 0x0.st client";
+ homepage = "https://github.com/ptpb/pb_cli";
+ maintainers = [ maintainers.ar1a ];
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pdd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pdd/default.nix
new file mode 100644
index 000000000000..f94d2cc27379
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pdd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication, dateutil }:
+
+buildPythonApplication rec {
+ pname = "pdd";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = "pdd";
+ rev = "v${version}";
+ sha256 = "1cirb8mmxxadks7az6a3a4sp8djv45cwa9dx0zrarzfmw0x7xb9g";
+ };
+
+ format = "other";
+
+ propagatedBuildInputs = [ dateutil ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jarun/pdd";
+ description = "Tiny date, time diff calculator";
+ longDescription = ''
+ There are times you want to check how old you are (in years, months, days)
+ or how long you need to wait for the next flash sale or the number of days
+ left of your notice period in your current job. pdd (Python3 Date Diff) is
+ a small cmdline utility to calculate date and time difference. If no
+ program arguments are specified it shows the current date, time and
+ timezone.
+ '';
+ maintainers = [ maintainers.infinisil ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix
new file mode 100644
index 000000000000..3fee457f6f54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, python3Packages, fetchzip }:
+
+python3Packages.buildPythonApplication {
+ pname = "pdf-parser";
+ version = "0.7.4";
+
+ src = fetchzip {
+ url = "https://didierstevens.com/files/software/pdf-parser_V0_7_4.zip";
+ sha256 = "1j39yww2yl4cav8xgd4zfl5jchbbkvffnrynkamkzvz9dd5np2mh";
+ };
+
+ format = "other";
+
+ installPhase = ''
+ install -Dm555 pdf-parser.py $out/bin/pdf-parser.py
+ '';
+
+ preFixup = ''
+ substituteInPlace $out/bin/pdf-parser.py \
+ --replace '/usr/bin/python' '${python3Packages.python}/bin/python'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Parse a PDF document";
+ longDescription = ''
+ This tool will parse a PDF document to identify the fundamental elements used in the analyzed file.
+ It will not render a PDF document.
+ '';
+ homepage = "https://blog.didierstevens.com/programs/pdf-tools/";
+ license = licenses.publicDomain;
+ maintainers = [ maintainers.lightdiscord ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch
new file mode 100644
index 000000000000..f444d72c4648
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch
@@ -0,0 +1,570 @@
+From 153e9acd6fb50c50db5ebdd03303a42f56ec05e0 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Tue, 17 Mar 2020 23:14:36 +0100
+Subject: [PATCH] Add Cargo.lock by running `cargo vendor`
+
+---
+ Cargo.lock | 551 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 551 insertions(+)
+ create mode 100644 Cargo.lock
+
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..91f9100
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,551 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "byteorder"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++
++[[package]]
++name = "bytes"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
++dependencies = [
++ "byteorder",
++ "iovec",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "cloudabi"
++version = "0.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
++dependencies = [
++ "autocfg",
++ "cfg-if",
++ "lazy_static",
++]
++
++[[package]]
++name = "ctrlc"
++version = "3.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a4ba686dff9fa4c1c9636ce1010b0cf98ceb421361b0bb3d6faeec43bd217a7"
++dependencies = [
++ "nix 0.17.0",
++ "winapi 0.3.8",
++]
++
++[[package]]
++name = "fnv"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
++
++[[package]]
++name = "fuchsia-zircon"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
++dependencies = [
++ "bitflags",
++ "fuchsia-zircon-sys",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
++
++[[package]]
++name = "futures"
++version = "0.1.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
++
++[[package]]
++name = "getopts"
++version = "0.2.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "inotify"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "40b54539f3910d6f84fbf9a643efd6e3aa6e4f001426c0329576128255994718"
++dependencies = [
++ "bitflags",
++ "futures",
++ "inotify-sys",
++ "libc",
++ "mio",
++ "tokio-io",
++ "tokio-reactor",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++dependencies = [
++ "winapi 0.2.8",
++ "winapi-build",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.68"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
++
++[[package]]
++name = "lock_api"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
++dependencies = [
++ "scopeguard",
++]
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "maybe-uninit"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++
++[[package]]
++name = "mio"
++version = "0.6.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++dependencies = [
++ "cfg-if",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "libc",
++ "log",
++ "miow",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++dependencies = [
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "winapi 0.3.8",
++]
++
++[[package]]
++name = "nix"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "becb657d662f1cd2ef38c7ad480ec6b8cf9e96b27adb543e594f9cf0f2e6065c"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if",
++ "libc",
++ "void",
++]
++
++[[package]]
++name = "nix"
++version = "0.17.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if",
++ "libc",
++ "void",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "numtoa"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
++
++[[package]]
++name = "parking_lot"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
++dependencies = [
++ "lock_api",
++ "parking_lot_core",
++ "rustc_version",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
++dependencies = [
++ "cfg-if",
++ "cloudabi",
++ "libc",
++ "redox_syscall",
++ "rustc_version",
++ "smallvec",
++ "winapi 0.3.8",
++]
++
++[[package]]
++name = "peep"
++version = "0.1.4"
++dependencies = [
++ "ctrlc",
++ "getopts",
++ "inotify",
++ "libc",
++ "mio",
++ "nix 0.11.1",
++ "regex",
++ "termion",
++ "termios",
++ "unicode-width",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++
++[[package]]
++name = "redox_termios"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
++dependencies = [
++ "redox_syscall",
++]
++
++[[package]]
++name = "regex"
++version = "1.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8900ebc1363efa7ea1c399ccc32daed870b4002651e0bed86e72d501ebbe0048"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++dependencies = [
++ "semver",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++dependencies = [
++ "semver-parser",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++
++[[package]]
++name = "smallvec"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
++dependencies = [
++ "maybe-uninit",
++]
++
++[[package]]
++name = "termion"
++version = "1.5.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905"
++dependencies = [
++ "libc",
++ "numtoa",
++ "redox_syscall",
++ "redox_termios",
++]
++
++[[package]]
++name = "termios"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++dependencies = [
++ "lazy_static",
++]
++
++[[package]]
++name = "tokio-executor"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
++dependencies = [
++ "crossbeam-utils",
++ "futures",
++]
++
++[[package]]
++name = "tokio-io"
++version = "0.1.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
++dependencies = [
++ "bytes",
++ "futures",
++ "log",
++]
++
++[[package]]
++name = "tokio-reactor"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
++dependencies = [
++ "crossbeam-utils",
++ "futures",
++ "lazy_static",
++ "log",
++ "mio",
++ "num_cpus",
++ "parking_lot",
++ "slab",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-sync",
++]
++
++[[package]]
++name = "tokio-sync"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
++dependencies = [
++ "fnv",
++ "futures",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++
++[[package]]
++name = "void"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
++
++[[package]]
++name = "winapi"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-build"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++dependencies = [
++ "winapi 0.2.8",
++ "winapi-build",
++]
+--
+2.25.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/peep/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/peep/default.nix
new file mode 100644
index 000000000000..161ea3f75e63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/peep/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "peep";
+ version = "0.1.4";
+
+ src = fetchFromGitHub {
+ owner = "ryochack";
+ repo = "peep";
+ rev = "v${version}";
+ sha256 = "0c0fphnhq9vg9jjnkl35k56jbcnyz2ballsnkbm2xrh8vbyvk1av";
+ };
+
+ cargoPatches = [ ./0001-Add-Cargo.lock-by-running-cargo-vendor.patch ];
+ cargoSha256 = "15qc9a4zpnq7lbcaji1mkik93qkx366misczbi1mipiq5w7sgn0l";
+
+ meta = with lib; {
+ description = "The CLI text viewer tool that works like less command on small pane within the terminal window";
+ license = licenses.mit;
+ homepage = "https://github.com/ryochack/peep";
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/peruse/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/peruse/default.nix
new file mode 100644
index 000000000000..264631120068
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/peruse/default.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, fetchFromGitHub
+, lib
+, extra-cmake-modules
+, kdoctools
+, wrapGAppsHook
+, baloo
+, karchive
+, kconfig
+, kcrash
+, kfilemetadata
+, kinit
+, kirigami2
+, knewstuff
+, plasma-framework
+}:
+
+mkDerivation rec {
+ pname = "peruse";
+ version = "1.2.20200208";
+
+ # The last formal release from 2016 uses kirigami1 which is deprecated
+ src = fetchFromGitHub {
+ owner = "KDE";
+ repo = pname;
+ rev = "4a1b3f954d2fe7e4919c0c5dbee1917776da582e";
+ sha256 = "1s5yy240x4cvrk93acygnrp5m10xp7ln013gdfbm0r5xvd8xy19k";
+ };
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ kdoctools
+ wrapGAppsHook
+ ];
+
+ propagatedBuildInputs = [
+ baloo
+ karchive
+ kconfig
+ kcrash
+ kfilemetadata
+ kinit
+ kirigami2
+ knewstuff
+ plasma-framework
+ ];
+
+ pathsToLink = [ "/etc/xdg/peruse.knsrc" ];
+
+ meta = with lib; {
+ description = "A comic book reader";
+ homepage = "https://peruse.kde.org";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pfetch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pfetch/default.nix
new file mode 100644
index 000000000000..bbecf4656e74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pfetch/default.nix
@@ -0,0 +1,27 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "pfetch";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "dylanaraps";
+ repo = "pfetch";
+ rev = version;
+ sha256 = "06z0k1naw3k052p2z7241lx92rp5m07zlr0alx8pdm6mkc3c4v8f";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -Dm755 -t $out/bin pfetch
+ '';
+
+ meta = with lib; {
+ description = "A pretty system information tool written in POSIX sh";
+ homepage = "https://github.com/dylanaraps/pfetch";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ equirosa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pg_flame/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
new file mode 100644
index 000000000000..b8345210e599
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "pg_flame";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "mgartner";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1a03vxqnga83mhjp7pkl0klhkyfaby7ncbwm45xbl8c7s6zwhnw2";
+ };
+
+ vendorSha256 = "1rkx20winh66y2m7i7q13jpr83044i2d1pfd5p5l5kkpsix5mra5";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Flamegraph generator for Postgres EXPLAIN ANALYZE output";
+ homepage = "https://github.com/mgartner/pg_flame";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pg_top/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pg_top/default.nix
new file mode 100644
index 000000000000..ca3318d45c67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pg_top/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, ncurses, postgresql }:
+
+stdenv.mkDerivation rec {
+ name = "pg_top-3.7.0";
+
+ src = fetchurl {
+ url = "http://pgfoundry.org/frs/download.php/1781/${name}.tar.gz";
+ sha256 = "17xrv0l58rv3an06gkajzw0gg6v810xx6vl137an1iykmhvfh7h2";
+ };
+
+ buildInputs = [ ncurses postgresql ];
+
+ meta = with stdenv.lib; {
+ description = "A 'top' like tool for PostgreSQL";
+ longDescription = ''
+ pg_top allows you to:
+ * View currently running SQL statement of a process.
+ * View query plan of a currently running SQL statement.
+ * View locks held by a process.
+ * View user table statistics.
+ * View user index statistics.
+ '';
+
+ homepage = "http://ptop.projects.postgresql.org/";
+ platforms = platforms.linux;
+ license = licenses.free; # see commands.c
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pgcenter/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
new file mode 100644
index 000000000000..a84ad1fadb08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "pgcenter";
+ version = "0.6.5";
+
+ src = fetchFromGitHub {
+ owner = "lesovsky";
+ repo = "pgcenter";
+ rev = "v${version}";
+ sha256 = "03n1gn944z6rz5g643y68hvfxpxp65mip32w1zx43xr60x1vpf2v";
+ };
+
+ vendorSha256 = "1mzvpr12qh9668iz97p62zl4zhlrcyfgwr4a9zg9irj585pkb5x2";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://pgcenter.org/";
+ description = "Command-line admin tool for observing and troubleshooting PostgreSQL";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
new file mode 100644
index 000000000000..600aa3d07d27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "pgmetrics";
+ version = "1.10.0";
+
+ src = fetchFromGitHub {
+ owner = "rapidloop";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1256mcac75nlr1c7pzsgqmjq026m6qxh9dlldndvl1s08bk7pxr9";
+ };
+
+ vendorSha256 = "16x33fmh4q993rw0jr65337yimska4fwgyyw3kmq84q0x28a3zg5";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://pgmetrics.io/";
+ description = "Collect and display information and stats from a running PostgreSQL server";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
new file mode 100644
index 000000000000..bea73610ddad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, php, which, gnused, makeWrapper, gnumake, gcc, callPackage }:
+
+stdenv.mkDerivation rec {
+ pname = "phoronix-test-suite";
+ version = "9.8.0";
+
+ src = fetchurl {
+ url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
+ sha256 = "05q01cr4a2mmyski50pqna9sgw2jy93fgfpjwkhbkc09na6400sq";
+ };
+
+ buildInputs = [ php ];
+ nativeBuildInputs = [ which gnused makeWrapper ];
+
+ installPhase = ''
+ ./install-sh $out
+ wrapProgram $out/bin/phoronix-test-suite \
+ --set PHP_BIN ${php}/bin/php \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ gnumake gcc ]}
+ '';
+
+ passthru.tests = {
+ simple-execution = callPackage ./tests.nix { };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Open-Source, Automated Benchmarking";
+ homepage = "https://www.phoronix-test-suite.com/";
+ maintainers = with maintainers; [ davidak ];
+ license = licenses.gpl3;
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/tests.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/tests.nix
new file mode 100644
index 000000000000..06bd9def9aa6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/phoronix-test-suite/tests.nix
@@ -0,0 +1,20 @@
+{ runCommand, phoronix-test-suite }:
+
+let
+ inherit (phoronix-test-suite) pname version;
+in
+
+runCommand "${pname}-tests" { meta.timeout = 3; }
+ ''
+ # automatic initial setup to prevent interactive questions
+ ${phoronix-test-suite}/bin/phoronix-test-suite enterprise-setup >/dev/null
+ # get version of installed program and compare with package version
+ if [[ `${phoronix-test-suite}/bin/phoronix-test-suite version` != *"${version}"* ]]; then
+ echo "Error: program version does not match package version"
+ exit 1
+ fi
+ # run dummy command
+ ${phoronix-test-suite}/bin/phoronix-test-suite dummy_module.dummy-command >/dev/null
+ # needed for Nix to register the command as successful
+ touch $out
+ ''
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix
new file mode 100644
index 000000000000..8e1787f29a89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "phraseapp-client";
+ version = "1.11.0";
+
+ goPackagePath = "github.com/phrase/phraseapp-client";
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ owner = "phrase";
+ repo = "phraseapp-client";
+ rev = version;
+ sha256 = "0lfx0wv95hgczi74qnkw2cripwgvl53z2gi5i6nyflisy4r7vvkr";
+ };
+
+ postInstall = ''
+ ln -s $out/bin/phraseapp-client $out/bin/phraseapp
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://docs.phraseapp.com";
+ description = "PhraseApp API v2 Command Line Client";
+ license = licenses.mit;
+ maintainers = with maintainers; [ manveru ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pick/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pick/default.nix
new file mode 100644
index 000000000000..ceb2bace7db9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pick/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "pick";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "calleerlandsson";
+ repo = "pick";
+ rev = "v${version}";
+ sha256 = "0wm3220gqrwldiq0rjdraq5mw3i7d58zwzls8234sx9maf59h0k0";
+ };
+
+ buildInputs = [ ncurses ];
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Fuzzy text selection utility";
+ license = licenses.mit;
+ maintainers = [ maintainers.womfoo ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/picocom/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/picocom/default.nix
new file mode 100644
index 000000000000..5dd83c4887b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/picocom/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, makeWrapper, lrzsz, IOKit }:
+
+assert stdenv.isDarwin -> IOKit != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "picocom";
+ version = "3.1";
+
+ src = fetchFromGitHub {
+ owner = "npat-efault";
+ repo = "picocom";
+ rev = version;
+ sha256 = "1vvjydqf0ax47nvdyyl67jafw5b3sfsav00xid6qpgia1gs2r72n";
+ };
+
+ buildInputs = [ makeWrapper ]
+ ++ optionals stdenv.isDarwin [ IOKit ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+ cp picocom $out/bin
+ cp picocom.1 $out/share/man/man1
+
+ wrapProgram $out/bin/picocom \
+ --prefix PATH ":" "${lrzsz}/bin"
+ '';
+
+ meta = {
+ description = "Minimal dumb-terminal emulation program";
+ homepage = "https://github.com/npat-efault/picocom/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/default.nix
new file mode 100644
index 000000000000..fe16406256f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, bash, cabextract, curl, gnupg, libX11, libGLU, libGL, wine-staging }:
+
+let
+ wine_custom = wine-staging;
+
+ mozillaPluginPath = "/lib/mozilla/plugins";
+
+
+in stdenv.mkDerivation rec {
+
+ version = "0.2.8.2";
+
+ pname = "pipelight";
+
+ src = fetchurl {
+ url = "https://bitbucket.org/mmueller2012/pipelight/get/v${version}.tar.gz";
+ sha256 = "1kyy6knkr42k34rs661r0f5sf6l1s2jdbphdg89n73ynijqmzjhk";
+ };
+
+ buildInputs = [ wine_custom libX11 libGLU libGL curl ];
+
+ NIX_CFLAGS_COMPILE = [ "-fpermissive" ];
+
+ patches = [ ./pipelight.patch ];
+
+ configurePhase = ''
+ patchShebangs .
+ ./configure \
+ --prefix=$out \
+ --moz-plugin-path=$out/${mozillaPluginPath} \
+ --wine-path=${wine_custom} \
+ --gpg-exec=${gnupg}/bin/gpg \
+ --bash-interp=${bash}/bin/bash \
+ --downloader=${curl.bin}/bin/curl
+ $configureFlags
+ '';
+
+ passthru = {
+ mozillaPlugin = mozillaPluginPath;
+ wine = wine_custom;
+ };
+
+ postInstall = ''
+ $out/bin/pipelight-plugin --create-mozilla-plugins
+ '';
+
+ preFixup = ''
+ substituteInPlace $out/share/pipelight/install-dependency \
+ --replace cabextract ${cabextract}/bin/cabextract
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "http://pipelight.net/";
+ license = with stdenv.lib.licenses; [ mpl11 gpl2 lgpl21 ];
+ description = "A wrapper for using Windows plugins in Linux browsers";
+ maintainers = with stdenv.lib.maintainers; [ skeidel ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/pipelight.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/pipelight.patch
new file mode 100644
index 000000000000..fc6666f8f12b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pipelight/pipelight.patch
@@ -0,0 +1,122 @@
+diff -urN pipelight.old/bin/pipelight-plugin.in pipelight.new/bin/pipelight-plugin.in
+--- pipelight.old/bin/pipelight-plugin.in 2014-07-19 22:53:02.000000000 +0200
++++ pipelight.new/bin/pipelight-plugin.in 2014-07-27 00:02:39.275834030 +0200
+@@ -92,7 +92,7 @@
+ PLUGIN_PATH=$(realpath "$PLUGIN_PATH")
+
+ # Global installation
+- if [ $(/usr/bin/id -u) -eq 0 ]; then
++ if [ $(id -u) -eq 0 ]; then
+ INSTALLDIR="$PLUGIN_PATH"
+
+ # Use environment variable (only if it doesn't point to the global directory)
+@@ -594,7 +594,7 @@
+ fi
+
+ # Ensure the signature is valid, extract the content
+- if ! @@GPG@@ --batch --no-default-keyring --keyring "$PIPELIGHT_SHARE_PATH/sig-install-dependency.gpg" --decrypt "$tmpfile" > "$decfile"; then
++ if ! @@GPG@@ --homedir /tmp --batch --no-default-keyring --keyring "$PIPELIGHT_SHARE_PATH/sig-install-dependency.gpg" --decrypt "$tmpfile" > "$decfile"; then
+ rm "$tmpfile"
+ rm "$decfile"
+ echo ""
+@@ -630,24 +630,10 @@
+ return 0
+ }
+
+-# Use fetch on FreeBSD if wget is not available
+-if command -v wget >/dev/null 2>&1; then
+- download_file()
+- {
+- wget -O "$1" "$2"
+- }
+-elif command -v fetch >/dev/null 2>&1; then
+- download_file()
+- {
+- fetch -o "$1" "$2"
+- }
+-else
+- download_file()
+- {
+- echo "ERROR: Could neither find wget nor fetch. Unable to download file!" >&2
+- return 1
+- }
+-fi
++download_file()
++{
++ curl --cacert /etc/ssl/certs/ca-certificates.crt -o "$1" "$2"
++}
+
+ # Use shasum instead of sha256sum on MacOS / *BSD
+ if ! command -v sha256sum >/dev/null 2>&1 && command -v shasum >/dev/null 2>&1; then
+diff -urN pipelight.old/configure pipelight.new/configure
+--- pipelight.old/configure 2014-07-19 22:53:02.000000000 +0200
++++ pipelight.new/configure 2014-07-26 23:52:13.690881447 +0200
+@@ -66,12 +66,8 @@
+ datadir=""
+ libdir=""
+ mandir=""
+-bash_interp="$(which bash)"
+-if which gpg &> /dev/null; then
+- gpg_exec="$(which gpg)"
+-else
+- gpg_exec="/usr/bin/gpg"
+-fi
++bash_interp=bash
++gpg_exec=gpg
+ moz_plugin_path=""
+ gcc_runtime_dlls=""
+ so_mode="0644"
+diff -urN pipelight.old/share/install-dependency pipelight.new/share/install-dependency
+--- pipelight.old/share/install-dependency 2014-07-19 22:53:02.000000000 +0200
++++ pipelight.new/share/install-dependency 2014-07-26 23:26:18.431938546 +0200
+@@ -734,42 +734,14 @@
+ return 0
+ }
+
+-# Use fetch on FreeBSD if wget is not available
+-if command -v wget >/dev/null 2>&1; then
+- download_file()
+- {
+- wget -O "$1" "$2"
+- }
+- get_download_size()
+- {
+- local filesize="$(wget -O- "$1" --spider --server-response 2>&1 | sed -ne '/Content-Length/{s/.*: //;p}')"
+- local re='^[0-9]+$'
+- if [[ "$filesize" -ne "0" ]] && [[ "$filesize" =~ $re ]]; then
+- echo "$(($filesize/(1024*1024)))"
+- else
+- echo "N/A"
+- fi
+- }
+-elif command -v fetch >/dev/null 2>&1; then
+- download_file()
+- {
+- fetch -o "$1" "$2"
+- }
+- get_download_size()
+- {
+- echo "N/A"
+- }
+-else
+- download_file()
+- {
+- echo "ERROR: Could neither find wget nor fetch. Unable to download file!" >&2
+- return 1
+- }
+- get_download_size()
+- {
+- echo "N/A"
+- }
+-fi
++download_file()
++{
++ curl --cacert /etc/ssl/certs/ca-certificates.crt -o "$1" "$2"
++}
++get_download_size()
++{
++ echo "N/A"
++}
+
+ # Use shasum instead of sha256sum on MacOS / *BSD
+ if ! command -v sha256sum >/dev/null 2>&1 && command -v shasum >/dev/null 2>&1; then
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pipreqs/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
new file mode 100644
index 000000000000..bbd4125c4b0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
@@ -0,0 +1,24 @@
+{ lib, python2Packages }:
+
+# Using python 2 because when packaging with python 3 pipreqs fails to parse python 2 code.
+python2Packages.buildPythonApplication rec {
+ pname = "pipreqs";
+ version = "0.4.10";
+
+ src = python2Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0fdr3mbxjpmrxr7yfc1sn9kbpcyb0qwafimhhrrqvf989dj1sdcy";
+ };
+
+ propagatedBuildInputs = with python2Packages; [ yarg docopt ];
+
+ # Tests requires network access. Works fine without sandboxing
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Generate requirements.txt file for any project based on imports";
+ homepage = "https://github.com/bndr/pipreqs";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ psyanticy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pistol/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pistol/default.nix
new file mode 100644
index 000000000000..dfbe5536bccc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pistol/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, file
+}:
+
+buildGoModule rec {
+ pname = "pistol";
+ version = "0.1.4";
+
+ src = fetchFromGitHub {
+ owner = "doronbehar";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1x9wb0gj5l71xz15ia0i2hrnhcpf457i21w41jzw2ink2fbdxp3b";
+ };
+
+ vendorSha256 = "0dg4f9g6895nv3c6d74ijl6hzsyn620ndspbcq7ynvb1z0hsg6iz";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/pistol" ];
+
+ buildInputs = [
+ file
+ ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "General purpose file previewer designed for Ranger, Lf to make scope.sh redundant";
+ homepage = "https://github.com/doronbehar/pistol";
+ license = licenses.mit;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pixd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pixd/default.nix
new file mode 100644
index 000000000000..a2dc84ed6a93
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pixd/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "pixd";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "FireyFly";
+ repo = "pixd";
+ rev = "v${version}";
+ sha256 = "1vmkbs39mg5vwmkzfcrxqm6p8zr9sj4qdwng9icmyf5k34c34xdg";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "Colourful visualization tool for binary files";
+ homepage = "https://github.com/FireyFly/pixd";
+ maintainers = [ maintainers.FireyFly ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix
new file mode 100644
index 000000000000..8c7e5b8bcf22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, libusb-compat-0_1, makeWrapper}:
+
+stdenv.mkDerivation {
+ name = "pk2cmd-1.20";
+ src = fetchurl {
+ url = "https://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz";
+ sha256 = "1yjpi2qshnqfpan4w3ggakkr3znfrx5cxkny92ka7v9na3g2fc4h";
+ };
+
+ makeFlags = [ "LIBUSB=${libusb-compat-0_1.dev}" "linux" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/pk2
+ cp pk2cmd $out/bin
+ cp PK2DeviceFile.dat $out/share/pk2
+ wrapProgram $out/bin/pk2cmd --prefix PATH : $out/share/pk2
+ '';
+
+ buildInputs = [ libusb-compat-0_1 makeWrapper ];
+
+ meta = {
+ homepage = "https://www.microchip.com/pickit2";
+ license = stdenv.lib.licenses.unfree; #MicroChip-PK2
+ description = "Microchip PIC programming software for the PICKit2 programmer";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pkgdiff/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pkgdiff/default.nix
new file mode 100644
index 000000000000..04d0c95b81a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pkgdiff/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, makeWrapper, perl, wdiff }:
+
+stdenv.mkDerivation rec {
+ version = "1.7.2";
+ pname = "pkgdiff";
+
+ src = fetchFromGitHub {
+ owner = "lvc";
+ repo = "pkgdiff";
+ rev = version;
+ sha256 = "1ahknyx0s54frbd3gqh070lkv3j1b344jrs6m6p1s1lgwbd70vnb";
+ };
+
+ buildInputs = [ perl ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/pkgdiff --prefix PATH : ${lib.makeBinPath [ wdiff ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool for visualizing changes in Linux software packages";
+ homepage = "https://lvc.github.io/pkgdiff/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ sweber ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/plantuml/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/plantuml/default.nix
new file mode 100644
index 000000000000..8689e6467fb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/plantuml/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, makeWrapper, jre, graphviz }:
+
+stdenv.mkDerivation rec {
+ version = "1.2020.16";
+ pname = "plantuml";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
+ sha256 = "0k9dligb0b2kc8rl9k5wp9sh8z1kb8g97v5pfiiwa321lp8y6wpp";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ install -Dm644 $src $out/lib/plantuml.jar
+
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/plantuml \
+ --argv0 plantuml \
+ --set GRAPHVIZ_DOT ${graphviz}/bin/dot \
+ --add-flags "-jar $out/lib/plantuml.jar"
+
+ $out/bin/plantuml -help
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Draw UML diagrams using a simple and human readable text description";
+ homepage = "http://plantuml.sourceforge.net/";
+ # "plantuml -license" says GPLv3 or later
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/plotinus/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/plotinus/default.nix
new file mode 100644
index 000000000000..6440ed533f60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/plotinus/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, gettext
+, libxml2
+, pkgconfig
+, gtk3
+, cmake
+, ninja
+, vala
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "plotinus";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "p-e-w";
+ repo = "plotinus";
+ rev = "v${version}";
+ sha256 = "19k6f6ivg4ab57m62g6fkg85q9sv049snmzq1fyqnqijggwshxfz";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ wrapGAppsHook
+ vala
+ cmake
+ ninja
+ gettext
+ libxml2
+ ];
+ buildInputs = [
+ gtk3
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A searchable command palette in every modern GTK application";
+ homepage = "https://github.com/p-e-w/plotinus";
+ maintainers = with maintainers; [ samdroid-apps ];
+ platforms = platforms.linux;
+ # No COPYING file, but headers in the source code
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/plowshare/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/plowshare/default.nix
new file mode 100644
index 000000000000..662710388d31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/plowshare/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, makeWrapper, curl, recode, spidermonkey_38 }:
+
+stdenv.mkDerivation rec {
+
+ pname = "plowshare";
+ version = "2.1.7";
+
+ src = fetchFromGitHub {
+ owner = "mcrapet";
+ repo = "plowshare";
+ rev = "v${version}";
+ sha256 = "1p8s60dlzaldp006yj710s371aan915asyjhd99188vrj4jj1x79";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ make PREFIX="$out" install
+
+ for fn in plow{del,down,list,mod,probe,up}; do
+ wrapProgram "$out/bin/$fn" --prefix PATH : "${stdenv.lib.makeBinPath [ curl recode spidermonkey_38 ]}"
+ done
+ '';
+
+ meta = {
+ description = ''
+ A command-line download/upload tool for popular file sharing websites
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ aforemny jfrankenau ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pod2mdoc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pod2mdoc/default.nix
new file mode 100644
index 000000000000..757100251260
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pod2mdoc/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "pod2mdoc";
+ version = "0.0.10";
+
+ src = fetchurl {
+ url = "http://mdocml.bsd.lv/pod2mdoc/snapshots/${pname}-${version}.tgz";
+ sha256 = "0nwa9zv9gmfi5ysz1wfm60kahc7nv0133n3dfc2vh2y3gj8mxr4f";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man/man1
+ install -m 0755 pod2mdoc $out/bin
+ install -m 0444 pod2mdoc.1 $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://mdocml.bsd.lv/";
+ description = "converter from POD into mdoc";
+ license = licenses.isc;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ramkromberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ponysay/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ponysay/default.nix
new file mode 100644
index 000000000000..3fc3efa0eda0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ponysay/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, python3, texinfo, makeWrapper }:
+
+stdenv.mkDerivation {
+ name = "ponysay-3.0.3";
+
+ src = fetchurl {
+ url = "https://github.com/erkin/ponysay/archive/3.0.3.tar.gz";
+ sha256 = "12mjabf5cpp5dgg63s19rlyq3dhhpzzy2sa439yncqzsk7rdg0n3";
+ };
+
+ buildInputs = [ python3 texinfo makeWrapper ];
+
+ inherit python3;
+
+ phases = "unpackPhase installPhase fixupPhase";
+
+ installPhase = ''
+ find -type f -name "*.py" | xargs sed -i "s@/usr/bin/env python3@$python3/bin/python3@g"
+ substituteInPlace setup.py --replace \
+ "fileout.write(('#!/usr/bin/env %s\n' % env).encode('utf-8'))" \
+ "fileout.write(('#!%s/bin/%s\n' % (os.environ['python3'], env)).encode('utf-8'))"
+ python3 setup.py --prefix=$out --freedom=partial install \
+ --with-shared-cache=$out/share/ponysay \
+ --with-bash
+ '';
+
+ meta = {
+ description = "Cowsay reimplemention for ponies";
+ homepage = "https://github.com/erkin/ponysay";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ bodil ];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-go/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
new file mode 100644
index 000000000000..16734e3dd3a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "powerline-go";
+ version = "1.18.0";
+
+ src = fetchFromGitHub {
+ owner = "justjanne";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0dni842xzc8r6wbdfax25940jvxp69zk8xklczkjmyxqawvsxnjh";
+ };
+
+ vendorSha256 = "0dkgp9vlb76la0j439w0rb548qg5v8648zryk3rqgfhd4qywlk11";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A Powerline like prompt for Bash, ZSH and Fish";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sifmelcara ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix
new file mode 100644
index 000000000000..df0d344afaa9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, rustPlatform, fetchFromGitLab, pkgconfig, file, perl, curl, cmake, openssl, libssh2, libgit2, libzip, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "powerline-rs";
+ version = "0.2.0";
+
+ src = fetchFromGitLab {
+ owner = "jD91mZM2";
+ repo = "powerline-rs";
+ rev = version;
+
+ sha256 = "0rqlxxl58dpfvm2idhi0vzinraf4bgiapmawiih9wxs599fnhm3y";
+ };
+
+ cargoSha256 = "0a41a6kgwgz4040c2369jldvk6xy6s6fkgayca0qy7hdwc4bcxdp";
+
+ nativeBuildInputs = [ pkgconfig file perl cmake curl ];
+ buildInputs = [ openssl libssh2 libgit2 libzip ] ++ lib.optional stdenv.isDarwin Security;
+
+ COMPLETION_OUT = "out";
+ postInstall = ''
+ install -Dm 755 "${COMPLETION_OUT}/${pname}.bash" "$out/etc/bash_completion.d/${pname}"
+ install -Dm 755 "${COMPLETION_OUT}/${pname}.fish" "$out/share/fish/vendor_completions.d/${pname}"
+ '';
+
+ meta = with lib; {
+ description = "powerline-shell rewritten in Rust, inspired by powerline-go";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jD91mZM2 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
new file mode 100644
index 000000000000..b8a747d4222a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, makeWrapper, parallel, sqlite, bc, file }:
+
+stdenv.mkDerivation rec {
+ version = "2.41";
+ pname = "profile-cleaner";
+
+ src = fetchFromGitHub {
+ owner = "graysky2";
+ repo = "profile-cleaner";
+ rev = "v${version}";
+ sha256 = "11sjf4j9dr6ih9jkg6vqq6gkfg6wly4182bi1008bsm1zdmm5iz7";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ PREFIX=\"\" DESTDIR=$out make install
+ wrapProgram $out/bin/profile-cleaner \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ parallel sqlite bc file ]}"
+ '';
+
+ meta = {
+ description = "Reduces browser profile sizes by cleaning their sqlite databases";
+ longDescription = ''
+ Use profile-cleaner to reduce the size of browser profiles by organizing
+ their sqlite databases using sqlite3's vacuum and reindex functions. The
+ term "browser" is used loosely since profile-cleaner happily works on
+ some email clients and newsreaders too.
+ '';
+ homepage = "https://github.com/graysky2/profile-cleaner";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/profile-sync-daemon/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/profile-sync-daemon/default.nix
new file mode 100644
index 000000000000..7d68ada2c1bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/profile-sync-daemon/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, utillinux, coreutils}:
+
+stdenv.mkDerivation rec {
+ version = "6.40";
+ pname = "profile-sync-daemon";
+
+ src = fetchurl {
+ url = "https://github.com/graysky2/profile-sync-daemon/archive/v${version}.tar.gz";
+ sha256 = "1z1n7dqbkk0x9w2pq71nf93wp4hrzin4a0hcvfynj1khf12z369h";
+ };
+
+ installPhase = ''
+ PREFIX=\"\" DESTDIR=$out make install
+ substituteInPlace $out/bin/profile-sync-daemon \
+ --replace "/usr/" "$out/" \
+ --replace "sudo " "/run/wrappers/bin/sudo "
+ # $HOME detection fails (and is unnecessary)
+ sed -i '/^HOME/d' $out/bin/profile-sync-daemon
+ substituteInPlace $out/bin/psd-overlay-helper \
+ --replace "PATH=/usr/bin:/bin" "PATH=${utillinux.bin}/bin:${coreutils}/bin" \
+ --replace "sudo " "/run/wrappers/bin/sudo "
+ '';
+
+ preferLocalBuild = true;
+
+ meta = with stdenv.lib; {
+ description = "Syncs browser profile dirs to RAM";
+ longDescription = ''
+ Profile-sync-daemon (psd) is a tiny pseudo-daemon designed to manage your
+ browser's profile in tmpfs and to periodically sync it back to your
+ physical disc (HDD/SSD). This is accomplished via a symlinking step and
+ an innovative use of rsync to maintain back-up and synchronization
+ between the two. One of the major design goals of psd is a completely
+ transparent user experience.
+ '';
+ homepage = "https://github.com/graysky2/profile-sync-daemon";
+ downloadPage = "https://github.com/graysky2/profile-sync-daemon/releases";
+ license = licenses.mit;
+ maintainers = [ maintainers.prikhi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/progress/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/progress/default.nix
new file mode 100644
index 000000000000..a43101f607d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/progress/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ncurses, which }:
+
+stdenv.mkDerivation rec {
+ pname = "progress";
+ version = "0.15";
+
+ src = fetchFromGitHub {
+ owner = "Xfennec";
+ repo = "progress";
+ rev = "v${version}";
+ sha256 = "1cnb4ixlhshn139mj5sr42k5m6gjjbyqvkn1324c47niwrgp7dqm";
+ };
+
+ nativeBuildInputs = [ pkgconfig which ];
+ buildInputs = [ ncurses ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Xfennec/progress";
+ description = "Tool that shows the progress of coreutils programs";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/proxytunnel/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/proxytunnel/default.nix
new file mode 100644
index 000000000000..74c049059941
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/proxytunnel/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation {
+ name = "proxytunnel-1.9.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/proxytunnel/proxytunnel-1.9.0.tgz";
+ sha256 = "1fd644kldsg14czkqjybqh3wrzwsp3dcargqf4fjkpqxv3wbpx9f";
+ };
+
+ buildInputs = [ openssl ];
+
+ installPhase = ''make DESTDIR="$out" PREFIX="" install'';
+
+ meta = {
+ description = "Program that connects stdin and stdout to a server somewhere on the network, through a standard HTTPS proxy";
+ homepage = "http://proxytunnel.sourceforge.net/download.php";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pspg/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pspg/default.nix
new file mode 100644
index 000000000000..4af7a0009af5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pspg/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig, readline, postgresql }:
+
+stdenv.mkDerivation rec {
+ pname = "pspg";
+ version = "3.1.3";
+
+ src = fetchFromGitHub {
+ owner = "okbob";
+ repo = pname;
+ rev = version;
+ sha256 = "16pajhzr4aahyhdzkp9g3ld2insnlk2z2w2pfab8bghw4f69j5xf";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gnugrep ncurses readline postgresql ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/okbob/pspg";
+ description = "Postgres Pager";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.jlesquembre ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/psrecord/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/psrecord/default.nix
new file mode 100644
index 000000000000..728314e6e769
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/psrecord/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonApplication, fetchPypi, psutil, matplotlib, pytest }:
+buildPythonApplication rec {
+ pname = "psrecord";
+ version = "1.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5d48410e543b71e5dc4677705acc2a753db65814d3ccbdfbca8d5d3a09b053b1";
+ };
+
+ propagatedBuildInputs = [
+ psutil matplotlib
+ ];
+
+ checkInputs = [
+ pytest
+ ];
+
+ checkPhase = ''
+ runHook preCheck
+ pytest psrecord
+ runHook postCheck
+ '';
+
+ meta = {
+ description = "Record the CPU and memory activity of a process";
+ homepage = "https://github.com/astrofrog/psrecord";
+ license = lib.licenses.bsd2;
+ maintainers = with lib.maintainers; [ johnazoidberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pubs/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pubs/default.nix
new file mode 100644
index 000000000000..158b56e2a5d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pubs/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pubs";
+ version = "0.8.3";
+
+ src = fetchFromGitHub {
+ owner = "pubs";
+ repo = "pubs";
+ rev = "v${version}";
+ sha256 = "0npgsyxj7kby5laznk5ilkrychs3i68y57gphwk48w8k9fvnl3zc";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ argcomplete dateutil configobj feedparser bibtexparser pyyaml requests six
+ beautifulsoup4
+ ];
+
+ checkInputs = with python3Packages; [ pyfakefs mock ddt ];
+
+ # Disabling git tests because they expect git to be preconfigured
+ # with the user's details. See
+ # https://github.com/NixOS/nixpkgs/issues/94663
+ preCheck = ''
+ rm tests/test_git.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line bibliography manager";
+ homepage = "https://github.com/pubs/pubs";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pv/default.nix
new file mode 100644
index 000000000000..dd64366679c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pv/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl } :
+
+stdenv.mkDerivation rec {
+ name = "pv-1.6.6";
+
+ src = fetchurl {
+ url = "https://www.ivarch.com/programs/sources/${name}.tar.bz2";
+ sha256 = "1wbk14xh9rfypiwyy68ssl8dliyji30ly70qki1y2xx3ywszk3k0";
+ };
+
+ meta = {
+ homepage = "http://www.ivarch.com/programs/pv";
+ description = "Tool for monitoring the progress of data through a pipeline";
+ license = stdenv.lib.licenses.artistic2;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = with stdenv.lib.platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile
new file mode 100644
index 000000000000..43b6b931860c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'pws'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile.lock
new file mode 100644
index 000000000000..cad7909e406d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ clipboard (1.0.6)
+ paint (1.0.1)
+ pbkdf2-ruby (0.2.1)
+ pws (1.0.6)
+ clipboard (~> 1.0.5)
+ paint (>= 0.8.7)
+ pbkdf2-ruby
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ pws
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/default.nix
new file mode 100644
index 000000000000..0edec63c8c92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, bundlerEnv, ruby, bundlerUpdateScript, xsel, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ name = "pws-${(import ./gemset.nix).pws.version}";
+
+ buildInputs = [ makeWrapper ];
+
+ phases = ["installPhase"];
+
+ installPhase = let
+ env = bundlerEnv {
+ name = "${name}-gems";
+
+ inherit ruby;
+
+ gemdir = ./.;
+ };
+ in ''
+ mkdir -p $out/bin
+ makeWrapper ${env}/bin/pws $out/bin/pws \
+ --set PATH '"${xsel}/bin/:$PATH"'
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "pws";
+
+ meta = with lib; {
+ description = "Command-line password safe";
+ homepage = "https://github.com/janlelis/pws";
+ license = licenses.mit;
+ maintainers = with maintainers; [ swistak35 nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/gemset.nix
new file mode 100644
index 000000000000..2aa26f9a0202
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/pws/gemset.nix
@@ -0,0 +1,34 @@
+{
+ clipboard = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11r5xi1fhll4qxna2sg83vmnphjzqc4pzwdnmc5qwvdps5jbz7cq";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ paint = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z1fqyyc2jiv6yabv467h652cxr2lmxl5gqqg7p14y28kdqf0nhj";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ pbkdf2-ruby = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "014vb5k8klvh192idqrda2571dxsp7ai2v72hj265zd2awy0zyg1";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ pws = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1brn123mmrw09ji60sa13ylgfjjp7aicz07hm9h0dc3162zlw5wn";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/q-text-as-data/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/q-text-as-data/default.nix
new file mode 100644
index 000000000000..e70b8274d364
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/q-text-as-data/default.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC, fetchFromGitHub, python2 }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "q-text-as-data";
+ version = "1.7.4";
+
+ src = fetchFromGitHub {
+ owner = "harelba";
+ repo = "q";
+ rev = version;
+ sha256 = "0p8rbfwwcqjyrix51v52zp9b03z4xg1fv2raf2ygqp9a4l27dca8";
+ };
+
+ buildInputs = [ python2 ];
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/q $out/bin
+ chmod +x $out/bin/q
+ '';
+
+ meta = with stdenvNoCC.lib; {
+ description = "Run SQL directly on CSV or TSV files";
+ longDescription = ''
+ q is a command line tool that allows direct execution of SQL-like queries on CSVs/TSVs (and any other tabular text files).
+
+ q treats ordinary files as database tables, and supports all SQL constructs, such as WHERE, GROUP BY, JOINs etc. It supports automatic column name and column type detection, and provides full support for multiple encodings.
+ '';
+ homepage = "http://harelba.github.io/q/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.taneb ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/qjoypad/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/qjoypad/default.nix
new file mode 100644
index 000000000000..2b8a2fb02be5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/qjoypad/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXtst, qt4 }:
+stdenv.mkDerivation rec {
+ name = "qjoypad-4.1.0";
+ src = fetchurl {
+ url = "mirror://sourceforge/qjoypad/${name}.tar.gz";
+ sha256 = "1jlm7i26nfp185xrl41kz5z6fgvyj51bjpz48cg27xx64y40iamm";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 libXtst qt4 ];
+ NIX_LDFLAGS = "-lX11";
+ patchPhase = ''
+ cd src
+ substituteInPlace config --replace /bin/bash ${stdenv.shell}
+ mkdir -p $out
+ export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${libX11}/lib"
+ '';
+ meta = {
+ description = "A program that lets you use gaming devices anywhere";
+ longDescription = ''
+ A simple Linux/QT program that lets you use your gaming devices
+ where you want them: in your games! QJoyPad takes input from a
+ gamepad or joystick and translates it into key strokes or mouse
+ actions, letting you control any XWindows program with your game
+ controller. This lets you play all those games that for some
+ reason don't have joystick support with your joystick. QJoyPad
+ also gives you the advantage of multiple saved layouts so you
+ can have a separate setting for every game, or for every class
+ of game! That way you can play your games the way you want, not
+ the way the programmers decided, and you can have the same
+ button be "fire" in every one of your space fighters. QJoyPad
+ gives you the freedom and flexibility to really take advantage
+ of gaming devices in Linux, and makes the Linux gaming
+ experience just a little bit nicer.
+ '';
+ homepage = "http://qjoypad.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/qt5ct/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
new file mode 100644
index 000000000000..5b88030849d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchurl, qtbase, qtsvg, qttools, qmake }:
+
+let inherit (lib) getDev; in
+
+mkDerivation rec {
+ pname = "qt5ct";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "1lnx4wqk87lbr6lqc64w5g5ppjjv75kq2r0q0bz9gfpryzdw8xxg";
+ };
+
+ nativeBuildInputs = [ qmake qttools ];
+
+ buildInputs = [ qtbase qtsvg ];
+
+ qmakeFlags = [
+ "LRELEASE_EXECUTABLE=${getDev qttools}/bin/lrelease"
+ "PLUGINDIR=${placeholder "out"}/${qtbase.qtPluginPrefix}"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Qt5 Configuration Tool";
+ homepage = "https://www.opendesktop.org/content/show.php?content=168066";
+ platforms = platforms.linux;
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ ralith ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/radeon-profile/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/radeon-profile/default.nix
new file mode 100644
index 000000000000..852c46b6d005
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/radeon-profile/default.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qtbase, qtcharts, qmake, libXrandr, libdrm
+}:
+
+mkDerivation rec {
+
+ pname = "radeon-profile";
+ version = "20190903";
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtbase qtcharts libXrandr libdrm ];
+
+ src = (fetchFromGitHub {
+ owner = "marazmista";
+ repo = "radeon-profile";
+ rev = version;
+ sha256 = "0ax5417q03xjwi3pn7yyjdb90ssaygdprfgb1pz9nkyk6773ckx5";
+ }) + "/radeon-profile";
+
+ preConfigure = ''
+ substituteInPlace radeon-profile.pro \
+ --replace "/usr/" "$out/"
+ '';
+
+ meta = with lib; {
+ description = "Application to read current clocks of AMD Radeon cards";
+ homepage = "https://github.com/marazmista/radeon-profile";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rargs/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rargs/default.nix
new file mode 100644
index 000000000000..6ebbeb39c6e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rargs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rargs";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "lotabout";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "188gj05rbivci1z4z29vwdwxlj2w01v5i4avwrxjnj1dd6mmlbxd";
+ };
+
+ cargoSha256 = "0qzkhx0n28f5wy4fral3adn499q3f10q71cd544s4ghqwqn4khc9";
+
+ doCheck=false; # `rargs`'s test depends on the deprecated `assert_cli` crate, which in turn is not in Nixpkgs
+
+ meta = with stdenv.lib; {
+ description = "xargs + awk with pattern matching support";
+ homepage = "https://github.com/lolabout/rargs";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ pblkt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/default.nix
new file mode 100644
index 000000000000..570b55c9acf3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "rcm";
+ version = "1.3.3";
+
+ src = fetchurl {
+ url = "https://thoughtbot.github.io/rcm/dist/rcm-${version}.tar.gz";
+ sha256 = "1bqk7rrp1ckzvsvl9wghsr77m8xl3a7yc5gqdsisz492dx2j8mck";
+ };
+
+ patches = [ ./fix-rcmlib-path.patch ];
+
+ postPatch = ''
+ for f in bin/*.in; do
+ substituteInPlace $f --subst-var-by rcm $out
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Management Suite for Dotfiles";
+ homepage = "https://github.com/thoughtbot/rcm";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ malyn ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/fix-rcmlib-path.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/fix-rcmlib-path.patch
new file mode 100644
index 000000000000..e7d600d2a1f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rcm/fix-rcmlib-path.patch
@@ -0,0 +1,48 @@
+diff --git a/bin/lsrc.in b/bin/lsrc.in
+index fcf5fbe..119d659 100755
+--- a/bin/lsrc.in
++++ b/bin/lsrc.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+
+ pushdir() {
+diff --git a/bin/mkrc.in b/bin/mkrc.in
+index da22a63..a6bb0ad 100755
+--- a/bin/mkrc.in
++++ b/bin/mkrc.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+
+ destination() {
+diff --git a/bin/rcdn.in b/bin/rcdn.in
+index ae7aad8..c210599 100755
+--- a/bin/rcdn.in
++++ b/bin/rcdn.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+
+ remove_link() {
+diff --git a/bin/rcup.in b/bin/rcup.in
+index bdae664..2076f53 100755
+--- a/bin/rcup.in
++++ b/bin/rcup.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+
+ print_ln_v() {
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix
new file mode 100644
index 000000000000..bf75213acdf6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, makeWrapper, python2, exif, imagemagick }:
+
+stdenv.mkDerivation rec {
+ pname = "recoverjpeg";
+ version = "2.6.3";
+
+ src = fetchurl {
+ url = "https://www.rfc1149.net/download/recoverjpeg/${pname}-${version}.tar.gz";
+ sha256 = "009jgxi8lvdp00dwfj0n4x5yqrf64x00xdkpxpwgl2v8wcqn56fv";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ python2 ];
+
+ postFixup = ''
+ wrapProgram $out/bin/sort-pictures \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ exif imagemagick ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://rfc1149.net/devel/recoverjpeg.html";
+ description = "Recover lost JPEGs and MOV files on a bogus memory card or disk";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dotlambda ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/recutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/recutils/default.nix
new file mode 100644
index 000000000000..416fa23f4534
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/recutils/default.nix
@@ -0,0 +1,35 @@
+{ fetchurl, stdenv, emacs, curl, check, bc }:
+
+stdenv.mkDerivation rec {
+ name = "recutils-1.8";
+
+ src = fetchurl {
+ url = "mirror://gnu/recutils/${name}.tar.gz";
+ sha256 = "14xiln4immfsw8isnvwvq0h23f6z0wilpgsc4qzabnrzb5lsx3nz";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ buildInputs = [ curl emacs ];
+
+ checkInputs = [ check bc ];
+ doCheck = true;
+
+ meta = {
+ description = "Tools and libraries to access human-editable, text-based databases";
+
+ longDescription =
+ '' GNU Recutils is a set of tools and libraries to access
+ human-editable, text-based databases called recfiles. The data is
+ stored as a sequence of records, each record containing an arbitrary
+ number of named fields.
+ '';
+
+ homepage = "https://www.gnu.org/software/recutils/";
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/remind/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/remind/default.nix
new file mode 100644
index 000000000000..5c7fa9d4c249
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/remind/default.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchurl, tk, tcllib, makeWrapper
+, tkremind ? true
+} :
+
+assert tkremind -> tk != null;
+assert tkremind -> tcllib != null;
+assert tkremind -> makeWrapper != null;
+
+let
+ inherit (stdenv.lib) optional optionalString;
+ tclLibraries = stdenv.lib.optionals tkremind [ tcllib tk ];
+ tclLibPaths = stdenv.lib.concatStringsSep " "
+ (map (p: "${p}/lib/${p.libPrefix}") tclLibraries);
+ tkremindPatch = optionalString tkremind ''
+ substituteInPlace scripts/tkremind --replace "exec wish" "exec ${tk}/bin/wish"
+ '';
+in stdenv.mkDerivation rec {
+ pname = "remind";
+ version = "03.03.01";
+
+ src = fetchurl {
+ url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
+ sha256 = "0y4l960529sl3sn4r4g36qpy3jk5h1x4algjy7an7sfiqb8n98fi";
+ };
+
+ nativeBuildInputs = optional tkremind makeWrapper;
+ propagatedBuildInputs = tclLibraries;
+
+ postPatch = ''
+ substituteInPlace ./configure \
+ --replace "sleep 1" "true"
+ substituteInPlace ./src/init.c \
+ --replace "rkrphgvba(0);" "" \
+ --replace "rkrphgvba(1);" ""
+ ${tkremindPatch}
+ '';
+
+ postInstall = optionalString tkremind ''
+ wrapProgram $out/bin/tkremind --set TCLLIBPATH "${tclLibPaths}"
+ '';
+
+ meta = {
+ homepage = "https://dianne.skoll.ca/projects/remind/";
+ description = "Sophisticated calendar and alarm program for the console";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [raskin kovirobi];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rename/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rename/default.nix
new file mode 100644
index 000000000000..e32b016016bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rename/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchFromGitHub, perlPackages }:
+
+perlPackages.buildPerlPackage {
+ pname = "rename";
+ version = "1.9";
+ outputs = [ "out" ];
+ src = fetchFromGitHub {
+ owner = "pstray";
+ repo = "rename";
+ rev = "d46f1d0ced25dc5849acb5d5974a3e2e9d97d536";
+ sha256 = "0qahs1cqfaci2hdf1xncrz4k0z5skkfr43apnm3kybs7za33apzw";
+ };
+ meta = with stdenv.lib; {
+ description = "Rename files according to a Perl rewrite expression";
+ homepage = "https://github.com/pstray/rename";
+ maintainers = with maintainers; [ mkg ];
+ license = with licenses; [ gpl1Plus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/default.nix
new file mode 100644
index 000000000000..73146f09792b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, readline}:
+
+stdenv.mkDerivation {
+ name = "renameutils-0.12.0";
+
+ src = fetchurl {
+ url = "mirror://savannah/renameutils/renameutils-0.12.0.tar.gz";
+ sha256 = "18xlkr56jdyajjihcmfqlyyanzyiqqlzbhrm6695mkvw081g1lnb";
+ };
+
+ patches = [ ./install-exec.patch ];
+
+ nativeBuildInputs = [ readline ];
+
+ meta = {
+ homepage = "https://www.nongnu.org/renameutils/";
+ description = "A set of programs to make renaming of files faster";
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/install-exec.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/install-exec.patch
new file mode 100644
index 000000000000..32b8de5adb80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/renameutils/install-exec.patch
@@ -0,0 +1,24 @@
+diff -Naur renameutils-0.12.0-orig/src/Makefile.am renameutils-0.12.0/src/Makefile.am
+--- renameutils-0.12.0-orig/src/Makefile.am 2012-04-23 12:10:43.000000000 +0100
++++ renameutils-0.12.0/src/Makefile.am 2013-03-25 11:13:21.605447377 +0000
+@@ -49,7 +49,7 @@
+ @[ -f icp ] || (echo $(LN_S) icmd icp ; $(LN_S) icmd icp)
+
+ install-exec-local:
+- $(mkdir_p) $(DESTDIR)($bindir)
++ $(mkdir_p) $(DESTDIR)$(bindir)
+ @[ -f $(DESTDIR)$(bindir)/qmv ] || (echo $(LN_S) qcmd $(DESTDIR)$(bindir)/qmv ; $(LN_S) qcmd $(DESTDIR)$(bindir)/qmv)
+ @[ -f $(DESTDIR)$(bindir)/qcp ] || (echo $(LN_S) qcmd $(DESTDIR)$(bindir)/qcp ; $(LN_S) qcmd $(DESTDIR)$(bindir)/qcp)
+ @[ -f $(DESTDIR)$(bindir)/imv ] || (echo $(LN_S) icmd $(DESTDIR)$(bindir)/imv ; $(LN_S) icmd $(DESTDIR)$(bindir)/imv)
+diff -Naur renameutils-0.12.0-orig/src/Makefile.in renameutils-0.12.0/src/Makefile.in
+--- renameutils-0.12.0-orig/src/Makefile.in 2012-04-23 12:24:10.000000000 +0100
++++ renameutils-0.12.0/src/Makefile.in 2013-03-25 11:13:40.549847891 +0000
+@@ -1577,7 +1577,7 @@
+ @[ -f icp ] || (echo $(LN_S) icmd icp ; $(LN_S) icmd icp)
+
+ install-exec-local:
+- $(mkdir_p) $(DESTDIR)($bindir)
++ $(mkdir_p) $(DESTDIR)$(bindir)
+ @[ -f $(DESTDIR)$(bindir)/qmv ] || (echo $(LN_S) qcmd $(DESTDIR)$(bindir)/qmv ; $(LN_S) qcmd $(DESTDIR)$(bindir)/qmv)
+ @[ -f $(DESTDIR)$(bindir)/qcp ] || (echo $(LN_S) qcmd $(DESTDIR)$(bindir)/qcp ; $(LN_S) qcmd $(DESTDIR)$(bindir)/qcp)
+ @[ -f $(DESTDIR)$(bindir)/imv ] || (echo $(LN_S) icmd $(DESTDIR)$(bindir)/imv ; $(LN_S) icmd $(DESTDIR)$(bindir)/imv)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/reredirect/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/reredirect/default.nix
new file mode 100644
index 000000000000..15045d4bd8ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/reredirect/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "reredirect";
+ version = "0.2";
+
+ src = fetchFromGitHub {
+ owner = "jerome-pouiller";
+ repo = "reredirect";
+ rev = "v${version}";
+ sha256 = "0aqzs940kwvw80lhkszx8spcdh9ilsx5ncl9vnp611hwlryfw7kk";
+ };
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ postFixup = ''
+ substituteInPlace ${placeholder "out"}/bin/relink \
+ --replace "reredirect" "${placeholder "out"}/bin/reredirect"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool to dynamicly redirect outputs of a running process";
+ homepage = "https://github.com/jerome-pouiller/reredirect";
+ license = licenses.mit;
+ maintainers = [ maintainers.tobim ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
new file mode 100644
index 000000000000..48e0f7757aeb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, file , protobufc }:
+
+stdenv.mkDerivation rec {
+ name = "riemann-c-client-1.10.4";
+
+ src = fetchFromGitHub {
+ owner = "algernon";
+ repo = "riemann-c-client";
+ rev = name;
+ sha256 = "01gzqxqm1xvki2vd78c7my2kgp4fyhkcf5j5fmy8z0l93lgj82rr";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ file protobufc ];
+
+ preBuild = ''
+ make lib/riemann/proto/riemann.pb-c.h
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/algernon/riemann-c-client";
+ description = "A C client library for the Riemann monitoring system";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ pradeepchhetri ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile
new file mode 100644
index 000000000000..b2e34d5120e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem "riemann-tools"
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile.lock
new file mode 100644
index 000000000000..a3e1ea62a8c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/Gemfile.lock
@@ -0,0 +1,25 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ beefcake (1.0.0)
+ json (1.8.6)
+ mtrc (0.0.4)
+ optimist (3.0.0)
+ riemann-client (0.2.6)
+ beefcake (>= 0.3.5, <= 1.0.0)
+ mtrc (>= 0.0.4)
+ trollop (>= 1.16.2)
+ riemann-tools (0.2.14)
+ json (~> 1.8)
+ optimist (~> 3.0, >= 3.0.0)
+ riemann-client (~> 0.2, >= 0.2.6)
+ trollop (2.9.9)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ riemann-tools
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/default.nix
new file mode 100644
index 000000000000..a9977aefd66c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/default.nix
@@ -0,0 +1,37 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "riemann-tools";
+ gemdir = ./.;
+ exes = [
+ "riemann-apache-status"
+ "riemann-bench"
+ "riemann-cloudant"
+ "riemann-consul"
+ "riemann-dir-files-count"
+ "riemann-dir-space"
+ "riemann-diskstats"
+ "riemann-fd"
+ "riemann-freeswitch"
+ "riemann-haproxy"
+ "riemann-health"
+ "riemann-kvminstance"
+ "riemann-memcached"
+ "riemann-net"
+ "riemann-nginx-status"
+ "riemann-ntp"
+ "riemann-portcheck"
+ "riemann-proc"
+ "riemann-varnish"
+ "riemann-zookeeper"
+ ];
+
+ passthru.updateScript = bundlerUpdateScript "riemann-tools";
+
+ meta = with lib; {
+ description = "Tools to submit data to Riemann";
+ homepage = "https://riemann.io";
+ maintainers = with maintainers; [ manveru nicknovitski ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/gemset.nix
new file mode 100644
index 000000000000..e775de987d67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/riemann-tools/gemset.nix
@@ -0,0 +1,74 @@
+{
+ beefcake = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10gid0a7pdllh3qmjiqkqxgfqvd7m1f2dmcm4gcd19s63pv620gv";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+ type = "gem";
+ };
+ version = "1.8.6";
+ };
+ mtrc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xj2pv4cpn0ad1xw38sinsxfzwhgqs6ff18hw0cwz5xmsf3zqmiz";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ optimist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05jxrp3nbn5iilc1k7ir90mfnwc5abc9h78s5rpm3qafwqxvcj4j";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ riemann-client = {
+ dependencies = ["beefcake" "mtrc" "trollop"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02rp8x2y8h61x8mx9c8kwgm2yyvgg63g8km93zmwmkpp5fyi3fi8";
+ type = "gem";
+ };
+ version = "0.2.6";
+ };
+ riemann-tools = {
+ dependencies = ["json" "optimist" "riemann-client"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07w9x3iw32zwpzsm9l63vn0nv1778qls1blqysr45m7l7x6n5wjx";
+ type = "gem";
+ };
+ version = "0.2.14";
+ };
+ trollop = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "074h7lns72kg1dl5gvz5apl3xz1i0axbnbc01pf2kbw4q0lkpnp4";
+ type = "gem";
+ };
+ version = "2.9.9";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rig/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rig/default.nix
new file mode 100644
index 000000000000..7e1d9307a167
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rig/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl } :
+
+stdenv.mkDerivation rec {
+ version = "1.11";
+ pname = "rig";
+
+ src = fetchurl {
+ url = "https://ayera.dl.sourceforge.net/project/rig/rig/${version}/rig-${version}.tar.gz";
+ sha256 = "1f3snysjqqlpk2kgvm5p2icrj4lsdymccmn3igkc2f60smqckgq0";
+ };
+
+ # Note: diff modified from Debian: Norbert Veber <nveber@debian.org>
+ # http://deb.debian.org/debian/pool/main/r/rig/rig_1.11-1.diff.gz
+ patches = [ ./rig_1.11-1.diff ];
+
+ meta = {
+ homepage = "http://rig.sourceforge.net/";
+ description = "Random identity generator";
+ longDescription = ''
+ RIG (Random Identity Generator) is a free replacement for a shareware
+ program out there called 'fake'. It generates random, yet real-looking,
+ personal data. It is useful if you need to feed a name to a Web site,
+ BBS, or real person, and are too lazy to think of one yourself. Also,
+ if the Web site/BBS/person you are giving the information to tries to
+ cross-check the city, state, zip, or area code, it will check out.
+ '';
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ tomberek ];
+ platforms = with stdenv.lib.platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rig/rig_1.11-1.diff b/infra/libkookie/nixpkgs/pkgs/tools/misc/rig/rig_1.11-1.diff
new file mode 100644
index 000000000000..301cf78b5a9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rig/rig_1.11-1.diff
@@ -0,0 +1,39 @@
+--- rig-1.11.orig/Makefile
++++ rig-1.11/Makefile
+@@ -1,20 +1,21 @@
+-PREFIX=/usr/local
++PREFIX=${out}
+ BINDIR=${PREFIX}/bin
+ MANDIR=${PREFIX}/man
+ DATADIR=${PREFIX}/share/rig
++CXX=g++
+
+ all: rig rig.6
+ rig: rig.cc
+- g++ -g rig.cc -o rig -Wall -DDATADIR="\"$(DATADIR)\""
++ ${CXX} -O2 -g rig.cc -o rig -Wall -DDATADIR="\"$(DATADIR)\""
+
+ rig.6: rig.6.in
+ sed s@DATADIR@"$(DATADIR)"@g < rig.6.in > rig.6
+
+ install: rig rig.6
+- install -g 0 -m 755 -o 0 -s rig $(BINDIR)
+- install -g 0 -m 644 -o 0 rig.6 $(MANDIR)/man6/rig.6
+- install -g 0 -m 755 -o 0 -d $(DATADIR)
+- install -g 0 -m 644 -o 0 data/*.idx $(DATADIR)
++ install -m 755 -d $(DESTDIR)$(DATADIR)
++ install -m 755 -d $(DESTDIR)$(BINDIR)
++ install -m 755 rig $(DESTDIR)$(BINDIR)/rig
++ install -m 644 data/*.idx $(DESTDIR)$(DATADIR)
+
+ clean:
+ rm -rf *~ *.rej *.orig *.o rig rig.6
+--- rig-1.11.orig/rig.cc
++++ rig-1.11/rig.cc
+@@ -26,6 +26,7 @@
+ #include <time.h>
+ #include <errno.h>
+ #include <assert.h>
++#include <string.h>
+
+ using namespace std;
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rkflashtool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rkflashtool/default.nix
new file mode 100644
index 000000000000..94d6ca95748f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rkflashtool/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, libusb1 }:
+
+stdenv.mkDerivation rec {
+ name = "rkflashtool-5.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/rkflashtool/${name}-src.tar.bz2";
+ sha256 = "0dbp1crw7pjav9gffrnskhkf0gxlj4xgp65clqhvfmv32460xb9c";
+ };
+
+ versionh = fetchurl {
+ url = "mirror://sourceforge/rkflashtool/version.h";
+ sha256 = "1mkcy3yyfaddhzg524hjnhvmwdmdfzbavib8d9p5y38pcqy8xgdp";
+ };
+
+ buildInputs = [ libusb1 ];
+
+ preBuild = ''
+ cp $versionh version.h
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp rkunpack rkcrc rkflashtool rkparameters rkparametersblock rkunsign rkmisc $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/rkflashtool/";
+ description = "Tools for flashing Rockchip devices";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.viric ];
+ license = licenses.bsd2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rlwrap/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rlwrap/default.nix
new file mode 100644
index 000000000000..c19b0f1f9acd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rlwrap/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "rlwrap";
+ version = "0.43";
+
+ src = fetchurl {
+ url = "https://github.com/hanslub42/rlwrap/releases/download/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "0bzb7ylk2770iv59v2d0gypb21y2xn87m299s9rqm6rdi2vx11lf";
+ };
+
+ buildInputs = [ readline ];
+
+ # Be high-bit-friendly
+ preBuild = ''
+ sed -i src/readline.c -e "s@[*]p [<] ' '@(*p >= 0) \\&\\& (*p < ' ')@"
+ '';
+
+ meta = {
+ description = "Readline wrapper for console programs";
+ homepage = "https://github.com/hanslub42/rlwrap";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rmlint/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rmlint/default.nix
new file mode 100644
index 000000000000..936c78b695d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rmlint/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, cairo
+, fetchFromGitHub
+, gettext
+, glib
+, gobject-introspection
+, gtksourceview3
+, json-glib
+, libelf
+, makeWrapper
+, pango
+, pkgconfig
+, polkit
+, python3
+, scons
+, sphinx
+, utillinux
+, wrapGAppsHook
+, withGui ? false }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "rmlint";
+ version = "2.10.1";
+
+ src = fetchFromGitHub {
+ owner = "sahib";
+ repo = "rmlint";
+ rev = "v${version}";
+ sha256 = "15xfkcw1bkfyf3z8kl23k3rlv702m0h7ghqxvhniynvlwbgh6j2x";
+ };
+
+ CFLAGS="-I${stdenv.lib.getDev utillinux}/include";
+
+ nativeBuildInputs = [
+ pkgconfig
+ sphinx
+ gettext
+ scons
+ ] ++ stdenv.lib.optionals withGui [
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ json-glib
+ libelf
+ utillinux
+ ] ++ stdenv.lib.optionals withGui [
+ cairo
+ gobject-introspection
+ gtksourceview3
+ pango
+ polkit
+ python3
+ python3.pkgs.pygobject3
+ ];
+
+ # this doesn't seem to support configureFlags, and appends $out afterwards,
+ # so add the --without-gui in front of it
+ prefixKey = stdenv.lib.optionalString (!withGui) " --without-gui " + "--prefix=";
+
+ # in GUI mode, this shells out to itself, and tries to import python modules
+ postInstall = stdenv.lib.optionalString withGui ''
+ gappsWrapperArgs+=(--prefix PATH : "$out/bin")
+ gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})")
+ '';
+
+ meta = {
+ description = "Extremely fast tool to remove duplicates and other lint from your filesystem";
+ homepage = "https://rmlint.readthedocs.org";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.koral ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rmtrash/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
new file mode 100644
index 000000000000..073871b0f438
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, makeWrapper
+, trash-cli, coreutils, which, getopt }:
+
+stdenv.mkDerivation rec {
+ pname = "rmtrash";
+ version = "1.13";
+
+ src = fetchFromGitHub {
+ owner = "PhrozenByte";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04a9c65wnkq1fj8qhdsdbps88xjbp7rn6p27y25v47kaysvrw01j";
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ for f in rm{,dir}trash; do
+ install -D ./$f $out/bin/$f
+ wrapProgram $out/bin/$f \
+ --prefix PATH : ${lib.makeBinPath [ trash-cli coreutils which getopt ]}
+ done
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/PhrozenByte/rmtrash";
+ description = "trash-put made compatible with GNUs rm and rmdir";
+ longDescription = ''
+ Put files (and directories) in trash using the `trash-put` command in a
+ way that is, otherwise as `trash-put` itself, compatible to GNUs `rm`
+ and `rmdir`.
+ '';
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ peelz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix
new file mode 100644
index 000000000000..6be32e214784
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, pkgconfig, cryptopp
+, libusb1, qtbase, qttools, makeWrapper
+, qmake, withEspeak ? false, espeak ? null
+, qt5 }:
+
+let inherit (stdenv.lib) getDev; in
+
+stdenv.mkDerivation rec {
+ pname = "rockbox-utility";
+ version = "1.4.1";
+
+ src = fetchurl {
+ url = "https://download.rockbox.org/rbutil/source/RockboxUtility-v${version}-src.tar.bz2";
+ sha256 = "0zm9f01a810y7aq0nravbsl0vs9vargwvxnfl4iz9qsqygwlj69y";
+ };
+
+ buildInputs = [ cryptopp libusb1 qtbase qttools ]
+ ++ stdenv.lib.optional withEspeak espeak;
+ nativeBuildInputs = [ makeWrapper pkgconfig qmake qt5.wrapQtAppsHook ];
+
+ postPatch = ''
+ sed -i rbutil/rbutilqt/rbutilqt.pro \
+ -e '/^lrelease.commands =/ s|$$\[QT_INSTALL_BINS\]/lrelease -silent|${getDev qttools}/bin/lrelease|'
+ '';
+
+ preConfigure = ''
+ cd rbutil/rbutilqt
+ lrelease rbutilqt.pro
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 RockboxUtility $out/bin/rockboxutility
+ ln -s $out/bin/rockboxutility $out/bin/RockboxUtility
+ wrapProgram $out/bin/rockboxutility \
+ ${stdenv.lib.optionalString withEspeak ''
+ --prefix PATH : ${espeak}/bin
+ ''}
+
+ runHook postInstall
+ '';
+
+ # `make build/rcc/qrc_rbutilqt-lang.cpp` fails with
+ # RCC: Error in 'rbutilqt-lang.qrc': Cannot find file 'lang/rbutil_cs.qm'
+ # Do not add `lrelease rbutilqt.pro` into preConfigure, otherwise `make lrelease`
+ # may clobber the files read by the parallel `make build/rcc/qrc_rbutilqt-lang.cpp`.
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ description = "Open source firmware for mp3 players";
+ homepage = "https://www.rockbox.org";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/roundup/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/roundup/default.nix
new file mode 100644
index 000000000000..8d0c62889f99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/roundup/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, ronn, shocco }:
+
+stdenv.mkDerivation rec {
+ pname = "roundup";
+ version = "0.0.6";
+
+ src = fetchFromGitHub {
+ owner = "bmizerany";
+ repo = "roundup";
+ rev = "v${version}";
+ sha256 = "0nxaqmbv8mdvq9wcaqxk6k5mr31i68jzxf1wxa6pp7xp4prwdc9z";
+ };
+
+ prePatch = ''
+ # Don't change $PATH
+ substituteInPlace configure --replace PATH= NIRVANA=
+ # There are only man pages in sections 1 and 5 \
+ substituteInPlace Makefile --replace "{1..9}" "1 5"
+ '';
+
+ nativeBuildInputs = [ ronn shocco ];
+
+ installTargets = [ "install" "install-man" ];
+
+ preInstall = ''
+ for i in 1 5; do
+ mkdir -p $out/share/man/man$i
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A unit testing tool for running test plans which are written in any POSIX shell";
+ homepage = "http://bmizerany.github.io/roundup/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dotlambda ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/routino/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/routino/default.nix
new file mode 100644
index 000000000000..8d9487344608
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/routino/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, perl, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+ pname = "routino";
+ version = "3.3.2";
+
+ src = fetchurl {
+ url = "https://routino.org/download/${pname}-${version}.tgz";
+ sha256 = "1ccx3s99j8syxc1gqkzsaqkmyf44l7h3adildnc5iq2md7bp8wab";
+ };
+
+ patchFlags = [ "-p0" ];
+ patches = stdenv.lib.optionals stdenv.isDarwin [
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/macports/macports-ports/18fd229516a46e7272003acbe555735b2a902db7/gis/routino/files/patch-Makefile_conf.diff";
+ sha256 = "1b7hpa4sizansnwwxq1c031nxwdwh71pg08jl9z9apiab8pjsn53";
+ })
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/macports/macports-ports/18fd229516a46e7272003acbe555735b2a902db7/gis/routino/files/patch-src_Makefile_dylib_extension.diff";
+ sha256 = "1kigxcfr7977baxdsfvrw6q453cpqlzqakhj7av2agxkcvwyilpv";
+ })
+ ];
+
+ nativeBuildInputs = [ perl ];
+
+ buildInputs = [ zlib bzip2 ];
+
+ outputs = [ "out" "doc" ];
+
+ CLANG = stdenv.lib.optionalString stdenv.cc.isClang "1";
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.routino.org/";
+ description = "OpenStreetMap Routing Software";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ dotlambda ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rpcsvc-proto/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rpcsvc-proto/default.nix
new file mode 100644
index 000000000000..6406b6b20e2c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rpcsvc-proto/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "rpcsvc-proto";
+ version = "1.4.2";
+
+ src = fetchFromGitHub {
+ owner = "thkukuk";
+ repo = "${pname}";
+ rev = "v${version}";
+ sha256 = "006l1f824r9bcbwn1s1vbs33cdwhs66jn6v97yas597y884y40z9";
+ };
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/thkukuk/rpcsvc-proto";
+ description = "This package contains rpcsvc proto.x files from glibc, which are missing in libtirpc";
+ longDescription = ''
+ The RPC-API has been removed from glibc. The 2.32-release-notes
+ (https://sourceware.org/pipermail/libc-announce/2020/000029.html) recommend to use
+ `libtirpc` and this package instead.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
new file mode 100644
index 000000000000..456798d816f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
@@ -0,0 +1,124 @@
+{ stdenv
+, fetchurl
+, ostree
+, rpm
+, which
+, autoconf
+, automake
+, libtool
+, pkgconfig
+, cargo
+, rustc
+, gobject-introspection
+, gtk-doc
+, libxml2
+, libxslt
+, docbook_xsl
+, docbook_xml_dtd_42
+, docbook_xml_dtd_43
+, gperf
+, cmake
+, libcap
+, glib
+, systemd
+, json-glib
+, libarchive
+, libsolv
+, librepo
+, polkit
+, bubblewrap
+, pcre
+, check
+, python
+, json_c
+, zchunk
+, libmodulemd
+, utillinux
+, sqlite
+, cppunit
+}:
+
+stdenv.mkDerivation rec {
+ pname = "rpm-ostree";
+ version = "2020.5";
+
+ outputs = [ "out" "dev" "man" "devdoc" ];
+
+ src = fetchurl {
+ url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
+ sha256 = "MLLCmnStvGuSbVBdfOm2Sdzzz7LvPQkgDt9G0CDqCkA=";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ which
+ autoconf
+ automake
+ libtool
+ cmake
+ gperf
+ cargo
+ rustc
+ gobject-introspection
+ gtk-doc
+ libxml2
+ libxslt
+ docbook_xsl
+ docbook_xml_dtd_42
+ docbook_xml_dtd_43
+ ];
+
+ buildInputs = [
+ libcap
+ ostree
+ rpm
+ glib
+ systemd
+ polkit
+ bubblewrap
+ json-glib
+ libarchive
+ libsolv
+ librepo
+ pcre
+ check
+ python
+
+ # libdnf # vendored unstable branch
+ # required by vendored libdnf
+ json_c
+ zchunk
+ libmodulemd
+ utillinux # for smartcols.pc
+ sqlite
+ cppunit
+ ];
+
+ configureFlags = [
+ "--enable-gtk-doc"
+ "--with-bubblewrap=${bubblewrap}/bin/bwrap"
+ ];
+
+ dontUseCmakeConfigure = true;
+
+ prePatch = ''
+ # According to #cmake on freenode, libdnf should bundle the FindLibSolv.cmake module
+ cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake libdnf/cmake/modules/
+
+ # Let's not hardcode the rpm-gpg path...
+ substituteInPlace libdnf/libdnf/dnf-keyring.cpp \
+ --replace '"/etc/pki/rpm-gpg"' 'getenv("LIBDNF_RPM_GPG_PATH_OVERRIDE") ? getenv("LIBDNF_RPM_GPG_PATH_OVERRIDE") : "/etc/pki/rpm-gpg"'
+ '';
+
+ preConfigure = ''
+ env NOCONFIGURE=1 ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A hybrid image/package system. It uses OSTree as an image format, and uses RPM as a component model";
+ homepage = "https://rpm-ostree.readthedocs.io/en/latest/";
+ license = licenses.lgpl2Plus;
+ maintainers = with maintainers; [ copumpkin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rrdtool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rrdtool/default.nix
new file mode 100644
index 000000000000..10ff6db63f15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rrdtool/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, gettext, perl, pkgconfig, libxml2, pango, cairo, groff
+, tcl-8_5, darwin }:
+
+stdenv.mkDerivation rec {
+ name = "rrdtool-1.7.2";
+
+ src = fetchurl {
+ url = "https://oss.oetiker.ch/rrdtool/pub/${name}.tar.gz";
+ sha256 = "1nsqra0g2nja19akmf9x5y9hhgc35ml3w9dcdz2ayz7zgvmzm6d1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ gettext perl libxml2 pango cairo groff ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ tcl-8_5 darwin.apple_sdk.frameworks.ApplicationServices ];
+
+ postInstall = ''
+ # for munin and rrdtool support
+ mkdir -p $out/${perl.libPrefix}
+ mv $out/lib/perl/5* $out/${perl.libPrefix}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://oss.oetiker.ch/rrdtool/";
+ description = "High performance logging in Round Robin Databases";
+ license = licenses.gpl2;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/rw/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/rw/default.nix
new file mode 100644
index 000000000000..b36eff12a2fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/rw/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "rw";
+ version = "1.0";
+
+ src = fetchurl {
+ url = "https://sortix.org/rw/release/rw-portable-${version}.tar.gz";
+ # Use hash provided by upstream
+ sha256 = "50009730e36991dfe579716f91f4f616f5ba05ffb7bf69c03d41bf305ed93b6d";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://sortix.org/rw";
+ description = "Block device and byte copying program similar to dd";
+ longDescription = ''
+ rw is a command line program which copies information between files
+ or byte streams. The rw command is designed to be a replacement for
+ dd with standard style command line flags.
+ '';
+ license = licenses.isc;
+ maintainers = with maintainers; [ dtzWill ];
+
+ broken = stdenv.hostPlatform.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix
new file mode 100644
index 000000000000..bc32489c588e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -0,0 +1,35 @@
+{ skawarePackages }:
+
+with skawarePackages;
+
+let
+ pname = "s6-portable-utils";
+
+in buildPackage {
+ pname = pname;
+ version = "2.2.2.2";
+ sha256 = "1k3la37q46n93vjwk9wm9ym4w87z6lqzv43f03qd0vqj9k94mpv3";
+
+ description = "A set of tiny general Unix utilities optimized for simplicity and small size";
+
+ outputs = [ "bin" "dev" "doc" "out" ];
+
+ configureFlags = [
+ "--bindir=\${bin}/bin"
+ "--includedir=\${dev}/include"
+ "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
+ "--with-include=${skalibs.dev}/include"
+ "--with-lib=${skalibs.lib}/lib"
+ "--with-dynlib=${skalibs.lib}/lib"
+ ];
+
+ postInstall = ''
+ # remove all s6 executables from build directory
+ rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable)
+ rm seekablepipe
+
+ mv doc $doc/share/doc/${pname}/html
+ '';
+
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sam-ba/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sam-ba/default.nix
new file mode 100644
index 000000000000..67c751a57791
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sam-ba/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchzip, libX11, libXScrnSaver, libXext, libXft, libXrender
+, freetype, zlib, fontconfig
+}:
+
+let
+ maybe64 = if stdenv.isx86_64 then "_64" else "";
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc.lib libX11 libXScrnSaver libXext libXft libXrender freetype
+ zlib fontconfig
+ ];
+in
+stdenv.mkDerivation rec {
+ version = "2.16";
+ pname = "sam-ba";
+
+ src = fetchzip {
+ url = "http://www.atmel.com/dyn/resources/prod_documents/sam-ba_${version}_linux.zip";
+ sha256 = "18lsi4747900cazq3bf0a87n3pc7751j5papj9sxarjymcz9vks4";
+ };
+
+ # Pre-built binary package. Install everything to /opt/sam-ba to not mess up
+ # the internal directory structure. Then create wrapper in /bin. Attemts to
+ # use "patchelf --set-rpath" instead of setting LD_PRELOAD_PATH failed.
+ installPhase = ''
+ mkdir -p "$out/bin/" \
+ "$out/opt/sam-ba/"
+ cp -a . "$out/opt/sam-ba/"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/opt/sam-ba/sam-ba${maybe64}"
+ cat > "$out/bin/sam-ba" << EOF
+ export LD_LIBRARY_PATH="${libPath}"
+ exec "$out/opt/sam-ba/sam-ba${maybe64}"
+ EOF
+ chmod +x "$out/bin/sam-ba"
+ '';
+
+ # Do our own thing
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ description = "Programming tools for Atmel SAM3/7/9 ARM-based microcontrollers";
+ longDescription = ''
+ Atmel SAM-BA software provides an open set of tools for programming the
+ Atmel SAM3, SAM7 and SAM9 ARM-based microcontrollers.
+ '';
+ homepage = "http://www.at91.com/linux4sam/bin/view/Linux4SAM/SoftwareTools";
+ # License in <source>/doc/readme.txt
+ license = "BSD-like (partly binary-only)"; # according to Buildroot
+ platforms = [ "x86_64-linux" ]; # patchelf fails on i686-linux
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/scanmem/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/scanmem/default.nix
new file mode 100644
index 000000000000..58350f7a638d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/scanmem/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, autoconf, automake, intltool, libtool, fetchFromGitHub, readline }:
+
+stdenv.mkDerivation rec {
+ version = "0.17";
+ pname = "scanmem";
+
+ src = fetchFromGitHub {
+ owner = "scanmem";
+ repo = "scanmem";
+ rev = "v${version}";
+ sha256 = "17p8sh0rj8yqz36ria5bp48c8523zzw3y9g8sbm2jwq7sc27i7s9";
+ };
+
+ nativeBuildInputs = [ autoconf automake intltool libtool ];
+ buildInputs = [ readline ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/scanmem/scanmem";
+ description = "Memory scanner for finding and poking addresses in executing processes";
+ maintainers = [ maintainers.chattered ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/default.nix
new file mode 100644
index 000000000000..d604f1a68fe2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonApplication, fetchFromGitHub, python, pyyaml, fonttools, fontforge }:
+
+buildPythonApplication {
+ pname = "scfbuild";
+ version = "1.0.3";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "13rac1";
+ repo = "scfbuild";
+ rev = "9acc7fc5fedbf48683d8932dd5bd7583bf922bae";
+ sha256 = "1zlqsxkpg7zvmhdjgbqwwc9qgac2b8amzq8c5kwyh5cv95zcp6qn";
+ };
+
+ patches = [
+ # Convert to Python 3
+ # https://github.com/13rac1/scfbuild/pull/19
+ ./python-3.patch
+ ];
+
+ propagatedBuildInputs = [ pyyaml fonttools fontforge ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/${python.sitePackages}
+ cp -r scfbuild $out/${python.sitePackages}
+ cp -r bin $out
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "SVGinOT color font builder";
+ homepage = "https://github.com/13rac1/scfbuild";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/python-3.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/python-3.patch
new file mode 100644
index 000000000000..5a0178ad8c8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/scfbuild/python-3.patch
@@ -0,0 +1,46 @@
+--- a/bin/scfbuild
++++ b/bin/scfbuild
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python2
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ from __future__ import (absolute_import, division, print_function,
+--- a/scfbuild/builder.py
++++ b/scfbuild/builder.py
+@@ -287,8 +287,8 @@ def _add_name_record(self, text, name_id, platform_id, plat_enc_id, lang_id):
+ # TODO: The installed version of fontTools doesn't have
+ # table__n_a_m_e.setName().
+ record = NameRecord()
+- # PyYAML creates strings, force to Unicode
+- record.string = unicode(text)
++ # PyYAML creates strings, which are unicode as of Python3
++ record.string = text
+ record.nameID = name_id
+ record.platformID = platform_id
+ record.platEncID = plat_enc_id
+--- a/scfbuild/fforge.py
++++ b/scfbuild/fforge.py
+@@ -84,7 +84,7 @@ def add_glyphs(font, svg_filepaths, conf):
+ u_ids = [int(u_id, 16) for u_id in filename.split("-")]
+ # Example: (0x1f441, 0x1f5e8)
+
+- u_str = ''.join(map(unichr, u_ids))
++ u_str = ''.join(map(chr, u_ids))
+ # Example: "U\0001f441U\0001f5e8"
+
+ # Replace sequences with correct ZWJ/VS16 versions as needed
+--- a/scfbuild/main.py
++++ b/scfbuild/main.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python2
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ # SCFBuild is released under the GNU General Public License v3.
+index 0000000..99418b5
+--- /dev/null
++++ b/scfbuild/requirements.txt
+@@ -0,0 +1,2 @@
++fonttools>=3.41.2
++PyYAML>=5.1
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/screen/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/screen/default.nix
new file mode 100644
index 000000000000..9bc219289c44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/screen/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, fetchpatch, ncurses, utmp, pam ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "screen";
+ version = "4.8.0";
+
+ src = fetchurl {
+ url = "mirror://gnu/screen/${pname}-${version}.tar.gz";
+ sha256 = "18ascpjzsy70h6hk7wpg8zmzjwgdyrdr7c6z4pg5z4l9hhyv24bf";
+ };
+
+ configureFlags= [
+ "--enable-telnet"
+ "--enable-pam"
+ "--with-sys-screenrc=/etc/screenrc"
+ "--enable-colors256"
+ ];
+
+ patches = stdenv.lib.optional stdenv.hostPlatform.isMusl
+ (fetchpatch {
+ url = "https://gist.githubusercontent.com/yujinakayama/4608863/raw/76b9f89af5e5a2e97d9a0f36aac989fb56cf1447/gistfile1.diff";
+ sha256 = "0f9bf83p8zdxaa1pr75jyf5g8xr3r8kv7cyzzbpraa1q4j15ss1p";
+ stripLen = 1;
+ });
+
+ postPatch = stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform)
+ # XXX: Awful hack to allow cross-compilation.
+ '' sed -i ./configure \
+ -e 's/^as_fn_error .. \("cannot run test program while cross compiling\)/$as_echo \1/g'
+ ''; # "
+
+ buildInputs = [ ncurses ] ++ stdenv.lib.optional stdenv.isLinux pam
+ ++ stdenv.lib.optional stdenv.isDarwin utmp;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.gnu.org/software/screen/";
+ description = "A window manager that multiplexes a physical terminal";
+ license = licenses.gpl2Plus;
+
+ longDescription =
+ '' GNU Screen is a full-screen window manager that multiplexes a physical
+ terminal between several processes, typically interactive shells.
+ Each virtual terminal provides the functions of the DEC VT100
+ terminal and, in addition, several control functions from the ANSI
+ X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line
+ and support for multiple character sets). There is a scrollback
+ history buffer for each virtual terminal and a copy-and-paste
+ mechanism that allows the user to move text regions between windows.
+ When screen is called, it creates a single window with a shell in it
+ (or the specified command) and then gets out of your way so that you
+ can use the program as you normally would. Then, at any time, you
+ can create new (full-screen) windows with other programs in them
+ (including more shells), kill the current window, view a list of the
+ active windows, turn output logging on and off, copy text between
+ windows, view the scrollback history, switch between windows, etc.
+ All windows run their programs completely independent of each other.
+ Programs continue to run when their window is currently not visible
+ and even when the whole screen session is detached from the users
+ terminal.
+ '';
+
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ peti vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/screenfetch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/screenfetch/default.nix
new file mode 100644
index 000000000000..3d42ab9374a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/screenfetch/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, coreutils, gawk, procps, gnused
+, bc, findutils, xdpyinfo, xprop, gnugrep, ncurses, pciutils
+, darwin
+}:
+
+let
+ path = lib.makeBinPath ([
+ coreutils gawk gnused findutils
+ gnugrep ncurses bc pciutils
+ ] ++ lib.optionals stdenv.isLinux [
+ procps
+ xdpyinfo
+ xprop
+ ] ++ lib.optionals stdenv.isDarwin (with darwin; [
+ adv_cmds
+ DarwinTools
+ system_cmds
+ "/usr" # some commands like defaults is not available to us
+ ]));
+
+in stdenv.mkDerivation rec {
+ pname = "screenFetch";
+ version = "3.9.1";
+
+ src = fetchFromGitHub {
+ owner = "KittyKatt";
+ repo = "screenFetch";
+ rev = "v${version}";
+ sha256 = "04l8aqr474pb115nagn9f6y48jw92n1qfszgw7dbhgl4mpn95lcr";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -Dm 0755 screenfetch-dev $out/bin/screenfetch
+ install -Dm 0644 screenfetch.1 $out/share/man/man1/screenfetch.1
+ install -Dm 0644 -t $out/share/doc/screenfetch CHANGELOG COPYING README.mkdn TODO
+
+ # Fix all of the dependencies of screenfetch
+ patchShebangs $out/bin/screenfetch
+ wrapProgram "$out/bin/screenfetch" \
+ --prefix PATH : ${path}
+ '';
+
+ meta = with lib; {
+ description = "Fetches system/theme information in terminal for Linux desktop screenshots";
+ longDescription = ''
+ screenFetch is a "Bash Screenshot Information Tool". This handy Bash
+ script can be used to generate one of those nifty terminal theme
+ information + ASCII distribution logos you see in everyone's screenshots
+ nowadays. It will auto-detect your distribution and display an ASCII
+ version of that distribution's logo and some valuable information to the
+ right. There are options to specify no ascii art, colors, taking a
+ screenshot upon displaying info, and even customizing the screenshot
+ command! This script is very easy to add to and can easily be extended.
+ '';
+ license = licenses.gpl3;
+ homepage = "https://github.com/KittyKatt/screenFetch";
+ maintainers = with maintainers; [ relrod ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix
new file mode 100644
index 000000000000..b87a83fcdf94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, cmake, pkgconfig, libftdi1, popt}:
+
+stdenv.mkDerivation rec {
+ pname = "sd-mux-ctrl-unstable";
+ version = "2020-02-17";
+
+ src = fetchgit {
+ url = "https://git.tizen.org/cgit/tools/testlab/sd-mux";
+ rev = "9dd189d973da64e033a0c5c2adb3d94b23153d94";
+ sha256 = "0fxl8m1zkkyxkc2zi8930m0njfgnd04a22acny6vljnzag2shjvg";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ libftdi1 popt ];
+
+ postInstall = ''
+ install -D -m 644 ../doc/man/sd-mux-ctrl.1 $out/share/man/man1/sd-mux-ctrl.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool for controlling multiple sd-mux devices";
+ homepage = "https://wiki.tizen.org/SD_MUX";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ sarcasticadmin ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sdate/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sdate/default.nix
new file mode 100644
index 000000000000..06b5360086c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sdate/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, autoreconfHook }:
+stdenv.mkDerivation rec {
+ pname = "sdate";
+ version = "0.7";
+ src = fetchurl {
+ url = "https://github.com/ChristophBerg/sdate/archive/${version}.tar.gz";
+ sha256 = "1lfnsb8prac8rspnxcawd138jyhyivwf35rrmfvwq6dhsx23c6vy";
+ };
+
+ buildInputs = [ autoreconfHook ];
+
+ meta = {
+ homepage = "https://www.df7cb.de/projects/sdate";
+ description = "Eternal september version of the date program";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ edef ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sdl-jstest/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sdl-jstest/default.nix
new file mode 100644
index 000000000000..bb1bf6b0a377
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sdl-jstest/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchgit, cmake, pkgconfig, SDL, SDL2, ncurses, docbook_xsl, git }:
+
+stdenv.mkDerivation {
+ pname = "sdl-jstest";
+ version = "2018-06-15";
+
+ # Submodules
+ src = fetchgit {
+ url = "https://github.com/Grumbel/sdl-jstest";
+ rev = "aafbdb1ed3e687583037ba55ae88b1210d6ce98b";
+ sha256 = "0p4cjzcq0bbkzad19jwdklylqhq2q390q7dpg8bfzl2rwls883rk";
+ };
+
+ buildInputs = [ SDL SDL2 ncurses ];
+ nativeBuildInputs = [ cmake pkgconfig docbook_xsl git ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Grumbel/sdl-jstest";
+ description = "Simple SDL joystick test application for the console";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/shadowenv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
new file mode 100644
index 000000000000..9becd52273e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "shadowenv";
+ version = "2.0.3";
+
+ src = fetchFromGitHub {
+ owner = "Shopify";
+ repo = pname;
+ rev = version;
+ sha256 = "1h8hfyxxl4bpx8azzxj0snmzccn6xjd9vc2iyp8i2ar7aiyhf5yd";
+ };
+
+ cargoSha256 = "1bjkwn57vm3in8lajhm7p9fjwyqhmkrb3fyq1k7lqjvrrh9jysb2";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ postInstall = ''
+ installManPage man/man1/shadowenv.1
+ installManPage man/man5/shadowlisp.5
+ installShellCompletion --bash sh/completions/shadowenv.bash
+ installShellCompletion --fish sh/completions/shadowenv.fish
+ installShellCompletion --zsh sh/completions/_shadowenv
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://shopify.github.io/shadowenv/";
+ description = "reversible directory-local environment variable manipulations";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/shallot/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/shallot/default.nix
new file mode 100644
index 000000000000..e8ab6168541c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/shallot/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "shallot";
+ version = "0.0.3";
+
+ src = fetchFromGitHub {
+ owner = "katmagic";
+ repo = "Shallot";
+ rev = "shallot-${version}";
+ sha256 = "0cjafdxvjkwb9vyifhh11mw0la7yfqswqwqmrfp1fy9jl7m0il9k";
+ };
+
+ buildInputs = [ openssl ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/katmagic/Shallot/commit/c913088dfaaaf249494514f20a62f2a17b5c6606.patch";
+ sha256 = "19l1ppbxpdb0736f7plhybj08wh6rqk1lr3bxsp8jpzpnkh114b2";
+ })
+ (fetchpatch {
+ url = "https://github.com/katmagic/Shallot/commit/cd6628d97b981325e700a38f408a43df426fd569.patch";
+ sha256 = "1gaffp5wp1l5p2qdk0ix3i5fhzpx4xphl0haa6ajhqn8db7hbr9y";
+ })
+ (fetchpatch {
+ url = "https://github.com/katmagic/Shallot/commit/5c7c1ccecbbad5a121c50ba7153cbbee7ee0ebf9.patch";
+ sha256 = "1zmll4iqz39zwk8vj40n1dpvyq3403l64p2127gsjgh2l2v91s4k";
+ })
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ./shallot $out/bin/
+ '';
+
+ meta = {
+ description = "Shallot allows you to create customized .onion addresses for your hidden service";
+
+ license = stdenv.lib.licenses.mit;
+ homepage = "https://github.com/katmagic/Shallot";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/shell-hist/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
new file mode 100644
index 000000000000..c4c496b978f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage {
+ pname = "shell-hist";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "jamesmunns";
+ repo = "shell-hist";
+ rev = "158de8c3908b49530ecd76bf6e65c210f351ef82";
+ sha256 = "0kc128xnnp1d56if70vfv0w3qnwhljhbnvzwwb7hfm3x2m0vqrqf";
+ };
+
+ cargoSha256 = "0mfgax937na351qvi5n6s1ql9136djqiydzyfyax4684sp3kp613";
+
+ meta = with lib; {
+ description = "Inspect your shell history";
+ homepage = "https://github.com/jamesmunns/shell-hist";
+ license = with licenses; [ mit /* or */ asl20 ];
+ maintainers = [ maintainers.spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/shelldap/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/shelldap/default.nix
new file mode 100644
index 000000000000..bfa8ea16ed36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/shelldap/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, perlPackages }:
+perlPackages.buildPerlPackage rec {
+ pname = "shelldap";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://bitbucket.org/mahlon/shelldap/downloads/shelldap-${version}.tar.gz";
+ sha256 = "07gkvvxcgw3pgkfy8p9mmidakciaq1rsq5zhmdqd8zcwgqkrr24i";
+ };
+ buildInputs = with perlPackages; [ perl YAMLSyck NetLDAP AlgorithmDiff IOSocketSSL AuthenSASL TermReadLineGnu TermShell ];
+ prePatch = ''
+ touch Makefile.PL
+ '';
+ installPhase = ''
+ runHook preInstall
+ install -Dm555 -t $out/bin shelldap
+ runHook preInstall
+ '';
+ outputs = [ "out" ];
+ meta = with stdenv.lib; {
+ homepage = "https://bitbucket.org/mahlon/shelldap/";
+ description = "A handy shell-like interface for browsing LDAP servers and editing their content";
+ license = with licenses; [ bsd3 ];
+ maintainers = with maintainers; [ tobiasBora ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/shunit2/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/shunit2/default.nix
new file mode 100644
index 000000000000..e08a5b576d3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/shunit2/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "shunit2";
+ version = "2019-08-10";
+
+ src = fetchFromGitHub {
+ owner = "kward";
+ repo = "shunit2";
+ rev = "ba130d69bbff304c0c6a9c5e8ab549ae140d6225";
+ sha256 = "1bsn8dhxbjfmh01lq80yhnld3w3fw1flh7nwx12csrp58zsvlmgk";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin/
+ cp ./shunit2 $out/bin/shunit2
+ chmod +x $out/bin/shunit2
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/shunit2
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/kward/shunit2";
+ description = "A xUnit based unit test framework for Bourne based shell scripts";
+ maintainers = with maintainers; [ cdepillabout utdemir ];
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/silicon/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/silicon/default.nix
new file mode 100644
index 000000000000..7c3d6a4f70a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/silicon/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, llvmPackages
+, expat
+, freetype
+, libxcb
+, python3
+, AppKit
+, CoreText
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "silicon";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "Aloxaf";
+ repo = "silicon";
+ rev = "v${version}";
+ sha256 = "1ga632c86l30n6wjj8rc3gz43v93mb7kcl9f8vhig16ycgiw8v09";
+ };
+
+ cargoSha256 = "0bgm29v9vmd1xcdazg1psrx6hb1z3zfzr1c4iy8j1r28csbmm6kq";
+
+ buildInputs = [ llvmPackages.libclang expat freetype ]
+ ++ lib.optionals stdenv.isLinux [ libxcb ]
+ ++ lib.optionals stdenv.isDarwin [ AppKit CoreText Security ];
+
+ nativeBuildInputs = [ cmake pkgconfig ]
+ ++ lib.optionals stdenv.isLinux [ python3 ];
+
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+ meta = with lib; {
+ description = "Create beautiful image of your source code";
+ homepage = "https://github.com/Aloxaf/silicon";
+ license = with licenses; [ mit /* or */ asl20 ];
+ maintainers = with maintainers; [ evanjs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/default.nix
new file mode 100644
index 000000000000..f738ed71ec7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, libusb-compat-0_1 }:
+stdenv.mkDerivation {
+ name = "sixpair-2007-04-18";
+
+ src = fetchurl {
+ url = "http://www.pabr.org/sixlinux/sixpair.c";
+ sha256 = "1b0a3k7gs544cbji7n29jxlrsscwfx6s1r2sgwdl6hmkc1l9gagr";
+ };
+
+ # hcitool is depricated
+ patches = [ ./hcitool.patch ];
+
+ buildInputs = [ libusb-compat-0_1 ];
+
+ unpackPhase = ''
+ cp $src sixpair.c
+ '';
+
+ buildPhase = ''
+ cc -o sixpair sixpair.c -lusb
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp sixpair $out/bin/sixpair
+ '';
+
+ meta = {
+ description = "Pair with SIXAXIS controllers over USB";
+ longDescription = ''
+ This command-line utility searches USB buses for SIXAXIS controllers and tells them to connect to a new Bluetooth master.
+ '';
+ homepage = "http://www.pabr.org/sixlinux/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.tomsmeets ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/hcitool.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/hcitool.patch
new file mode 100644
index 000000000000..b66e791dd0e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sixpair/hcitool.patch
@@ -0,0 +1,19 @@
+diff --git a/sixpair.c b/sixpair.c
+index b009a6f..78b7ef0 100644
+--- a/sixpair.c
++++ b/sixpair.c
+@@ -76,11 +76,11 @@ void process_device(int argc, char **argv, struct usb_device *dev,
+ exit(1);
+ }
+ } else {
+- FILE *f = popen("hcitool dev", "r");
++ FILE *f = popen("bluetoothctl list", "r");
+ if ( !f ||
+- fscanf(f, "%*s\n%*s %x:%x:%x:%x:%x:%x",
++ fscanf(f, "%*s %x:%x:%x:%x:%x:%x",
+ &mac[0],&mac[1],&mac[2],&mac[3],&mac[4],&mac[5]) != 6 ) {
+- printf("Unable to retrieve local bd_addr from `hcitool dev`.\n");
++ printf("Unable to retrieve local bd_addr from `bluetoothctl list`.\n");
+ printf("Please enable Bluetooth or specify an address manually.\n");
+ exit(1);
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/skim/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/skim/default.nix
new file mode 100644
index 000000000000..e89cf366136a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/skim/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "skim";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "lotabout";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0paxrf03rqzahbpr4gnsj62vl09vcxvw248n9wzhjq14dqlwcr9w";
+ };
+
+ outputs = [ "out" "vim" ];
+
+ cargoSha256 = "0rxxdad60fpwkb4wx5407ihd89wqpf2ldcnp7nsx17xh4brp1l9r";
+
+ postPatch = ''
+ sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
+ '';
+
+ postInstall = ''
+ install -D -m 555 bin/sk-tmux -t $out/bin
+ install -D -m 644 man/man1/* -t $out/man/man1
+ install -D -m 444 shell/* -t $out/share/skim
+ install -D -m 444 plugin/skim.vim -t $vim/plugin
+
+ cat <<SCRIPT > $out/bin/sk-share
+ #! ${stdenv.shell}
+ # Run this script to find the skim shared folder where all the shell
+ # integration scripts are living.
+ echo $out/share/skim
+ SCRIPT
+ chmod +x $out/bin/sk-share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line fuzzy finder written in Rust";
+ homepage = "https://github.com/lotabout/skim";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dywedir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sl/default.nix
new file mode 100644
index 000000000000..902617665d88
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sl/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "sl";
+ version = "5.05";
+
+ src = fetchFromGitHub {
+ owner = "eyJhb";
+ repo = "sl";
+ rev = version;
+ sha256 = "11a1rdgb8wagikhxgm81g80g5qsl59mv4qgsval3isykqh8729bj";
+ };
+
+ buildInputs = [ ncurses ];
+
+ makeFlags = [ "CC:=$(CC)" ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin sl
+ install -Dm644 -t $out/share/man/man1 sl.1{,.ja}
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Steam Locomotive runs across your terminal when you type 'sl'";
+ homepage = "http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html";
+ license = rec {
+ shortName = "Toyoda Masashi's free software license";
+ fullName = shortName;
+ url = "https://github.com/eyJhb/sl/blob/master/LICENSE";
+ };
+ maintainers = with maintainers; [ eyjhb ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/slop/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/slop/default.nix
new file mode 100644
index 000000000000..36f40dca6cb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/slop/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, glew, glm, libGLU, libGL, libX11, libXext, libXrender, icu
+, cppcheck
+}:
+
+stdenv.mkDerivation rec {
+ pname = "slop";
+ version = "7.5";
+
+ src = fetchFromGitHub {
+ owner = "naelstrof";
+ repo = "slop";
+ rev = "v${version}";
+ sha256 = "1k8xxb4rj2fylr4vj16yvsf73cyywliz9cy78pl4ibmi03jhg837";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ glew glm libGLU libGL libX11 libXext libXrender icu ]
+ ++ stdenv.lib.optional doCheck cppcheck;
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Queries a selection from the user and prints to stdout";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with maintainers; [ primeos mbakke ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/slsnif/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/slsnif/default.nix
new file mode 100644
index 000000000000..8078ee51eb2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/slsnif/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "slsnif-0.4.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/slsnif/slsnif-0.4.4.tar.gz";
+ sha256 = "0gn8c5hj8m3sywpwdgn6w5xl4rzsvg0z7d2w8dxi6p152j5b0pii";
+ };
+
+ meta = {
+ description = "Serial line sniffer";
+ homepage = "http://slsnif.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/slurp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/slurp/default.nix
new file mode 100644
index 000000000000..dbec2324674b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/slurp/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
+, cairo, wayland, wayland-protocols
+, buildDocs ? true, scdoc
+}:
+
+stdenv.mkDerivation rec {
+ pname = "slurp";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "emersion";
+ repo = "slurp";
+ rev = "v${version}";
+ sha256 = "0580m6kaiilgsrcj608r837r37sl6a25y7w21p7d6ij20fs3gvg1";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ ] ++ stdenv.lib.optional buildDocs scdoc;
+
+ buildInputs = [
+ cairo
+ wayland
+ wayland-protocols
+ ];
+
+ mesonFlags = stdenv.lib.optional buildDocs "-Dman-pages=enabled";
+
+ meta = with stdenv.lib; {
+ description = "Select a region in a Wayland compositor";
+ homepage = "https://github.com/emersion/slurp";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ buffet ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/smc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/smc/default.nix
new file mode 100644
index 000000000000..87bda5d78b43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/smc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, jre, runtimeShell }:
+
+stdenv.mkDerivation {
+ name = "smc-6.6.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/smc/smc/6_6_3/smc_6_6_3.tgz";
+ sha256 = "1gv0hrgdl4wp562virpf9sib6pdhapwv4zvwbl0d5f5xyx04il11";
+ };
+
+ # Prebuilt Java package.
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/share/smc"
+ mkdir -p "$out/share/smc/lib"
+ mkdir -p "$out/share/icons"
+ mkdir -p "$out/share/java"
+
+ cp bin/Smc.jar "$out/share/java/"
+ cp -r examples/ docs/ tools/ README.txt LICENSE.txt "$out/share/smc/"
+ cp -r lib/* "$out/share/smc/lib/"
+ cp misc/smc.ico "$out/share/icons/"
+
+ cat > "$out/bin/smc" << EOF
+ #!${runtimeShell}
+ ${jre}/bin/java -jar "$out/share/java/Smc.jar" "\$@"
+ EOF
+ chmod a+x "$out/bin/smc"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Generate state machine code from text input (state diagram)";
+ longDescription = ''
+ SMC (State Machine Compiler) takes a text input file describing states,
+ events and actions of a state machine and generates source code that
+ implements the state machine.
+
+ SMC supports many target languages:
+ C, C++, DotNet, Groovy, java, Java, JavaScript, Lua, ObjC, Perl, Php,
+ Python, Ruby, Scala, Tcl.
+
+ SMC can also generate GraphViz state diagrams from the input file.
+ '';
+ homepage = "http://smc.sourceforge.net/";
+ license = licenses.mpl11;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/smenu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/smenu/default.nix
new file mode 100644
index 000000000000..362c4f6c9145
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/smenu/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ version = "0.9.16";
+ pname = "smenu";
+
+ src = fetchFromGitHub {
+ owner = "p-gen";
+ repo = "smenu";
+ rev = "v${version}";
+ sha256 = "1vlsrc071fznqnz67jbhrc4pcfwzc737lwd9jxpnidn0i08py5p2";
+ };
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/p-gen/smenu";
+ description = "Terminal selection utility";
+ longDescription = ''
+ Terminal utility that allows you to use words coming from the standard
+ input to create a nice selection window just below the cursor. Once done,
+ your selection will be sent to standard output.
+ '';
+ license = licenses.gpl2;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/snapper/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/snapper/default.nix
new file mode 100644
index 000000000000..576e1d780744
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/snapper/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchFromGitHub
+, autoreconfHook, pkgconfig, docbook_xsl, libxslt, docbook_xml_dtd_45
+, acl, attr, boost, btrfs-progs, dbus, diffutils, e2fsprogs, libxml2
+, lvm2, pam, python, utillinux, fetchpatch, json_c, nixosTests }:
+
+stdenv.mkDerivation rec {
+ pname = "snapper";
+ version = "0.8.14";
+
+ src = fetchFromGitHub {
+ owner = "openSUSE";
+ repo = "snapper";
+ rev = "v${version}";
+ sha256 = "1q687bjwy668klxnhsrc2rlhisa59j8bhmh1jw220rq7z0hm2khr";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook pkgconfig
+ docbook_xsl libxslt docbook_xml_dtd_45
+ ];
+ buildInputs = [
+ acl attr boost btrfs-progs dbus diffutils e2fsprogs libxml2
+ lvm2 pam python utillinux json_c
+ ];
+
+ passthru.tests.snapper = nixosTests.snapper;
+
+ patches = [
+ # Don't use etc/dbus-1/system.d
+ (fetchpatch {
+ url = "https://github.com/openSUSE/snapper/commit/c51708aea22d9436da287cba84424557ad03644b.patch";
+ sha256 = "106pf7pv8z3q37c8ckmgwxs1phf2fy7l53a9g5xq5kk2rjj1cx34";
+ })
+ ];
+
+ postPatch = ''
+ # Hard-coded root paths, hard-coded root paths everywhere...
+ for file in {client,data,pam,scripts,zypp-plugin}/Makefile.am; do
+ substituteInPlace $file \
+ --replace '$(DESTDIR)/usr' "$out" \
+ --replace "DESTDIR" "out" \
+ --replace "/usr" "$out"
+ done
+ substituteInPlace pam/Makefile.am \
+ --replace '/`basename $(libdir)`' "$out/lib"
+ '';
+
+ configureFlags = [
+ "--disable-ext4" # requires patched kernel & e2fsprogs
+ ];
+
+ enableParallelBuilding = true;
+
+ NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
+
+ postInstall = ''
+ rm -r $out/etc/cron.*
+ patchShebangs $out/lib/zypp/plugins/commit/*
+ for file in \
+ $out/lib/pam_snapper/* \
+ $out/lib/systemd/system/* \
+ $out/share/dbus-1/system-services/* \
+ ; do
+ substituteInPlace $file --replace "/usr" "$out"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool for Linux filesystem snapshot management";
+ homepage = "http://snapper.io";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ tstrobel markuskowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/snore/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/snore/default.nix
new file mode 100644
index 000000000000..f6f177811b02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/snore/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ version = "0.1";
+ pname = "snore";
+
+ src = fetchFromGitHub {
+ owner = "clamiax";
+ repo = pname;
+ rev = version;
+ sha256 = "1ic1qy6ybnjlkz5rb1hpvq6dcdmxw5xcx34qcadrsfdjizxcv8pp";
+ };
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "sleep with feedback";
+ homepage = "https://github.com/clamiax/snore";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix
new file mode 100644
index 000000000000..312b402ae66d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, curl
+, jq
+, mpv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "somafm-cli";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "rockymadden";
+ repo = "somafm-cli";
+ rev = "v${version}";
+ sha256 = "1h5p9qsczgfr450sklh2vkllcpzb7nicbs8ciyvkavh3d7hds0yy";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -m0755 -D src/somafm $out/bin/somafm
+ wrapProgram $out/bin/somafm --prefix PATH ":" "${stdenv.lib.makeBinPath [ curl jq mpv ]}";
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Listen to SomaFM in your terminal via pure bash";
+ homepage = "https://github.com/rockymadden/somafm-cli";
+ license = licenses.mit;
+ maintainers = with maintainers; [ SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/default.nix
new file mode 100644
index 000000000000..d111e0b2b717
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/default.nix
@@ -0,0 +1,54 @@
+{ fetchFromGitHub, fetchurl, lib, python3Packages
+, coreVersion ? "1.13.3" # the version of the binary espurna image to flash
+, coreSize ? "1MB" # size of the binary image to flash
+, coreSha256 ? "0pkb2nmml0blrfiqpc46xpjc2dw927i89k1lfyqx827wanhc704x" }:
+
+with python3Packages;
+
+let
+ core = fetchurl {
+ url = "https://github.com/xoseperez/espurna/releases/download/${coreVersion}/espurna-${coreVersion}-espurna-core-${coreSize}.bin";
+ sha256 = coreSha256;
+ };
+
+in buildPythonApplication rec {
+ pname = "sonota-unstable";
+ version = "2018-10-07";
+
+ src = fetchFromGitHub {
+ owner = "mirko";
+ repo = "SonOTA";
+ rev = "d7f4b353858aae7ac403f95475a35560fb7ffeae";
+ sha256 = "0jd9xrhcyk8d2plbjnrlpn87536zr6n708797n0k5blf109q3c1z";
+ };
+
+ patches = [
+ ./set_resource_path.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace sonota.py --subst-var out
+ '';
+
+ format = "other";
+
+ propagatedBuildInputs = [ httplib2 netifaces tornado ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 sonota.py $out/bin/sonota
+ install -d $out/share/sonota
+ cp -r ssl static $out/share/sonota
+ cp ${core} $out/share/sonota/static/image_arduino.bin
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Flash Itead Sonoff devices with custom firmware via original OTA mechanism";
+ homepage = src.meta.homepage;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/set_resource_path.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/set_resource_path.patch
new file mode 100644
index 000000000000..f9a802657762
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sonota/set_resource_path.patch
@@ -0,0 +1,20 @@
+diff --git a/sonota.py b/sonota.py
+index f67128b..9f2752e 100644
+--- a/sonota.py
++++ b/sonota.py
+@@ -475,14 +475,7 @@ def promptforval(msg):
+ return val
+
+ def resource_path(relative_path):
+- """ Get absolute path to resource, works for dev and for PyInstaller """
+- try:
+- # PyInstaller creates a temp folder and stores path in _MEIPASS
+- base_path = sys._MEIPASS
+- except Exception:
+- base_path = os.path.dirname(sys.argv[0])
+-
+- return os.path.join(base_path, relative_path)
++ return os.path.join("@out@/share/sonota", relative_path)
+
+ def checkargs():
+ # Make sure all of the binary files that are needed are there
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/spigot/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/spigot/default.nix
new file mode 100644
index 000000000000..fbed27a24478
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/spigot/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, buildPackages
+, fetchgit
+, autoreconfHook
+, gmp
+, ncurses
+, halibut
+, perl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "spigot";
+ version = "20200101";
+ src = fetchgit {
+ url = "https://git.tartarus.org/simon/spigot.git";
+ rev = "b1b0b202b3523b72f0638fb31fd49c47f4abb39c";
+ sha256 = "0lh5v42aia1hvhsqzs515q0anrjc6c2s9bjklfaap5gz0cg59wbv";
+ };
+
+ nativeBuildInputs = [ autoreconfHook halibut perl ];
+
+ configureFlags = [ "--with-gmp" ];
+
+ buildInputs = [ gmp ncurses ];
+
+ strictDeps = true;
+
+ meta = with lib; {
+ description = "A command-line exact real calculator";
+ homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with maintainers; [ mcbeth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sta/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sta/default.nix
new file mode 100644
index 000000000000..aa27ddf08384
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sta/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook }:
+stdenv.mkDerivation {
+ pname = "sta";
+ version = "unstable-2016-01-25";
+
+ src = fetchFromGitHub {
+ owner = "simonccarter";
+ repo = "sta";
+ rev = "2aa2a6035dde88b24978b875e4c45e0e296f77ed";
+ sha256 = "05804f106nb89yvdd0csvpd5skwvnr9x4qr3maqzaw0qr055mrsk";
+ };
+
+ buildInputs = [ autoreconfHook ];
+
+ meta = with lib; {
+ description = "Simple statistics from the command line interface (CLI), fast";
+ longDescription = ''
+ This is a lightweight, fast tool for calculating basic descriptive
+ statistics from the command line. Inspired by
+ https://github.com/nferraz/st, this project differs in that it is written
+ in C++, allowing for faster computation of statistics given larger
+ non-trivial data sets.
+ '';
+ license = licenses.mit;
+ homepage = "https://github.com/simonccarter/sta";
+ maintainers = with maintainers; [ infinisil ];
+ platforms = platforms.all;
+ badPlatforms = platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/starship/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/starship/default.nix
new file mode 100644
index 000000000000..3cc56d87c62c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/starship/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, installShellFiles
+, libiconv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "starship";
+ version = "0.45.2";
+
+ src = fetchFromGitHub {
+ owner = "starship";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0kxmgx4pnayp3jf6cgmka05x3aymxr79rim5nff6k3cg5zaqrz59";
+ };
+
+ nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ postInstall = ''
+ for shell in bash fish zsh; do
+ STARSHIP_CACHE=$TMPDIR $out/bin/starship completions $shell > starship.$shell
+ installShellCompletion starship.$shell
+ done
+ '';
+
+ cargoSha256 = "0x9a322anwrgpxfqrvqb1ikavp8qffa93wdvj5kln1d2rgmxr2sy";
+
+ checkFlags = [
+ "--skip=directory_in_home"
+ "--skip=fish_directory_in_home"
+ "--skip=home_directory"
+ "--skip=truncated_directory_in_home"
+ "--skip=directory_in_root"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A minimal, blazing fast, and extremely customizable prompt for any shell";
+ homepage = "https://starship.rs";
+ license = licenses.isc;
+ maintainers = with maintainers; [ bbigras davidtwco filalex77 Frostman marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/staruml/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/staruml/default.nix
new file mode 100644
index 000000000000..90c3c696526d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/staruml/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchurl, makeWrapper
+, dpkg, patchelf
+, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, systemd
+, libXdamage, expat }:
+
+let
+ inherit (stdenv) lib;
+ LD_LIBRARY_PATH = lib.makeLibraryPath
+ [ glib gtk2 gdk-pixbuf alsaLib nss nspr GConf cups libgcrypt dbus libXdamage expat ];
+in
+stdenv.mkDerivation rec {
+ version = "2.8.1";
+ pname = "staruml";
+
+ src =
+ if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+ url = "https://s3.amazonaws.com/staruml-bucket/releases-v2/StarUML-v${version}-32-bit.deb";
+ sha256 = "0vb3k9m3l6pmsid4shlk0xdjsriq3gxzm8q7l04didsppg0vvq1n";
+ } else fetchurl {
+ url = "https://s3.amazonaws.com/staruml-bucket/releases-v2/StarUML-v${version}-64-bit.deb";
+ sha256 = "05gzrnlssjkhyh0wv019d4r7p40lxnsa1sghazll6f233yrqmxb0";
+ };
+
+ nativeBuildInputs = [ makeWrapper dpkg ];
+
+ unpackPhase = ''
+ mkdir pkg
+ dpkg-deb -x $src pkg
+ sourceRoot=pkg
+ '';
+
+ installPhase = ''
+ mkdir $out
+ mv opt/staruml $out/bin
+
+ mkdir -p $out/lib
+ ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
+ ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
+
+ for binary in StarUML Brackets-node; do
+ ${patchelf}/bin/patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/bin/$binary
+ wrapProgram $out/bin/$binary \
+ --prefix LD_LIBRARY_PATH : $out/lib:${LD_LIBRARY_PATH}
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A sophisticated software modeler";
+ homepage = "http://staruml.io/";
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/statserial/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/statserial/default.nix
new file mode 100644
index 000000000000..448323f43461
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/statserial/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, ncurses, glibc }:
+
+stdenv.mkDerivation rec {
+ pname = "statserial";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "http://www.ibiblio.org/pub/Linux/system/serial/${pname}-${version}.tar.gz";
+ sha256 = "0rrrmxfba5yn836zlgmr8g9xnrpash7cjs7lk2m44ac50vakpks0";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace '-lcurses' '-lncurses'
+
+ substituteInPlace Makefile \
+ --replace 'LDFLAGS = -s -N' '#LDFLAGS = -s -N'
+ '';
+
+ buildInputs = [ ncurses glibc stdenv ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp statserial $out/bin
+
+ mkdir -p $out/share/man/man1
+ cp statserial.1 $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sites.google.com/site/tranter/software";
+ description = "Display serial port modem status lines";
+ license = licenses.gpl2;
+
+ longDescription =
+ '' Statserial displays a table of the signals on a standard 9-pin or
+ 25-pin serial port, and indicates the status of the handshaking lines. It
+ can be useful for debugging problems with serial ports or modems.
+ '';
+
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ rps ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/stow/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/stow/default.nix
new file mode 100644
index 000000000000..80741f0543ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/stow/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, perl, perlPackages }:
+
+let
+ pname = "stow";
+ version = "2.3.1";
+in
+stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://gnu/stow/stow-${version}.tar.bz2";
+ sha256 = "0bs2b90wjkk1camcasy8kn403kazq6c7fj5m5msfl3navbgwz9i6";
+ };
+
+ buildInputs = with perlPackages; [ perl IOStringy TestOutput ];
+
+ doCheck = true;
+
+ meta = {
+ description = "A tool for managing the installation of multiple software packages in the same run-time directory tree";
+
+ longDescription = ''
+ GNU Stow is a symlink farm manager which takes distinct packages
+ of software and/or data located in separate directories on the
+ filesystem, and makes them appear to be installed in the same
+ place. For example, /usr/local/bin could contain symlinks to
+ files within /usr/local/stow/emacs/bin, /usr/local/stow/perl/bin
+ etc., and likewise recursively for any other subdirectories such
+ as .../share, .../man, and so on.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ homepage = "https://www.gnu.org/software/stow/";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/subberthehut/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/subberthehut/default.nix
new file mode 100644
index 000000000000..e4fa57e30ac5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/subberthehut/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xmlrpc_c, glib, zlib }:
+stdenv.mkDerivation rec {
+ pname = "subberthehut";
+ version = "20";
+
+ src = fetchFromGitHub {
+ owner = "mus65";
+ repo = "subberthehut";
+ rev = version;
+ sha256 = "19prdqbk19h0wak318g2jn1mnfm7l7f83a633bh0rhskysmqrsj1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ xmlrpc_c glib zlib ];
+
+ installPhase = ''
+ install -Dm755 subberthehut $out/bin/subberthehut
+ install -Dm644 bash_completion $out/share/bash-completion/completions/subberthehut
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mus65/subberthehut";
+ description = "An OpenSubtitles.org downloader";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jqueiroz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sutils/default.nix
new file mode 100644
index 000000000000..c94b8f646a96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sutils/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, alsaLib }:
+
+stdenv.mkDerivation rec {
+ version = "0.2";
+ pname = "sutils";
+
+ src = fetchFromGitHub {
+ owner = "baskerville";
+ repo = "sutils";
+ rev = version;
+ sha256 = "0i2g6a6xdaq3w613dhq7mnsz4ymwqn6kvkyan5kgy49mzq97va6j";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ buildInputs = [ alsaLib ];
+
+ prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+ meta = {
+ description = "Small command-line utilities";
+ homepage = "https://github.com/baskerville/sutils";
+ maintainers = [ stdenv.lib.maintainers.meisternu ];
+ license = "Custom";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
new file mode 100644
index 000000000000..0c7e0141f932
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, makeWrapper, python3Packages, perl, zip
+, gitMinimal }:
+
+let
+
+ inherit (python3Packages)
+ python nose pycrypto pyyaml requests mock python-dateutil setuptools;
+
+in stdenv.mkDerivation rec {
+ pname = "svtplay-dl";
+ version = "2.6";
+
+ src = fetchFromGitHub {
+ owner = "spaam";
+ repo = "svtplay-dl";
+ rev = version;
+ sha256 = "1d969ig4w6irx5822crhpab2f53svpiyf1vfx87irapy309dqy2y";
+ };
+
+ pythonPaths = [ pycrypto pyyaml requests ];
+ buildInputs = [ python perl nose mock makeWrapper python-dateutil setuptools ] ++ pythonPaths;
+ nativeBuildInputs = [ gitMinimal zip ];
+
+ postPatch = ''
+ substituteInPlace scripts/run-tests.sh \
+ --replace 'PYTHONPATH=lib' 'PYTHONPATH=lib:$PYTHONPATH'
+
+ sed -i '/def test_sublang2\?(/ i\ @unittest.skip("accesses network")' \
+ lib/svtplay_dl/tests/test_postprocess.py
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" "SYSCONFDIR=$(out)/etc" "PYTHON=${python.interpreter}" ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/svtplay-dl" \
+ --prefix PYTHONPATH : "$PYTHONPATH"
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ sh scripts/run-tests.sh -2
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/spaam/svtplay-dl";
+ description = "Command-line tool to download videos from svtplay.se and other sites";
+ license = licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ maintainers.rycee ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
new file mode 100644
index 000000000000..048dac85fdb2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, python3, fetchFromGitHub, ncurses }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "swaglyrics";
+ version = "1.2.2";
+
+ src = fetchFromGitHub {
+ owner = "SwagLyrics";
+ repo = "SwagLyrics-For-Spotify";
+ rev = "v${version}";
+ sha256 = "1dwj9fpyhqqpm2z3imp8hfribkzxya891shh77yg77rc2xghp7mh";
+ };
+
+ propagatedBuildInputs = with python3.pkgs; [
+ unidecode colorama beautifulsoup4 flask requests swspotify
+ ];
+
+ preConfigure = ''
+ substituteInPlace setup.py \
+ --replace 'requests>=2.24.0' 'requests~=2.23'
+ '';
+
+ preBuild = "export HOME=$NIX_BUILD_TOP";
+
+ # disable tests which touch network
+ disabledTests = [
+ "test_database_for_unsupported_song"
+ "test_that_lyrics_works_for_unsupported_songs"
+ "test_that_get_lyrics_works"
+ "test_lyrics_are_shown_in_tab"
+ "test_songchanged_can_raise_songplaying"
+ ];
+
+ checkInputs = with python3.pkgs;
+ [ blinker swspotify pytestCheckHook flask mock flask_testing ]
+ ++ [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "Lyrics fetcher for currently playing Spotify song";
+ homepage = "https://github.com/SwagLyrics/SwagLyrics-For-Spotify";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix
new file mode 100644
index 000000000000..21e6f49df1f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, makeWrapper, fetchurl,
+ alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib,
+ gnome2, gtk2-x11, nspr, nss,
+ libX11, libxcb, libXcomposite, libXcursor, libXdamage, libXext, libXfixes,
+ libXi, libXrandr, libXrender, libXScrnSaver, libXtst,
+ libudev0-shim
+}:
+ stdenv.mkDerivation rec {
+ pname = "sweep-visualizer";
+ version = "0.15.0";
+
+ src = fetchurl {
+ url = "https://s3.amazonaws.com/scanse/Visualizer/v${version}/sweepvisualizer_${version}_amd64.deb";
+ sha256 = "1k6rdjw2340qrzafv6hjxvbvyh3s1wad6d3629nchdcrpyx9xy1c";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ sourceRoot = ".";
+ unpackCmd = ''
+ ar p "$src" data.tar.xz | tar xJ
+ '';
+
+ buildPhase = ":";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/sweep-visualizer
+ mv usr/share/* $out/share
+ mv opt/Sweep\ Visualizer\ BETA/* $out/share/sweep-visualizer/
+ ln -s $out/share/sweep-visualizer/sweep_visualizer $out/bin/sweep_visualizer
+ '';
+
+ preFixup = let
+ libPath = lib.makeLibraryPath [
+ alsaLib atk cairo cups.lib dbus.lib expat fontconfig.lib freetype
+ gdk-pixbuf glib gnome2.GConf gnome2.pango gtk2-x11 nspr nss stdenv.cc.cc.lib
+ libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes
+ libXi libXrandr libXrender libXScrnSaver libXtst
+ ];
+ runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
+ in ''
+ for lib in $out/share/sweep-visualizer/*.so; do
+ patchelf --set-rpath "$out/share/sweep-visualizer:${libPath}" $lib
+ done
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$out/share/sweep-visualizer:${libPath}" \
+ $out/share/sweep-visualizer/sweep_visualizer
+ wrapProgram "$out/bin/sweep_visualizer" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://support.scanse.io/hc/en-us/articles/115006008948-Visualizer-Overview";
+ description = "A minimal desktop application for interfacing with the Sweep device";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ mt-caret ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/default.nix
new file mode 100644
index 000000000000..8a0c881a277b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchFromGitHub, fetchpatch, udev, intltool, pkgconfig, glib, xmlto, wrapGAppsHook
+, docbook_xml_dtd_412, docbook_xsl
+, libxml2, desktop-file-utils, libusb1, cups, gdk-pixbuf, pango, atk, libnotify
+, gobject-introspection, libsecret, packagekit
+, cups-filters
+, python3Packages, autoreconfHook, bash
+}:
+
+stdenv.mkDerivation rec {
+ pname = "system-config-printer";
+ version = "1.5.12";
+
+ src = fetchFromGitHub {
+ owner = "openPrinting";
+ repo = pname;
+ rev = version;
+ sha256 = "1a812jsd9pb02jbz9bq16qj5j6k2kw44g7s1xdqqkg7061rd7mwf";
+ };
+
+ prePatch = ''
+ # for automake
+ touch README ChangeLog
+ # for tests
+ substituteInPlace Makefile.am --replace /bin/bash ${bash}/bin/bash
+ '';
+
+ patches = [
+ ./detect_serverbindir.patch
+
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=958104
+ # (Fixes will be included in next upstream release.)
+ (fetchpatch {
+ url = "https://github.com/OpenPrinting/system-config-printer/commit/cf9903466c1a2d18a701f3b5e8c7e03483e1244d.patch";
+ sha256 = "03gpav618w50q90m2kdkgwclc7fv17m493fgjd633zfavb5kqr3n";
+ })
+ (fetchpatch {
+ url = "https://github.com/OpenPrinting/system-config-printer/commit/b9289dfe105bdb502f183f0afe7a115ecae5f2af.patch";
+ sha256 = "12w47hy3ly4phh8jcqxvdnd5sgbnbp8dnscjd7d5y2i43kxj7b23";
+ })
+ ];
+
+ buildInputs = [
+ glib udev libusb1 cups
+ python3Packages.python
+ libnotify gobject-introspection gdk-pixbuf pango atk packagekit
+ libsecret
+ ];
+
+ nativeBuildInputs = [
+ intltool pkgconfig
+ xmlto libxml2 docbook_xml_dtd_412 docbook_xsl desktop-file-utils
+ python3Packages.wrapPython
+ wrapGAppsHook autoreconfHook
+ ];
+
+ pythonPath = with python3Packages; requiredPythonModules [ pycups pycurl dbus-python pygobject3 requests pycairo pysmbc ];
+
+ configureFlags = [
+ "--with-udev-rules"
+ "--with-udevdir=${placeholder "out"}/etc/udev"
+ "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
+ ];
+
+ stripDebugList = [ "bin" "lib" "etc/udev" ];
+
+ doCheck = true;
+
+ postInstall =
+ ''
+ buildPythonPath "$out $pythonPath"
+ gappsWrapperArgs+=(
+ --prefix PATH : "$program_PATH"
+ --set CUPS_DATADIR "${cups-filters}/share/cups"
+ )
+
+ find $out/share/system-config-printer -name \*.py -type f -perm -0100 -print0 | while read -d "" f; do
+ patchPythonScript "$f"
+ done
+ patchPythonScript $out/etc/udev/udev-add-printer
+
+ substituteInPlace $out/etc/udev/rules.d/70-printers.rules \
+ --replace "udev-configure-printer" "$out/etc/udev/udev-configure-printer"
+ '';
+
+ meta = {
+ homepage = "https://github.com/openprinting/system-config-printer";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch
new file mode 100644
index 000000000000..2cd3058f2330
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch
@@ -0,0 +1,17 @@
+diff --git a/cupshelpers/config.py.in b/cupshelpers/config.py.in
+index 55abbfc..1244327 100644
+--- a/cupshelpers/config.py.in
++++ b/cupshelpers/config.py.in
+@@ -22,3 +22,12 @@
+ prefix="@prefix@"
+ sysconfdir="@sysconfdir@"
+ cupsserverbindir="@cupsserverbindir@"
++
++try:
++ with open("/etc/cups/cups-files.conf") as config:
++ for cfgline in config:
++ args = cfgline.split(" ")
++ if len(args) == 2 and args[0] == "ServerBin":
++ cupsserverbindir = args[1].strip()
++except OSError:
++ pass
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix
new file mode 100644
index 000000000000..aae69d8ad394
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, pkgconfig, libappindicator-gtk3, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "systrayhelper";
+ version = "0.0.5";
+ rev = "ded1f2ed4d30f6ca2c89a13db0bd3046c6d6d0f9";
+
+ goPackagePath = "github.com/ssbc/systrayhelper";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "ssbc";
+ repo = "systrayhelper";
+ sha256 = "0bn3nf43m89qmh8ds5vmv0phgdz32idz1zisr47jmvqm2ky1a45s";
+ };
+
+ # re date: https://github.com/NixOS/nixpkgs/pull/45997#issuecomment-418186178
+ # > .. keep the derivation deterministic. Otherwise, we would have to rebuild it every time.
+ buildFlagsArray = [ ''-ldflags=
+ -X main.version=v${version}
+ -X main.commit=${rev}
+ -X main.date="nix-byrev"
+ -s
+ -w
+ '' ];
+
+ nativeBuildInputs = [ pkgconfig libappindicator-gtk3 ];
+ buildInputs = [ libappindicator-gtk3 ];
+
+ meta = with stdenv.lib; {
+ description = "A systray utility written in go, using json over stdio for control and events";
+ homepage = "https://github.com/ssbc/systrayhelper";
+ maintainers = with maintainers; [ cryptix ];
+ license = licenses.mit;
+ # It depends on the inputs, i guess? not sure about solaris, for instance. go supports it though
+ # I hope nix can figure this out?! ¯\\_(ツ)_/¯
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile
new file mode 100644
index 000000000000..29813d30ba6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile
@@ -0,0 +1,6 @@
+source "https://rubygems.org"
+
+gem 't'
+# Needed because the twitter gem changed API.
+# https://github.com/sferik/t/issues/402
+gem 'twitter', '~> 6.1.0'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile.lock
new file mode 100644
index 000000000000..9555e08f9715
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/Gemfile.lock
@@ -0,0 +1,65 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.6.0)
+ public_suffix (>= 2.0.2, < 4.0)
+ buftok (0.2.0)
+ domain_name (0.5.20180417)
+ unf (>= 0.0.5, < 1.0.0)
+ equalizer (0.0.11)
+ faraday (0.11.0)
+ multipart-post (>= 1.2, < 3)
+ geokit (1.13.1)
+ htmlentities (4.3.4)
+ http (2.2.2)
+ addressable (~> 2.3)
+ http-cookie (~> 1.0)
+ http-form_data (~> 1.0.1)
+ http_parser.rb (~> 0.6.0)
+ http-cookie (1.0.3)
+ domain_name (~> 0.5)
+ http-form_data (1.0.3)
+ http_parser.rb (0.6.0)
+ launchy (2.4.3)
+ addressable (~> 2.3)
+ memoizable (0.4.2)
+ thread_safe (~> 0.3, >= 0.3.1)
+ multipart-post (2.0.0)
+ naught (1.1.0)
+ oauth (0.5.4)
+ public_suffix (3.0.3)
+ retryable (2.0.4)
+ simple_oauth (0.3.1)
+ t (3.1.0)
+ geokit (~> 1.9)
+ htmlentities (~> 4.3)
+ launchy (~> 2.4)
+ oauth (~> 0.5.1)
+ retryable (~> 2.0)
+ thor (>= 0.19.1, < 2)
+ twitter (~> 6.0)
+ thor (0.20.3)
+ thread_safe (0.3.6)
+ twitter (6.1.0)
+ addressable (~> 2.5)
+ buftok (~> 0.2.0)
+ equalizer (= 0.0.11)
+ faraday (~> 0.11.0)
+ http (~> 2.1)
+ http_parser.rb (~> 0.6.0)
+ memoizable (~> 0.4.2)
+ naught (~> 1.1)
+ simple_oauth (~> 0.3.1)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.7.6)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ t
+ twitter (~> 6.1.0)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/t/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/default.nix
new file mode 100644
index 000000000000..dd0eda67ce55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "t";
+ gemdir = ./.;
+ exes = [ "t" ];
+
+ passthru.updateScript = bundlerUpdateScript "t";
+
+ meta = with lib; {
+ description = "A command-line power tool for Twitter";
+ homepage = "http://sferik.github.io/t/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/t/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/gemset.nix
new file mode 100644
index 000000000000..f3627e8d6e95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/t/gemset.nix
@@ -0,0 +1,262 @@
+{
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ buftok = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+ type = "gem";
+ };
+ version = "0.5.20180417";
+ };
+ equalizer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+ type = "gem";
+ };
+ version = "0.0.11";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18p1csdivgwmshfw3mb698a3bn0yrykg30khk5qxjf6n168g91jr";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ geokit = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mvdpbx88wflqqrcrfa54a5sckvj2sqzm304p7ji3c06frbhmxw8";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ htmlentities = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+ type = "gem";
+ };
+ version = "4.3.4";
+ };
+ http = {
+ dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ http-cookie = {
+ dependencies = ["domain_name"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ http-form_data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ "http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ launchy = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+ type = "gem";
+ };
+ version = "2.4.3";
+ };
+ memoizable = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ naught = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ oauth = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+ type = "gem";
+ };
+ version = "0.5.4";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ retryable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pxv5xgr08s9gv5npj7h3raxibywznrv2wcrb85ibhlhzgzcxggf";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ simple_oauth = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ t = {
+ dependencies = ["geokit" "htmlentities" "launchy" "oauth" "retryable" "thor" "twitter"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qj5zqc819yiscqbyb93alxillyli5ajvrr4gzq52clgkvyap7bd";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ thor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+ type = "gem";
+ };
+ version = "0.20.3";
+ };
+ thread_safe = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ twitter = {
+ dependencies = ["addressable" "buftok" "equalizer" "faraday" "http" "http_parser.rb" "memoizable" "naught" "simple_oauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l9zv0pg0q4mgcxyhzk2fj57bcs907mbargdr9l0ccnp6xi5sp8v";
+ type = "gem";
+ };
+ version = "6.1.0";
+ };
+ unf = {
+ dependencies = ["unf_ext"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ unf_ext = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf";
+ type = "gem";
+ };
+ version = "0.0.7.6";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/t1utils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/t1utils/default.nix
new file mode 100644
index 000000000000..fd4ca5f92d53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/t1utils/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "t1utils-1.41";
+
+ src = fetchurl {
+ url = "https://www.lcdf.org/type/${name}.tar.gz";
+ sha256 = "09rlc837dr69hyiiicha3il37mchsvz84qw8hnvb60lrh9zdsppw";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Collection of simple Type 1 font manipulation programs";
+ longDescription = ''
+ t1utils is a collection of simple type-1 font manipulation programs.
+ Together, they allow you to convert between PFA (ASCII) and PFB (binary)
+ formats, disassemble PFA or PFB files into human-readable form,
+ reassemble them into PFA or PFB format. Additionally you can extract font
+ resources from a Macintosh font file or create a Macintosh Type 1 font
+ file from a PFA or PFB font.
+ '';
+ homepage = "http://www.lcdf.org/type/";
+ # README from tarball says "BSD-like" and points to non-existing LICENSE
+ # file...
+ license = "Click"; # MIT with extra clause, https://github.com/kohler/t1utils/blob/master/LICENSE
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile
new file mode 100644
index 000000000000..d22bf73732c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem 'td'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile.lock
new file mode 100644
index 000000000000..b777a8b411aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/Gemfile.lock
@@ -0,0 +1,40 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ fluent-logger (0.8.0)
+ msgpack (>= 1.0.0, < 2)
+ hirb (0.7.3)
+ httpclient (2.8.3)
+ msgpack (1.2.6)
+ parallel (1.13.0)
+ ruby-progressbar (1.10.0)
+ rubyzip (1.2.2)
+ td (0.16.4)
+ hirb (>= 0.4.5)
+ msgpack
+ parallel (~> 1.8)
+ ruby-progressbar (~> 1.7)
+ rubyzip (>= 1.2.1)
+ td-client (>= 1.0.6, < 2)
+ td-logger (>= 0.3.21, < 2)
+ yajl-ruby (~> 1.1)
+ zip-zip (~> 0.3)
+ td-client (1.0.6)
+ httpclient (>= 2.7)
+ msgpack (>= 0.5.6, < 2)
+ td-logger (0.3.27)
+ fluent-logger (>= 0.5.0, < 2.0)
+ msgpack (>= 0.5.6, < 2.0)
+ td-client (>= 0.8.66, < 2.0)
+ yajl-ruby (1.4.1)
+ zip-zip (0.3)
+ rubyzip (>= 1.0.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ td
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/td/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/default.nix
new file mode 100644
index 000000000000..bca5bd601d41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "td";
+ gemdir = ./.;
+ exes = [ "td" ];
+
+ passthru.updateScript = bundlerUpdateScript "td";
+
+ meta = with lib; {
+ description = "CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing";
+ homepage = "https://github.com/treasure-data/td";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ groodt nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/td/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/gemset.nix
new file mode 100644
index 000000000000..e4680640ae2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/td/gemset.nix
@@ -0,0 +1,103 @@
+{
+ fluent-logger = {
+ dependencies = ["msgpack"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yr6vrai4fqajpzybmdlajf8wzsgy29kr1318amn21y9nhjlnys5";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ hirb = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ httpclient = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ msgpack = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0031gd2mjyba6jb7m97sqa149zjkr0vzn2s2gpb3m9nb67gqkm13";
+ type = "gem";
+ };
+ version = "1.2.6";
+ };
+ parallel = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "005shcy8dabc7lwydpkbhd3fx8bfqzvsj6g04r90mx0wky10lz84";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ ruby-progressbar = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ rubyzip = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+ type = "gem";
+ };
+ version = "1.2.2";
+ };
+ td = {
+ dependencies = ["hirb" "msgpack" "parallel" "ruby-progressbar" "rubyzip" "td-client" "td-logger" "yajl-ruby" "zip-zip"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nlxpc4nasgmv6mqanb6ag1q3wmryja2c174dzgwxngxa0y2j1yn";
+ type = "gem";
+ };
+ version = "0.16.4";
+ };
+ td-client = {
+ dependencies = ["httpclient" "msgpack"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j5jcsgg020cm8xarbbw67mca4k8cx5pfyd2mm3wcqrnc1cl2bgp";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ td-logger = {
+ dependencies = ["fluent-logger" "msgpack" "td-client"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y56gilaqk9a4lfhzb777ysmsq77pi1aqkr4q485a7f5dwnpwl1p";
+ type = "gem";
+ };
+ version = "0.3.27";
+ };
+ yajl-ruby = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ zip-zip = {
+ dependencies = ["rubyzip"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ny3zv1sn9wasamykfkg7b7xgs6w7k5fy8kggiyjj9vrwfzzavqg";
+ type = "gem";
+ };
+ version = "0.3";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tealdeer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
new file mode 100644
index 000000000000..4f0677846eaf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, installShellFiles
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tealdeer";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = "dbrgn";
+ repo = "tealdeer";
+ rev = "v${version}";
+ sha256 = "1f37qlw4nxdhlqlqzzb4j11gsv26abk2nk2qhbzj77kp4v2b125x";
+ };
+
+ cargoSha256 = "0g5fjj677qzhw3nw7f3n5gghsj2y811bdclxpy8aq2n58gbwvhvc";
+
+ buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
+
+ nativeBuildInputs = [ installShellFiles pkg-config ];
+
+ postInstall = ''
+ installShellCompletion --bash --name tealdeer.bash bash_tealdeer
+ installShellCompletion --fish --name tealdeer.fish fish_tealdeer
+ installShellCompletion --zsh --name _tealdeer zsh_tealdeer
+ '';
+
+ # disable tests for now since one needs network
+ # what is unavailable in sandbox build
+ # and i can't disable just this one
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A very fast implementation of tldr in Rust";
+ homepage = "https://github.com/dbrgn/tealdeer";
+ maintainers = with maintainers; [ davidak ];
+ license = with licenses; [ asl20 mit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile
new file mode 100644
index 000000000000..046ba3d536e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'teamocil'
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile.lock
new file mode 100644
index 000000000000..aeca8cadf869
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ teamocil (1.4.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ teamocil
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/default.nix
new file mode 100644
index 000000000000..b1f6c7cdcab5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/default.nix
@@ -0,0 +1,20 @@
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
+
+bundlerEnv {
+ inherit ruby;
+ pname = "teamocil";
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "teamocil";
+
+ meta = with lib; {
+ description = "A simple tool used to automatically create windows and panes in tmux with YAML files";
+ homepage = "https://github.com/remiprev/teamocil";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [
+ zachcoyle
+ nicknovitski
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/gemset.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/gemset.nix
new file mode 100644
index 000000000000..f363d62b6d68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/teamocil/gemset.nix
@@ -0,0 +1,10 @@
+{
+ teamocil = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l5f33faipb45xx7ds67s7dqgvjlljlcxgpgig4pg8p002vg06r2";
+ type = "gem";
+ };
+ version = "1.4.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/teleconsole/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/teleconsole/default.nix
new file mode 100644
index 000000000000..47a792a3f92b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/teleconsole/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "teleconsole";
+ version = "0.4.0";
+
+ goPackagePath = "github.com/gravitational/teleconsole";
+
+ src = fetchFromGitHub {
+ owner = "gravitational";
+ repo = "teleconsole";
+ rev = version;
+ sha256 = "01552422n0bj1iaaw6pvg9l1qr66r69sdsngxbcdjn1xh3mj74sm";
+ };
+
+ srcTeleport = fetchFromGitHub {
+ owner = "gravitational";
+ repo = "teleport";
+ rev = "2cb40abd8ea8fb2915304ea4888b5b9f3e5bc223";
+ sha256 = "1xw3bfnjbj88x465snwwzn4bmpmzmsrq9r0pkj388qwvfrclgnfk";
+ };
+
+ preBuild = ''
+ cp -r ${srcTeleport} ./go/src/github.com/gravitational/teleport
+ '';
+
+ CGO_ENABLED = 1;
+ buildFlags = [ "-ldflags" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.teleconsole.com/";
+ description = "Share your terminal session with people you trust";
+ license = licenses.asl20;
+ # Builds for Aarch64 not possible in the current release due to
+ # incompatibilities further up the dependency chain.
+ # See:
+ # - https://github.com/gravitational/teleport/issues/679
+ # - https://github.com/kr/pty/issues/27
+ broken = stdenv.isAarch64;
+ maintainers = [ maintainers.kimburgess ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tensorman/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tensorman/default.nix
new file mode 100644
index 000000000000..85091a41b126
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tensorman/default.nix
@@ -0,0 +1,25 @@
+{ pkgconfig, stdenv, rustPlatform, rustc, cargo, docker, openssl, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tensorman";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "pop-os";
+ repo = "tensorman";
+ rev = version;
+ sha256 = "0ywb53snvymmwh10hm6whckz7dwmpqa4rxiggd24y178jdfrm2ns";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ];
+ cargoSha256 = "0vckay4jhg02xg68mvh7ys0yjj0p30m6wsjriqc8k24wjsrhiw9k";
+
+ meta = with stdenv.lib; {
+ description = "Utility for easy management of Tensorflow containers";
+ homepage = "https://github.com/pop-os/tensorman/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ thefenriswolf ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/termplay/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/termplay/default.nix
new file mode 100644
index 000000000000..d60a65214b74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/termplay/default.nix
@@ -0,0 +1,38 @@
+{ rustPlatform, fetchFromGitLab, lib, makeWrapper, gst_all_1, libsixel }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "termplay";
+ version = "2.0.6";
+
+ src = fetchFromGitLab {
+ owner = "jD91mZM2";
+ repo = "termplay";
+ rev = "v${version}";
+ sha256 = "1w7hdqgqr1jgxid3k7f2j52wz31gv8bzr9rsm6xzp7nnihp6i45p";
+ };
+
+ cargoBuildFlags = ["--features" "bin"];
+ cargoSha256 = "0nxm2k8dx6nxyghvpw44wqfd1n65947v2wqxxvy641hin4d7xzma";
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-ugly
+ gst_all_1.gst-plugins-bad
+ libsixel
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/termplay --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+ '';
+
+ meta = with lib; {
+ description = "Play an image/video in your terminal";
+ homepage = "https://jd91mzm2.github.io/termplay/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jD91mZM2 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/termtosvg/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/termtosvg/default.nix
new file mode 100644
index 000000000000..a89ed808c8b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/termtosvg/default.nix
@@ -0,0 +1,20 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "termtosvg";
+ version = "1.1.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1vk5kn8w3zf2ymi76l8cpwmvvavkmh3b9lb18xw3x1vzbmhz2f7d";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ lxml pyte wcwidth ];
+
+ meta = with lib; {
+ homepage = "https://nbedos.github.io/termtosvg/";
+ description = "Record terminal sessions as SVG animations";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/default.nix
new file mode 100644
index 000000000000..b63ffb1cd107
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper }:
+
+buildGoPackage rec {
+ pname = "tewisay-unstable";
+ version = "2017-04-14";
+
+ goPackagePath = "github.com/lucy/tewisay";
+
+ src = fetchFromGitHub {
+ owner = "lucy";
+ repo = "tewisay";
+ rev = "e3fc38737cedb79d93b8cee07207c6c86db4e488";
+ sha256 = "1na3xi4z90v8qydcvd3454ia9jg7qhinciy6kvgyz61q837cw5dk";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ goDeps = ./deps.nix;
+
+ postInstall = ''
+ install -D -t $out/share/tewisay/cows go/src/${goPackagePath}/cows/*.cow
+ '';
+
+ preFixup = ''
+ wrapProgram $out/bin/tewisay \
+ --prefix COWPATH : $out/share/tewisay/cows
+ '';
+
+ meta = {
+ homepage = "https://github.com/lucy/tewisay";
+ description = "Cowsay replacement with unicode and partial ansi escape support";
+ license = stdenv.lib.licenses.cc0;
+ maintainers = [ stdenv.lib.maintainers.chiiruno ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/deps.nix
new file mode 100644
index 000000000000..b6b1356dcf80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tewisay/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d";
+ sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg";
+ };
+ }
+ {
+ goPackagePath = "github.com/ogier/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ogier/pflag";
+ rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
+ sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/texi2mdoc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/texi2mdoc/default.nix
new file mode 100644
index 000000000000..6c090c0b4b36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/texi2mdoc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "texi2mdoc";
+ version = "0.1.2";
+
+ src = fetchurl {
+ url = "http://mdocml.bsd.lv/texi2mdoc/snapshots/${pname}-${version}.tgz";
+ sha256 = "1zjb61ymwfkw6z5g0aqmsn6qpw895zdxv7fv3059gj3wqa3zsibs";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://mdocml.bsd.lv/";
+ description = "converter from Texinfo into mdoc";
+ license = licenses.isc;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ramkromberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/thefuck/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/thefuck/default.nix
new file mode 100644
index 000000000000..d923a3f44918
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/thefuck/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication
+, colorama, decorator, psutil, pyte, six
+, pytest, pytest-mock
+}:
+
+buildPythonApplication rec {
+ pname = "thefuck";
+ version = "3.30";
+
+ src = fetchFromGitHub {
+ owner = "nvbn";
+ repo = pname;
+ rev = version;
+ sha256 = "0fnf78956pwhb9cgv1jmgypnkma5xzflkivfrkfiadbgin848yfg";
+ };
+
+ propagatedBuildInputs = [ colorama decorator psutil pyte six ];
+
+ checkInputs = [ pytest pytest-mock ];
+
+ checkPhase = ''
+ export HOME=$TMPDIR
+ export LANG=en_US.UTF-8
+ export XDG_CACHE_HOME=$TMPDIR/cache
+ export XDG_CONFIG_HOME=$TMPDIR/config
+ py.test
+ '';
+
+ doCheck = false; # The above is only enough for tests to pass outside the sandbox.
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/nvbn/thefuck";
+ description = "Magnificent app which corrects your previous console command";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
new file mode 100644
index 000000000000..8df030eafadb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost, binutils }:
+
+stdenv.mkDerivation rec {
+ pname = "thin-provisioning-tools";
+ version = "0.9.0";
+
+ src = fetchFromGitHub {
+ owner = "jthornber";
+ repo = "thin-provisioning-tools";
+ rev = "v${version}";
+ sha256 = "1iwg04rhmdhijmlk5hfl8wvv83115lzb65if6cc1glkkfva8jfjp";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ expat libaio boost binutils ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jthornber/thin-provisioning-tools/";
+ description = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/thinkpad-scripts/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/thinkpad-scripts/default.nix
new file mode 100644
index 000000000000..5b9b9eae7ad5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/thinkpad-scripts/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchFromGitHub, python3Packages }:
+
+buildPythonPackage rec {
+ pname = "thinkpad-scripts";
+ version = "4.12.0";
+
+ src = fetchFromGitHub {
+ owner = "martin-ueding";
+ repo = "thinkpad-scripts";
+ rev = "v${version}";
+ sha256 = "08adx8r5pwwazbnfahay42l5f203mmvcn2ipz5hg8myqc9jxm2ky";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ setuptools ];
+
+ meta = {
+ description = "Screen rotation, docking and other scripts for ThinkPad® X220 and X230 Tablet";
+ homepage = "https://github.com/martin-ueding/thinkpad-scripts";
+ license = lib.licenses.gpl2Plus;
+ maintainers = with lib.maintainers; [ dawidsowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/time/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/time/default.nix
new file mode 100644
index 000000000000..89af4f693d3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/time/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ pname = "time";
+ version = "1.9";
+
+ src = fetchurl {
+ url = "mirror://gnu/time/${pname}-${version}.tar.gz";
+ sha256 = "07jj7cz6lc13iqrpgn81ivqh8rkm73p4rnivwgrrshk23v4g1b7v";
+ };
+
+ meta = {
+ description = "Tool that runs programs and summarizes the system resources they use";
+
+ longDescription = ''
+ The `time' command runs another program, then displays
+ information about the resources used by that program, collected
+ by the system while the program was running. You can select
+ which information is reported and the format in which it is
+ shown, or have `time' save the information in a file instead of
+ displaying it on the screen.
+
+ The resources that `time' can report on fall into the general
+ categories of time, memory, and I/O and IPC calls. Some systems
+ do not provide much information about program resource use;
+ `time' reports unavailable information as zero values.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ homepage = "https://www.gnu.org/software/time/";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/default.nix
new file mode 100644
index 000000000000..f33520aee0a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, alsaLib, libjack2, ncurses, pkgconfig }:
+
+stdenv.mkDerivation {
+ name = "timidity-2.15.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/timidity/TiMidity++-2.15.0.tar.bz2";
+ sha256 = "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn";
+ };
+
+ patches = [ ./timidity-iA-Oj.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ alsaLib libjack2 ncurses ];
+
+ configureFlags = [ "--enable-audio=oss,alsa,jack" "--enable-alsaseq" "--with-default-output=alsa" "--enable-ncurses" ];
+
+ NIX_LDFLAGS = "-ljack -L${libjack2}/lib";
+
+ instruments = fetchurl {
+ url = "http://www.csee.umbc.edu/pub/midia/instruments.tar.gz";
+ sha256 = "0lsh9l8l5h46z0y8ybsjd4pf6c22n33jsjvapfv3rjlfnasnqw67";
+ };
+
+ # the instruments could be compressed (?)
+ postInstall = ''
+ mkdir -p $out/share/timidity/;
+ cp ${./timidity.cfg} $out/share/timidity/timidity.cfg
+ tar --strip-components=1 -xf $instruments -C $out/share/timidity/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/timidity/";
+ license = licenses.gpl2;
+ description = "A software MIDI renderer";
+ maintainers = [ maintainers.marcweber ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity-iA-Oj.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity-iA-Oj.patch
new file mode 100644
index 000000000000..9bb964134283
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity-iA-Oj.patch
@@ -0,0 +1,14 @@
+Without this timidity -iA -Oj prints "Couldn't start JACK device (`j')"
+and does not play MIDI.
+
+--- a/timidity/jack_a.c
++++ b/timidity/jack_a.c
+@@ -513,6 +513,8 @@ static int actl_jack(int request, void *arg)
+ ringbuf_clear(&ctx->rbuf);
+ return 0;
+
++ case PM_REQ_PLAY_START:
++ return 0;
+ }
+ return -1;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity.cfg b/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity.cfg
new file mode 100644
index 000000000000..fa07eb43eee6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/timidity/timidity.cfg
@@ -0,0 +1,369 @@
+##############################################################################
+#
+# Instrument configuration file for timidity
+#
+# ----------------------------------------
+#
+# Johan Hagman (Johan.Hagman@mailbox.swipnet.se) 26-Sep-96:
+#
+# This config file is for the uncompressed MIDIA GM patches from
+# ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz. The
+# patches assumed to be installed are
+#
+# in /usr/local/lib/timidity/patch original piano & guitar
+# in /usr/local/lib/timidity/instruments MIDIA patches
+#
+# ----------------------------------------
+#
+# Specify library directory: dir <directory>
+#
+# - Multiple library directories may be given. The ones given last will be
+# searched first so you can override them in later configuration files.
+# Extra configuration files and MIDI files will also be searched in these
+# directories.
+#
+# Set tone bank or drum set to modify: bank <number>
+# drumset <number>
+#
+# Map program number to patch map: <program number> <patch name>
+#
+# - If the patch can't be found in the library directories, TiMidity will
+# search again with ".pat" appended to the name.
+# Programs without a loaded patch will be silent, except that for
+# banks/drumsets >0, the corresponding patch in bank/drumset 0 will
+# be used (if one exists).
+#
+# Read another configuration file: source <file name>
+#
+
+##############################################################################
+# If you've moved things around since compiling, uncomment and edit this to
+# point to the library directory:
+#
+
+dir /run/current-system/sw/share/timidity/instruments
+dir /run/current-system/sw/share/timidity/patch
+
+##############################################################################
+# This sets up the default patches in the TiMidity support package
+# "timidity-lib-0.1.tar.gz":
+
+#bank 0
+# 0 acpiano.pat
+# 24 nylongt2.pat
+
+##############################################################################
+# If you have Dustin McCartney's "wowpats" patches, you can source the
+# config file to set them up for TiMidity:
+#
+# (Note that later entries in config files always override earlier ones)
+#
+#source wowpats.cfg
+#
+
+##############################################################################
+# If you have Dustin McCartney's GS drum sets, you can source the config
+# file to set them up for TiMidity:
+#
+#source gsdrum.cfg
+#
+
+##############################################################################
+# If you have the GUS General MIDI patch set, uncomment the following lines
+# and edit the "dir" statement to point to your GUS patch directory.
+#
+#dir /dos-C/ultrasnd/midi
+#source gravis.cfg
+#
+
+##############################################################################
+# If you have the Midia patch set, you can source midia.cfg to set them up.
+# Note that midia.cfg sources gravis.cfg in turn, since the filenames are
+# almost identical.
+#
+#source midia.cfg
+#
+
+##############################################################################
+# A config file for the Midia patch set. The patch filenames are identical
+# to the GUS ones, although many of the patches themselves are different.
+
+#source gravis.cfg
+
+##############################################################################
+# These are the standard patches that come with the GUS, mapped into GM
+# programs.
+#
+
+bank 0
+
+ 0 acpiano
+ # The Midia set doesn't have a bright piano,
+ # so we substitute acpiano instead.
+ #1 britepno
+ 1 acpiano
+ 2 synpiano
+ 3 honky
+ 4 epiano1
+ 5 epiano2
+ 6 hrpschrd
+ 7 clavinet
+ 8 celeste
+ 9 glocken
+ 10 musicbox
+ 11 vibes
+ 12 marimba
+ 13 xylophon amp=200
+ 14 tubebell
+ 15 santur
+ 16 homeorg
+ 17 percorg
+ 18 rockorg
+ 19 church
+ 20 reedorg
+ 21 accordn
+ 22 harmonca
+ 23 concrtna
+ #24 nyguitar
+ # Replace with the guitar that comes with Timidity
+ 24 nylongt2
+ 25 acguitar
+ 26 jazzgtr
+ 27 cleangtr
+ 28 mutegtr
+ 29 odguitar
+ 30 distgtr
+ 31 gtrharm
+ 32 acbass
+ 33 fngrbass
+ 34 pickbass
+ 35 fretless
+ 36 slapbas1
+ 37 slapbas2
+ 38 synbass1
+ 39 synbass2
+ 40 violin
+ 41 viola
+ 42 cello
+ 43 contraba
+ 44 tremstr
+ 45 pizzcato
+ 46 harp
+ 47 timpani
+ # This sounds pretty dumb with the default panning
+ 48 marcato pan=center
+ 49 slowstr
+ 50 synstr1
+ 51 synstr2
+ 52 choir
+ 53 doo
+ 54 voices
+ 55 orchhit
+ 56 trumpet
+ 57 trombone
+ 58 tuba
+ 59 mutetrum
+ 60 frenchrn
+ 61 hitbrass
+ 62 synbras1
+ 63 synbras2
+ 64 sprnosax
+ 65 altosax
+ 66 tenorsax
+ 67 barisax
+ 68 oboe
+ 69 englhorn
+ 70 bassoon
+ 71 clarinet
+ 72 piccolo
+ 73 flute
+ 74 recorder
+ 75 woodflut
+ 76 bottle
+ 77 shakazul
+ 78 whistle
+ 79 ocarina
+ 80 sqrwave
+ 81 sawwave
+ 82 calliope
+ 83 chiflead
+ 84 charang
+ 85 voxlead
+ 86 lead5th
+ 87 basslead
+ 88 fantasia
+ 89 warmpad
+ 90 polysyn
+ 91 ghostie
+ 92 bowglass
+ 93 metalpad
+ 94 halopad
+ 95 sweeper
+ 96 aurora
+ 97 soundtrk
+ 98 crystal
+ 99 atmosphr
+ 100 freshair
+ 101 unicorn
+ 102 echovox
+ 103 startrak
+ 104 sitar
+ 105 banjo
+ 106 shamisen
+ 107 koto
+ 108 kalimba
+ 109 bagpipes
+ 110 fiddle
+ 111 shannai
+ 112 carillon
+ 113 agogo
+ 114 steeldrm
+ 115 woodblk
+ 116 taiko
+ 117 toms
+ 118 syntom
+ 119 revcym
+ 120 fx-fret
+ 121 fx-blow
+ 122 seashore
+ 123 jungle
+ 124 telephon
+ 125 helicptr
+ 126 applause note=69
+ 127 pistol
+
+##############################################################################
+# The GUS drum patches
+
+drumset 0
+
+ 27 highq
+ 28 slap
+ 29 scratch1
+ 30 scratch2
+ 31 sticks strip=tail
+ 32 sqrclick
+ 33 metclick
+ 34 metbell keep=loop keep=env
+ 35 kick1
+ 36 kick2
+ 37 stickrim strip=tail
+ 38 snare1
+ 39 claps
+ 40 snare2 note=38
+ 41 tomlo2
+ 42 hihatcl
+ 43 tomlo1
+ 44 hihatpd
+ 45 tommid2
+ 46 hihatop
+ 47 tommid1
+ 48 tomhi2
+ 49 cymcrsh1
+ 50 tomhi1
+ 51 cymride1
+ 52 cymchina
+ 53 cymbell
+ 54 tamborin
+ 55 cymsplsh
+ 56 cowbell
+ 57 cymcrsh2
+ 58 vibslap
+ 59 cymride2
+ 60 bongohi
+ 61 bongolo
+ 62 congahi1
+ 63 congahi2
+ 64 congalo
+ 65 timbaleh
+ 66 timbalel
+ 67 agogohi
+ 68 agogolo
+ 69 cabasa strip=tail
+ 70 maracas
+ 71 whistle1 keep=loop keep=env
+ 72 whistle2 keep=loop keep=env
+ 73 guiro1
+ 74 guiro2
+ 75 clave
+ 76 woodblk1
+ 77 woodblk2
+ 78 cuica1
+ 79 cuica2
+ 80 triangl1
+ 81 triangl2
+ 82 shaker
+ 83 jingles
+ 84 belltree keep=loop keep=env
+ 85 castinet
+ 86 surdo1
+ 87 surdo2
+ # There's no pistol, but I can't think of a reasonable substitute.
+
+# Drumset 1 is identical to set 0
+drumset 1
+
+ 27 highq
+ 28 slap
+ 29 scratch1
+ 30 scratch2
+ 31 sticks strip=tail
+ 32 sqrclick
+ 33 metclick
+ 34 metbell keep=loop keep=env
+ 35 kick1
+ 36 kick2
+ 37 stickrim strip=tail
+ 38 snare1
+ 39 claps
+ 40 snare2 note=38
+ 41 tomlo2
+ 42 hihatcl
+ 43 tomlo1
+ 44 hihatpd
+ 45 tommid2
+ 46 hihatop
+ 47 tommid1
+ 48 tomhi2
+ 49 cymcrsh1
+ 50 tomhi1
+ 51 cymride1
+ 52 cymchina
+ 53 cymbell
+ 54 tamborin
+ 55 cymsplsh
+ 56 cowbell
+ 57 cymcrsh2
+ 58 vibslap
+ 59 cymride2
+ 60 bongohi
+ 61 bongolo
+ 62 congahi1
+ 63 congahi2
+ 64 congalo
+ 65 timbaleh
+ 66 timbalel
+ 67 agogohi
+ 68 agogolo
+ 69 cabasa strip=tail
+ 70 maracas
+ 71 whistle1 keep=loop keep=env
+ 72 whistle2 keep=loop keep=env
+ 73 guiro1
+ 74 guiro2
+ 75 clave
+ 76 woodblk1
+ 77 woodblk2
+ 78 cuica1
+ 79 cuica2
+ 80 triangl1
+ 81 triangl2
+ 82 shaker
+ 83 jingles
+ 84 belltree keep=loop keep=env
+ 85 castinet
+ 86 surdo1
+ 87 surdo2
+
+##############################################################################
+# End of configuration file
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tio/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tio/default.nix
new file mode 100644
index 000000000000..bab0098ecaa4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tio/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchzip, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "tio";
+ version = "1.32";
+
+ src = fetchzip {
+ url = "https://github.com/tio/tio/archive/v${version}.tar.gz";
+ sha256 = "0lwqdm73kshi9qs8pks1b4by6yb9jf3bbyw3bv52xmggnr5s1hcv";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ description = "Serial console TTY";
+ homepage = "https://tio.github.io/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ yegortimoshenko ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tldr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tldr/default.nix
new file mode 100644
index 000000000000..66d763fd304e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tldr/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, curl, libzip, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "tldr";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "tldr-pages";
+ repo = "tldr-cpp-client";
+ rev = "v${version}";
+ sha256 = "10ylpiqc06p0qpma72vwksd7hd107s0vlx9c6s9rz4vc3i274lb6";
+ };
+
+ buildInputs = [ curl libzip ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ makeFlags = ["CC=cc" "LD=cc" "CFLAGS="];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Simplified and community-driven man pages";
+ longDescription = ''
+ tldr pages gives common use cases for commands, so you don't need to hunt
+ through a man page for the correct flags.
+ '';
+ homepage = "http://tldr-pages.github.io";
+ license = licenses.mit;
+ maintainers = with maintainers; [ taeer carlosdagos ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/default.nix
new file mode 100644
index 000000000000..5a467dd626da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/default.nix
@@ -0,0 +1,126 @@
+{ stdenv
+, lib
+, checkbashisms
+, coreutils
+, ethtool
+, fetchFromGitHub
+, gawk
+, gnugrep
+, gnused
+, hdparm
+, iw
+, kmod
+, makeWrapper
+, pciutils
+, perl
+, shellcheck
+, smartmontools
+, systemd
+, utillinux
+, x86_energy_perf_policy
+ # RDW only works with NetworkManager, and thus is optional with default off
+, enableRDW ? false
+, networkmanager
+}: stdenv.mkDerivation rec {
+ pname = "tlp";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ owner = "linrunner";
+ repo = "TLP";
+ rev = version;
+ sha256 = "14fcnaz9pw534v4d8dddqq4wcvpf1kghr8zlrk62r5lrl46sp1p5";
+ };
+
+ # XXX: See patch files for relevant explanations.
+ patches = [ ./patches/fix-makefile-sed.patch ./patches/tlp-sleep-service.patch ];
+
+ buildInputs = [ perl ];
+ nativeBuildInputs = [ makeWrapper gnused ];
+
+ # XXX: While [1] states that DESTDIR should not be used, and that the correct
+ # variable to set is, in fact, PREFIX, tlp thinks otherwise. The Makefile for
+ # tlp concerns itself only with DESTDIR [2] (possibly incorrectly) and so we set
+ # that as opposed to PREFIX, despite what [1] says.
+ #
+ # [1]: https://github.com/NixOS/nixpkgs/issues/65718
+ # [2]: https://github.com/linrunner/TLP/blob/ab788abf4936dfb44fbb408afc34af834230a64d/Makefile#L4-L46
+ makeFlags = [
+ "DESTDIR=${placeholder "out"}"
+
+ "TLP_NO_INIT=1"
+ "TLP_WITH_ELOGIND=0"
+ "TLP_WITH_SYSTEMD=1"
+
+ "TLP_BIN=/bin"
+ "TLP_CONFDEF=/share/tlp/defaults.conf"
+ "TLP_FLIB=/share/tlp/func.d"
+ "TLP_MAN=/share/man"
+ "TLP_META=/share/metainfo"
+ "TLP_SBIN=/sbin"
+ "TLP_SHCPL=/share/bash-completion/completions"
+ "TLP_TLIB=/share/tlp"
+ ];
+
+ installTargets = [ "install-tlp" "install-man" ]
+ ++ lib.optionals enableRDW [ "install-rdw" "install-man-rdw" ];
+
+ # XXX: This is disabled because it's basically just noise since upstream
+ # itself does not seem to care about the zillion shellcheck errors.
+ doCheck = false;
+ checkInputs = [ checkbashisms shellcheck ];
+ checkTarget = [ "checkall" ];
+
+ postInstall = let
+ paths = lib.makeBinPath (
+ [
+ coreutils
+ ethtool
+ gawk
+ gnugrep
+ gnused
+ hdparm
+ iw
+ kmod
+ pciutils
+ perl
+ smartmontools
+ systemd
+ utillinux
+ x86_energy_perf_policy
+ ] ++ lib.optional enableRDW networkmanager
+ );
+ in
+ ''
+ fixup_perl=(
+ $out/share/tlp/tlp-pcilist
+ $out/share/tlp/tlp-readconfs
+ $out/share/tlp/tlp-usblist
+ $out/share/tlp/tpacpi-bat
+ )
+ for f in "''${fixup_perl[@]}"; do
+ wrapProgram "$f" --prefix PATH : "${paths}"
+ done
+
+ fixup_bash=(
+ $out/bin/*
+ $out/etc/NetworkManager/dispatcher.d/*
+ $out/lib/udev/tlp-*
+ $out/sbin/*
+ $out/share/tlp/func.d/*
+ $out/share/tlp/tlp-func-base
+ )
+ for f in "''${fixup_bash[@]}"; do
+ sed -i '2iexport PATH=${paths}:$PATH' "$f"
+ done
+ '';
+
+ meta = with lib; {
+ description = "Advanced Power Management for Linux";
+ homepage =
+ "https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar lovesegfault ];
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/fix-makefile-sed.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/fix-makefile-sed.patch
new file mode 100644
index 000000000000..942c9a579f6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/fix-makefile-sed.patch
@@ -0,0 +1,46 @@
+commit c44347b3b813e209fff537b4d46d23430727a5e2
+Author: Bernardo Meurer <meurerbernardo@gmail.com>
+Date: Tue Feb 25 21:27:39 2020 -0800
+
+ makefile: correctly sed paths
+
+ The default Makefile for tlp makes a mess with catenating `DESTDIR` to
+ everything, but then not actualy using the catenated (_ prefixed)
+ variables to sed it's `.in` files.
+
+ This patch makes sure that it correctly sets the paths, taking `DESTDIR`
+ in account where it makes sense (e.g. /bin where we want $out/bin) but
+ not where it doesn't (/etc/tlp.conf should be just that).
+
+ The reason DESTDIR is used at all, as opposed to the more appropriate
+ PREFIX, is covered in the nix formula, and is (also) due to the Makefile
+ being a bit "different."
+
+diff --git a/Makefile b/Makefile
+index b5af74e..95122df 100644
+--- a/Makefile
++++ b/Makefile
+@@ -47,17 +47,17 @@ _TPACPIBAT = $(DESTDIR)$(TPACPIBAT)
+
+ SED = sed \
+ -e "s|@TLPVER@|$(TLPVER)|g" \
+- -e "s|@TLP_SBIN@|$(TLP_SBIN)|g" \
+- -e "s|@TLP_TLIB@|$(TLP_TLIB)|g" \
+- -e "s|@TLP_FLIB@|$(TLP_FLIB)|g" \
+- -e "s|@TLP_ULIB@|$(TLP_ULIB)|g" \
++ -e "s|@TLP_SBIN@|$(_SBIN)|g" \
++ -e "s|@TLP_TLIB@|$(_TLIB)|g" \
++ -e "s|@TLP_FLIB@|$(_FLIB)|g" \
++ -e "s|@TLP_ULIB@|$(_ULIB)|g" \
+ -e "s|@TLP_CONFUSR@|$(TLP_CONFUSR)|g" \
+ -e "s|@TLP_CONFDIR@|$(TLP_CONFDIR)|g" \
+- -e "s|@TLP_CONFDEF@|$(TLP_CONFDEF)|g" \
++ -e "s|@TLP_CONFDEF@|$(_CONFDEF)|g" \
+ -e "s|@TLP_CONF@|$(TLP_CONF)|g" \
+ -e "s|@TLP_RUN@|$(TLP_RUN)|g" \
+ -e "s|@TLP_VAR@|$(TLP_VAR)|g" \
+- -e "s|@TPACPIBAT@|$(TPACPIBAT)|g"
++ -e "s|@TPACPIBAT@|$(_TPACPIBAT)|g"
+
+ INFILES = \
+ tlp \
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/tlp-sleep-service.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/tlp-sleep-service.patch
new file mode 100644
index 000000000000..b37c7280e382
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tlp/patches/tlp-sleep-service.patch
@@ -0,0 +1,95 @@
+commit ca94cd56210067e2a55c1f413bd7713f7d338f9f
+Author: Bernardo Meurer <meurerbernardo@gmail.com>
+Date: Wed Feb 26 10:46:23 2020 -0800
+
+ tlp-sleep.service: reintroduce
+
+ This patch reintroduces tlp-sleep as a systemd unit as opposed to a
+ systemd system-sleep hook script. This is due to the recommendation by
+ systemd itself to not use the hook scripts. As per the manual:
+
+ > Note that scripts or binaries dropped in /usr/lib/systemd/system-sleep/
+ > are intended for local use only and should be considered hacks. If
+ > applications want to react to system suspend/hibernation and resume,
+ > they should rather use the Inhibitor interface[1].
+
+diff --git a/Makefile b/Makefile
+index 95122df..0e9230a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -70,6 +70,7 @@ INFILES = \
+ tlp.rules \
+ tlp-readconfs \
+ tlp-run-on \
++ tlp-sleep.service \
+ tlp.service \
+ tlp-stat \
+ tlp.upstart \
+@@ -99,7 +100,6 @@ SHFILES = \
+ tlp-rdw-udev.in \
+ tlp-rf.in \
+ tlp-run-on.in \
+- tlp-sleep \
+ tlp-sleep.elogind \
+ tlp-stat.in \
+ tlp-usb-udev.in
+@@ -147,7 +147,7 @@ ifneq ($(TLP_NO_INIT),1)
+ endif
+ ifneq ($(TLP_WITH_SYSTEMD),0)
+ install -D -m 644 tlp.service $(_SYSD)/tlp.service
+- install -D -m 755 tlp-sleep $(_SDSL)/tlp
++ install -D -m 644 tlp-sleep.service $(_SYSD)/tlp-sleep.service
+ endif
+ ifneq ($(TLP_WITH_ELOGIND),0)
+ install -D -m 755 tlp-sleep.elogind $(_ELOD)/49-tlp-sleep
+@@ -204,7 +204,7 @@ uninstall-tlp:
+ rm $(_ULIB)/rules.d/85-tlp.rules
+ rm -f $(_SYSV)/tlp
+ rm -f $(_SYSD)/tlp.service
+- rm -f $(_SDSL)/tlp-sleep
++ rm -f $(_SYSD)/tlp-sleep.service
+ rm -f $(_ELOD)/49-tlp-sleep
+ rm -f $(_SHCPL)/tlp-stat
+ rm -f $(_SHCPL)/bluetooth
+diff --git a/tlp-sleep b/tlp-sleep
+deleted file mode 100644
+index 3de85ce..0000000
+--- a/tlp-sleep
++++ /dev/null
+@@ -1,11 +0,0 @@
+-#!/bin/sh
+-
+-# tlp - systemd suspend/resume hook
+-#
+-# Copyright (c) 2020 Thomas Koch <linrunner at gmx.net> and others.
+-# This software is licensed under the GPL v2 or later.
+-
+-case $1 in
+- pre) tlp suspend ;;
+- post) tlp resume ;;
+-esac
+diff --git a/tlp-sleep.service.in b/tlp-sleep.service.in
+new file mode 100644
+index 0000000..4ac17bd
+--- /dev/null
++++ b/tlp-sleep.service.in
+@@ -0,0 +1,19 @@
++# tlp - systemd suspend/resume service
++#
++# Copyright (c) 2020 Thomas Koch <linrunner at gmx.net> and others.
++# This software is licensed under the GPL v2 or later.
++
++[Unit]
++Description=TLP suspend/resume
++Before=sleep.target
++StopWhenUnneeded=yes
++Documentation=https://linrunner.de/tlp
++
++[Service]
++Type=oneshot
++RemainAfterExit=yes
++ExecStart=@TLP_SBIN@/tlp suspend
++ExecStop=@TLP_SBIN@/tlp resume
++
++[Install]
++WantedBy=sleep.target
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmate/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmate/default.nix
new file mode 100644
index 000000000000..3a125fcdbf7c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmate/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, cmake, libtool, pkgconfig
+, zlib, openssl, libevent, ncurses, ruby, msgpack, libssh }:
+
+stdenv.mkDerivation rec {
+ pname = "tmate";
+ version = "2.4.0";
+
+ src = fetchFromGitHub {
+ owner = "tmate-io";
+ repo = "tmate";
+ rev = version;
+ sha256 = "0x5c31yq7ansmiy20a0qf59wagba9v3pq97mlkxrqxn4n1gcc6vi";
+ };
+
+ dontUseCmakeConfigure = true;
+
+ buildInputs = [ libtool zlib openssl libevent ncurses ruby msgpack libssh ];
+ nativeBuildInputs = [ autoreconfHook cmake pkgconfig ];
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://tmate.io/";
+ description = "Instant Terminal Sharing";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmpwatch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmpwatch/default.nix
new file mode 100644
index 000000000000..ac20cab2842e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmpwatch/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, psmisc }:
+
+stdenv.mkDerivation {
+ name = "tmpwatch-2.11";
+
+ src = fetchurl {
+ url = "https://fedorahosted.org/releases/t/m/tmpwatch/tmpwatch-2.11.tar.bz2";
+ sha256 = "1m5859ngwx61l1i4s6fja2avf1hyv6w170by273w8nsin89825lk";
+ };
+
+ configureFlags = [ "--with-fuser=${psmisc}/bin/fuser" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://fedorahosted.org/tmpwatch/";
+ description = "Recursively searches through specified directories and removes files which have not been accessed in a specified period of time";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ vlstill ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix
new file mode 100644
index 000000000000..c38769f448f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, makeWrapper, tmux }:
+
+stdenv.mkDerivation {
+ name = "tmux-cssh-20151015";
+
+ src = fetchFromGitHub {
+ owner = "dennishafemann";
+ repo = "tmux-cssh";
+ rev = "21750733c5b6fa2fe23b9e50ce69d8564f2f742a";
+ sha256 = "473e27f3b69864b905d1340d97917cd202705c761611eb3aec4c24521f69b52c";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp tmux-cssh $out/bin/tmux-cssh
+ wrapProgram $out/bin/tmux-cssh --suffix PATH : ${tmux}/bin
+ '';
+
+ meta = {
+ homepage = "https://github.com/dennishafemann/tmux-cssh";
+ description = "SSH to multiple hosts at the same time using tmux";
+
+ longDescription =
+ ''
+ tmux is a terminal multiplexer, like e.g. screen, which gives you a
+ possibility to use multiple virtual terminal session within one real
+ terminal session. tmux-cssh (tmux-cluster-ssh) sets a comfortable and
+ easy to use functionality, clustering and synchronizing virtual
+ tmux-sessions, on top of tmux. No need for a x-server or x-forwarding.
+ tmux-cssh works just with tmux and in an low-level terminal-environment,
+ like most server do.
+ '';
+
+ license = stdenv.lib.licenses.asl20;
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix
new file mode 100644
index 000000000000..6e41eba73590
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, openssl, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "tmux-xpanes";
+ version = "4.1.2";
+
+ src = fetchFromGitHub {
+ owner = "greymd";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vm5mi6dqdbg0b5qh4r8sr1plpc00jryd8a2qxpp3a72cigjvvf0";
+ };
+
+ buildInputs = [ openssl perl ];
+
+ installPhase = ''
+ # Create directories.
+ install -m 755 -d $out/bin/
+ install -m 755 -d $out/share/man/man1/
+
+ # Perform installation.
+ install -m 755 bin/* $out/bin/
+ install -m 644 man/*.1 $out/share/man/man1/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "tmux-based terminal divider";
+ homepage = "https://github.com/greymd/tmux-xpanes";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ monsieurp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux/default.nix
new file mode 100644
index 000000000000..12ea456b9f7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmux/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, makeWrapper
+, bison
+, ncurses
+, libevent
+}:
+
+let
+
+ bashCompletion = fetchFromGitHub {
+ owner = "imomaliev";
+ repo = "tmux-bash-completion";
+ rev = "fcda450d452f07d36d2f9f27e7e863ba5241200d";
+ sha256 = "092jpkhggjqspmknw7h3icm0154rg21mkhbc71j5bxfmfjdxmya8";
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "tmux";
+ version = "3.1b";
+
+ outputs = [ "out" "man" ];
+
+ src = fetchFromGitHub {
+ owner = "tmux";
+ repo = "tmux";
+ rev = version;
+ sha256 = "0jvyq4r691bn0wsr8i6c0q0lzss25vm9nx8sv3fhw9cs63ncq04y";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ autoreconfHook
+ bison
+ ];
+
+ buildInputs = [
+ ncurses
+ libevent
+ makeWrapper
+ ];
+
+ configureFlags = [
+ "--sysconfdir=/etc"
+ "--localstatedir=/var"
+ ];
+
+ postInstall = ''
+ mkdir -p $out/share/bash-completion/completions
+ cp -v ${bashCompletion}/completions/tmux $out/share/bash-completion/completions/tmux
+ '';
+
+ meta = {
+ homepage = "http://tmux.github.io/";
+ description = "Terminal multiplexer";
+
+ longDescription =
+ '' tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include:
+
+ * A powerful, consistent, well-documented and easily scriptable command interface.
+ * A window may be split horizontally and vertically into panes.
+ * Panes can be freely moved and resized, or arranged into preset layouts.
+ * Support for UTF-8 and 256-colour terminals.
+ * Copy and paste with multiple buffers.
+ * Interactive menus to select windows, sessions or clients.
+ * Change the current window by searching for text in the target.
+ * Terminal locking, manually or after a timeout.
+ * A clean, easily extended, BSD-licensed codebase, under active development.
+ '';
+
+ license = stdenv.lib.licenses.bsd3;
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ thammers fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
new file mode 100644
index 000000000000..e631aa9d342b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
@@ -0,0 +1,53 @@
+{ lib, buildRubyGem, ruby, installShellFiles }:
+
+# Cannot use bundleEnv because bundleEnv create stub with
+# BUNDLE_FROZEN='1' environment variable set, which broke everything
+# that rely on Bundler that runs under Tmuxinator.
+
+buildRubyGem rec {
+ inherit ruby;
+ name = "${gemName}-${version}";
+ gemName = "tmuxinator";
+ version = "2.0.1";
+ source.sha256 = "03q1q6majci0l6kzw6kv7r395jycrl862mlqmyydxcd29y8wm3m2";
+
+ erubis = buildRubyGem rec {
+ inherit ruby;
+ name = "ruby${ruby.version}-${gemName}-${version}";
+ gemName = "erubis";
+ version = "2.7.0";
+ source.sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+ };
+
+ thor = buildRubyGem rec {
+ inherit ruby;
+ name = "ruby${ruby.version}-${gemName}-${version}";
+ gemName = "thor";
+ version = "1.0.1";
+ source.sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+ };
+
+ xdg = buildRubyGem rec {
+ inherit ruby;
+ name = "ruby${ruby.version}-${gemName}-${version}";
+ gemName = "xdg";
+ version = "2.2.5";
+ source.sha256 = "04xr4cavnzxlk926pkji7b5yiqy4qsd3gdvv8mg6jliq6sczg9gk";
+ };
+
+ propagatedBuildInputs = [ erubis thor xdg ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installShellCompletion $GEM_HOME/gems/${gemName}-${version}/completion/tmuxinator.{bash,zsh,fish}
+ '';
+
+ meta = with lib; {
+ description = "Manage complex tmux sessions easily";
+ homepage = "https://github.com/tmuxinator/tmuxinator";
+ license = licenses.mit;
+ maintainers = with maintainers; [ auntie ericsagnes ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
new file mode 100644
index 000000000000..a118195d4706
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, python }:
+
+with python.pkgs;
+
+buildPythonApplication rec {
+ pname = "tmuxp";
+ version = "1.5.6";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "c305fc45bbf1093561e03cdcd37b2ab1f2efb9e208e74b2dc294cf414859bd8a";
+ };
+
+ postPatch = ''
+ sed -i 's/==.*$//' requirements/base.txt requirements/test.txt
+ '';
+
+ checkInputs = [
+ pytest
+ pytest-rerunfailures
+ ];
+
+ # No tests in archive
+ doCheck = false;
+
+ propagatedBuildInputs = [
+ click colorama kaptan libtmux
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Manage tmux workspaces from JSON and YAML";
+ homepage = "https://tmuxp.git-pull.com/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix
new file mode 100644
index 000000000000..4afa1781ac0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, fetchFromGitHub, pythonPackages, makeWrapper, ffmpeg_3 }:
+
+pythonPackages.buildPythonApplication {
+
+ pname = "togglesg-download-git";
+ version = "2017-12-07";
+
+ src = fetchFromGitHub {
+ owner = "0x776b7364";
+ repo = "toggle.sg-download";
+ rev = "e64959f99ac48920249987a644eefceee923282f";
+ sha256 = "0j317wmyzpwfcixjkybbq2vkg52vij21bs40zg3n1bs61rgmzrn8";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ doCheck = false;
+ dontBuild = true;
+ dontStrip = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,share/doc/togglesg-download}
+ substitute $src/download_toggle_video2.py $out/bin/download_toggle_video2.py \
+ --replace "ffmpeg_download_cmd = 'ffmpeg" "ffmpeg_download_cmd = '${lib.getBin ffmpeg_3}/bin/ffmpeg"
+ chmod 0755 $out/bin/download_toggle_video2.py
+
+ cp LICENSE README.md $out/share/doc/togglesg-download
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/0x776b7364/toggle.sg-download";
+ description = "Command-line tool to download videos from toggle.sg written in Python";
+ longDescription = ''
+ toggle.sg requires SilverLight in order to view videos. This tool will
+ allow you to download the video files for viewing in your media player and
+ on your OS of choice.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/toilet/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/toilet/default.nix
new file mode 100644
index 000000000000..c598b37897c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/toilet/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, libcaca }:
+
+stdenv.mkDerivation rec {
+ pname = "toilet";
+ version = "0.3";
+
+ src = fetchurl {
+ url = "http://caca.zoy.org/raw-attachment/wiki/toilet/${pname}-${version}.tar.gz";
+ sha256 = "1pl118qb7g0frpgl9ps43w4sd0psjirpmq54yg1kqcclqcqbbm49";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libcaca ];
+
+ meta = with stdenv.lib; {
+ description = "Display large colourful characters in text mode";
+ homepage = "http://caca.zoy.org/wiki/toilet";
+ license = licenses.wtfpl;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/topgrade/default.nix
new file mode 100644
index 000000000000..b7b38766db38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchFromGitHub, rustPlatform, Foundation }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "topgrade";
+ version = "5.7.0";
+
+ src = fetchFromGitHub {
+ owner = "r-darwish";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0nxqi2rykfxhvn8jzprklsc47iilxp1pmm2f17ikfyf5dgi69whb";
+ };
+
+ cargoSha256 = "05afmz2n006331hc8yi2mq9kj574xi1iq6gr983jj75ix7n40rgg";
+
+ buildInputs = lib.optional stdenv.isDarwin Foundation;
+
+ # TODO: add manpage (topgrade.8) to postInstall on next update
+
+ meta = with lib; {
+ description = "Upgrade all the things";
+ homepage = "https://github.com/r-darwish/topgrade";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ filalex77 hugoreeves ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/toybox/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/toybox/default.nix
new file mode 100644
index 000000000000..23fdc2f7135c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/toybox/default.nix
@@ -0,0 +1,66 @@
+{
+ stdenv, lib, fetchFromGitHub, which,
+ enableStatic ? false,
+ enableMinimal ? false,
+ extraConfig ? ""
+}:
+
+stdenv.mkDerivation rec {
+ pname = "toybox";
+ version = "0.8.3";
+
+ src = fetchFromGitHub {
+ owner = "landley";
+ repo = pname;
+ rev = version;
+ sha256 = "0cb1n0skanwwkwgzlswwhvfb4iji1bw9iqskmczlhakpw3j1yaqa";
+ };
+
+ buildInputs = lib.optionals enableStatic [ stdenv.cc.libc stdenv.cc.libc.static ];
+
+ postPatch = "patchShebangs .";
+
+ inherit extraConfig;
+ passAsFile = [ "extraConfig" ];
+
+ configurePhase = ''
+ make ${if enableMinimal then
+ "allnoconfig"
+ else
+ if stdenv.isFreeBSD then
+ "freebsd_defconfig"
+ else
+ if stdenv.isDarwin then
+ "macos_defconfig"
+ else
+ "defconfig"
+ }
+
+ cat $extraConfigPath .config > .config-
+ mv .config- .config
+
+ make oldconfig
+ '';
+
+ makeFlags = [ "PREFIX=$(out)/bin" ] ++ lib.optional enableStatic "LDFLAGS=--static";
+
+ installTargets = [ "install_flat" ];
+
+ # tests currently (as of 0.8.0) get stuck in an infinite loop...
+ # ...this is fixed in latest git, so doCheck can likely be enabled for next release
+ # see https://github.com/landley/toybox/commit/b928ec480cd73fd83511c0f5ca786d1b9f3167c3
+ #doCheck = true;
+ checkInputs = [ which ]; # used for tests with checkFlags = [ "DEBUG=true" ];
+ checkTarget = "tests";
+
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ meta = with stdenv.lib; {
+ description = "Lightweight implementation of some Unix command line utilities";
+ homepage = "https://landley.net/toybox/";
+ license = licenses.bsd0;
+ platforms = with platforms; linux ++ darwin ++ freebsd;
+ maintainers = with maintainers; [ hhm ];
+ priority = 10;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/trac/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/trac/default.nix
new file mode 100644
index 000000000000..1d0f9a5d8288
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/trac/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, Babel
+, docutils
+, pygments
+, pytz
+, jinja2
+, pysqlite
+, psycopg2
+, pymysql
+, git
+, setuptools
+}:
+
+
+buildPythonApplication rec {
+ pname = "trac";
+ version = "1.4.1";
+
+ src = fetchPypi {
+ inherit version;
+ pname = "Trac";
+ sha256 = "0d61ypn0j9wb8119bj3pj7s8swfjykdl0sz398p92k9bvxh4dayz";
+ };
+
+ prePatch = ''
+ # Removing the date format tests as they are outdated
+ substituteInPlace trac/util/tests/__init__.py \
+ --replace "suite.addTest(datefmt.test_suite())" ""
+ # Removing Pygments tests as per https://trac.edgewall.org/ticket/13229
+ substituteInPlace trac/mimeview/tests/__init__.py \
+ --replace "suite.addTest(pygments.test_suite())" ""
+ '';
+
+ propagatedBuildInputs = [
+ Babel
+ docutils
+ pygments
+ pytz
+ jinja2
+ pysqlite
+ psycopg2
+ pymysql
+ git
+ setuptools
+ ];
+
+ meta = with lib; {
+ description = "Integrated SCM, wiki, issue tracker and project environment";
+ homepage = "https://trac.edgewall.org/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
new file mode 100644
index 000000000000..141cceff24d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, fetchpatch, coreutils
+, python3Packages, substituteAll }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "trash-cli";
+ version = "0.17.1.14";
+
+ src = fetchFromGitHub {
+ owner = "andreafrancia";
+ repo = "trash-cli";
+ rev = version;
+ sha256 = "1bqazna223ibqjwbc1wfvfnspfyrvjy8347qlrgv4cpng72n7gfi";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./nix-paths.patch;
+ df = "${coreutils}/bin/df";
+ libc = let ext = if stdenv.isDarwin then ".dylib" else ".so.6";
+ in "${stdenv.cc.libc}/lib/libc${ext}";
+ })
+
+ # Fix build on Python 3.6.
+ (fetchpatch {
+ url = "https://github.com/andreafrancia/trash-cli/commit/a21b80d1e69783bb09376c3f60dd2f2a10578805.patch";
+ sha256 = "0w49rjh433sjfc2cl5a9wlbr6kcn9f1qg905qsyv7ay3ar75wvyp";
+ })
+
+ # Fix listing trashed files over mount points, see https://github.com/andreafrancia/trash-cli/issues/95
+ (fetchpatch {
+ url = "https://github.com/andreafrancia/trash-cli/commit/436dfddb4c2932ba3ff696e4732750b7bdc58461.patch";
+ sha256 = "02pkcz7nj67jbnqpw1943nrv95m8xyjvab4j62fa64r73fagm8m4";
+ })
+ ];
+
+ checkInputs = with python3Packages; [
+ nose
+ mock
+ ];
+ checkPhase = "nosetests";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/andreafrancia/trash-cli";
+ description = "Command line tool for the desktop trash can";
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.unix;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch
new file mode 100644
index 000000000000..d7b485eec158
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch
@@ -0,0 +1,26 @@
+--- a/trashcli/list_mount_points.py 2014-12-23 10:10:43.808470486 +0100
++++ a/trashcli/list_mount_points.py 2014-12-23 10:19:04.954796457 +0100
+@@ -12,7 +12,7 @@ def mount_points_from_getmnt():
+
+ def mount_points_from_df():
+ import subprocess
+- df_output = subprocess.Popen(["df", "-P"], stdout=subprocess.PIPE).stdout
++ df_output = subprocess.Popen(["@df@", "-P"], stdout=subprocess.PIPE).stdout
+ return list(_mount_points_from_df_output(df_output))
+
+ def _mount_points_from_df_output(df_output):
+@@ -46,13 +46,7 @@ def _mounted_filesystems_from_getmnt() :
+ ("mnt_freq", c_int), # Dump frequency (in days).
+ ("mnt_passno", c_int)] # Pass number for `fsck'.
+
+- if sys.platform == "cygwin":
+- libc_name = "cygwin1.dll"
+- else:
+- libc_name = find_library("c")
+-
+- if libc_name == None :
+- libc_name="/lib/libc.so.6" # fix for my Gentoo 4.0
++ libc_name = "@libc@"
+
+ libc = cdll.LoadLibrary(libc_name)
+ libc.getmntent.restype = POINTER(mntent_struct)
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/default.nix
new file mode 100644
index 000000000000..b7888f0884bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, perl, freetype }:
+
+stdenv.mkDerivation {
+ name = "ttf2pt1-3.4.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ttf2pt1/ttf2pt1-3.4.4.tgz";
+ sha256 = "1l718n4k4widx49xz7qrj4mybzb8q67kp2jw7f47604ips4654mf";
+ };
+
+ preConfigure = ''
+ find -type f | xargs sed -i 's@/usr/bin/perl@${perl}/bin/perl@'
+ mkdir -p $out
+ sed -e 's/chown/true/' \
+ -e 's/chgrp/true/' \
+ -e 's@^CFLAGS_FT =.*@CFLAGS_FT=-DUSE_FREETYPE -I${freetype.dev}/include/freetype2@' \
+ -i scripts/{inst_dir,inst_file} Makefile
+ makeFlags="INSTDIR=$out OWNER=`id -u`"
+ '';
+
+ buildInputs = [ freetype ];
+ nativeBuildInputs = [ perl ];
+
+ patches = ./gentoo-makefile.patch; # also contains the freetype patch
+
+ meta = {
+ description = "True Type to Postscript Type 3 converter, fpdf";
+ homepage = "http://ttf2pt1.sourceforge.net/index.html";
+ license = "ttf2pt1";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch
new file mode 100644
index 000000000000..84854606131f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch
@@ -0,0 +1,98 @@
+diff -Naur ttf2pt1-3.4.4-orig/Makefile ttf2pt1-3.4.4/Makefile
+--- ttf2pt1-3.4.4-orig/Makefile 2007-07-15 20:06:50.000000000 -0600
++++ ttf2pt1-3.4.4/Makefile 2007-07-15 20:12:40.000000000 -0600
+@@ -9,7 +9,7 @@
+ #
+ # Use GNU C even if it's not the default compiler
+ #
+-#CC=gcc
++CC=gcc
+ #
+ # Use the standard ANSI C compiler on HP-UX even if it's not default
+ #
+@@ -60,18 +60,18 @@
+ # (if the include and lib directory do not match your installation,
+ # modify them), also uncomment LIBS_FT
+ #
+-#CFLAGS_FT = -DUSE_FREETYPE -I/usr/local/include/freetype2 -I/usr/local/include
++CFLAGS_FT = -DUSE_FREETYPE -I/usr/include/freetype2 -I/usr/include
+
+ #
+ # The FreeType-2 library flags (disabled by default)
+
+-LIBS_FT=
++#LIBS_FT=
+
+ # To enable use of the FreeType-2 library
+ # (if the include and lib directory do not match your installation,
+ # modify them), also uncomment CFLAGS_FT
+ #
+-#LIBS_FT= -L/usr/local/lib -lfreetype
++LIBS_FT= -L/usr/lib -lfreetype
+
+ #
+ # The flags for C compiler for the Autotrace library (disabled by default).
+@@ -120,18 +120,18 @@
+ # Installation-related stuff
+ #
+ # The base dir for installation and subdirs in it
+-INSTDIR = /usr/local
++INSTDIR = /usr
+ # for binaries
+ BINDIR = $(INSTDIR)/bin
+ # for binaries of little general interest
+ LIBXDIR = $(INSTDIR)/libexec/ttf2pt1
+ # for scripts, maps/encodings etc.
+ SHAREDIR = $(INSTDIR)/share/ttf2pt1
+-MANDIR = $(INSTDIR)/man
++MANDIR = $(INSTDIR)/share/man
+
+ # owner and group of installed files
+ OWNER = root
+-GROUP = bin
++GROUP = root
+
+ # After you have configured the Makefile, comment out the following
+ # definition:
+@@ -244,17 +244,19 @@
+ chmod -R go-w $(SHAREDIR)
+ scripts/inst_file ttf2pt1 $(BINDIR)/ttf2pt1 $(OWNER) $(GROUP) 0755
+ [ -f $(BINDIR)/t1asm ] || scripts/inst_file t1asm $(LIBXDIR)/t1asm $(OWNER) $(GROUP) 0755
+- sed 's|^TTF2PT1_BINDIR=$$|TTF2PT1_BINDIR=$(BINDIR)|;\
+- s|^TTF2PT1_LIBXDIR=$$|TTF2PT1_LIBXDIR=$(LIBXDIR)|;\
+- s|^TTF2PT1_SHAREDIR=$$|TTF2PT1_SHAREDIR=$(SHAREDIR)|;' <scripts/convert >cvt.tmp
++ sed -e 's|^TTF2PT1_BINDIR=$$|TTF2PT1_BINDIR=$(BINDIR)|' \
++ -e 's|^TTF2PT1_LIBXDIR=$$|TTF2PT1_LIBXDIR=$(LIBXDIR)|' \
++ -e 's|^TTF2PT1_SHAREDIR=$$|TTF2PT1_SHAREDIR=$(SHAREDIR)|' \
++ <scripts/convert >cvt.tmp
+ scripts/inst_file cvt.tmp $(BINDIR)/ttf2pt1_convert $(OWNER) $(GROUP) 0755
+ scripts/inst_file cvt.tmp $(SHAREDIR)/scripts/convert $(OWNER) $(GROUP) 0755
+ rm cvt.tmp
+ scripts/inst_file scripts/x2gs $(BINDIR)/ttf2pt1_x2gs $(OWNER) $(GROUP) 0755
+ for i in $(MANS1); do { \
+- sed 's|TTF2PT1_BINDIR|$(BINDIR)|;\
+- s|TTF2PT1_LIBXDIR|$(LIBXDIR)|;\
+- s|TTF2PT1_SHAREDIR|$(SHAREDIR)|;' <$$i >$(MANDIR)/man1/$$i \
++ sed -e 's|TTF2PT1_BINDIR|$(BINDIR)|' \
++ -e 's|TTF2PT1_LIBXDIR|$(LIBXDIR)|' \
++ -e 's|TTF2PT1_SHAREDIR|$(SHAREDIR)|' \
++ <$$i >$(MANDIR)/man1/$$i \
+ && chown $(OWNER) $(MANDIR)/man1/$$i \
+ && chgrp $(GROUP) $(MANDIR)/man1/$$i \
+ && chmod 0644 $(MANDIR)/man1/$$i \
+
+
+
+
+
+diff -Naur ttf2pt1-3.4.4-orig/ft.c ttf2pt1-3.4.4/ft.c
+--- ttf2pt1-3.4.4-orig/ft.c 2007-07-15 20:23:43.000000000 -0600
++++ ttf2pt1-3.4.4/ft.c 2007-07-15 20:24:02.000000000 -0600
+@@ -12,6 +12,7 @@
+ #include <stdlib.h>
+ #include <ctype.h>
+ #include <sys/types.h>
++#include <ft2build.h>
+ #include <freetype/freetype.h>
+ #include <freetype/ftglyph.h>
+ #include <freetype/ftsnames.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
new file mode 100644
index 000000000000..502b829afcec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
@@ -0,0 +1,42 @@
+{
+ stdenv, lib, fetchurl, pkgconfig, autoreconfHook
+, freetype, harfbuzz, libiconv, qtbase
+, enableGUI ? true
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.8.3";
+ pname = "ttfautohint";
+
+ src = fetchurl {
+ url = "mirror://savannah/freetype/${pname}-${version}.tar.gz";
+ sha256 = "0zpqgihn3yh3v51ynxwr8asqrijvs4gv686clwv7bm8sawr4kfw7";
+ };
+
+ postAutoreconf = ''
+ substituteInPlace configure --replace "macx-g++" "macx-clang"
+ '';
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+ buildInputs = [ freetype harfbuzz libiconv ] ++ lib.optional enableGUI qtbase;
+
+ configureFlags = [ ''--with-qt=${if enableGUI then "${qtbase}/lib" else "no"}'' ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "An automatic hinter for TrueType fonts";
+ longDescription = ''
+ A library and two programs which take a TrueType font as the
+ input, remove its bytecode instructions (if any), and return a
+ new font where all glyphs are bytecode hinted using the
+ information given by FreeType’s auto-hinting module.
+ '';
+ homepage = "https://www.freetype.org/ttfautohint";
+ license = licenses.gpl2Plus; # or the FreeType License (BSD + advertising clause)
+ maintainers = with maintainers; [ goibhniu ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/cstring.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/cstring.patch
new file mode 100644
index 000000000000..e1da347c64f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/cstring.patch
@@ -0,0 +1,78 @@
+diff --git a/Makefile b/Makefile
+index e65b64c..52af5ed 100644
+--- a/Makefile
++++ b/Makefile
+@@ -41,8 +41,9 @@ all: ttmkfdir
+ .cpp.o:
+ libtool --mode=compile $(CXX) $(CXXFLAGS) -o $@ -c $^
+
++# ulgy hack for libtool to find .o files !!
+ ttmkfdir: ttmkfdir.o directory.o commandline.o ttf.o encoding.o parser.o builtin.o
+- libtool --mode=link $(CXX) -o $@ $^ $(LDFLAGS)
++ libtool --mode=link $(CXX) -o $@ ./.libs/ttmkfdir.o ./.libs/directory.o ./.libs/commandline.o ./.libs/ttf.o ./.libs/encoding.o ./.libs/parser.o ./.libs/builtin.o $(LDFLAGS)
+
+ parser.cpp: encoding.l
+ flex -i -8 -o$@ $<
+diff --git a/encoding.cpp b/encoding.cpp
+index 9035d35..b4e9733 100644
+--- a/encoding.cpp
++++ b/encoding.cpp
+@@ -2,7 +2,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+-#include "freetype/freetype.h"
++#include <ft2build.h>
++#include FT_FREETYPE_H
++#include <freetype/ftsnames.h>
+
+ #include "ttmkfdir.h"
+ #include "encoding.h"
+diff --git a/encoding.h b/encoding.h
+index fc618bc..e01518f 100644
+--- a/encoding.h
++++ b/encoding.h
+@@ -6,7 +6,8 @@
+ #include <map>
+ #include <string>
+
+-#include "freetype/freetype.h"
++#include <ft2build.h>
++#include FT_FREETYPE_H
+
+ #include "util.h"
+
+diff --git a/ttf.cpp b/ttf.cpp
+index 1dda774..97b37f3 100644
+--- a/ttf.cpp
++++ b/ttf.cpp
+@@ -239,7 +239,7 @@ Face::FontFamilyName (void) const
+ for (i = 0; i < n; i++) {
+ if ((fterror = FT_Get_Sfnt_Name (face, i, &NamePtr)) != FT_Err_Ok) {
+ std::cout << "Warning: Can't SFNT name : " << FileName << "(" << fterror << ")" << std::endl;
+- return;
++ return 0;
+ };
+ platform = NamePtr.platform_id;
+ encoding = NamePtr.encoding_id;
+diff --git a/ttf.h b/ttf.h
+index 4261ef8..c4a0f1f 100644
+--- a/ttf.h
++++ b/ttf.h
+@@ -3,13 +3,14 @@
+ #define TTF_H__
+
+ #include <string>
++#include <ft2build.h>
++#include FT_FREETYPE_H
+ #include "freetype/freetype.h"
+ #include "freetype/tttables.h"
+ #include "freetype/ftsnames.h"
+ #include "freetype/ttnameid.h"
+ #include "freetype/fterrors.h"
+-#include "freetype/ftmodule.h"
+-
++#include "freetype/ftmodapi.h"
+ #include "util.h"
+ #include "encoding.h"
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/default.nix
new file mode 100644
index 000000000000..d75011ea6f40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttmkfdir/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, freetype, fontconfig, libunwind, libtool, flex, bison }:
+
+stdenv.mkDerivation {
+ name = "ttf-mkfontdir-3.0.9-6";
+
+ src = fetchurl {
+ url = "http://mirror.fsf.org/trisquel/pool/main/t/ttmkfdir/ttmkfdir_3.0.9.orig.tar.gz";
+ sha256 = "0n6bmmndmp4c1myisvv7cby559gzgvwsw4rfw065a3f92m87jxiq";
+ };
+
+ # all the patches up from ttmkfdir-3.0.9/Makefile should be reviewed by someone
+ # who knows more about C/C++ ..
+ patches =
+ [ (fetchurl {
+ url = "http://mirror.fsf.org/trisquel/pool/main/t/ttmkfdir/ttmkfdir_3.0.9-6.diff.gz";
+ sha256 = "141kxaf2by8nf87hqyszaxi0n7nnmswr1nh2i5r5bsvxxmaj9633";
+ })
+
+ ./cstring.patch # also fixes some other compilation issues (freetype includes)
+ ];
+
+ preInstall = ''
+ mkdir -p $out; makeFlags="DESTDIR=$out BINDIR=/bin"
+ '';
+
+ buildInputs = [freetype fontconfig libunwind libtool flex bison];
+
+ meta = {
+ description = "Create fonts.dir for TTF font directory";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttwatch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttwatch/default.nix
new file mode 100644
index 000000000000..8788608876ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttwatch/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub
+, cmake, perl, pkgconfig
+, openssl, curl, libusb1, protobufc
+, enableUnsafe ? false }:
+
+stdenv.mkDerivation {
+ pname = "ttwatch";
+ version = "2020-02-05";
+
+ src = fetchFromGitHub {
+ owner = "ryanbinns";
+ repo = "ttwatch";
+ rev = "bfdf1372515574e1fb3871dc1039f8d8a5dbdada";
+ sha256 = "07nd4dbkchxy8js1h1f6pzn63pls2afww97wyiiw6zid43mpqyg4";
+ };
+
+ nativeBuildInputs = [ cmake perl pkgconfig ];
+ buildInputs = [ openssl curl libusb1 protobufc ];
+
+ cmakeFlags = stdenv.lib.optional enableUnsafe [ "-Dunsafe=on" ];
+
+ preFixup = ''
+ chmod +x $out/bin/ttbin2mysports
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ryanbinns/ttwatch";
+ description = "Linux TomTom GPS Watch Utilities";
+ maintainers = with maintainers; [ dotlambda ];
+ license = licenses.mit;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tty-clock/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tty-clock/default.nix
new file mode 100644
index 000000000000..f6a312f04608
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tty-clock/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, ncurses, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "tty-clock";
+ version = "2.3";
+
+ src = fetchFromGitHub {
+ owner = "xorg62";
+ repo = "tty-clock";
+ rev = "v${version}";
+ sha256 = "16v3pmva13skpfjja96zacjpxrwzs1nb1iqmrp2qzvdbcm9061pp";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/xorg62/tty-clock";
+ license = licenses.free;
+ description = "Digital clock in ncurses";
+ platforms = platforms.all;
+ maintainers = [ maintainers.koral ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttygif/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttygif/default.nix
new file mode 100644
index 000000000000..5a14dade01b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttygif/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "ttygif";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = "icholy";
+ repo = pname;
+ rev = version;
+ sha256 = "1w9c3h6hik2gglwsw8ww63piy66i4zqr3273wh5rc9r2awiwh643";
+ };
+
+ makeFlags = [ "CC:=$(CC)" "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/icholy/ttygif";
+ description = "Convert terminal recordings to animated gifs";
+ platforms = platforms.unix;
+ license = licenses.mit;
+ maintainers = with maintainers; [ moaxcp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttylog/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttylog/default.nix
new file mode 100644
index 000000000000..55785c7a211c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttylog/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "ttylog";
+ version = "0.31";
+
+ src = fetchFromGitHub {
+ owner = "rocasa";
+ repo = "ttylog";
+ rev = version;
+ sha256 = "0c746bpjpa77vsr88fxk8h1803p5np1di1mpjf4jy5bv5x3zwm07";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://ttylog.sourceforge.net";
+ description = "Simple serial port logger";
+ longDescription = ''
+ A serial port logger which can be used to print everything to stdout
+ that comes from a serial device.
+ '';
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyplot/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyplot/default.nix
new file mode 100644
index 000000000000..afa4cb3e1555
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyplot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "ttyplot";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "tenox7";
+ repo = "ttyplot";
+ rev = version;
+ sha256 = "19qm0hx9ljdw9qg78lydn3c627xy7xnx3knq5f7caw9lf0cdp7kf";
+ };
+
+ buildInputs = [ ncurses ];
+
+ buildPhase = ''
+ ${stdenv.cc}/bin/cc ./ttyplot.c -lncurses -o ttyplot
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ttyplot $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple general purpose plotting utility for tty with data input from stdin";
+ homepage = "https://github.com/tenox7/ttyplot";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ lassulus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/clang-fixes.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/clang-fixes.patch
new file mode 100644
index 000000000000..126ab44090eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/clang-fixes.patch
@@ -0,0 +1,21 @@
+diff -ru ttyrec-1.0.8.orig/io.h ttyrec-1.0.8/io.h
+--- ttyrec-1.0.8.orig/io.h 2006-06-11 17:52:50.000000000 +0200
++++ ttyrec-1.0.8/io.h 2015-11-15 09:59:54.000000000 +0100
+@@ -9,5 +9,6 @@
+ int edup (int oldfd);
+ int edup2 (int oldfd, int newfd);
+ FILE* efdopen (int fd, const char *mode);
++void set_progname (const char *name);
+
+ #endif
+diff -ru ttyrec-1.0.8.orig/ttyrec.c ttyrec-1.0.8/ttyrec.c
+--- ttyrec-1.0.8.orig/ttyrec.c 2006-06-11 17:52:50.000000000 +0200
++++ ttyrec-1.0.8/ttyrec.c 2015-11-15 09:59:41.000000000 +0100
+@@ -54,6 +54,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <signal.h>
+
+ #if defined(SVR4)
+ #include <fcntl.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/default.nix
new file mode 100644
index 000000000000..97049276a32d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ttyrec/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "ttyrec";
+ version = "1.0.8";
+
+ src = fetchurl {
+ url = "http://0xcc.net/ttyrec/${pname}-${version}.tar.gz";
+ sha256 = "ef5e9bf276b65bb831f9c2554cd8784bd5b4ee65353808f82b7e2aef851587ec";
+ };
+
+ patches = [ ./clang-fixes.patch ];
+
+ makeFlags = stdenv.lib.optional stdenv.buildPlatform.isLinux "CFLAGS=-DSVR4"
+ ++ stdenv.lib.optional stdenv.cc.isClang "CC=clang";
+
+ installPhase = ''
+ mkdir -p $out/{bin,man}
+ cp ttytime ttyplay ttyrec $out/bin
+ cp *.1 $out/man
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://0xcc.net/ttyrec/";
+ description = "Terminal interaction recorder and player";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ zimbatm ];
+ broken = true; # 2020-01-28
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/txr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/txr/default.nix
new file mode 100644
index 000000000000..ce928f0a3781
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/txr/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, bison, flex, libffi }:
+
+stdenv.mkDerivation rec {
+ pname = "txr";
+ version = "231";
+
+ src = fetchurl {
+ url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2";
+ sha256 = "0mcglb84zfmrai2bcdg9j0ck8jp8h7ii2rf4m38yjggy0dvii2lc";
+ };
+
+ nativeBuildInputs = [ bison flex ];
+ buildInputs = [ libffi ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+ checkTarget = "tests";
+
+ # Remove failing test-- mentions 'usr/bin' so probably related :)
+ preCheck = "rm -rf tests/017";
+
+ postInstall = ''
+ d=$out/share/vim-plugins/txr
+ mkdir -p $d/{syntax,ftdetect}
+
+ cp {tl,txr}.vim $d/syntax/
+
+ cat > $d/ftdetect/txr.vim <<EOF
+ au BufRead,BufNewFile *.txr set filetype=txr | set lisp
+ au BufRead,BufNewFile *.tl,*.tlo set filetype=tl | set lisp
+ EOF
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Programming language for convenient data munging";
+ license = licenses.bsd2;
+ homepage = "http://nongnu.org/txr";
+ maintainers = with stdenv.lib.maintainers; [ dtzWill ];
+ platforms = platforms.linux; # Darwin fails although it should work AFAIK
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/txt2man/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/txt2man/default.nix
new file mode 100644
index 000000000000..ded409754bcb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/txt2man/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, coreutils, gawk }:
+
+stdenv.mkDerivation rec {
+ pname = "txt2man";
+ version = "1.7.1";
+
+ src = fetchurl {
+ url = "https://github.com/mvertes/txt2man/archive/${pname}-${version}.tar.gz";
+ sha256 = "0ka3krmblsprv0v6h6wnm8lv08w30z0ynfnbwns6alks5gx1p6sd";
+ };
+
+ preConfigure = ''
+ makeFlags=prefix="$out"
+ '';
+
+ patchPhase = ''
+ for f in bookman src2man txt2man; do
+ substituteInPlace $f --replace "gawk" "${gawk}/bin/gawk"
+
+ substituteInPlace $f --replace "(date" "(${coreutils}/bin/date"
+ substituteInPlace $f --replace "=cat" "=${coreutils}/bin/cat"
+ substituteInPlace $f --replace "cat <<" "${coreutils}/bin/cat <<"
+ substituteInPlace $f --replace "expand" "${coreutils}/bin/expand"
+ substituteInPlace $f --replace "(uname" "(${coreutils}/bin/uname"
+ done
+ '';
+
+ doCheck = true;
+
+ checkPhase = ''
+ # gawk and coreutils are part of stdenv but will not
+ # necessarily be in PATH at runtime.
+ sh -c 'unset PATH; printf hello | ./txt2man'
+ '';
+
+ meta = {
+ description = "Convert flat ASCII text to man page format";
+ homepage = "http://mvertes.free.fr/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ maintainers = with stdenv.lib.maintainers; [ bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/txtw/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/txtw/default.nix
new file mode 100644
index 000000000000..1cf80007901e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/txtw/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cairo }:
+
+stdenv.mkDerivation rec {
+ version = "0.4";
+ pname = "txtw";
+
+ src = fetchFromGitHub {
+ owner = "baskerville";
+ repo = "txtw";
+ rev = version;
+ sha256 = "17yjdgdd080fsf5r1wzgk6vvzwsa15gcwc9z64v7x588jm1ryy3k";
+ };
+
+ buildInputs = [ cairo ];
+
+ prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+ meta = with stdenv.lib; {
+ description = "Compute text widths";
+ homepage = "https://github.com/baskerville/txtw";
+ maintainers = with maintainers; [ lihop ];
+ license = licenses.unlicense;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/tydra/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/tydra/default.nix
new file mode 100644
index 000000000000..c6d7c86c7efd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/tydra/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, rustPlatform, fetchFromGitHub, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tydra";
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "Mange";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1kvyski3qy2lwlpipynq894i0g9x2j4a1iy2mgdwfibfyfkv2jnm";
+ };
+
+ cargoSha256 = "11l3fvym16wrrpm9vy4asmqdh8qynwjy0w4gx2bbcnc6300ag43a";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installManPage doc/{tydra.1,tydra-actions.5}
+
+ $out/bin/tydra --generate-completions bash > tydra.bash
+ $out/bin/tydra --generate-completions fish > tydra.fish
+ $out/bin/tydra --generate-completions zsh > _tydra
+
+ installShellCompletion tydra.{bash,fish} _tydra
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Shortcut menu-based task runner, inspired by Emacs Hydra";
+ homepage = "https://github.com/Mange/tydra";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/uhubctl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/uhubctl/default.nix
new file mode 100644
index 000000000000..49da81d6094f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/uhubctl/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, fetchFromGitHub
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+ pname = "uhubctl";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "mvp";
+ repo = "uhubctl";
+ rev = "refs/tags/v${version}";
+ sha256 = "0pimhw2a2wfg7nh1ahsxmzkb0j6bbncwdqsvyp8l23zhs5kx7wm9";
+ };
+
+ buildInputs = [ libusb1 ];
+
+ installFlags = [ "prefix=${placeholder "out"}" ];
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mvp/uhubctl";
+ description = "Utility to control USB power per-port on smart USB hubs";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-creator/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-creator/default.nix
new file mode 100644
index 000000000000..923f6e7a3a45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-creator/default.nix
@@ -0,0 +1,45 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qmake, qtbase, pkgconfig, taglib, libbass, libbass_fx }:
+
+# TODO: get rid of (unfree) libbass
+# issue:https://github.com/UltraStar-Deluxe/UltraStar-Creator/issues/3
+# there’s a WIP branch here:
+# https://github.com/UltraStar-Deluxe/UltraStar-Creator/commits/BASS_removed
+
+mkDerivation {
+ pname = "ultrastar-creator";
+ version = "2019-04-23";
+
+ src = fetchFromGitHub {
+ owner = "UltraStar-Deluxe";
+ repo = "UltraStar-Creator";
+ rev = "36583b4e482b68f6aa949e77ef2744776aa587b1";
+ sha256 = "1rzz04l7s7pxj74xam0cxlq569lfpgig35kpbsplq531d4007pc9";
+ };
+
+ postPatch = with lib; ''
+ # we don’t want prebuild binaries checked into version control!
+ rm -rf lib include
+ sed -e "s|DESTDIR =.*$|DESTDIR = $out/bin|" \
+ -e 's|-L".*unix"||' \
+ -e "/QMAKE_POST_LINK/d" \
+ -e "s|../include/bass|${getLib libbass}/include|g" \
+ -e "s|../include/bass_fx|${getLib libbass_fx}/include|g" \
+ -e "s|../include/taglib|${getLib taglib}/include|g" \
+ -i src/UltraStar-Creator.pro
+ '';
+
+ preConfigure = ''
+ cd src
+ '';
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [ qtbase taglib libbass libbass_fx ];
+
+ meta = with lib; {
+ description = "Ultrastar karaoke song creation tool";
+ homepage = "https://github.com/UltraStar-Deluxe/UltraStar-Creator";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ Profpatsch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-manager/default.nix
new file mode 100644
index 000000000000..64221a921396
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ultrastar-manager/default.nix
@@ -0,0 +1,121 @@
+{ lib, mkDerivation, fetchFromGitHub, pkgconfig, symlinkJoin, qmake, diffPlugins
+, qtbase, qtmultimedia, taglib, libmediainfo, libzen, libbass }:
+
+let
+ version = "2019-04-23";
+ rev = "ef4524e2239ddbb60f26e05bfba1f4f28cb7b54f";
+ sha256 = "0dl2qp686vbs160b3i9qypb7sv37phy2wn21kgzljbk3wnci3yv4";
+ buildInputs = [ qtbase qtmultimedia taglib libmediainfo libzen libbass ];
+
+ plugins = [
+ "albumartex"
+ "amazon"
+ "audiotag"
+ "cleanup"
+ "freecovers"
+ "lyric"
+ "preparatory"
+ "rename"
+ ];
+
+ patchedSrc =
+ let src = fetchFromGitHub {
+ owner = "UltraStar-Deluxe";
+ repo = "UltraStar-Manager";
+ inherit rev sha256;
+ };
+ in mkDerivation {
+ name = "${src.name}-patched";
+ inherit src;
+ phases = [ "unpackPhase" "patchPhase" ];
+
+ patchPhase = with lib; ''
+ # we don’t want prebuild binaries checked into version control!
+ rm -rf lib include
+
+ # fix up main project file
+ sed -e 's|-L.*unix.*lbass.*$|-lbass|' \
+ -e "/QMAKE_POST_LINK/d" \
+ -e "s|../include/bass|${getLib libbass}/include|g" \
+ -e "s|../include/taglib|${getLib taglib}/include|g" \
+ -e "s|../include/mediainfo|${getLib libmediainfo}/include|g" \
+ -i src/UltraStar-Manager.pro
+
+ # if more plugins start depending on ../../../include,
+ # it should be abstracted out for all .pro files
+ sed -e "s|../../../include/taglib|${getLib taglib}/include/taglib|g" \
+ -i src/plugins/audiotag/audiotag.pro
+
+ mkdir $out
+ mv * $out
+ '';
+ };
+
+ patchApplicationPath = file: path: ''
+ sed -e "s|QCore.*applicationDirPath()|QString(\"${path}\")|" -i "${file}"
+ '';
+
+ buildPlugin = name: mkDerivation {
+ name = "ultrastar-manager-${name}-plugin-${version}";
+ src = patchedSrc;
+
+ buildInputs = [ qmake ] ++ buildInputs;
+
+ postPatch = ''
+ sed -e "s|DESTDIR = .*$|DESTDIR = $out|" \
+ -i src/plugins/${name}/${name}.pro
+
+ # plugins use the application’s binary folder (wtf)
+ for f in $(grep -lr "QCoreApplication::applicationDirPath" src/plugins); do
+ ${patchApplicationPath "$f" "\$out"}
+ done
+
+ '';
+ preConfigure = ''
+ cd src/plugins/${name}
+ '';
+ };
+
+ builtPlugins =
+ symlinkJoin {
+ name = "ultrastar-manager-plugins-${version}";
+ paths = map buildPlugin plugins;
+ };
+
+in mkDerivation {
+ pname = "ultrastar-manager";
+ inherit version;
+ src = patchedSrc;
+
+ postPatch = ''
+ sed -e "s|DESTDIR =.*$|DESTDIR = $out/bin|" \
+ -i src/UltraStar-Manager.pro
+ # patch plugin manager to point to the collected plugin folder
+ ${patchApplicationPath "src/plugins/QUPluginManager.cpp" builtPlugins}
+ '';
+
+ buildPhase = ''
+ find -path './src/plugins/*' -prune -type d -print0 \
+ | xargs -0 -i'{}' basename '{}' \
+ | sed -e '/shared/d' \
+ > found_plugins
+ ${diffPlugins plugins "found_plugins"}
+
+ cd src && qmake && make
+ '';
+
+ # is not installPhase so that qt post hooks can run
+ preInstall = ''
+ make install
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ inherit buildInputs;
+
+ meta = with lib; {
+ description = "Ultrastar karaoke song manager";
+ homepage = "https://github.com/UltraStar-Deluxe/UltraStar-Manager";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ Profpatsch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/umlet/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/umlet/default.nix
new file mode 100644
index 000000000000..b0edf3e7de0a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/umlet/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, jre, unzip, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ major = "14";
+ minor = "3";
+ version = "${major}.${minor}.0";
+ pname = "umlet";
+
+ src = fetchurl {
+ url = "http://www.umlet.com/umlet_${major}_${minor}/umlet-standalone-${version}.zip";
+ sha256 = "0jfyxjxsjx29xhs3fl0f574nyncmk9j5jp8zlgd401mcaznn9c7l";
+ };
+
+ buildInputs = [ unzip ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/lib"
+
+ cp -R * "$out/lib"
+
+ cat > "$out/bin/umlet" << EOF
+ #!${runtimeShell}
+
+ programDir="$out/lib"
+ cd "\$programDir"
+ if [ \$# -eq 1 ]
+ then "${jre}/bin/java" -jar "\$programDir/umlet.jar" -filename="\$1"
+ else "${jre}/bin/java" -jar "\$programDir/umlet.jar" "\$@"
+ fi
+
+ EOF
+ chmod a+x "$out/bin/umlet"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free, open-source UML tool with a simple user interface";
+ longDescription = ''
+ UMLet is a free, open-source UML tool with a simple user interface:
+ draw UML diagrams fast, produce sequence and activity diagrams from
+ plain text, export diagrams to eps, pdf, jpg, svg, and clipboard,
+ share diagrams using Eclipse, and create new, custom UML elements.
+ UMLet runs stand-alone or as Eclipse plug-in on Windows, macOS and
+ Linux.
+ '';
+ homepage = "http://www.umlet.com";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ oxzi ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter-xfixes/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter-xfixes/default.nix
new file mode 100644
index 000000000000..7d2e5e0c367d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter-xfixes/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub,
+ xlibsWrapper, libev, libXi, libXfixes,
+ pkgconfig, asciidoc, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+ pname = "unclutter-xfixes";
+ version = "1.5";
+
+ src = fetchFromGitHub {
+ owner = "Airblader";
+ repo = "unclutter-xfixes";
+ rev = "v${version}";
+ sha256 = "148m4wx8v57s3l2wb69y9imb00y8ca2li27hsxibwnl1wrkb7z4b";
+ };
+
+ nativeBuildInputs = [ pkgconfig asciidoc libxslt docbook_xsl ];
+ buildInputs = [ xlibsWrapper libev libXi libXfixes ];
+
+ makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Rewrite of unclutter using the X11 Xfixes extension";
+ platforms = platforms.unix;
+ license = stdenv.lib.licenses.mit;
+ inherit version;
+ maintainers = [ maintainers.globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter/default.nix
new file mode 100644
index 000000000000..ef8e865e91f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/unclutter/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, xlibsWrapper}:
+
+stdenv.mkDerivation {
+ name = "unclutter-8";
+ src = fetchurl {
+ url = "https://www.ibiblio.org/pub/X11/contrib/utilities/unclutter-8.tar.gz";
+ sha256 = "33a78949a7dedf2e8669ae7b5b2c72067896497820292c96afaa60bb71d1f2a6";
+ };
+
+ buildInputs = [xlibsWrapper];
+
+ buildFlags = [ "CC=cc" ];
+
+ installPhase = ''
+ mkdir -pv "$out/bin"
+ mkdir -pv "$out/share/man/man1"
+ make DESTDIR="$out" BINDIR="$out/bin" PREFIX="" install
+ make DESTDIR="$out" MANPATH="$out/share/man" PREFIX="" install.man
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Hides mouse pointer while not in use";
+ longDescription = ''
+ Unclutter hides your X mouse cursor when you do not need it, to prevent
+ it from getting in the way. You have only to move the mouse to restore
+ the mouse cursor. Unclutter is very useful in tiling wm's where you do
+ not need the mouse often.
+
+ Just run it from your .bash_profile like that:
+
+ unclutter -idle 1 &
+ '';
+ maintainers = with maintainers; [ domenkozar ];
+ platforms = platforms.unix;
+ license = stdenv.lib.licenses.publicDomain;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/unicode/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/unicode/default.nix
new file mode 100644
index 000000000000..b83dd17d0bc1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/unicode/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, fetchurl, python3Packages, installShellFiles }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "unicode";
+ version = "2.7";
+
+ src = fetchFromGitHub {
+ owner = "garabik";
+ repo = "unicode";
+ rev = "v${version}";
+ sha256 = "15d9yvarxsiy0whx1mxzsjnnkrjdm3ga4qv2yy398mk0jh763q9v";
+ };
+
+ ucdtxt = fetchurl {
+ url = "https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt";
+ sha256 = "1fz8fcd23lxyl97ay8h42zvkcgcg8l81b2dm05nklkddr2zzpgxx";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postFixup = ''
+ substituteInPlace "$out/bin/.unicode-wrapped" \
+ --replace "/usr/share/unicode/UnicodeData.txt" "$ucdtxt"
+ '';
+
+ postInstall = ''
+ installManPage paracode.1 unicode.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Display unicode character properties";
+ homepage = "https://github.com/garabik/unicode";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.woffs ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/units/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/units/default.nix
new file mode 100644
index 000000000000..d62f10daeea6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/units/default.nix
@@ -0,0 +1,47 @@
+{
+ stdenv,
+ lib,
+ fetchurl,
+ readline,
+ enableCurrenciesUpdater ? true,
+ pythonPackages ? null
+}:
+
+assert enableCurrenciesUpdater -> pythonPackages != null;
+
+stdenv.mkDerivation rec {
+ pname = "units";
+ version = "2.19";
+
+ src = fetchurl {
+ url = "mirror://gnu/units/${pname}-${version}.tar.gz";
+ sha256 = "0mk562g7dnidjgfgvkxxpvlba66fh1ykmfd9ylzvcln1vxmi6qj2";
+ };
+
+ pythonEnv = pythonPackages.python.withPackages(ps: [
+ ps.requests
+ ]);
+
+ buildInputs = [ readline ]
+ ++ lib.optionals enableCurrenciesUpdater [
+ pythonEnv
+ ]
+ ;
+ prePatch = ''
+ substituteInPlace units_cur \
+ --replace "#!/usr/bin/env python" ${pythonEnv}/bin/python
+ '';
+ postInstall = ''
+ cp units_cur ${placeholder "out"}/bin/
+ '';
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Unit conversion tool";
+ homepage = "https://www.gnu.org/software/units/";
+ license = [ licenses.gpl3Plus ];
+ platforms = platforms.all;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/up/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/up/default.nix
new file mode 100644
index 000000000000..b3d275d3081d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/up/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "up";
+ version = "0.3.2";
+
+ patches = [ ./gomod.patch ];
+
+ src = fetchFromGitHub {
+ owner = "akavel";
+ repo = "up";
+ rev = "v${version}";
+ sha256 = "1psixyymk98z52yy92lwb75yfins45dw6rif9cxwd7yiascwg2if";
+ };
+
+ vendorSha256 = "1h3w4i7dyh6yagqmdclvflfq6fx0z880jdnpf28assv7fxd9rjsx";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Ultimate Plumber is a tool for writing Linux pipes with instant live preview";
+ homepage = "https://github.com/akavel/up";
+ maintainers = with maintainers; [ ma27 ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/up/gomod.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/up/gomod.patch
new file mode 100644
index 000000000000..f894f14d21f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/up/gomod.patch
@@ -0,0 +1,23 @@
+diff --git a/go.mod b/go.mod
+index ecbfe90..56a1409 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,11 +1,14 @@
+ module github.com/akavel/up
+
++go 1.14
++
+ require (
+- github.com/gdamore/encoding v0.0.0-20151215212835-b23993cbb635
++ github.com/gdamore/encoding v0.0.0-20151215212835-b23993cbb635 // indirect
+ github.com/gdamore/tcell v0.0.0-20180924055237-493f3b46b3c2
+- github.com/lucasb-eyer/go-colorful v0.0.0-20170903184257-231272389856
++ github.com/lucasb-eyer/go-colorful v0.0.0-20170903184257-231272389856 // indirect
+ github.com/mattn/go-isatty v0.0.3
+- github.com/mattn/go-runewidth v0.0.2
++ github.com/mattn/go-runewidth v0.0.2 // indirect
+ github.com/spf13/pflag v1.0.3
+- golang.org/x/text v0.0.0-20171214130843-f21a4dfb5e38
++ golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3 // indirect
++ golang.org/x/text v0.0.0-20171214130843-f21a4dfb5e38 // indirect
+ )
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
new file mode 100644
index 000000000000..2258f31fd311
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+# To use upower-notify, the maintainer suggests adding something like this to your configuration.nix:
+#
+# service.xserver.displayManager.sessionCommands = ''
+# ${pkgs.dunst}/bin/dunst -shrink -geometry 0x0-50-50 -key space & # ...if don't already have a dbus notification display app
+# (sleep 3; exec ${pkgs.yeshup}/bin/yeshup ${pkgs.go-upower-notify}/bin/upower-notify) &
+# '';
+buildGoPackage rec {
+ pname = "upower-notify";
+ version = "20160310-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "14c581e683a7e90ec9fa6d409413c16599a5323c";
+
+ goPackagePath = "github.com/omeid/upower-notify";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/omeid/upower-notify";
+ sha256 = "16zlvn53p9m10ph8n9gps51fkkvl6sf4afdzni6azk05j0ng49jw";
+ };
+
+ goDeps = ./deps.nix;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/deps.nix
new file mode 100644
index 000000000000..8a729857b819
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/upower-notify/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/godbus/dbus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/godbus/dbus";
+ rev = "32c6cc29c14570de4cf6d7e7737d68fb2d01ad15";
+ sha256 = "0v401f761l88yapiaw23pxvxviqrwl2r2vfd6lq02044i7x4i5r3";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/urjtag/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/urjtag/default.nix
new file mode 100644
index 000000000000..2056fb9d0a5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/urjtag/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, autoconf, automake, pkgconfig, gettext, libtool, bison
+, flex, which, subversion, fetchsvn, makeWrapper, libftdi, libusb-compat-0_1, readline
+, python3
+, svfSupport ? true
+, bsdlSupport ? true
+, staplSupport ? true
+, jedecSupport ? true
+}:
+
+stdenv.mkDerivation {
+ version = "0.10";
+ pname = "urjtag";
+
+ src = fetchsvn {
+ url = "svn://svn.code.sf.net/p/urjtag/svn/trunk/urjtag";
+ rev = "2051";
+ sha256 = "0pyl0y27136nr8mmjdml7zjnfnpbjmgqzkjk99j3hvj38k10wq7f";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gettext autoconf automake libtool bison flex which
+ subversion makeWrapper readline libftdi libusb-compat-0_1 python3 ];
+
+ configureFlags = [
+ (stdenv.lib.enableFeature svfSupport "svf")
+ (stdenv.lib.enableFeature bsdlSupport "bsdl")
+ (stdenv.lib.enableFeature staplSupport "stapl")
+ (stdenv.lib.enableFeature jedecSupport "jedec-exp")
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ meta = {
+ description = "Enhanced, modern tool for communicating over JTAG with flash chips, CPUs,and many more";
+ homepage = "http://urjtag.org/";
+ license = with stdenv.lib.licenses; [ gpl2Plus lgpl21Plus ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # arbitrary choice
+ maintainers = with stdenv.lib.maintainers; [ lowfatcomputing ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix
new file mode 100644
index 000000000000..1c1da7597e7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libusb1, libimobiledevice }:
+
+stdenv.mkDerivation rec {
+ pname = "usbmuxd";
+ version = "2019-11-11";
+
+ src = fetchFromGitHub {
+ owner = "libimobiledevice";
+ repo = pname;
+ rev = "9af2b12552693a47601347e1eafc1e94132d727e";
+ sha256 = "0w8mf2wfpqijg882vhb8xarlp6zja23xf0b59z5zi774pnpjbqvj";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ propagatedBuildInputs = [ libimobiledevice libusb1 ];
+
+ preConfigure = ''
+ configureFlags="$configureFlags --with-udevrulesdir=$out/lib/udev/rules.d"
+ configureFlags="$configureFlags --with-systemdsystemunitdir=$out/lib/systemd/system"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/libimobiledevice/usbmuxd";
+ description = "A socket daemon to multiplex connections from and to iOS devices";
+ longDescription = ''
+ usbmuxd stands for "USB multiplexing daemon". This daemon is in charge of
+ multiplexing connections over USB to an iOS device. To users, it means
+ you can sync your music, contacts, photos, etc. over USB. To developers, it
+ means you can connect to any listening localhost socket on the device. usbmuxd
+ is not used for tethering data transfer which uses a dedicated USB interface as
+ a virtual network device. Multiple connections to different TCP ports can happen
+ in parallel. The higher-level layers are handled by libimobiledevice.
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ infinisil ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/uucp/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/uucp/default.nix
new file mode 100644
index 000000000000..1516e9dba33a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/uucp/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "uucp-1.07";
+
+ src = fetchurl {
+ url = "mirror://gnu/uucp/${name}.tar.gz";
+ sha256 = "0b5nhl9vvif1w3wdipjsk8ckw49jj1w85xw1mmqi3zbcpazia306";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ prePatch = ''
+ # do not set sticky bit in nix store
+ substituteInPlace Makefile.in \
+ --replace 4555 0555
+ sed -i '/chown $(OWNER)/d' Makefile.in
+ '';
+
+ meta = {
+ description = "Unix-unix cp over serial line, also includes cu program";
+
+ longDescription =
+ '' Taylor UUCP is a free implementation of UUCP and is the standard
+ UUCP used on the GNU system. If you don't know what UUCP is chances
+ are, nowadays, that you won't need it. If you do need it, you've
+ just found one of the finest UUCP implementations available.
+ '';
+
+ homepage = "https://www.gnu.org/software/uucp/uucp.html";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/default.nix
new file mode 100644
index 000000000000..a8495d7767c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, tcl, tk }:
+
+stdenv.mkDerivation rec {
+ name = "uudeview-0.5.20";
+ src = fetchurl {
+ url = "http://www.fpx.de/fp/Software/UUDeview/download/${name}.tar.gz";
+ sha256 = "0dg4v888fxhmf51vxq1z1gd57fslsidn15jf42pj4817vw6m36p4";
+ };
+
+ buildInputs = [ tcl tk ];
+ hardeningDisable = [ "format" ];
+ configureFlags = [ "--enable-tk=${tk.dev}" "--enable-tcl=${tcl}" ];
+
+ # https://wiki.tcl.tk/3577
+ patches = [ ./matherr.patch ];
+ postPatch = ''
+ substituteInPlace tcl/xdeview --replace "exec uuwish" "exec $out/bin/uuwish"
+ '';
+
+ meta = {
+ description = "The Nice and Friendly Decoder";
+ homepage = "http://www.fpx.de/fp/Software/UUDeview/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ woffs ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/matherr.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/matherr.patch
new file mode 100644
index 000000000000..a93db7d7858d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/uudeview/matherr.patch
@@ -0,0 +1,19 @@
+diff --git a/tcl/uutcl.c b/tcl/uutcl.c
+index f101f2ce52b..71c24688dc4 100644
+--- a/tcl/uutcl.c
++++ b/tcl/uutcl.c
+@@ -48,14 +48,6 @@
+ #include <tcl.h>
+ #endif
+
+-/*
+- * The following variable is a special hack that is needed in order for
+- * Sun shared libraries to be used for Tcl.
+- */
+-
+-extern int matherr();
+-int *tclDummyMathPtr = (int *) matherr;
+-
+ #include <uudeview.h>
+ #include <uuint.h>
+ #include <fptools.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
new file mode 100644
index 000000000000..f18deb0c83de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, rustPlatform, cargo, cmake, sphinx, lib, prefix ? "uutils-"
+, Security
+}:
+
+rustPlatform.buildRustPackage {
+ name = "uutils-coreutils-2019-05-03";
+ src = fetchFromGitHub {
+ owner = "uutils";
+ repo = "coreutils";
+ rev = "036dd812958ace22d973acf7b370f58072049dac";
+ sha256 = "0d9w3iiphhsk7l5l34682wayp90rgq5a3d94l3qdvhcqkfmpg727";
+ };
+
+ # too many impure/platform-dependent tests
+ doCheck = false;
+
+ cargoSha256 = "186hwzdpy7j0gw7491qx02vy4di5md47hipf1xxi1qccvmcfghwh";
+
+ makeFlags =
+ [ "CARGO=${cargo}/bin/cargo" "PREFIX=$(out)" "PROFILE=release" "INSTALLDIR_MAN=$(out)/share/man/man1" ]
+ ++ lib.optional (prefix != null) [ "PROG_PREFIX=${prefix}" ];
+
+ nativeBuildInputs = [ cmake cargo sphinx ];
+ buildInputs = lib.optional stdenv.isDarwin Security;
+
+ # empty {build,install}Phase to use defaults of `stdenv.mkDerivation` rather than rust defaults
+ buildPhase = "";
+ installPhase = "";
+
+ meta = with lib; {
+ description = "Cross-platform Rust rewrite of the GNU coreutils";
+ longDescription = ''
+ uutils is an attempt at writing universal (as in cross-platform)
+ CLI utils in Rust. This repo is to aggregate the GNU coreutils rewrites.
+ '';
+ homepage = "https://github.com/uutils/coreutils";
+ maintainers = with maintainers; [ ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vcs_query/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vcs_query/default.nix
new file mode 100644
index 000000000000..da42b35391b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vcs_query/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, python3, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "vcs_query";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "mageta";
+ repo = "vcs_query";
+ rev = "v${version}";
+ sha256 = "05va0na9yxkpqhm9v0x3k58148qcf2bbcv5bnmj7vn9r7fwyjrlx";
+ };
+
+ nativeBuildInputs = [ python3 python3.pkgs.wrapPython ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -Dm0755 vcs_query.py $out/bin/vcs_query
+ patchShebangs $out/bin
+ buildPythonPath ${python3.pkgs.vobject};
+ patchPythonScript $out/bin/vcs_query
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mageta/vcs_query";
+ description = "eMail query-command to use vCards in mutt and Vim";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vector/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vector/default.nix
new file mode 100644
index 000000000000..37595702b686
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vector/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, fetchFromGitHub, rustPlatform
+, openssl, pkg-config, protobuf
+, Security, libiconv, rdkafka
+, tzdata
+
+, features ?
+ (if stdenv.isAarch64
+ then [ "jemallocator" "rdkafka" "rdkafka/dynamic_linking" ]
+ else [ "leveldb" "leveldb/leveldb-sys-2" "jemallocator" "rdkafka" "rdkafka/dynamic_linking" ])
+, coreutils
+, CoreServices
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "vector";
+ version = "0.10.0";
+
+ src = fetchFromGitHub {
+ owner = "timberio";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0q6x3fvwwh18iyznqlr09n3zppzgw9jaz973s8haz54hnxj16wx0";
+ };
+
+ cargoSha256 = "Y/vDYXWQ65zZ86vTwP4aCZYCMZuqbz6tpfv4uRkFAzc=";
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl protobuf rdkafka ]
+ ++ stdenv.lib.optional stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
+
+ # needed for internal protobuf c wrapper library
+ PROTOC="${protobuf}/bin/protoc";
+ PROTOC_INCLUDE="${protobuf}/include";
+
+ cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
+ checkPhase = "TZDIR=${tzdata}/share/zoneinfo cargo test --no-default-features --features ${lib.concatStringsSep "," features} -- --test-threads 1";
+
+ # recent overhauls of DNS support in 0.9 mean that we try to resolve
+ # vector.dev during the checkPhase, which obviously isn't going to work.
+ # these tests in the DNS module are trivial though, so stubbing them out is
+ # fine IMO.
+ patchPhase = ''
+ substituteInPlace ./src/dns.rs \
+ --replace "#[test]" ""
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A high-performance logs, metrics, and events router";
+ homepage = "https://github.com/timberio/vector";
+ license = with licenses; [ asl20 ];
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/venus/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/venus/default.nix
new file mode 100644
index 000000000000..944b6e4ef644
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/venus/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, python, pythonPackages, libxslt, libxml2, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "venus";
+ version = "unstable-2011-02-18";
+
+ src = fetchFromGitHub {
+ owner = "rubys";
+ repo = "venus";
+ rev = "9de21094a8cf565bdfcf75688e121a5ad1f5397b";
+ sha256 = "10yyx4jaxxbwhica12aiw119aywghcr7b24gs9lrmafpa6xd3an2";
+ };
+
+ preConfigure = ''
+ substituteInPlace tests/test_spider.py \
+ --replace "urllib.urlopen('http://127.0.0.1:%d/' % _PORT).read()" "" \
+ --replace "[200,200,200,200,404]" "[200,200,200,404]"
+ substituteInPlace planet.py \
+ --replace "#!/usr/bin/env python" "#!${python}/bin/python"
+ substituteInPlace tests/test_apply.py \
+ --replace "'xsltproc" "'${libxslt.bin}/bin/xsltproc"
+ substituteInPlace planet/shell/xslt.py \
+ --replace "'xsltproc" "'${libxslt.bin}/bin/xsltproc"
+ '';
+
+ doCheck = true;
+ checkPhase = "python runtests.py";
+
+ buildInputs = [ python libxslt
+ libxml2 pythonPackages.genshi pythonPackages.lxml makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -R ./* $out/
+ ln -s $out/planet.py $out/bin/venus-planet
+ wrapProgram $out/planet.py \
+ --prefix PYTHONPATH : $PYTHONPATH:${pythonPackages.lxml}/lib/${python.libPrefix}/site-packages:${pythonPackages.genshi}/lib/${python.libPrefix}/site-packages
+ python runtests.py
+ '';
+
+ meta = {
+ description = "News feed reader";
+ longDescription = ''
+ Planet Venus is an awesome ‘river of news’ feed reader. It downloads news
+ feeds published by web sites and aggregates their content together into a
+ single combined feed, latest news first.
+ '';
+ homepage = "http://intertwingly.net/code/venus/docs/index.html";
+ license = stdenv.lib.licenses.psfl;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vimer/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimer/default.nix
new file mode 100644
index 000000000000..5bef80adcaf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimer/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ version = "0.2.0";
+ pname = "vimer";
+
+ src = fetchFromGitHub {
+ owner = "susam";
+ repo = "vimer";
+ rev = version;
+ sha256 = "01qhr3i7wasbaxvms39c81infpry2vk0nzh7r5m5b9p713p0phsi";
+ };
+
+ installPhase = ''
+ mkdir $out/bin/ -p
+ cp vimer $out/bin/
+ chmod +x $out/bin/vimer
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/susam/vimer";
+ description = ''
+ A convenience wrapper for gvim/mvim --remote(-tab)-silent to open files
+ in an existing instance of GVim or MacVim.
+ '';
+ license = licenses.mit;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = platforms.linux;
+ };
+
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/build.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/build.nix
new file mode 100644
index 000000000000..60389f6862b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/build.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, coreutils
+, sharutils
+, version
+, sha256
+}:
+
+stdenv.mkDerivation {
+ inherit version;
+ pname = "vimpager";
+
+ src = fetchFromGitHub {
+ inherit sha256;
+
+ owner = "rkitover";
+ repo = "vimpager";
+ rev = version;
+ };
+
+ buildInputs = [ coreutils sharutils ]; # for uuencode
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ buildPhase = ''
+ sed -i 's,/bin/cat,${coreutils}/bin/cat,g' vimpager
+ make
+ '';
+
+
+ meta = with stdenv.lib; {
+ description = "Use Vim as PAGER";
+ homepage = "https://www.vim.org/scripts/script.php?script_id=1723";
+ license = with licenses; [ bsd2 mit vim ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/default.nix
new file mode 100644
index 000000000000..1b1512db3cfe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/default.nix
@@ -0,0 +1,6 @@
+{ callPackage }:
+
+callPackage ./build.nix {
+ version = "2.06";
+ sha256 = "05yr7j72bw64nx7a0y6w9fjmz54zd4g46fn1qjfbbqvbc19fjpl8";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/latest.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/latest.nix
new file mode 100644
index 000000000000..c98b9a000147
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimpager/latest.nix
@@ -0,0 +1,7 @@
+{ callPackage }:
+
+callPackage ./build.nix {
+ version = "a4da4dfac44d1bbc6986c5c76fea45a60ebdd8e5";
+ sha256 = "0gcjpw2q263hh8w2sjvq3f3k2d28qpkkv0jnl8hw1l7v604i8zxg";
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix
new file mode 100644
index 000000000000..58fc991beb3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+, markdown
+, pygments
+}:
+
+buildPythonApplication rec {
+ version = "0.3.1";
+ pname = "vimwiki-markdown";
+
+ src = fetchPypi {
+ inherit version pname;
+ sha256 = "50032c62947422c8afbc1733e50526818df7d885d1cc41a27ff65fc26cd3c1c5";
+ };
+
+ propagatedBuildInputs= [
+ markdown
+ pygments
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Vimwiki markdown plugin";
+ homepage = "https://github.com/WnP/vimwiki_markdown";
+ license = licenses.mit;
+ maintainers = with maintainers; [ seqizz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vivid/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vivid/default.nix
new file mode 100644
index 000000000000..707462879863
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vivid/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "vivid";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0m928hy2q8byfpm55nziiz86gcnhdnw3zpj78d8wx0pp318zjbla";
+ };
+
+ cargoSha256 = "10xddr5cccc5cmhn4kwi27h3krmgapd7bqcp4rhjlbhdhsw7qxkx";
+
+ # Remove after https://github.com/NixOS/nixpkgs/pull/97000 lands into master
+ preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+ unset SDKROOT
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A generator for LS_COLORS with support for multiple color themes";
+ homepage = "https://github.com/sharkdp/vivid";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = [ maintainers.dtzWill ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vmtouch/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vmtouch/default.nix
new file mode 100644
index 000000000000..0f46d8141f1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vmtouch/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchFromGitHub, perl}:
+
+stdenv.mkDerivation rec {
+ pname = "vmtouch";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ owner = "hoytech";
+ repo = "vmtouch";
+ rev = "v${version}";
+ sha256 = "08da6apzfkfjwasn4dxrlfxqfx7arl28apdzac5nvm0fhvws0dxk";
+ };
+
+ buildInputs = [perl];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "Portable file system cache diagnostics and control";
+ longDescription = "vmtouch is a tool for learning about and controlling the file system cache of unix and unix-like systems.";
+ homepage = "https://hoytech.com/vmtouch/";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [ stdenv.lib.maintainers.garrison ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/void/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/void/default.nix
new file mode 100644
index 000000000000..21df532f9489
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/void/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "void";
+ version = "1.1.5";
+
+ src = fetchFromGitHub {
+ owner = "spacejam";
+ repo = "void";
+ rev = version;
+ sha256 = "08vazw4rszqscjz988k89z28skyj3grm81bm5iwknxxagmrb20fz";
+ };
+
+ # The tests are long-running and not that useful
+ doCheck = false;
+
+ cargoSha256 = "0fnkcjxcsiw9j0ibh4z7zy0m6r5d84q5hvr2darwpckbn9ryrh3k";
+
+ meta = with stdenv.lib; {
+ description = "Terminal-based personal organizer";
+ homepage = "https://github.com/spacejam/void";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
new file mode 100644
index 000000000000..fdb283d4dce9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, unzip, libogg, libvorbis }:
+
+stdenv.mkDerivation rec {
+ name = "vorbisgain-0.37";
+
+ src = fetchurl {
+ url = "https://sjeng.org/ftp/vorbis/${name}.tar.gz";
+ sha256 = "1v1h6mhnckmvvn7345hzi9abn5z282g4lyyl4nnbqwnrr98v0vfx";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ buildInputs = [ unzip libogg libvorbis ];
+
+ patchPhase = ''
+ chmod -v +x configure
+ configureFlags="--mandir=$out/share/man"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sjeng.org/vorbisgain.html";
+ description = "A utility that corrects the volume of an Ogg Vorbis file to a predefined standardized loudness";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/vttest/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/vttest/default.nix
new file mode 100644
index 000000000000..6be05cf53a21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/vttest/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "vttest";
+ version = "20200610";
+
+ src = fetchurl {
+ urls = [
+ "https://invisible-mirror.net/archives/${pname}/${pname}-${version}.tgz"
+ "ftp://ftp.invisible-island.net/${pname}/${pname}-${version}.tgz"
+ ];
+ sha256 = "0181lk999gfqk8pkd4yx0qrz9r3k9a0z0i50wcayp7z1n1ivqllb";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Tests the compatibility so-called 'VT100-compatible' terminals";
+ homepage = "https://invisible-island.net/vttest/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix
new file mode 100644
index 000000000000..aa631d441148
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix
@@ -0,0 +1,30 @@
+{ lib, mkDerivation, fetchurl, extra-cmake-modules, qtx11extras,
+ plasma-workspace, libwacom, xf86_input_wacom
+}:
+
+mkDerivation rec {
+ pname = "wacomtablet";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+ sha256 = "197pwpl87gqlnza36bp68jvw8ww25znk08acmi8bpz7n84xfc368";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ qtx11extras plasma-workspace
+ libwacom xf86_input_wacom
+ ];
+
+ meta = {
+ description = "KDE Configuration Module for Wacom Graphics Tablets";
+ longDescription = ''
+ This module implements a GUI for the Wacom Linux Drivers and extends it
+ with profile support to handle different button / pen layouts per profile.
+ '';
+ homepage = "https://cgit.kde.org/wacomtablet.git/about/";
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.Thra11 ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wagyu/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wagyu/default.nix
new file mode 100644
index 000000000000..8ed952a82ceb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wagyu/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "wagyu";
+ version = "0.6.1";
+
+ src = fetchFromGitHub {
+ owner = "ArgusHQ";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1646j0lgg3hhznifvbkvr672p3yqlcavswijawaxq7n33ll8vmcn";
+ };
+
+ cargoSha256 = "16d1b3pamkg29nq80n6cbzc4zl9z3cgfvdxjkr2z4xrnzmkn1ysi";
+
+ meta = with lib; {
+ description = "Rust library for generating cryptocurrency wallets";
+ homepage = "https://github.com/ArgusHQ/wagyu";
+ license = with licenses; [ mit asl20 ];
+ maintainers = [ maintainers.offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wakatime/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wakatime/default.nix
new file mode 100644
index 000000000000..4e0e9193fe7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wakatime/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, python3Packages, fetchFromGitHub, glibcLocales }:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "wakatime";
+ version = "13.0.7";
+
+ src = fetchFromGitHub {
+ owner = "wakatime";
+ repo = "wakatime";
+ rev = version;
+ sha256 = "1rnapzaabg962wxrmfcq9lxz0yyqd3mxqbx3dq1ih4w33lf4fi8d";
+ };
+
+ # needs more dependencies from https://github.com/wakatime/wakatime/blob/191b302bfb5f272ae928c6d3867d06f3dfcba4a8/dev-requirements.txt
+ # especially nose-capturestderr, which we do not package yet.
+ doCheck = false;
+ checkInputs = [ mock testfixtures pytest glibcLocales ];
+
+ checkPhase = ''
+ export HOME=$(mktemp -d) LC_ALL=en_US.utf-8
+ pytest tests
+ '';
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "WakaTime command line interface";
+ longDescription = ''
+ Command line interface to WakaTime used by all WakaTime text editor
+ plugins. You shouldn't need to directly use this package unless you
+ are building your own plugin or your text editor's plugin asks you
+ to install the wakatime CLI interface manually.
+ '';
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/watchexec/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/watchexec/default.nix
new file mode 100644
index 000000000000..728cdd0c1736
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/watchexec/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, rustPlatform, fetchFromGitHub, CoreServices, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "watchexec";
+ version = "1.14.1";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "0m4hipjgg64572lzqy9hz4iq9c4awc93c9rmnpap5iyi855x7idj";
+ };
+
+ cargoSha256 = "0035pqr61mdx699hd4f8hnxknvsdg67l6ys7gxym3fzd9dcmqqff";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
+
+ postInstall = ''
+ installManPage doc/watchexec.1
+ installShellCompletion --zsh --name _watchexec completions/zsh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Executes commands in response to file modifications";
+ homepage = "https://github.com/watchexec/watchexec";
+ license = with licenses; [ asl20 ];
+ maintainers = [ maintainers.michalrus ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/websocat/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/websocat/default.nix
new file mode 100644
index 000000000000..c936b1599638
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/websocat/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, openssl, rustPlatform, Security, makeWrapper, bash }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "websocat";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "vi";
+ repo = "websocat";
+ rev = "v${version}";
+ sha256 = "0iilq96bxcb2fsljvlgy47pg514w0jf72ckz39yy3k0gwc1yfcja";
+ };
+
+ cargoBuildFlags = [ "--features=ssl" ];
+ cargoSha256 = "1hsms8rlnds8npr8m0dm21h04ci5ljda09pqb598v7ny3j2dldiq";
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+ buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+ # The wrapping is required so that the "sh-c" option of websocat works even
+ # if sh is not in the PATH (as can happen, for instance, when websocat is
+ # started as a systemd service).
+ postInstall = ''
+ wrapProgram $out/bin/websocat \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ bash ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line client for WebSockets (like netcat/socat)";
+ homepage = "https://github.com/vi/websocat";
+ license = licenses.mit;
+ maintainers = with maintainers; [ thoughtpolice filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wev/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wev/default.nix
new file mode 100644
index 000000000000..0f033d1c7e22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wev/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl
+, pkg-config, scdoc, wayland
+, wayland-protocols, libxkbcommon
+}:
+
+stdenv.mkDerivation rec {
+ pname = "wev";
+ version = "1.0.0";
+
+ src = fetchurl {
+ url = "https://git.sr.ht/~sircmpwn/wev/archive/${version}.tar.gz";
+ sha256 = "0vlxdkb59v6nb10j28gh1a56sx8jk7ak7liwzv911kpmygnls03g";
+ };
+
+ nativeBuildInputs = [ pkg-config scdoc wayland ];
+ buildInputs = [ wayland-protocols libxkbcommon ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Wayland event viewer";
+ longDescription = ''
+ This is a tool for debugging events on a Wayland window, analagous to the
+ X11 tool xev.
+ '';
+ homepage = "https://git.sr.ht/~sircmpwn/wev";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wimboot/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wimboot/default.nix
new file mode 100644
index 000000000000..a63fa4106345
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wimboot/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, fetchpatch, libbfd, zlib, libiberty }:
+
+stdenv.mkDerivation rec {
+ pname = "wimboot";
+ version = "2.6.0";
+
+ src = fetchFromGitHub {
+ owner = "ipxe";
+ repo = "wimboot";
+ rev = "v${version}";
+ sha256 = "134wqqr147az5vbj4szd0xffwa99b4rar7w33zm3119zsn7sd79k";
+ };
+
+ NIX_CFLAGS_COMPILE = "-Wno-address-of-packed-member"; # Fails on gcc9
+
+ patches = [
+ # Fix for newer binutils
+ (fetchpatch {
+ url =
+ "https://github.com/ipxe/wimboot/commit/91be50c17d4d9f463109d5baafd70f9fdadd86db.patch";
+ sha256 = "113448n49hmk8nz1dxbhxiciwl281zwalvb8z5p9xfnjvibj8274";
+ })
+ ];
+
+ # We cannot use sourceRoot because the patch wouldn't apply
+ postPatch = ''
+ cd src
+ '';
+
+ hardeningDisable = [ "pic" ];
+
+ buildInputs = [ libbfd zlib libiberty ];
+ makeFlags = [ "wimboot.x86_64.efi" ];
+
+ installPhase = ''
+ mkdir -p $out/share/wimboot/
+ cp wimboot.x86_64.efi $out/share/wimboot
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://ipxe.org/wimboot";
+ description = "Windows Imaging Format bootloader";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ das_j ajs124 ];
+ platforms = platforms.x86; # Fails on aarch64
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix
new file mode 100644
index 000000000000..66a613785575
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
+, wayland, wayland-protocols }:
+
+stdenv.mkDerivation rec {
+ pname = "wl-clipboard";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "bugaevc";
+ repo = "wl-clipboard";
+ rev = "v${version}";
+ sha256 = "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig wayland-protocols ];
+ buildInputs = [ wayland ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line copy/paste utilities for Wayland";
+ homepage = "https://github.com/bugaevc/wl-clipboard";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dywedir ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix
new file mode 100644
index 000000000000..7bdffb6f7221
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, meson, ninja, cmake, pkgconfig, wayland }:
+
+stdenv.mkDerivation rec {
+ pname = "wlr-randr";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "emersion";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc";
+ };
+
+ nativeBuildInputs = [ meson ninja cmake pkgconfig ];
+ buildInputs = [ wayland ];
+
+ meta = with stdenv.lib; {
+ license = licenses.mit;
+ description = "An xrandr clone for wlroots compositors";
+ homepage = "https://github.com/emersion/wlr-randr";
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wob/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wob/default.nix
new file mode 100644
index 000000000000..a619a43c9f14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wob/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkg-config, scdoc, wayland # wayland-scanner
+, wayland-protocols, libseccomp
+}:
+
+stdenv.mkDerivation rec {
+ pname = "wob";
+ version = "0.10";
+
+ src = fetchFromGitHub {
+ owner = "francma";
+ repo = pname;
+ rev = version;
+ sha256 = "0v7xm8zd9237v5j5h79pd0x6dkal5fgg1ly9knssjpv3hswwyv40";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config scdoc wayland ];
+ buildInputs = [ wayland-protocols ]
+ ++ stdenv.lib.optional stdenv.isLinux libseccomp;
+
+ mesonFlags = stdenv.lib.optional stdenv.isLinux "-Dseccomp=enabled";
+
+ meta = with stdenv.lib; {
+ description = "A lightweight overlay bar for Wayland";
+ longDescription = ''
+ A lightweight overlay volume/backlight/progress/anything bar for Wayland,
+ inspired by xob.
+ '';
+ inherit (src.meta) homepage;
+ changelog = "https://github.com/francma/wob/releases/tag/${version}";
+ license = licenses.isc;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/default.nix
new file mode 100644
index 000000000000..4c235b4866f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, makeWrapper
+, coreutils, dosfstools, findutils, gawk, gnugrep, grub2_light, ncurses, ntfs3g, parted, p7zip, utillinux, wget
+, wxGTK30 }:
+
+stdenv.mkDerivation rec {
+ version = "3.3.1";
+ pname = "woeusb";
+
+ src = fetchFromGitHub {
+ owner = "slacka";
+ repo = "WoeUSB";
+ rev = "v${version}";
+ sha256 = "1hbr88sr943s4yqdvbny543jvgvnsa622wq4cmwd23hjsfcrvyiv";
+ };
+
+ patches = [ ./remove-workaround.patch ];
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper ];
+ buildInputs = [ wxGTK30 ];
+
+ postPatch = ''
+ # Emulate version smudge filter (see .gitattributes, .gitconfig).
+ for file in configure.ac debian/changelog src/woeusb src/woeusb.1 src/woeusbgui.1; do
+ substituteInPlace "$file" \
+ --replace '@@WOEUSB_VERSION@@' '${version}'
+ done
+
+ substituteInPlace src/MainPanel.cpp \
+ --replace "'woeusb " "'$out/bin/woeusb "
+ '';
+
+ postInstall = ''
+ # don't write data into /
+ substituteInPlace "$out/bin/woeusb" \
+ --replace /media/ /run/woeusb/
+
+ # woeusbgui launches woeusb with pkexec, which sets
+ # PATH=/usr/sbin:/usr/bin:/sbin:/bin:/root/bin. Perhaps pkexec
+ # should be patched with a less useless default PATH, but for now
+ # we add everything we need manually.
+ wrapProgram "$out/bin/woeusb" \
+ --set PATH '${stdenv.lib.makeBinPath [ coreutils dosfstools findutils gawk gnugrep grub2_light ncurses ntfs3g parted utillinux wget p7zip ]}'
+ '';
+
+ doInstallCheck = true;
+
+ postInstallCheck = ''
+ # woeusb --version checks for missing runtime dependencies.
+ out_version="$("$out/bin/woeusb" --version)"
+ [ "$out_version" = '${version}' ]
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Create bootable USB disks from Windows ISO images";
+ homepage = "https://github.com/slacka/WoeUSB";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ bjornfor gnidorah ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch
new file mode 100644
index 000000000000..3550002dfedd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch
@@ -0,0 +1,15 @@
+https://github.com/slacka/WoeUSB/issues/267
+
+diff --git a/src/woeusb b/src/woeusb
+index 8cb292c..c017dbf 100755
+--- a/src/woeusb
++++ b/src/woeusb
+@@ -1661,6 +1661,8 @@ workaround_support_windows_7_uefi_boot(){
+ ## - System lagging while copying data · Issue #113 · slacka/WoeUSB <https://github.com/slacka/WoeUSB/issues/113>
+ ## - The pernicious USB-stick stall problem [LWN.net] <https://lwn.net/Articles/572911/>
+ workaround_linux_make_writeback_buffering_not_suck(){
++ return 0
++
+ util_check_function_parameters_quantity 1 "${#}"
+ local -r mode="${1}"
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/woof/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/woof/default.nix
new file mode 100644
index 000000000000..e00634dd53e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/woof/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, python }:
+
+stdenv.mkDerivation rec {
+ version = "2012-05-31";
+ pname = "woof";
+
+ src = fetchurl {
+ url = "http://www.home.unix-ag.org/simon/woof-${version}.py";
+ sha256 = "d84353d07f768321a1921a67193510bf292cf0213295e8c7689176f32e945572";
+ };
+
+ buildInputs = [ python ];
+
+ dontUnpack = true;
+
+ installPhase =
+ ''
+ mkdir -p $out/bin
+ cp $src $out/bin/woof
+ chmod +x $out/bin/woof
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.home.unix-ag.org/simon/woof.html";
+ description = "Web Offer One File - Command-line utility to easily exchange files over a local network";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with maintainers; [ lschuermann ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wootility/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wootility/default.nix
new file mode 100644
index 000000000000..cc192951ca84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wootility/default.nix
@@ -0,0 +1,43 @@
+{ appimageTools
+, fetchurl
+, lib
+, gsettings-desktop-schemas
+, gtk3
+, libxkbfile
+, udev
+, wooting-udev-rules
+}:
+let
+ pname = "wootility";
+ version = "3.5.12";
+in
+appimageTools.wrapType2 rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://s3.eu-west-2.amazonaws.com/wooting-update/wootility-linux-latest/wootility-${version}.AppImage";
+ sha256 = "13bhckk25fzq9r9cdsg3yqjd4kn47asqdx8kw0in8iky4ri41vnc";
+ };
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
+ '';
+
+ multiPkgs = extraPkgs;
+ extraPkgs =
+ pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ ([
+ udev
+ wooting-udev-rules
+ libxkbfile
+ ]);
+ extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+ meta = with lib; {
+ homepage = "https://wooting.io/wootility";
+ description = "Wootility is customization and management software for Wooting keyboards";
+ platforms = [ "x86_64-linux" ];
+ license = "unknown";
+ maintainers = with maintainers; [ davidtwco ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wv/default.nix
new file mode 100644
index 000000000000..78affe34b58b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wv/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, zlib, imagemagick, libpng, glib, pkgconfig, libgsf
+, libxml2, bzip2 }:
+
+stdenv.mkDerivation rec {
+ pname = "wv";
+ version = "1.2.9";
+
+ src = fetchurl {
+ url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz";
+ sha256 = "17f16lkdv1c3amaz2hagiicih59ynpp4786k1m2qa1sw68xhswsc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ zlib imagemagick libpng glib libgsf libxml2 bzip2 ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ description = "Converter from Microsoft Word formats to human-editable ones";
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/default.nix
new file mode 100644
index 000000000000..abac98d855f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, cmake, libgsf, glib, libxml2 }:
+
+stdenv.mkDerivation rec {
+ name = "wv2-0.4.2";
+ src = fetchurl {
+ url = "mirror://sourceforge/wvware/${name}.tar.bz2";
+ sha256 = "1p1qxr8z5bsiq8pvlina3c8c1vjcb5d96bs3zz4jj3nb20wnsawz";
+ };
+
+ patches = [ ./fix-include.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cmake libgsf glib libxml2 ];
+
+ NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
+
+ meta = {
+ description = "Excellent MS Word filter lib, used in most Office suites";
+ license = stdenv.lib.licenses.lgpl2;
+ homepage = "http://wvware.sourceforge.net";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/fix-include.patch b/infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/fix-include.patch
new file mode 100644
index 000000000000..df34d24af942
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wv2/fix-include.patch
@@ -0,0 +1,12 @@
+From: http://sourceforge.net/tracker/?func=detail&aid=3544851&group_id=10501&atid=110501
+--- a/src/olestream.h
++++ b/src/olestream.h
+@@ -23,7 +23,7 @@
+ #include "global.h" // U8,... typedefs
+ #include <stack>
+
+-#include <glib/giochannel.h> // GSeekType
++#include <glib.h> // GSeekType
+
+ namespace wvWare {
+
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/wyrd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/wyrd/default.nix
new file mode 100644
index 000000000000..e1c4e4fd2fca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/wyrd/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ocamlPackages, ncurses, remind }:
+
+stdenv.mkDerivation rec {
+ version = "1.4.6";
+ pname = "wyrd";
+
+ src = fetchurl {
+ url = "http://pessimization.com/software/wyrd/wyrd-${version}.tar.gz";
+ sha256 = "0zlrg602q781q8dij62lwdprpfliyy9j1rqfqcz8p2wgndpivddj";
+ };
+
+ NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS=1";
+
+ preConfigure = ''
+ substituteInPlace curses/curses.ml --replace 'pp gcc' "pp $CC"
+ '';
+
+ buildInputs = [ ocamlPackages.ocaml ncurses remind ocamlPackages.camlp4 ];
+
+ preferLocalBuild = true;
+
+ meta = with stdenv.lib; {
+ description = "A text-based front-end to Remind";
+ longDescription = ''
+ Wyrd is a text-based front-end to Remind, a sophisticated
+ calendar and alarm program. Remind's power lies in its
+ programmability, and Wyrd does not hide this capability behind
+ flashy GUI dialogs. Rather, Wyrd is designed to make you more
+ efficient at editing your reminder files directly.
+ '';
+ homepage = "http://pessimization.com/software/wyrd/";
+ downloadPage = "http://pessimization.com/software/wyrd/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.prikhi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/x11idle/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/x11idle/default.nix
new file mode 100644
index 000000000000..5e64137cbf6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/x11idle/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, libXScrnSaver, libX11 }:
+
+stdenv.mkDerivation rec {
+
+ version = "9.2.4";
+ name = "x11idle-org-${version}";
+
+ src = fetchurl {
+ url = "https://code.orgmode.org/bzg/org-mode/raw/release_${version}/contrib/scripts/x11idle.c";
+ sha256 = "0fc5g57xd6bmghyl214gcff0ni3idv33i3gkr339kgn1mdjljv5g";
+ };
+
+ buildInputs = [ libXScrnSaver libX11 ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ gcc -lXss -lX11 $src -o $out/bin/x11idle
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ Compute consecutive idle time for current X11 session with millisecond resolution
+ '';
+ longDescription = ''
+ Idle time passes when the user does not act, i.e. when the user doesn't move the mouse or use the keyboard.
+ '';
+ homepage = "https://orgmode.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.swflint ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xburst-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xburst-tools/default.nix
new file mode 100644
index 000000000000..12acbcfbe1c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xburst-tools/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, libusb-compat-0_1, libusb1, autoconf, automake, libconfuse, pkgconfig
+, gccCross ? null
+}:
+
+let
+ version = "2011-12-26";
+in
+stdenv.mkDerivation {
+ pname = "xburst-tools";
+ inherit version;
+
+ src = fetchgit {
+ url = "git://projects.qi-hardware.com/xburst-tools.git";
+ rev = "c71ce8e15db25fe49ce8702917cb17720882e341";
+ sha256 = "1hzdngs1l5ivvwnxjwzc246am6w1mj1aidcf0awh9yw0crzcjnjr";
+ };
+
+ preConfigure = ''
+ sh autogen.sh
+ '';
+
+ configureFlags = stdenv.lib.optionals (gccCross != null) [
+ "--enable-firmware"
+ "CROSS_COMPILE=${gccCross.targetPrefix}"
+ ];
+
+ hardeningDisable = [ "pic" "stackprotector" ];
+
+ # Not to strip cross build binaries (this is for the gcc-cross-wrapper)
+ dontCrossStrip = true;
+
+ nativeBuildInputs = [ autoconf automake pkgconfig ];
+ buildInputs = [ libusb-compat-0_1 libusb1 libconfuse ] ++
+ stdenv.lib.optional (gccCross != null) gccCross;
+
+ meta = {
+ description = "Qi tools to access the Ben Nanonote USB_BOOT mode";
+ license = stdenv.lib.licenses.gpl3;
+ homepage = "http://www.linux-mtd.infradead.org/";
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = stdenv.lib.platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xclip/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xclip/default.nix
new file mode 100644
index 000000000000..c1a015d3c09a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xclip/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libXmu }:
+
+stdenv.mkDerivation rec {
+ pname = "xclip";
+ version = "0.13";
+
+ src = fetchFromGitHub {
+ owner = "astrand";
+ repo = "xclip";
+ rev = version;
+ sha256 = "0q0hmvcjlv8arhh1pzhja2wglyj6n7z209jnpnzd281kqqv4czcs";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ libXmu ];
+
+ meta = {
+ description = "Tool to access the X clipboard from a console application";
+ homepage = "https://github.com/astrand/xclip";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xdaliclock/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdaliclock/default.nix
new file mode 100644
index 000000000000..3950e6bee28a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdaliclock/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libX11, xorgproto, libXt, libICE, libSM, libXext }:
+
+stdenv.mkDerivation rec {
+ pname = "xdaliclock";
+ version = "2.44";
+
+ src = fetchurl {
+ url="https://www.jwz.org/xdaliclock/${pname}-${version}.tar.gz";
+ sha256 = "1gsgnsm6ql0mcg9zpdkhws3g23r3a92bc3rpg4qbgbmd02nvj3c0";
+ };
+
+ # Note: don't change this to set sourceRoot, or updateAutotoolsGnuConfigScriptsHook
+ # on aarch64 doesn't find the files to patch and the aarch64 build fails!
+ preConfigure = "cd X11";
+
+ buildInputs = [ libX11 xorgproto libXt libICE libSM libXext ];
+
+ preInstall = ''
+ mkdir -vp $out/bin $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A clock application that morphs digits when they are changed";
+ maintainers = with maintainers; [ raskin rycee ];
+ platforms = with platforms; linux ++ freebsd;
+ license = licenses.free; #TODO BSD on Gentoo, looks like MIT
+ downloadPage = "http://www.jwz.org/xdaliclock/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xdo/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdo/default.nix
new file mode 100644
index 000000000000..f9928b6f140f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdo/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libxcb, xcbutil, xcbutilwm }:
+
+stdenv.mkDerivation rec {
+ pname = "xdo";
+ version = "0.5.7";
+
+ src = fetchFromGitHub {
+ owner = "baskerville";
+ repo = "xdo";
+ rev = version;
+ sha256 = "1h3jrygcjjbavdbkpx2hscsf0yf97gk487lzjdlvymd7dxdv9hy9";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ buildInputs = [ libxcb xcbutilwm xcbutil ];
+
+ meta = with stdenv.lib; {
+ description = "Small X utility to perform elementary actions on windows";
+ homepage = "https://github.com/baskerville/xdo";
+ maintainers = with maintainers; [ meisternu ];
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xdummy/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdummy/default.nix
new file mode 100644
index 000000000000..227829346cd0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdummy/default.nix
@@ -0,0 +1,85 @@
+{ writeText, writeScriptBin, xorg, xkeyboard_config, runtimeShell
+, unfreeFonts ? false, lib}:
+
+let
+ xorgConfig = writeText "dummy-xorg.conf" ''
+ Section "ServerLayout"
+ Identifier "dummy_layout"
+ Screen 0 "dummy_screen"
+ InputDevice "dummy_keyboard" "CoreKeyboard"
+ InputDevice "dummy_mouse" "CorePointer"
+ EndSection
+
+ Section "ServerFlags"
+ Option "DontVTSwitch" "true"
+ Option "AllowMouseOpenFail" "true"
+ Option "PciForceNone" "true"
+ Option "AutoEnableDevices" "false"
+ Option "AutoAddDevices" "false"
+ EndSection
+
+ Section "Files"
+ ModulePath "${xorg.xorgserver.out}/lib/xorg/modules"
+ ModulePath "${xorg.xf86videodummy}/lib/xorg/modules"
+ XkbDir "${xkeyboard_config}/share/X11/xkb"
+ FontPath "${xorg.fontadobe75dpi}/lib/X11/fonts/75dpi"
+ FontPath "${xorg.fontadobe100dpi}/lib/X11/fonts/100dpi"
+ FontPath "${xorg.fontmiscmisc}/lib/X11/fonts/misc"
+ FontPath "${xorg.fontcursormisc}/lib/X11/fonts/misc"
+ ${lib.optionalString unfreeFonts ''
+ FontPath "${xorg.fontbhlucidatypewriter75dpi}/lib/X11/fonts/75dpi"
+ FontPath "${xorg.fontbhlucidatypewriter100dpi}/lib/X11/fonts/100dpi"
+ FontPath "${xorg.fontbh100dpi}/lib/X11/fonts/100dpi"
+ ''}
+ EndSection
+
+ Section "Module"
+ Load "dbe"
+ Load "extmod"
+ Load "freetype"
+ Load "glx"
+ EndSection
+
+ Section "InputDevice"
+ Identifier "dummy_mouse"
+ Driver "void"
+ EndSection
+
+ Section "InputDevice"
+ Identifier "dummy_keyboard"
+ Driver "void"
+ EndSection
+
+ Section "Monitor"
+ Identifier "dummy_monitor"
+ HorizSync 30.0 - 130.0
+ VertRefresh 50.0 - 250.0
+ Option "DPMS"
+ EndSection
+
+ Section "Device"
+ Identifier "dummy_device"
+ Driver "dummy"
+ VideoRam 192000
+ EndSection
+
+ Section "Screen"
+ Identifier "dummy_screen"
+ Device "dummy_device"
+ Monitor "dummy_monitor"
+ DefaultDepth 24
+ SubSection "Display"
+ Depth 24
+ Modes "1280x1024"
+ EndSubSection
+ EndSection
+ '';
+
+in writeScriptBin "xdummy" ''
+ #!${runtimeShell}
+ exec ${xorg.xorgserver.out}/bin/Xorg \
+ -noreset \
+ -logfile /dev/null \
+ "$@" \
+ -config "${xorgConfig}"
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xdxf2slob/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdxf2slob/default.nix
new file mode 100644
index 000000000000..00f1899f97af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xdxf2slob/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication {
+ name = "xdxf2slob-unstable-2015-06-30";
+
+ src = fetchFromGitHub {
+ owner = "itkach";
+ repo = "xdxf2slob";
+ rev = "6831b93c3db8c73200900fa4ddcb17350a677e1b";
+ sha256 = "0m3dnc3816ja3kmik1wabb706dkqdf5sxvabwgf2rcrq891xcddd";
+ };
+
+ propagatedBuildInputs = [ python3Packages.PyICU python3Packages.slob ];
+
+ meta = with stdenv.lib; {
+ description = "Tool to convert XDXF dictionary files to slob format";
+ homepage = "https://github.com/itkach/xdxf2slob/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/default.nix
new file mode 100644
index 000000000000..adc3b87ffa72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, libXxf86vm, libXext, libX11, libXrandr, gcc}:
+stdenv.mkDerivation {
+ name = "xflux-2013-09-01";
+ src = fetchurl {
+ url = "https://justgetflux.com/linux/xflux64.tgz";
+ sha256 = "cc50158fabaeee58c331f006cc1c08fd2940a126e99d37b76c8e878ef20c2021";
+ };
+
+ libPath = stdenv.lib.makeLibraryPath [
+ gcc.cc
+ libXxf86vm
+ libXext
+ libX11
+ libXrandr
+ ];
+
+ unpackPhase = ''
+ unpackFile $src;
+ '';
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp xflux "$out/bin"
+ '';
+ postFixup = ''
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath "$libPath" "$out/bin/xflux"
+ '';
+ meta = {
+ description = "Adjusts your screen to emit warmer light at night";
+ longDescription = ''
+ xflux changes the color temperature of your screen to be much warmer
+ when the sun sets, and then changes it back its colder temperature
+ when the sun rises.
+ '';
+ homepage = "https://justgetflux.com/";
+ license = stdenv.lib.licenses.unfree;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.paholg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/gui.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/gui.nix
new file mode 100644
index 000000000000..03a458e818d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xflux/gui.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication, python3Packages, wrapGAppsHook
+, xflux, librsvg, gtk3, gobject-introspection, pango, gdk-pixbuf, atk
+, pexpect, pyGtkGlade, pygobject3, pyxdg, libappindicator-gtk3
+}:
+buildPythonApplication rec {
+ pname = "xflux-gui";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ repo = "xflux-gui";
+ owner = "xflux-gui";
+ rev = "v${version}";
+ sha256 = "09zphcd9821ink63636swql4g85hg6lpsazqg1mawlk9ikc8zbps";
+ };
+
+ propagatedBuildInputs = [
+ pyxdg
+ pexpect
+ pygobject3
+ ];
+
+ buildInputs = [
+ xflux gtk3
+ ];
+
+ nativeBuildInputs = [
+ wrapGAppsHook gobject-introspection
+ pango gdk-pixbuf atk libappindicator-gtk3
+ ];
+
+ postPatch = ''
+ substituteInPlace src/fluxgui/xfluxcontroller.py \
+ --replace "pexpect.spawn(\"xflux\"" "pexpect.spawn(\"${xflux}/bin/xflux\""
+ '';
+
+ postFixup = ''
+ wrapGAppsHook
+ wrapPythonPrograms
+ patchPythonScript $out/${python3Packages.python.sitePackages}/fluxgui/fluxapp.py
+ '';
+
+ meta = {
+ description = "Better lighting for Linux. Open source GUI for xflux";
+ homepage = "https://justgetflux.com/linux.html";
+ license = stdenv.lib.licenses.unfree; # marked as unfree since the source code contains a copy of the unfree xflux binary
+ maintainers = [ stdenv.lib.maintainers.sheenobu ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xfstests/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xfstests/default.nix
new file mode 100644
index 000000000000..5f6d2bb1278d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xfstests/default.nix
@@ -0,0 +1,110 @@
+{ stdenv, acl, attr, autoconf, automake, bash, bc, coreutils, e2fsprogs
+, fetchgit, fio, gawk, keyutils, killall, lib, libaio, libcap, libtool
+, libuuid, libxfs, lvm2, openssl, perl, procps, quota
+, time, utillinux, which, writeScript, xfsprogs, runtimeShell }:
+
+stdenv.mkDerivation {
+ name = "xfstests-2019-09-08";
+
+ src = fetchgit {
+ url = "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git";
+ rev = "0837e907988a5f410cae0ae714f42f9c4242e072";
+ sha256 = "1f5cv0vwc1g9difzp69k49rc5nfd08y72vdg318j25nv3rwv7wc9";
+ };
+
+ nativeBuildInputs = [
+ autoconf automake libtool
+ ];
+ buildInputs = [
+ acl attr gawk libaio libuuid libxfs openssl perl
+ ];
+
+ hardeningDisable = [ "format" ];
+ enableParallelBuilding = true;
+
+ patchPhase = ''
+ substituteInPlace Makefile \
+ --replace "cp include/install-sh ." "cp -f include/install-sh ."
+
+ # Patch the destination directory
+ sed -i include/builddefs.in -e "s|^PKG_LIB_DIR\s*=.*|PKG_LIB_DIR=$out/lib/xfstests|"
+
+ # Don't canonicalize path to mkfs (in util-linux) - otherwise e.g. mkfs.ext4 isn't found
+ sed -i common/config -e 's|^export MKFS_PROG=.*|export MKFS_PROG=mkfs|'
+
+ # Move the Linux-specific test output files to the correct place, or else it will
+ # try to move them at runtime. Also nuke all the irix crap.
+ for f in tests/*/*.out.linux; do
+ mv $f $(echo $f | sed -e 's/\.linux$//')
+ done
+ rm -f tests/*/*.out.irix
+
+ # Fix up lots of impure paths
+ for f in common/* tools/* tests/*/*; do
+ sed -i $f -e 's|/bin/bash|${bash}/bin/bash|'
+ sed -i $f -e 's|/bin/true|true|'
+ sed -i $f -e 's|/usr/sbin/filefrag|${e2fsprogs}/bin/filefrag|'
+ sed -i $f -e 's|hostname -s|hostname|' # `hostname -s` seems problematic on NixOS
+ sed -i $f -e 's|$(_yp_active)|1|' # NixOS won't ever have Yellow Pages enabled
+ done
+
+ for f in src/*.c src/*.sh; do
+ sed -e 's|/bin/rm|${coreutils}/bin/rm|' -i $f
+ sed -e 's|/usr/bin/time|${time}/bin/time|' -i $f
+ done
+
+ patchShebangs .
+ '';
+
+ preConfigure = ''
+ # The configure scripts really don't like looking in PATH at all...
+ export AWK=$(type -P awk)
+ export ECHO=$(type -P echo)
+ export LIBTOOL=$(type -P libtool)
+ export MAKE=$(type -P make)
+ export SED=$(type -P sed)
+ export SORT=$(type -P sort)
+
+ make configure
+ '';
+
+ postInstall = ''
+ patchShebangs $out/lib/xfstests
+
+ mkdir -p $out/bin
+ substitute $wrapperScript $out/bin/xfstests-check --subst-var out
+ chmod a+x $out/bin/xfstests-check
+ '';
+
+ # The upstream package is pretty hostile to packaging; it looks up
+ # various paths relative to current working directory, and also
+ # wants to write temporary files there. So create a temporary
+ # to run from and symlink the runtime files to it.
+ wrapperScript = writeScript "xfstests-check" ''
+ #!${runtimeShell}
+ set -e
+ export RESULT_BASE="$(pwd)/results"
+
+ dir=$(mktemp --tmpdir -d xfstests.XXXXXX)
+ trap "rm -rf $dir" EXIT
+
+ chmod a+rx "$dir"
+ cd "$dir"
+ for f in $(cd @out@/lib/xfstests; echo *); do
+ ln -s @out@/lib/xfstests/$f $f
+ done
+
+ export PATH=${lib.makeBinPath [acl attr bc e2fsprogs fio gawk keyutils
+ libcap lvm2 perl procps killall quota
+ utillinux which xfsprogs]}:$PATH
+ exec ./check "$@"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Torture test suite for filesystems";
+ homepage = "https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xiccd/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xiccd/default.nix
new file mode 100644
index 000000000000..82759441a46b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xiccd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libX11, libXrandr, glib, colord }:
+
+stdenv.mkDerivation rec {
+ pname = "xiccd";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "agalakhov";
+ repo = "xiccd";
+ rev = "v${version}";
+ sha256 = "159fyz5535lcabi5bzmxgmjdgxlqcjaiqgzr00mi3ax0i5fdldwn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libX11 libXrandr glib colord ];
+
+ meta = with stdenv.lib; {
+ description = "X color profile daemon";
+ homepage = "https://github.com/agalakhov/xiccd";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ abbradar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xilinx-bootgen/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xilinx-bootgen/default.nix
new file mode 100644
index 000000000000..e7aa30ac0591
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xilinx-bootgen/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, openssl }:
+
+stdenv.mkDerivation {
+ pname = "xilinx-bootgen";
+ version = "unstable-2019-10-23";
+
+ src = fetchFromGitHub {
+ owner = "xilinx";
+ repo = "bootgen";
+ rev = "f9f477adf243fa40bc8c7316a7aac37a0efd426d";
+ sha256 = "1qciz3jkzy0z0lcgqnhch9pqj0202mk5ghzp2m9as5pzk8n8hrbz";
+ };
+
+ buildInputs = [ openssl ];
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ install -Dm755 bootgen $out/bin/bootgen
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Generate Boot Images for Xilinx Zynq and ZU+ SoCs";
+ longDescription = ''
+ Bootgen for Xilinx Zynq and ZU+ SoCs, without code related to generating
+ obfuscated key and without code to support FPGA encryption and
+ authentication. These features are only available as part of Bootgen
+ shipped with Vivado tools.
+
+ For more details about Bootgen, please refer to Xilinx UG1283.
+ '';
+ homepage = "https://github.com/Xilinx/bootgen";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/default.nix
new file mode 100644
index 000000000000..5dfbcdfad740
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "xmonad-log";
+ version = "0.1.0";
+
+ goPackagePath = "github.com/xintron/xmonad-log";
+
+ src = fetchFromGitHub {
+ owner = "xintron";
+ repo = "xmonad-log";
+ rev = version;
+ sha256 = "1il6v0zcjw0pfb1hjj198y94jmlcx255h422ph0f1zr7afqkzmaw";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "xmonad DBus monitoring solution";
+ homepage = "https://github.com/xintron/xmonad-log";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ joko ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/deps.nix
new file mode 100644
index 000000000000..f5a7c7e5dd1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xmonad-log/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/godbus/dbus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/godbus/dbus";
+ rev = "a389bdde4dd695d414e47b755e95e72b7826432c";
+ sha256 = "1ckvg15zdsgmbn4mi36cazkb407ixc9mmyf7vwj8b8wi3d00rgn9";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix
new file mode 100644
index 000000000000..3f7e2e32294c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, gtk3
+, AppKit
+, pkg-config
+, python3
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "xprite-editor-unstable";
+ version = "2019-09-22";
+
+ src = fetchFromGitHub {
+ owner = "rickyhan";
+ repo = "xprite-editor";
+ rev = "7f899dff982642927024540e4bafd74e4ea5e52a";
+ sha256 = "1k6k8y8gg1vdmyjz27q689q9rliw0rrnzwlpjcd4vlc6swaq9ahx";
+ fetchSubmodules = true;
+ # Rename unicode file name which leads to different checksums on HFS+
+ # vs. other filesystems because of unicode normalization.
+ postFetch = ''
+ mv $out/config/palettes/Sweet\ Guaran*.hex $out/config/palettes/Sweet\ Guarana.hex
+ '';
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ gtk3 ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ AppKit ];
+
+ nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config python3 ];
+
+ cargoSha256 = "1a0zy8gfc1gdk8nnv5qr4yspqy1jsip5nql3w74rl6h46cplpf5y";
+
+ cargoBuildFlags = [ "--bin" "xprite-native" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/rickyhan/xprite-editor";
+ description = "Pixel art editor";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xsel/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xsel/default.nix
new file mode 100644
index 000000000000..69061eb15b8b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xsel/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromGitHub, libX11, autoreconfHook }:
+
+stdenv.mkDerivation {
+ pname = "xsel-unstable";
+ version = "2020-05-27";
+
+ src = fetchFromGitHub {
+ owner = "kfish";
+ repo = "xsel";
+ rev = "062e6d373537c60829fa9b5dcddbcd942986b3c3";
+ sha256 = "0fbf80zsc22vcqp59r9fdx4icxhrkv7l3lphw83326jrmkzy6kri";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ libX11 ];
+
+ meta = with lib; {
+ description = "Command-line program for getting and setting the contents of the X selection";
+ homepage = "http://www.kfish.org/software/xsel";
+ license = licenses.mit;
+ maintainers = [ maintainers.cstrahan ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xtitle/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xtitle/default.nix
new file mode 100644
index 000000000000..2c24e627b634
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xtitle/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libxcb, xcbutil, xcbutilwm, git }:
+
+stdenv.mkDerivation {
+ name = "xtitle-0.4.4";
+
+ src = fetchurl {
+ url = "https://github.com/baskerville/xtitle/archive/0.4.4.tar.gz";
+ sha256 = "0w490a6ki90si1ri48jzhma473a598l1b12j8dp4ckici41z9yy2";
+ };
+
+
+ buildInputs = [ libxcb git xcbutil xcbutilwm ];
+
+ prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+ meta = {
+ description = "Outputs X window titles";
+ homepage = "https://github.com/baskerville/xtitle";
+ maintainers = [ stdenv.lib.maintainers.meisternu ];
+ license = "Custom";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
new file mode 100644
index 000000000000..04c1902f3a0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, makeWrapper, xorgserver, getopt
+, xauth, utillinux, which, fontsConf, gawk, coreutils }:
+let
+ xvfb_run = fetchurl {
+ name = "xvfb-run";
+ # https://git.archlinux.org/svntogit/packages.git/?h=packages/xorg-server
+ url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/xvfb-run?h=packages/xorg-server&id=9cb733cefa92af3fca608fb051d5251160c9bbff";
+ sha256 = "1307mz4nr8ga3qz73i8hbcdphky75rq8lrvfk2zm4kmv6pkbk611";
+ };
+in
+stdenv.mkDerivation {
+ name = "xvfb-run";
+ buildInputs = [makeWrapper];
+ buildCommand = ''
+ mkdir -p $out/bin
+ cp ${xvfb_run} $out/bin/xvfb-run
+
+ chmod a+x $out/bin/xvfb-run
+ patchShebangs $out/bin/xvfb-run
+ wrapProgram $out/bin/xvfb-run \
+ --set FONTCONFIG_FILE "${fontsConf}" \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux gawk coreutils ]}
+ '';
+
+ meta = with stdenv.lib; {
+ platforms = platforms.unix;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/xxv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/xxv/default.nix
new file mode 100644
index 000000000000..b22dfc7e4cd1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/xxv/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub, rustPlatform
+, ncurses ? null
+, darwin ? null }:
+
+let useNcurses = !stdenv.hostPlatform.isWindows; in
+
+assert useNcurses -> ncurses != null;
+
+rustPlatform.buildRustPackage rec {
+ pname = "xxv";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "chrisvest";
+ repo = pname;
+ rev = version;
+ sha256 = "0ppfsgdigza2jppbkg4qanjhlkpnq7p115c4471vc6vpikpfrlk3";
+ };
+
+ cargoSha256 = "1gnyig87a0yqgkng52fpn6hv629vym6k7ydljnxrhb5phmj2qbqx";
+
+ buildInputs = lib.optionals useNcurses [ ncurses ]
+ ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security ])
+ ;
+
+ # I'm picking pancurses for Windows simply because that's the example given in Cursive's
+ # documentation for picking an alternative backend. We could just as easily pick crossterm.
+ cargoBuildFlags = lib.optionals (!useNcurses) [ "--no-default-features" "--features pancurses-backend" ];
+
+ meta = with lib; {
+ description = "A visual hex viewer for the terminal";
+ longDescription = ''
+ XXV is a terminal hex viewer with a text user interface, written in 100% safe Rust.
+ '';
+ homepage = "https://chrisvest.github.io/xxv/";
+ license = with licenses; [ gpl3 ];
+ maintainers = with maintainers; [ lilyball ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yad/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yad/default.nix
new file mode 100644
index 000000000000..d00d737c17ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yad/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, pkgconfig, intltool, autoreconfHook, wrapGAppsHook
+, gtk3, hicolor-icon-theme, netpbm }:
+
+stdenv.mkDerivation rec {
+ pname = "yad";
+ version = "6.0";
+
+ src = fetchFromGitHub {
+ owner = "v1cont";
+ repo = "yad";
+ rev = "v${version}";
+ sha256 = "07myjv0g0iwgclc6q9wkj25myhlc86ahy2lqma8vgv9i3rgy03p7";
+ };
+
+ configureFlags = [
+ "--enable-icon-browser"
+ "--with-gtk=gtk3"
+ "--with-rgb=${placeholder "out"}/share/yad/rgb.txt"
+ ];
+
+ buildInputs = [ gtk3 hicolor-icon-theme ];
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig intltool wrapGAppsHook ];
+
+ postPatch = ''
+ sed -i src/file.c -e '21i#include <glib/gprintf.h>'
+ sed -i src/form.c -e '21i#include <stdlib.h>'
+
+ # there is no point to bring in the whole netpbm package just for this file
+ install -Dm644 ${netpbm.out}/share/netpbm/misc/rgb.txt $out/share/yad/rgb.txt
+ '';
+
+ postAutoreconf = ''
+ intltoolize
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/yad-dialog/";
+ description = "GUI dialog tool for shell scripts";
+ longDescription = ''
+ Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a
+ fork of Zenity with many improvements, such as custom buttons, additional
+ dialogs, pop-up menu in notification icon and more.
+ '';
+
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ smironov ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yank/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yank/default.nix
new file mode 100644
index 000000000000..6111a0f98708
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yank/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, xsel }:
+
+stdenv.mkDerivation rec {
+
+ name = "yank-${meta.version}";
+
+ src = fetchFromGitHub {
+ owner = "mptre";
+ repo = "yank";
+ rev = "v${meta.version}";
+ sha256 = "1izygx7f1z35li74i2cwca0p28c3v8fbr7w72dwpiqdaiwywa8xc";
+ inherit name;
+ };
+
+ installFlags = [ "PREFIX=$(out)" ];
+ makeFlags = [ "YANKCMD=${xsel}/bin/xsel" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mptre/yank";
+ description = "Yank terminal output to clipboard";
+ longDescription = ''
+ Read input from stdin and display a selection interface that allows a
+ field to be selected and copied to the clipboard. Fields are determined
+ by splitting the input on a delimiter sequence, optionally specified
+ using the -d option. New line, carriage return and tab characters are
+ always treated as delimiters.
+ '';
+ downloadPage = "https://github.com/mptre/yank/releases";
+ license = licenses.mit;
+ version = "1.2.0";
+ maintainers = [ maintainers.dochang ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yle-dl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
new file mode 100644
index 000000000000..00624a482c8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, rtmpdump, php, pythonPackages, ffmpeg_3 }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "yle-dl";
+ version = "2.31";
+
+ src = fetchFromGitHub {
+ owner = "aajanki";
+ repo = "yle-dl";
+ rev = version;
+ sha256 = "0k93p9csyjm0w33diwl5s22kzs3g78jl3n9k8nxxpqrybfjl912f";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [
+ lxml pyamf pycrypto requests future ffmpeg_3 setuptools
+ ];
+ pythonPath = [ rtmpdump php ];
+
+ doCheck = false; # tests require network access
+ checkInputs = with pythonPackages; [ pytest pytestrunner ];
+
+ meta = with stdenv.lib; {
+ description = "Downloads videos from Yle (Finnish Broadcasting Company) servers";
+ homepage = "https://aajanki.github.io/yle-dl/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/you-get/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/you-get/default.nix
new file mode 100644
index 000000000000..8314dc2c9a35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/you-get/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonApplication, fetchPypi }:
+
+buildPythonApplication rec {
+ pname = "you-get";
+ version = "0.4.1456";
+
+ # Tests aren't packaged, but they all hit the real network so
+ # probably aren't suitable for a build environment anyway.
+ doCheck = false;
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "14miw5gmj571584rmdzjxf88icmb1psrsfbwpabn8blz8l5aq6bv";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A tiny command line utility to download media contents from the web";
+ homepage = "https://you-get.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ryneeverett ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
new file mode 100644
index 000000000000..e3b64939a0a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
@@ -0,0 +1,68 @@
+{ lib, fetchurl, buildPythonPackage
+, zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
+# Pandoc is required to build the package's man page. Release tarballs contain a
+# formatted man page already, though, it will still be installed. We keep the
+# manpage argument in place in case someone wants to use this derivation to
+# build a Git version of the tool that doesn't have the formatted man page
+# included.
+, generateManPage ? false
+, ffmpegSupport ? true
+, rtmpSupport ? true
+, phantomjsSupport ? false
+, hlsEncryptedSupport ? true
+, installShellFiles, makeWrapper }:
+
+buildPythonPackage rec {
+
+ pname = "youtube-dl";
+ # The websites youtube-dl deals with are a very moving target. That means that
+ # downloads break constantly. Because of that, updates should always be backported
+ # to the latest stable release.
+ version = "2020.09.20";
+
+ src = fetchurl {
+ url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1pkw3hnkddk1kqv0in152q1k4jjgbmf2xvc9j3r5nd38z6f7j6mc";
+ };
+
+ nativeBuildInputs = [ installShellFiles makeWrapper ];
+ buildInputs = [ zip ] ++ lib.optional generateManPage pandoc;
+ propagatedBuildInputs = lib.optional hlsEncryptedSupport pycryptodome;
+
+ # Ensure these utilities are available in $PATH:
+ # - ffmpeg: post-processing & transcoding support
+ # - rtmpdump: download files over RTMP
+ # - atomicparsley: embedding thumbnails
+ makeWrapperArgs = let
+ packagesToBinPath =
+ [ atomicparsley ]
+ ++ lib.optional ffmpegSupport ffmpeg
+ ++ lib.optional rtmpSupport rtmpdump
+ ++ lib.optional phantomjsSupport phantomjs2;
+ in [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ];
+
+ setupPyBuildFlags = [
+ "build_lazy_extractors"
+ ];
+
+ postInstall = ''
+ installShellCompletion youtube-dl.zsh
+ '';
+
+ # Requires network
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://ytdl-org.github.io/youtube-dl/";
+ description = "Command-line tool to download videos from YouTube.com and other sites";
+ longDescription = ''
+ youtube-dl is a small, Python-based command-line program
+ to download videos from YouTube.com and a few more sites.
+ youtube-dl is released to the public domain, which means
+ you can modify it, redistribute it or use it however you like.
+ '';
+ license = licenses.publicDomain;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz enzime ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ytree/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ytree/default.nix
new file mode 100644
index 000000000000..b8818ba6e5e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ytree/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchurl
+, ncurses
+, readline
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ytree";
+ version = "2.02";
+
+ src = fetchurl {
+ url = "https://han.de/~werner/${pname}-${version}.tar.gz";
+ sha256 = "1v70l244rc22f20gac1zha1smrhqkag45jn0iwgcyngfdfml3gz5";
+ };
+
+ buildInputs = [
+ ncurses readline
+ ];
+
+ # don't save timestamp, in order to improve reproducibility
+ postPatch = ''
+ substituteInPlace Makefile --replace 'gzip' 'gzip -n'
+ '';
+
+ installFlags = [ "DESTDIR=${placeholder "out"}" ];
+
+ preInstall = ''
+ mkdir -p $out/bin $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A curses-based file manager similar to DOS Xtree(TM)";
+ homepage = "https://www.han.de/~werner/ytree.html";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = with platforms; unix;
+ };
+}
+# TODO: X11 support
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubico-piv-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubico-piv-tool/default.nix
new file mode 100644
index 000000000000..07f186e33226
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubico-piv-tool/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, openssl, check, pcsclite, PCSC
+, withApplePCSC ? stdenv.isDarwin
+}:
+
+stdenv.mkDerivation rec {
+ name = "yubico-piv-tool-2.0.0";
+
+ src = fetchurl {
+ url = "https://developers.yubico.com/yubico-piv-tool/Releases/${name}.tar.gz";
+ sha256 = "124lhlim05gw32ydjh1yawqbnx6wdllz1ir9j00j09wji3m11rfs";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl check ]
+ ++ (if withApplePCSC then [ PCSC ] else [ pcsclite ]);
+
+ configureFlags = [ "--with-backend=${if withApplePCSC then "macscard" else "pcsc"}" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://developers.yubico.com/yubico-piv-tool/";
+ description = ''
+ Used for interacting with the Privilege and Identification Card (PIV)
+ application on a YubiKey
+ '';
+ longDescription = ''
+ The Yubico PIV tool is used for interacting with the Privilege and
+ Identification Card (PIV) application on a YubiKey.
+ With it you may generate keys on the device, importing keys and
+ certificates, and create certificate requests, and other operations.
+ A shared library and a command-line tool is included.
+ '';
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
new file mode 100644
index 000000000000..5b5fb66be306
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchurl
+, wrapQtAppsHook
+, pcsclite
+, pyotherside
+, pythonPackages
+, python3
+, qmake
+, qtbase
+, qtgraphicaleffects
+, qtquickcontrols
+, qtquickcontrols2
+, qtdeclarative
+, qtsvg
+, yubikey-manager
+, yubikey-personalization
+}:
+
+let inherit (stdenv) lib; in
+
+stdenv.mkDerivation rec {
+ pname = "yubikey-manager-qt";
+ version = "1.1.5";
+
+ src = fetchurl {
+ url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
+ sha256 = "1yimlaqvhq34gw6wkqgil0qq8x9zbfzh4psqihjr2d9jaa2wygwy";
+ };
+
+ nativeBuildInputs = [ wrapQtAppsHook python3.pkgs.wrapPython qmake ];
+
+ postPatch = ''
+ substituteInPlace ykman-gui/deployment.pri --replace '/usr/bin' "$out/bin"
+ '';
+
+ buildInputs = [ pythonPackages.python qtbase qtgraphicaleffects qtquickcontrols qtquickcontrols2 pyotherside ];
+
+ enableParallelBuilding = true;
+
+ pythonPath = [ yubikey-manager ];
+
+ dontWrapQtApps = true;
+ postInstall = ''
+ buildPythonPath "$pythonPath"
+
+ wrapQtApp $out/bin/ykman-gui \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" \
+ --prefix PYTHONPATH : "$program_PYTHONPATH"
+
+ mkdir -p $out/share/applications
+ cp resources/ykman-gui.desktop $out/share/applications/ykman-gui.desktop
+ mkdir -p $out/share/ykman-gui/icons
+ cp resources/icons/*.{icns,ico,png,xpm} $out/share/ykman-gui/icons
+ substituteInPlace $out/share/applications/ykman-gui.desktop \
+ --replace 'Exec=ykman-gui' "Exec=$out/bin/ykman-gui" \
+ '';
+
+ meta = with lib; {
+ inherit version;
+ description = "Cross-platform application for configuring any YubiKey over all USB interfaces";
+ homepage = "https://developers.yubico.com/yubikey-manager-qt/";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.cbley ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
new file mode 100644
index 000000000000..505d26bb582f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
@@ -0,0 +1,56 @@
+{ python3Packages, fetchurl, lib,
+ yubikey-personalization, libu2f-host, libusb1 }:
+
+python3Packages.buildPythonPackage rec {
+ pname = "yubikey-manager";
+ version = "3.1.1";
+
+ srcs = fetchurl {
+ url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
+ sha256 = "1yhc8j67phrj5xgx09b5h7c67pgc4wj4jnkmkq0r3s6j7jn43vv8";
+ };
+
+ propagatedBuildInputs =
+ with python3Packages; [
+ click
+ cryptography
+ pyscard
+ pyusb
+ pyopenssl
+ six
+ fido2
+ ] ++ [
+ libu2f-host
+ libusb1
+ yubikey-personalization
+ ];
+
+ makeWrapperArgs = [
+ "--prefix" "LD_LIBRARY_PATH" ":"
+ (lib.makeLibraryPath [ libu2f-host libusb1 yubikey-personalization ])
+ ];
+
+ postInstall = ''
+ mkdir -p "$out/man/man1"
+ cp man/ykman.1 "$out/man/man1"
+
+ mkdir -p $out/share/bash-completion/completions
+ _YKMAN_COMPLETE=source $out/bin/ykman > $out/share/bash-completion/completions/ykman || :
+ mkdir -p $out/share/zsh/site-functions/
+ _YKMAN_COMPLETE=source_zsh "$out/bin/ykman" > "$out/share/zsh/site-functions/_ykman" || :
+ substituteInPlace "$out/share/zsh/site-functions/_ykman" \
+ --replace 'compdef _ykman_completion ykman;' '_ykman_completion "$@"'
+ '';
+
+ # See https://github.com/NixOS/nixpkgs/issues/29169
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://developers.yubico.com/yubikey-manager";
+ description = "Command line tool for configuring any YubiKey over all USB transports";
+
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ benley mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix
new file mode 100644
index 000000000000..cb37ae249289
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, python27Packages
+, libykneomgr, yubikey-personalization, libu2f-host }:
+
+python27Packages.buildPythonPackage rec {
+ namePrefix = "";
+ name = "yubikey-neo-manager-${version}";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://developers.yubico.com/yubikey-neo-manager/Releases/${name}.tar.gz";
+ sha256 = "1isxvx27hk0avxwgwcwys2z8ickfs816ii1aklvmi09ak1rgrf1g";
+ };
+
+ propagatedBuildInputs = with python27Packages; [ pyside pycrypto ];
+ patches = [ ./fix-pyside-requirement.diff ];
+
+ # aid ctypes load_libary()
+ makeWrapperArgs = [
+ "--set LD_PRELOAD '${libykneomgr}/lib/libykneomgr.so ${yubikey-personalization}/lib/libykpers-1.so ${libu2f-host}/lib/libu2f-host.so'"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://developers.yubico.com/yubikey-neo-manager";
+ description = "Cross platform personalization tool for the YubiKey NEO";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ mbakke ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff
new file mode 100644
index 000000000000..d11a3a1cc6d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff
@@ -0,0 +1,17 @@
+Description: Remove PySide requirement, since python-pyside does not register itself correctly
+Author: Dain Nilsson <dain@yubico.com>
+Forwarded: no
+--- a/setup.py
++++ b/setup.py
+@@ -44,8 +44,9 @@
+ entry_points={
+ 'gui_scripts': ['neoman=neoman.__main__:main']
+ },
+- install_requires=['PySide', 'pycrypto'],
+- yc_requires=['ctypes', 'qt'],
++ install_requires=['pycrypto'],
++ yc_requires=['ctypes'],
++ packages=['neoman', 'neoman.model', 'neoman.view', 'neoman.yubicommon', 'neoman.yubicommon.setup', 'neoman.yubicommon.ctypes', 'neoman.yubicommon.qt'],
+ cmdclass={'executable': executable, 'qt_resources': qt_resources('neoman')},
+ classifiers=[
+ 'License :: OSI Approved :: BSD License',
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization-gui/default.nix
new file mode 100644
index 000000000000..96e7024f7a7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization-gui/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, mkDerivation, pkgconfig, qtbase, qmake, imagemagick
+, libyubikey, yubikey-personalization }:
+
+mkDerivation rec {
+ name = "yubikey-personalization-gui-3.1.25";
+
+ src = fetchurl {
+ url = "https://developers.yubico.com/yubikey-personalization-gui/Releases/${name}.tar.gz";
+ sha256 = "1knyv5yss8lhzaff6jpfqv12fjf1b8b21mfxzx3qi0hw4nl8n2v8";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake imagemagick ];
+ buildInputs = [ yubikey-personalization qtbase libyubikey ];
+
+ installPhase = ''
+ install -D -m0755 build/release/yubikey-personalization-gui "$out/bin/yubikey-personalization-gui"
+ install -D -m0644 resources/lin/yubikey-personalization-gui.1 "$out/share/man/man1/yubikey-personalization-gui.1"
+
+ # Desktop files
+ install -D -m0644 resources/lin/yubikey-personalization-gui.desktop "$out/share/applications/yubikey-personalization-gui.desktop"
+ install -D -m0644 resources/lin/yubikey-personalization-gui.desktop "$out/share/pixmaps/yubikey-personalization-gui.xpm"
+
+ # Icons
+ install -D -m0644 resources/lin/yubikey-personalization-gui.png "$out/share/icons/hicolor/128x128/apps/yubikey-personalization-gui.png"
+ for SIZE in 16 24 32 48 64 96; do
+ # set modify/create for reproducible builds
+ convert -scale ''${SIZE} +set date:create +set date:modify \
+ resources/lin/yubikey-personalization-gui.png \
+ yubikey-personalization-gui.png
+
+ install -D -m0644 yubikey-personalization-gui.png "$out/share/icons/hicolor/''${SIZE}x''${SIZE}/apps/yubikey-personalization-gui.png"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://developers.yubico.com/yubikey-personalization-gui";
+ description = "A QT based cross-platform utility designed to facilitate reconfiguration of the Yubikey";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix
new file mode 100644
index 000000000000..69e3d5886537
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, libusb1, libyubikey, json_c }:
+
+stdenv.mkDerivation rec {
+ pname = "yubikey-personalization";
+ version = "1.20.0";
+
+ src = fetchurl {
+ url = "https://developers.yubico.com/yubikey-personalization/Releases/ykpers-${version}.tar.gz";
+ sha256 = "14wvlwqnwj0gllkpvfqiy8ns938bwvjsz8x1hmymmx32m074vj0f";
+ };
+
+ patches = [
+ # remove after updating to next release
+ (fetchpatch {
+ name = "json-c-0.14-support.patch";
+ url = "https://github.com/Yubico/yubikey-personalization/commit/0aa2e2cae2e1777863993a10c809bb50f4cde7f8.patch";
+ sha256 = "1wnigf3hbq59i15kgxpq3pwrl1drpbj134x81mmv9xm1r44cjva8";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libusb1 libyubikey json_c ];
+
+ configureFlags = [
+ "--with-backend=libusb-1.0"
+ ];
+
+ doCheck = true;
+
+ postInstall = ''
+ # Don't use 70-yubikey.rules because it depends on ConsoleKit
+ install -D -t $out/lib/udev/rules.d 69-yubikey.rules
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://developers.yubico.com/yubikey-personalization";
+ description = "A library and command line tool to personalize YubiKeys";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/z-lua/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/z-lua/default.nix
new file mode 100644
index 000000000000..59149506e6c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/z-lua/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, lua52Packages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "z-lua";
+ version = "1.8.7";
+
+ src = fetchFromGitHub {
+ owner = "skywind3000";
+ repo = "z.lua";
+ rev = version;
+ sha256 = "14n1abv7gh4zajq471bgzpcv8l1159g00h9x83h719i9kxxsa2ba";
+ };
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ lua52Packages.lua ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 z.lua $out/bin/z
+ wrapProgram $out/bin/z --set LUA_CPATH "${lua52Packages.luafilesystem}/lib/lua/5.2/lfs.so" --set _ZL_USE_LFS 1;
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/skywind3000/z.lua";
+ description = "A new cd command that helps you navigate faster by learning your habits";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix
new file mode 100644
index 000000000000..74e7e7223d14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix
@@ -0,0 +1,29 @@
+{ fetchFromGitHub, lib, python2Packages }:
+let
+ pythonPackages = python2Packages;
+
+in pythonPackages.buildPythonApplication rec {
+ pname = "zabbix-cli";
+ version = "2.2.1";
+
+ propagatedBuildInputs = with pythonPackages; [ ipaddr requests ];
+
+ # argparse is part of the standardlib
+ prePatch = ''
+ substituteInPlace setup.py --replace "'argparse'," ""
+ '';
+
+ src = fetchFromGitHub {
+ owner = "usit-gd";
+ repo = "zabbix-cli";
+ rev = version;
+ sha256 = "0wzmrn8p09ksqhhgawr179c4az7p2liqr0l4q2dra62bxliawyqz";
+ };
+
+ meta = with lib; {
+ description = "Command-line interface for Zabbix";
+ homepage = src.meta.homepage;
+ license = [ licenses.gpl3 ];
+ maintainers = [ maintainers.womfoo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix
new file mode 100644
index 000000000000..c54456ede3d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "zabbixctl";
+ version = "unstable-2019-07-06";
+
+ goPackagePath = "github.com/kovetskiy/zabbixctl";
+
+ src = fetchFromGitHub {
+ owner = "kovetskiy";
+ repo = pname;
+ rev = "f2e856b7ab7d8ff9f494fe9f481bbaef18ea6ff7";
+ sha256 = "1lr3g9h3aa2px2kh5b2qcpj3aqyhqwq7kj1s9wifgmri9q7fsdzy";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Most effective way for operating in Zabbix Server";
+ homepage = "https://github.com/kovetskiy/zabbixctl";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mmahut ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/deps.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/deps.nix
new file mode 100644
index 000000000000..2bf015acf5f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/zabbixctl/deps.nix
@@ -0,0 +1,111 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/jinzhu/configor";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jinzhu/configor";
+ rev = "9064de4b2535f218bde55dc8de50a3904ef800d0";
+ sha256 = "13wd7s2kff3s0bz5mi0m2zcz1r8mwnwhd944gxymzkwij71lhasn";
+ };
+ }
+ {
+ goPackagePath = "github.com/kovetskiy/godocs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kovetskiy/godocs";
+ rev = "2d9428f80f3442e07f67daf7ba378cd0ff6cfe24";
+ sha256 = "128dlvxqk31crzl9p3ps0nir724cjzxv4lxpgdvsir0wvfp8f83j";
+ };
+ }
+ {
+ goPackagePath = "github.com/kovetskiy/lorg";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kovetskiy/lorg";
+ rev = "9c6042b7edb0c491dd0722fad91e2b5e833d6b43";
+ sha256 = "0j1cm7mni47vraxnyigc55cq0yxw8zdyjmrq2c7vnm5s4kiia8pi";
+ };
+ }
+ {
+ goPackagePath = "github.com/kovetskiy/spinner-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kovetskiy/spinner-go";
+ rev = "00597fd24fe0d8079821b68f71d73b0661401752";
+ sha256 = "19qcpnvs61fsk7xgcj5b6s3zksnkc5rk9n5hx73v9ya7m2k7xr2n";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "703b5e6b11ae25aeb2af9ebb5d5fdf8fa2575211";
+ sha256 = "0znpyz71gajx3g0j2zp63nhjj2c07g16885vxv4ykwnrfmzbgk4w";
+ };
+ }
+ {
+ goPackagePath = "github.com/olekukonko/tablewriter";
+ fetch = {
+ type = "git";
+ url = "https://github.com/olekukonko/tablewriter";
+ rev = "cc27d85e17cec9768d2ac401ea5d619a9628f16d";
+ sha256 = "1y3pkvypkxjrhlnsv8lcyd0c2q8mn5asfny2zi9j2vs77s5bd9qm";
+ };
+ }
+ {
+ goPackagePath = "github.com/reconquest/karma-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/reconquest/karma-go";
+ rev = "1094651bd246b1685f7b368e099aba6fca9efd8f";
+ sha256 = "0jiayzxwp0h7skg86q58rh58m2imdg3ng2vzpc2bxiz67lzcpk3r";
+ };
+ }
+ {
+ goPackagePath = "github.com/simplereach/timeutils";
+ fetch = {
+ type = "git";
+ url = "https://github.com/simplereach/timeutils";
+ rev = "1a719258b86a08630289b86902ab16817ba641e9";
+ sha256 = "08mf2j0dk07c9p279ydbrjxbjf113azmq0x8vhf7jvldcgjpw3m6";
+ };
+ }
+ {
+ goPackagePath = "github.com/zazab/zhash";
+ fetch = {
+ type = "git";
+ url = "https://github.com/zazab/zhash";
+ rev = "ad45b89afe7af57319ca32f174e4dabeb00c44e4";
+ sha256 = "16b6f70qwfyg0zvbpk0yj5jx4cv2ggkyiqc5nk8n0165z46i62hs";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/mgo.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/mgo.v2";
+ rev = "9856a29383ce1c59f308dd1cf0363a79b5bef6b5";
+ sha256 = "1gfbcmvpwwf1lydxj3g42wv2g9w3pf0y02igqk4f4f21h02sazkw";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/zoxide/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/zoxide/default.nix
new file mode 100644
index 000000000000..3e4cbfd84334
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/zoxide/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, withFzf ? true
+, fzf
+}:
+let
+ version = "0.4.3";
+in
+rustPlatform.buildRustPackage {
+ pname = "zoxide";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "ajeetdsouza";
+ repo = "zoxide";
+ rev = "v${version}";
+ sha256 = "1ghdal6pqkp56rqawhj26ch1x4cvnjj032xz3626aiddqgn134zj";
+ };
+
+ postPatch = lib.optionalString withFzf ''
+ substituteInPlace src/fzf.rs \
+ --replace '"fzf"' '"${fzf}/bin/fzf"'
+ '';
+
+ cargoSha256 = "0klnjmda77bq9i9f0rz48jzaw4rcf7hafcjjpb0i570d7hlxnwsr";
+
+ meta = with lib; {
+ description = "A fast cd command that learns your habits";
+ homepage = "https://github.com/ajeetdsouza/zoxide";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ ysndr cole-h ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-autoenv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-autoenv/default.nix
new file mode 100644
index 000000000000..c44837b877d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-autoenv/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, runtimeShell }:
+
+stdenv.mkDerivation {
+ pname = "zsh-autoenv";
+ version = "2017-12-16";
+
+ src = fetchFromGitHub {
+ owner = "Tarrasch";
+ repo = "zsh-autoenv";
+ rev = "2c8cfbcea8e7286649840d7ec98d7e9d5e1d45a0";
+ sha256 = "004svkfzhc3ab6q2qvwzgj36wvicg5bs8d2gcibx6adq042di7zj";
+ };
+
+ buildPhase = ":";
+
+ installPhase = ''
+ mkdir -p $out/{bin,share}
+ cp -R $src $out/share/zsh-autoenv
+
+ cat <<SCRIPT > $out/bin/zsh-autoenv-share
+ #!${runtimeShell}
+ # Run this script to find the fzf shared folder where all the shell
+ # integration scripts are living.
+ echo $out/share/zsh-autoenv
+ SCRIPT
+ chmod +x $out/bin/zsh-autoenv-share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatically sources whitelisted .autoenv.zsh files";
+ longDescription = ''
+ zsh-autoenv automatically sources (known/whitelisted)
+ .autoenv.zsh files, typically used in project root directories.
+ It handles "enter" and "leave" events, nesting, and stashing of
+ variables (overwriting and restoring).
+ '';
+ homepage = "https://github.com/Tarrasch/zsh-autoenv";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-navigation-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-navigation-tools/default.nix
new file mode 100644
index 000000000000..86dd990cd746
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/zsh-navigation-tools/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "zsh-navigation-tools";
+ version = "2.2.7";
+
+ src = fetchFromGitHub {
+ owner = "psprint";
+ repo = "zsh-navigation-tools";
+ rev = "v${version}";
+ sha256 = "0c4kb19aprb868xnlyq8h1nd2d32r0zkrqblsrzvg7m9gx8vqps8";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share/zsh/site-functions/
+ cp zsh-navigation-tools.plugin.zsh $out/share/zsh/site-functions/
+ cp n-* $out/share/zsh/site-functions/
+ cp znt-* $out/share/zsh/site-functions/
+ mkdir -p $out/share/zsh/site-functions/.config/znt
+ cp .config/znt/n-* $out/share/zsh/site-functions/.config/znt
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Curses-based tools for ZSH";
+ homepage = "https://github.com/psprint/zsh-navigation-tools";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; unix;
+ };
+}